{"version":3,"file":"shared-lib.BCxjz9Ax.mjs","names":["n","e","a","l","s","i","r","o","c","T","g","d","f","h","b","m","S","R","B","U","K","j","H","te","ue","G","se","_","fe","pe","ye","R$1","T$1","U$1","ce","ae","X$1","Z$1","x","$","E","k","p","t","u","C","J","L","M","P","X","Y","Z","e.default","q","id","useMemo","RenderTarget","useRef","animate","progress","i","cubicBezier","SplitText","lines","animation","scale","rotate","rotateX","rotateY","rotateZ","index","savedIndex","className","e","t","u","a","s","n","o","r","c","t","e","i","n","r","n","e","t","o","n","e","t","a","n","e","r","t","s","o","c","i","h","u","d","f","l","g","m","p","M","n","e","t","o","a","i","s","r","O","c","l","f","u","d","x","g","m","Z","j","V","q","z","S","fe","ue","RenderTarget","Children","useRef","useMemo","useState","useCallback","index","size","i","clamp","lerp","t","x","y","n","d","debounce","i","length","e","id","distance","className","id","a","b","distance","useRef","id","_Fragment","Children","useState","e","useMemo","useState","useRef","useRef","useState","progress","useState","useRef","useCallback","length","x","a","y","z","copy","set","add","b","subtract","multiply","scale","normalize","dot","t","dt","w","m","q","x","y","z","v","Vec3Func.length","Vec3Func.distance","Vec3Func.squaredLength","Vec3Func.squaredDistance","Vec3Func.dot","Vec3Func.exactEquals","q","Vec3Func.angle","t","dt","a","o","tempVec3","ID","i","scale","l","x","y","z","i","a","length","b","l","ID","mask","component","ID","x","y","id","mask","a","b","copy","a","set","x","y","z","w","add","b","scale","length","normalize","dot","lerp","t","identity","s","multiply","a","b","t","invert","dot","m","i","j","k","cx","copy","vec4.copy","set","vec4.set","add","vec4.add","scale","vec4.scale","vec4.dot","lerp","vec4.lerp","length","vec4.length","vec4.normalize","x","y","z","w","v","a","q","QuatFunc.dot","t","o","copy","a","set","identity","invert","multiply","b","translate","x","v","y","z","scale","rotate","s","c","t","vec3.length","te","w","fromQuat","q","f","bt","S","v","m","q","scale","Mat4Func.getMaxScaleOnAxis","Mat4Func.determinant","a","o","m","x","y","z","v","m","q","a","o","i","l","invert","m","i","a","x","q","y","z","w","b","v","s","c","m","v","q","ID","f","length","i","index","i","y","x","u","v","w","a","b","c","d","i","a","b","k","t","p","c","defaultVertexShader","defaultFragmentShader","useRef","useState","useCallback","options","calculatePlaneSize","distance","vertexShader","defaultVertexShader","fragmentShader","defaultFragmentShader","useRef","angle","useMemo","values","progress","angle","useMemo","fonts","css","className","fonts","css","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","addPropertyOverrides","PlusFAQ","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","fonts","css","className","serializationHash","variantClassNames","transition1","animation","textEffect","textEffect1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","className","css","sharedStyle.css","sharedStyle.fonts","fonts","css","className","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","className","FormPlainTextInput","css","sharedStyle.css","sharedStyle.fonts","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","animation","t","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","className","css","sharedStyle.css","sharedStyle.fonts","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","className","FormPlainTextInput","css","sharedStyle.css","sharedStyle.fonts","addPropertyOverrides","InputField","InputFieldMessage","Button2","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","_Fragment","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","mask","SVG","getProps","Component","className","css","Icon","addPropertyOverrides","VectorFonts","Vector","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","fonts","css","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","className","css","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","mask","SVG","getProps","Component","className","css","Icon","addPropertyOverrides","enabledGestures","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","className","css","sharedStyle.css","sharedStyle.fonts","ButtonFonts","Button","serializationHash","variantClassNames","transition1","React.useContext","React.useMemo","React.Fragment","getProps","PT","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","TextIndenter","useMemo","fonts","css","className","fonts","css","className","css","mask","SVG","getProps","Component","className","css","Icon","mask","SVG","getProps","Component","className","css","Icon","mask","SVG","getProps","Component","className","css","Icon","mask","SVG","getProps","Component","className","css","Icon","SVG","getProps","Component","className","css","__FramerMetadata__","Lenis","NavBar","Button","Unfocused","TextIndenter","TilbudCard","TextIndenter1","OnlineUSP","TestimonialCard","Question","ArrowExternal","ContactForm","Vector","Component","useRef","React.useId","metadata","React.useMemo","metadataProvider","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","sharedStyle3.className","sharedStyle4.className","sharedStyle5.className","sharedStyle6.className","React.useRef","className","PropertyOverrides","React.Fragment","PT","Kostholdsveiledning","Kombi","OnlineCoaching","Bedriftspakke","Image","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle3.css","sharedStyle4.css","sharedStyle5.css","sharedStyle6.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","sharedStyle3.fonts","sharedStyle4.fonts","sharedStyle5.fonts","sharedStyle6.fonts","__FramerMetadata__"],"sources":["https:/ga.jspm.io/npm:react-dom@18.2.0/server.browser.js","https:/framerusercontent.com/modules/al7tHO15Oyq9AxBfST8y/uoWcA11u5SdzqY0Oz7hQ/TextEffectOnScroll_Prod.js","https:/ga.jspm.io/npm:@motionone/utils@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/easing@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/animation@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:tslib@2.4.0/tslib.es6.js","https:/ga.jspm.io/npm:hey-listen@1.0.8/dist/index.js","https:/ga.jspm.io/npm:@motionone/generators@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/dom@10.13.1/dist/index.es.js","https:/framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/6yBrflQSNZ1yENMohj0e/Ticker.js","https:/unpkg.com/lenis@1.3.8/dist/lenis.mjs","https:/unpkg.com/lenis@1.3.8/dist/lenis-snap.mjs","https:/framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/ewEgVFDJmU5IWGjRz6lM/Lenis.js","https:/framer.com/m/GLUtils-cYf4.js","https:/framer.com/m/OGLUtils-LEvG.js","https:/framer.com/m/UseVariantValue-mxjI.js","https:/framer.com/m/UseAnimatedValue-6Bkx.js","https:/framer.com/m/UseMedia-AW14.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/Vec3Func.js","https:/unpkg.com/ogl@1.0.11/src/math/Vec3.js","https:/unpkg.com/ogl@1.0.11/src/core/Geometry.js","https:/unpkg.com/ogl@1.0.11/src/core/Program.js","https:/unpkg.com/ogl@1.0.11/src/core/Renderer.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/Vec4Func.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/QuatFunc.js","https:/unpkg.com/ogl@1.0.11/src/math/Quat.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/Mat4Func.js","https:/unpkg.com/ogl@1.0.11/src/math/Mat4.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/EulerFunc.js","https:/unpkg.com/ogl@1.0.11/src/math/Euler.js","https:/unpkg.com/ogl@1.0.11/src/core/Transform.js","https:/unpkg.com/ogl@1.0.11/src/core/Camera.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/Mat3Func.js","https:/unpkg.com/ogl@1.0.11/src/math/Mat3.js","https:/unpkg.com/ogl@1.0.11/src/core/Mesh.js","https:/unpkg.com/ogl@1.0.11/src/core/Texture.js","https:/unpkg.com/ogl@1.0.11/src/core/RenderTarget.js","https:/unpkg.com/ogl@1.0.11/src/extras/Plane.js","https:/unpkg.com/ogl@1.0.11/src/extras/Box.js","https:/unpkg.com/ogl@1.0.11/src/extras/Sphere.js","https:/unpkg.com/ogl@1.0.11/src/extras/Cylinder.js","https:/unpkg.com/ogl@1.0.11/src/extras/Triangle.js","https:/unpkg.com/ogl@1.0.11/src/extras/Torus.js","https:/unpkg.com/ogl@1.0.11/src/extras/Orbit.js","https:/unpkg.com/ogl@1.0.11/src/extras/Raycast.js","https:/unpkg.com/ogl@1.0.11/src/extras/Curve.js","https:/unpkg.com/ogl@1.0.11/src/extras/path/CubicBezierSegment.js","https:/unpkg.com/ogl@1.0.11/src/extras/path/QuadraticBezierSegment.js","https:/unpkg.com/ogl@1.0.11/src/extras/path/LineSegment.js","https:/unpkg.com/ogl@1.0.11/src/extras/path/Path.js","https:/unpkg.com/ogl@1.0.11/src/extras/Tube.js","https:/unpkg.com/ogl@1.0.11/src/extras/Post.js","https:/unpkg.com/ogl@1.0.11/src/extras/Animation.js","https:/unpkg.com/ogl@1.0.11/src/extras/Skin.js","https:/unpkg.com/ogl@1.0.11/src/extras/Flowmap.js","https:/unpkg.com/ogl@1.0.11/src/extras/GPGPU.js","https:/unpkg.com/ogl@1.0.11/src/extras/Polyline.js","https:/unpkg.com/ogl@1.0.11/src/extras/Shadow.js","https:/unpkg.com/ogl@1.0.11/src/extras/KTXTexture.js","https:/unpkg.com/ogl@1.0.11/src/extras/TextureLoader.js","https:/unpkg.com/ogl@1.0.11/src/extras/GLTFAnimation.js","https:/unpkg.com/ogl@1.0.11/src/extras/GLTFSkin.js","https:/unpkg.com/ogl@1.0.11/src/extras/InstancedMesh.js","https:/unpkg.com/ogl@1.0.11/src/extras/GLTFLoader.js","https:/unpkg.com/ogl@1.0.11/src/extras/WireMesh.js","https:/unpkg.com/ogl@1.0.11/src/extras/helpers/AxesHelper.js","https:/unpkg.com/ogl@1.0.11/src/extras/helpers/GridHelper.js","https:/unpkg.com/ogl@1.0.11/src/extras/helpers/VertexNormalsHelper.js","https:/unpkg.com/ogl@1.0.11/src/extras/helpers/FaceNormalsHelper.js","https:/unpkg.com/ogl@1.0.11/src/extras/Texture3D.js","https:/unpkg.com/ogl","https:/framerusercontent.com/modules/MpdGPgep8CrmVuG8IclI/3flka5fkGcFUNVW00KRS/OGLUtils.js","https:/framer.com/m/UseOGLScene-gg2G.js","https:/framerusercontent.com/modules/mSJ52dBkVivlfYMsRpwj/z319KePspYG0E1KkmAJd/UseSetup.js","https:/framerusercontent.com/modules/jypow408LDgPDnL677k2/Dg0auyGnIrsdg2LBcXmt/Shaders.js","https:/framerusercontent.com/modules/7zxjrN9X6oe3IFas7UpS/imR8plZxz6TwO8xlwuod/OGL.js","https:/framerusercontent.com/modules/oaA9N1sWyc1tB57T7xaj/YxlTLBSLBUyLyALkWkvh/Unfocused.js","https:/framerusercontent.com/modules/XBLQKNP4H4SunjkAGBSw/VJkxmkFVML31c5bBRko6/TextIndenter.js","https:/framerusercontent.com/modules/NUxh1C07gxD3baGlkrGS/TkxOJjFeBNgInrog0mu7/d_QjpE7Ez.js","https:/framerusercontent.com/modules/mWpE452hJfoab3lrgpgF/KAW1wuOqq6IQwIVDh9fl/xtYIxMhsp.js","https:/framerusercontent.com/modules/jg4OHn3foPiVl0CYOWa4/VCC25QCpGASP5R8FIJ0I/Aawnurm_t.js","https:/framerusercontent.com/modules/lt5b036QasjQX02jZT8P/qgBVv4E3p0IVNFHL2BXv/a0d8ITKLO.js","https:/framerusercontent.com/modules/U5UtW5urp9J5v6ENPQtq/kkGFEGyInBO0KtyNmhNI/FFSoAwgVo.js","https:/framerusercontent.com/modules/0wrvMy06mGlD05MXDv33/5j7LHS0TYP4L9DfLOUK1/gyaIeUHyR.js","https:/framerusercontent.com/modules/Sck014nMHYdZJwyve77Q/plsXsv0x37BIgPjf2j0p/ZyG89nXsG.js","https:/framerusercontent.com/modules/sObrNtjNQr043Ob6z6S1/Toe3xzK6X7iu42xncZ4n/dNuW1Hh6g.js","https:/framerusercontent.com/modules/as9yw9BXqjDe4iwgg5H2/LLtfuGEGhp0oAl5OO4vO/JVnOYnWhx.js","https:/framerusercontent.com/modules/0IJvsUqjUlOsymFHhWkU/yAfTNRZxBzPW0eZzdZyk/krQ7Y9i_9.js","https:/framerusercontent.com/modules/pleTuTO7xHeTB24CVfhd/OEhqog9IM9gKNML94Dhc/hdYUftzHp.js","https:/framerusercontent.com/modules/FDW670RnBQAVNoKNil5Y/re1yE3Gw6fSFSy3ZXAbC/xIl5YmF8C.js","https:/framerusercontent.com/modules/ZUisVf91ry3bmYkSRgIX/ECXMcydRKxaZ1QkSNPjJ/inDjm55_B.js","https:/framerusercontent.com/modules/TxW2Ajo3onQdSNQlW7hv/wKGv9eB6O1dnXsDCYBen/T9UzstXVN.js","https:/framerusercontent.com/modules/W1HgJ617tm5ZeoEt7VSg/yxUDLrUtRTjIJYjxyFdL/OALUZz2dH.js","https:/framerusercontent.com/modules/KRU8fg1XHXjT2oDDfBhH/75q0jM94zspdlJklVIPZ/ks83DUqUw.js","https:/framerusercontent.com/modules/a6sNpWo0rhGvgvqmyZZR/gJfogxI28RSO8xpKxMrV/TsUh8QSTD.js","https:/framerusercontent.com/modules/M2jBydy7nWEUxyl7O4Ax/2OH4HIdwetJVXYNp5pNa/q3fr6J17L.js","https:/framerusercontent.com/modules/pRZtcqPWU8WysSHZi8q8/JfghvUClkBDr4GUca65K/TextIndenter.js","https:/framerusercontent.com/modules/82evxBgFPNrk7IZjnnlW/DcPqhbLf1JVl4wZcFFGe/E0GN6lZMD.js","https:/framerusercontent.com/modules/KFhphyZd7eVHFcTQifJM/wENf0FDrX8v9Y1tpTepp/g3HTaB2MD.js","https:/framerusercontent.com/modules/A0FBrLKi9rOqpXFNdgqF/TyiuHHkDS4pybxeg6dEF/Lf4g0edG9.js","https:/framerusercontent.com/modules/uD5o9YBg1UvpQg48ufYN/rADUk37xv1fus0QrOGUp/pYCZMbMHT.js","https:/framerusercontent.com/modules/klF10cqew8XFnOvWJGOz/zQb3fo5ASM70tEY9mC47/qcNllDVg5.js","https:/framerusercontent.com/modules/IegKrKgwkyTeJqk83DgN/6FROMLgch0ZZHTZrU05U/rnGG9DEhq.js","https:/framerusercontent.com/modules/S2qgo5gqB7mWbamBwYlU/4gKdtjuA8kHuRVOj4gAl/UFTPVxSTR.js","https:/framerusercontent.com/modules/AthNsbZB1Du34OHzsC4r/veFqw7vtILaxzRRpTNYR/xkT5gp6HD.js","https:/framerusercontent.com/modules/tLb7nZlUUElt4cESmZ8P/9slx7HMXIxP0WJPrZkEy/augiA20Il.js","https:/framerusercontent.com/modules/q9hJzqB18ZHjqJUk8Kyc/of7JgT5HKU6gXoIcmV8A/augiA20Il.js","https:/framer.com/m/framer/SitesNotFoundPage.js@1.4.0"],"sourcesContent":["import*as e from\"react\";var n=\"default\"in e?e.default:e;var a={};var o=n;function l$2(e){for(var n=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,a=1;a<arguments.length;a++)n+=\"&args[]=\"+encodeURIComponent(arguments[a]);return\"Minified React error #\"+e+\"; visit \"+n+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var l=Object.prototype.hasOwnProperty,i=/^[: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]*$/,s={},c={};function ja$1(e){if(l.call(c,e))return!0;if(l.call(s,e))return!1;if(i.test(e))return c[e]=!0;s[e]=!0;return!1}function r(e,n,a,o,l,i,s){this.acceptsBooleans=2===n||3===n||4===n;this.attributeName=o;this.attributeNamespace=l;this.mustUseProperty=a;this.propertyName=e;this.type=n;this.sanitizeURL=i;this.removeEmptyString=s}var d={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach((function(e){d[e]=new r(e,0,!1,e,null,!1,!1)}));[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach((function(e){var n=e[0];d[n]=new r(n,1,!1,e[1],null,!1,!1)}));[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach((function(e){d[e]=new r(e,2,!1,e.toLowerCase(),null,!1,!1)}));[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach((function(e){d[e]=new r(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){d[e]=new r(e,3,!1,e.toLowerCase(),null,!1,!1)}));[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach((function(e){d[e]=new r(e,3,!0,e,null,!1,!1)}));[\"capture\",\"download\"].forEach((function(e){d[e]=new r(e,4,!1,e,null,!1,!1)}));[\"cols\",\"rows\",\"size\",\"span\"].forEach((function(e){d[e]=new r(e,6,!1,e,null,!1,!1)}));[\"rowSpan\",\"start\"].forEach((function(e){d[e]=new r(e,5,!1,e.toLowerCase(),null,!1,!1)}));var f=/[\\-:]([a-z])/g;function la$1(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 n=e.replace(f,la$1);d[n]=new r(n,1,!1,e,null,!1,!1)}));\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach((function(e){var n=e.replace(f,la$1);d[n]=new r(n,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)}));[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach((function(e){var n=e.replace(f,la$1);d[n]=new r(n,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)}));[\"tabIndex\",\"crossOrigin\"].forEach((function(e){d[e]=new r(e,1,!1,e.toLowerCase(),null,!1,!1)}));d.xlinkHref=new r(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach((function(e){d[e]=new r(e,1,!1,e.toLowerCase(),null,!0,!0)}));var h={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},g=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(h).forEach((function(e){g.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1);h[n]=h[e]}))}));var b=/[\"'&<>]/;function v(e){if(\"boolean\"===typeof e||\"number\"===typeof e)return\"\"+e;e=\"\"+e;var n=b.exec(e);if(n){var a,o=\"\",l=0;for(a=n.index;a<e.length;a++){switch(e.charCodeAt(a)){case 34:n=\"&quot;\";break;case 38:n=\"&amp;\";break;case 39:n=\"&#x27;\";break;case 60:n=\"&lt;\";break;case 62:n=\"&gt;\";break;default:continue}l!==a&&(o+=e.substring(l,a));l=a+1;o+=n}e=l!==a?o+e.substring(l,a):o}return e}var m=/([A-Z])/g,S=/^ms-/,x=Array.isArray;function w$1(e,n){return{insertionMode:e,selectedValue:n}}function ra$1(e,n,a){switch(n){case\"select\":return w$1(1,null!=a.value?a.value:a.defaultValue);case\"svg\":return w$1(2,null);case\"math\":return w$1(3,null);case\"foreignObject\":return w$1(1,null);case\"table\":return w$1(4,null);case\"thead\":case\"tbody\":case\"tfoot\":return w$1(5,null);case\"colgroup\":return w$1(7,null);case\"tr\":return w$1(6,null)}return 4<=e.insertionMode||0===e.insertionMode?w$1(1,null):e}var $=new Map;function ta$1(e,n,a){if(\"object\"!==typeof a)throw Error(l$2(62));n=!0;for(var o in a)if(l.call(a,o)){var i=a[o];if(null!=i&&\"boolean\"!==typeof i&&\"\"!==i){if(0===o.indexOf(\"--\")){var s=v(o);i=v((\"\"+i).trim())}else{s=o;var c=$.get(s);void 0!==c||(c=v(s.replace(m,\"-$1\").toLowerCase().replace(S,\"-ms-\")),$.set(s,c)),s=c;i=\"number\"===typeof i?0===i||l.call(h,o)?\"\"+i:i+\"px\":v((\"\"+i).trim())}n?(n=!1,e.push(' style=\"',s,\":\",i)):e.push(\";\",s,\":\",i)}}n||e.push('\"')}function x$1(e,n,a,o){switch(a){case\"style\":ta$1(e,n,o);return;case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":return}if(!(2<a.length)||\"o\"!==a[0]&&\"O\"!==a[0]||\"n\"!==a[1]&&\"N\"!==a[1])if(n=d.hasOwnProperty(a)?d[a]:null,null!==n){switch(typeof o){case\"function\":case\"symbol\":return;case\"boolean\":if(!n.acceptsBooleans)return}a=n.attributeName;switch(n.type){case 3:o&&e.push(\" \",a,'=\"\"');break;case 4:!0===o?e.push(\" \",a,'=\"\"'):!1!==o&&e.push(\" \",a,'=\"',v(o),'\"');break;case 5:isNaN(o)||e.push(\" \",a,'=\"',v(o),'\"');break;case 6:!isNaN(o)&&1<=o&&e.push(\" \",a,'=\"',v(o),'\"');break;default:n.sanitizeURL&&(o=\"\"+o),e.push(\" \",a,'=\"',v(o),'\"')}}else if(ja$1(a)){switch(typeof o){case\"function\":case\"symbol\":return;case\"boolean\":if(n=a.toLowerCase().slice(0,5),\"data-\"!==n&&\"aria-\"!==n)return}e.push(\" \",a,'=\"',v(o),'\"')}}function y$1(e,n,a){if(null!=n){if(null!=a)throw Error(l$2(60));if(\"object\"!==typeof n||!(\"__html\"in n))throw Error(l$2(61));n=n.__html;null!==n&&void 0!==n&&e.push(\"\"+n)}}function ua$1(e){var n=\"\";o.Children.forEach(e,(function(e){null!=e&&(n+=e)}));return n}function va$1(e,n,a,o){e.push(A(a));var i,s=a=null;for(i in n)if(l.call(n,i)){var c=n[i];if(null!=c)switch(i){case\"children\":a=c;break;case\"dangerouslySetInnerHTML\":s=c;break;default:x$1(e,o,i,c)}}e.push(\">\");y$1(e,s,a);return\"string\"===typeof a?(e.push(v(a)),null):a}var E=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,T=new Map;function A(e){var n=T.get(e);if(void 0===n){if(!E.test(e))throw Error(l$2(65,e));n=\"<\"+e;T.set(e,n)}return n}function ya$1(e,n,a,o,i){switch(n){case\"select\":e.push(A(\"select\"));var s=null,c=null;for(g in a)if(l.call(a,g)){var d=a[g];if(null!=d)switch(g){case\"children\":s=d;break;case\"dangerouslySetInnerHTML\":c=d;break;case\"defaultValue\":case\"value\":break;default:x$1(e,o,g,d)}}e.push(\">\");y$1(e,c,s);return s;case\"option\":c=i.selectedValue;e.push(A(\"option\"));var f=d=null,h=null;var g=null;for(s in a)if(l.call(a,s)){var b=a[s];if(null!=b)switch(s){case\"children\":d=b;break;case\"selected\":h=b;break;case\"dangerouslySetInnerHTML\":g=b;break;case\"value\":f=b;default:x$1(e,o,s,b)}}if(null!=c)if(a=null!==f?\"\"+f:ua$1(d),x(c)){for(o=0;o<c.length;o++)if(\"\"+c[o]===a){e.push(' selected=\"\"');break}}else\"\"+c===a&&e.push(' selected=\"\"');else h&&e.push(' selected=\"\"');e.push(\">\");y$1(e,g,d);return d;case\"textarea\":e.push(A(\"textarea\"));g=c=s=null;for(d in a)if(l.call(a,d)&&(f=a[d],null!=f))switch(d){case\"children\":g=f;break;case\"value\":s=f;break;case\"defaultValue\":c=f;break;case\"dangerouslySetInnerHTML\":throw Error(l$2(91));default:x$1(e,o,d,f)}null===s&&null!==c&&(s=c);e.push(\">\");if(null!=g){if(null!=s)throw Error(l$2(92));if(x(g)&&1<g.length)throw Error(l$2(93));s=\"\"+g}\"string\"===typeof s&&\"\\n\"===s[0]&&e.push(\"\\n\");null!==s&&e.push(v(\"\"+s));return null;case\"input\":e.push(A(\"input\"));f=g=d=s=null;for(c in a)if(l.call(a,c)&&(h=a[c],null!=h))switch(c){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l$2(399,\"input\"));case\"defaultChecked\":f=h;break;case\"defaultValue\":d=h;break;case\"checked\":g=h;break;case\"value\":s=h;break;default:x$1(e,o,c,h)}null!==g?x$1(e,o,\"checked\",g):null!==f&&x$1(e,o,\"checked\",f);null!==s?x$1(e,o,\"value\",s):null!==d&&x$1(e,o,\"value\",d);e.push(\"/>\");return null;case\"menuitem\":e.push(A(\"menuitem\"));for(var m in a)if(l.call(a,m)&&(s=a[m],null!=s))switch(m){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l$2(400));default:x$1(e,o,m,s)}e.push(\">\");return null;case\"title\":e.push(A(\"title\"));s=null;for(b in a)if(l.call(a,b)&&(c=a[b],null!=c))switch(b){case\"children\":s=c;break;case\"dangerouslySetInnerHTML\":throw Error(l$2(434));default:x$1(e,o,b,c)}e.push(\">\");return s;case\"listing\":case\"pre\":e.push(A(n));c=s=null;for(f in a)if(l.call(a,f)&&(d=a[f],null!=d))switch(f){case\"children\":s=d;break;case\"dangerouslySetInnerHTML\":c=d;break;default:x$1(e,o,f,d)}e.push(\">\");if(null!=c){if(null!=s)throw Error(l$2(60));if(\"object\"!==typeof c||!(\"__html\"in c))throw Error(l$2(61));a=c.__html;null!==a&&void 0!==a&&(\"string\"===typeof a&&0<a.length&&\"\\n\"===a[0]?e.push(\"\\n\",a):e.push(\"\"+a))}\"string\"===typeof s&&\"\\n\"===s[0]&&e.push(\"\\n\");return s;case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":e.push(A(n));for(var S in a)if(l.call(a,S)&&(s=a[S],null!=s))switch(S){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l$2(399,n));default:x$1(e,o,S,s)}e.push(\"/>\");return null;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 va$1(e,a,n,o);case\"html\":return 0===i.insertionMode&&e.push(\"<!DOCTYPE html>\"),va$1(e,a,n,o);default:if(-1===n.indexOf(\"-\")&&\"string\"!==typeof a.is)return va$1(e,a,n,o);e.push(A(n));c=s=null;for(h in a)if(l.call(a,h)&&(d=a[h],null!=d))switch(h){case\"children\":s=d;break;case\"dangerouslySetInnerHTML\":c=d;break;case\"style\":ta$1(e,o,d);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":break;default:ja$1(h)&&\"function\"!==typeof d&&\"symbol\"!==typeof d&&e.push(\" \",h,'=\"',v(d),'\"')}e.push(\">\");y$1(e,c,s);return s}}function za$1(e,n,a){e.push('\\x3c!--$?--\\x3e<template id=\"');if(null===a)throw Error(l$2(395));e.push(a);return e.push('\"></template>')}function Aa$1(e,n,a,o){switch(a.insertionMode){case 0:case 1:return e.push('<div hidden id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 2:return e.push('<svg aria-hidden=\"true\" style=\"display:none\" id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 3:return e.push('<math aria-hidden=\"true\" style=\"display:none\" id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 4:return e.push('<table hidden id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 5:return e.push('<table hidden><tbody id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 6:return e.push('<table hidden><tr id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 7:return e.push('<table hidden><colgroup id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');default:throw Error(l$2(397))}}function Ba$1(e,n){switch(n.insertionMode){case 0:case 1:return e.push(\"</div>\");case 2:return e.push(\"</svg>\");case 3:return e.push(\"</math>\");case 4:return e.push(\"</table>\");case 5:return e.push(\"</tbody></table>\");case 6:return e.push(\"</tr></table>\");case 7:return e.push(\"</colgroup></table>\");default:throw Error(l$2(397))}}var R=/[<\\u2028\\u2029]/g;function Da$1(e){return JSON.stringify(e).replace(R,(function(e){switch(e){case\"<\":return\"\\\\u003c\";case\"\\u2028\":return\"\\\\u2028\";case\"\\u2029\":return\"\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}}))}function Ea$1(e,n){n=void 0===n?\"\":n;return{bootstrapChunks:[],startInlineScript:\"<script>\",placeholderPrefix:n+\"P:\",segmentPrefix:n+\"S:\",boundaryPrefix:n+\"B:\",idPrefix:n,nextSuspenseID:0,sentCompleteSegmentFunction:!1,sentCompleteBoundaryFunction:!1,sentClientRenderFunction:!1,generateStaticMarkup:e}}function Fa$1(e,n,a,o){if(a.generateStaticMarkup)return e.push(v(n)),!1;\"\"===n?e=o:(o&&e.push(\"\\x3c!-- --\\x3e\"),e.push(v(n)),e=!0);return e}var _=Object.assign,I=Symbol.for(\"react.element\"),B=Symbol.for(\"react.portal\"),N=Symbol.for(\"react.fragment\"),z=Symbol.for(\"react.strict_mode\"),V=Symbol.for(\"react.profiler\"),j=Symbol.for(\"react.provider\"),O=Symbol.for(\"react.context\"),H=Symbol.for(\"react.forward_ref\"),U=Symbol.for(\"react.suspense\"),K=Symbol.for(\"react.suspense_list\"),ee=Symbol.for(\"react.memo\"),te=Symbol.for(\"react.lazy\"),ne=Symbol.for(\"react.scope\"),re=Symbol.for(\"react.debug_trace_mode\"),ae=Symbol.for(\"react.legacy_hidden\"),oe=Symbol.for(\"react.default_value\"),le=Symbol.iterator;function Xa$1(e){if(null==e)return null;if(\"function\"===typeof e)return e.displayName||e.name||null;if(\"string\"===typeof e)return e;switch(e){case N:return\"Fragment\";case B:return\"Portal\";case V:return\"Profiler\";case z:return\"StrictMode\";case U:return\"Suspense\";case K:return\"SuspenseList\"}if(\"object\"===typeof e)switch(e.$$typeof){case O:return(e.displayName||\"Context\")+\".Consumer\";case j:return(e._context.displayName||\"Context\")+\".Provider\";case H:var n=e.render;e=e.displayName;e||(e=n.displayName||n.name||\"\",e=\"\"!==e?\"ForwardRef(\"+e+\")\":\"ForwardRef\");return e;case ee:return n=e.displayName||null,null!==n?n:Xa$1(e.type)||\"Memo\";case te:n=e._payload;e=e._init;try{return Xa$1(e(n))}catch(e){}}return null}var ue={};function Za$1(e,n){e=e.contextTypes;if(!e)return ue;var a,o={};for(a in e)o[a]=n[a];return o}var ie=null;function F(e,n){if(e!==n){e.context._currentValue2=e.parentValue;e=e.parent;var a=n.parent;if(null===e){if(null!==a)throw Error(l$2(401))}else{if(null===a)throw Error(l$2(401));F(e,a)}n.context._currentValue2=n.value}}function $a$1(e){e.context._currentValue2=e.parentValue;e=e.parent;null!==e&&$a$1(e)}function ab$1(e){var n=e.parent;null!==n&&ab$1(n);e.context._currentValue2=e.value}function bb$1(e,n){e.context._currentValue2=e.parentValue;e=e.parent;if(null===e)throw Error(l$2(402));e.depth===n.depth?F(e,n):bb$1(e,n)}function cb$1(e,n){var a=n.parent;if(null===a)throw Error(l$2(402));e.depth===a.depth?F(e,a):cb$1(e,a);n.context._currentValue2=n.value}function G(e){var n=ie;n!==e&&(null===n?ab$1(e):null===e?$a$1(n):n.depth===e.depth?F(n,e):n.depth>e.depth?bb$1(n,e):cb$1(n,e),ie=e)}var se={isMounted:function(){return!1},enqueueSetState:function(e,n){e=e._reactInternals;null!==e.queue&&e.queue.push(n)},enqueueReplaceState:function(e,n){e=e._reactInternals;e.replace=!0;e.queue=[n]},enqueueForceUpdate:function(){}};function eb$1(e,n,a,o){var l=void 0!==e.state?e.state:null;e.updater=se;e.props=a;e.state=l;var i={queue:[],replace:!1};e._reactInternals=i;var s=n.contextType;e.context=\"object\"===typeof s&&null!==s?s._currentValue2:o;s=n.getDerivedStateFromProps;\"function\"===typeof s&&(s=s(a,l),l=null===s||void 0===s?l:_({},l,s),e.state=l);if(\"function\"!==typeof n.getDerivedStateFromProps&&\"function\"!==typeof e.getSnapshotBeforeUpdate&&(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount))if(n=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),n!==e.state&&se.enqueueReplaceState(e,e.state,null),null!==i.queue&&0<i.queue.length)if(n=i.queue,s=i.replace,i.queue=null,i.replace=!1,s&&1===n.length)e.state=n[0];else{i=s?n[0]:e.state;l=!0;for(s=s?1:0;s<n.length;s++){var c=n[s];c=\"function\"===typeof c?c.call(e,i,a,o):c;null!=c&&(l?(l=!1,i=_({},i,c)):_(i,c))}e.state=i}else i.queue=null}var ce={id:1,overflow:\"\"};function gb$1(e,n,a){var o=e.id;e=e.overflow;var l=32-de(o)-1;o&=~(1<<l);a+=1;var i=32-de(n)+l;if(30<i){var s=l-l%5;i=(o&(1<<s)-1).toString(32);o>>=s;l-=s;return{id:1<<32-de(n)+l|a<<l|o,overflow:i+e}}return{id:1<<i|a<<l|o,overflow:e}}var de=Math.clz32?Math.clz32:hb$1,fe=Math.log,pe=Math.LN2;function hb$1(e){e>>>=0;return 0===e?32:31-(fe(e)/pe|0)|0}function kb$1(e,n){return e===n&&(0!==e||1/e===1/n)||e!==e&&n!==n}var he=\"function\"===typeof Object.is?Object.is:kb$1,ge=null,be=null,me=null,ye=null,ve=!1,ke=!1,we=0,Se=null,xe=0;function Q$1(){if(null===ge)throw Error(l$2(321));return ge}function pb$1(){if(0<xe)throw Error(l$2(312));return{memoizedState:null,queue:null,next:null}}function qb$1(){null===ye?null===me?(ve=!1,me=ye=pb$1()):(ve=!0,ye=me):null===ye.next?(ve=!1,ye=ye.next=pb$1()):(ve=!0,ye=ye.next);return ye}function rb$1(){be=ge=null;ke=!1;me=null;xe=0;ye=Se=null}function sb$1(e,n){return\"function\"===typeof n?n(e):n}function tb$1(e,n,a){ge=Q$1();ye=qb$1();if(ve){var o=ye.queue;n=o.dispatch;if(null!==Se&&(a=Se.get(o),void 0!==a)){Se.delete(o);o=ye.memoizedState;do{o=e(o,a.action),a=a.next}while(null!==a);ye.memoizedState=o;return[o,n]}return[ye.memoizedState,n]}e=e===sb$1?\"function\"===typeof n?n():n:void 0!==a?a(n):n;ye.memoizedState=e;e=ye.queue={last:null,dispatch:null};e=e.dispatch=ub$1.bind(null,ge,e);return[ye.memoizedState,e]}function vb$1(e,n){ge=Q$1();ye=qb$1();n=void 0===n?null:n;if(null!==ye){var a=ye.memoizedState;if(null!==a&&null!==n){var o=a[1];e:if(null===o)o=!1;else{for(var l=0;l<o.length&&l<n.length;l++)if(!he(n[l],o[l])){o=!1;break e}o=!0}if(o)return a[0]}}e=e();ye.memoizedState=[e,n];return e}function ub$1(e,n,a){if(25<=xe)throw Error(l$2(301));if(e===ge)if(ke=!0,e={action:a,next:null},null===Se&&(Se=new Map),a=Se.get(n),void 0===a)Se.set(n,e);else{for(n=a;null!==n.next;)n=n.next;n.next=e}}function wb$1(){throw Error(l$2(394))}function R$1(){}var $e={readContext:function(e){return e._currentValue2},useContext:function(e){Q$1();return e._currentValue2},useMemo:vb$1,useReducer:tb$1,useRef:function(e){ge=Q$1();ye=qb$1();var n=ye.memoizedState;return null===n?(e={current:e},ye.memoizedState=e):n},useState:function(e){return tb$1(sb$1,e)},useInsertionEffect:R$1,useLayoutEffect:function(){},useCallback:function(e,n){return vb$1((function(){return e}),n)},useImperativeHandle:R$1,useEffect:R$1,useDebugValue:R$1,useDeferredValue:function(e){Q$1();return e},useTransition:function(){Q$1();return[!1,wb$1]},useId:function(){var e=be.treeContext;var n=e.overflow;e=e.id;e=(e&~(1<<32-de(e)-1)).toString(32)+n;var a=Ce;if(null===a)throw Error(l$2(404));n=we++;e=\":\"+a.idPrefix+\"R\"+e;0<n&&(e+=\"H\"+n.toString(32));return e+\":\"},useMutableSource:function(e,n){Q$1();return n(e._source)},useSyncExternalStore:function(e,n,a){if(void 0===a)throw Error(l$2(407));return a()}},Ce=null,Ee=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;function zb$1(e){console.error(e);return null}function T$1(){}function Ab$1(e,n,a,o,l,i,s,c,d){var f=[],h=new Set;n={destination:null,responseState:n,progressiveChunkSize:void 0===o?12800:o,status:0,fatalError:null,nextSegmentId:0,allPendingTasks:0,pendingRootTasks:0,completedRootSegment:null,abortableTasks:h,pingedTasks:f,clientRenderedBoundaries:[],completedBoundaries:[],partialBoundaries:[],onError:void 0===l?zb$1:l,onAllReady:void 0===i?T$1:i,onShellReady:void 0===s?T$1:s,onShellError:void 0===c?T$1:c,onFatalError:void 0===d?T$1:d};a=U$1(n,0,null,a,!1,!1);a.parentFlushed=!0;e=Bb$1(n,e,null,a,h,ue,null,ce);f.push(e);return n}function Bb$1(e,n,a,o,l,i,s,c){e.allPendingTasks++;null===a?e.pendingRootTasks++:a.pendingTasks++;var d={node:n,ping:function(){var n=e.pingedTasks;n.push(d);1===n.length&&Cb$1(e)},blockedBoundary:a,blockedSegment:o,abortSet:l,legacyContext:i,context:s,treeContext:c};l.add(d);return d}function U$1(e,n,a,o,l,i){return{status:0,id:-1,index:n,parentFlushed:!1,chunks:[],children:[],formatContext:o,boundary:a,lastPushedText:l,textEmbedded:i}}function V$1(e,n){e=e.onError(n);if(null!=e&&\"string\"!==typeof e)throw Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"'+typeof e+'\" instead');return e}function W$1(e,n){var a=e.onShellError;a(n);a=e.onFatalError;a(n);null!==e.destination?(e.status=2,e.destination.destroy(n)):(e.status=1,e.fatalError=n)}function Db$1(e,n,a,o,l){ge={};be=n;we=0;for(e=a(o,l);ke;)ke=!1,we=0,xe+=1,ye=null,e=a(o,l);rb$1();return e}function Eb$1(e,n,a,o){var l=a.render(),i=o.childContextTypes;if(null!==i&&void 0!==i){var s=n.legacyContext;if(\"function\"!==typeof a.getChildContext)o=s;else{a=a.getChildContext();for(var c in a)if(!(c in i))throw Error(l$2(108,Xa$1(o)||\"Unknown\",c));o=_({},s,a)}n.legacyContext=o;X$1(e,n,l);n.legacyContext=s}else X$1(e,n,l)}function Fb(e,n){if(e&&e.defaultProps){n=_({},n);e=e.defaultProps;for(var a in e)void 0===n[a]&&(n[a]=e[a]);return n}return n}function Gb$1(e,n,a,o,l){if(\"function\"===typeof a)if(a.prototype&&a.prototype.isReactComponent){l=Za$1(a,n.legacyContext);var i=a.contextType;i=new a(o,\"object\"===typeof i&&null!==i?i._currentValue2:l);eb$1(i,a,o,l);Eb$1(e,n,i,a)}else{i=Za$1(a,n.legacyContext);l=Db$1(e,n,a,o,i);var s=0!==we;if(\"object\"===typeof l&&null!==l&&\"function\"===typeof l.render&&void 0===l.$$typeof)eb$1(l,a,o,i),Eb$1(e,n,l,a);else if(s){o=n.treeContext;n.treeContext=gb$1(o,1,0);try{X$1(e,n,l)}finally{n.treeContext=o}}else X$1(e,n,l)}else{if(\"string\"!==typeof a){switch(a){case ae:case re:case z:case V:case N:X$1(e,n,o.children);return;case K:X$1(e,n,o.children);return;case ne:throw Error(l$2(343));case U:e:{a=n.blockedBoundary;l=n.blockedSegment;i=o.fallback;o=o.children;s=new Set;var c={id:null,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,forceClientRender:!1,completedSegments:[],byteSize:0,fallbackAbortableTasks:s,errorDigest:null},d=U$1(e,l.chunks.length,c,l.formatContext,!1,!1);l.children.push(d);l.lastPushedText=!1;var f=U$1(e,0,null,l.formatContext,!1,!1);f.parentFlushed=!0;n.blockedBoundary=c;n.blockedSegment=f;try{if(Hb$1(e,n,o),e.responseState.generateStaticMarkup||f.lastPushedText&&f.textEmbedded&&f.chunks.push(\"\\x3c!-- --\\x3e\"),f.status=1,Y$1(c,f),0===c.pendingTasks)break e}catch(n){f.status=4,c.forceClientRender=!0,c.errorDigest=V$1(e,n)}finally{n.blockedBoundary=a,n.blockedSegment=l}n=Bb$1(e,i,a,d,s,n.legacyContext,n.context,n.treeContext);e.pingedTasks.push(n)}return}if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case H:o=Db$1(e,n,a.render,o,l);if(0!==we){a=n.treeContext;n.treeContext=gb$1(a,1,0);try{X$1(e,n,o)}finally{n.treeContext=a}}else X$1(e,n,o);return;case ee:a=a.type;o=Fb(a,o);Gb$1(e,n,a,o,l);return;case j:l=o.children;a=a._context;o=o.value;i=a._currentValue2;a._currentValue2=o;s=ie;ie=o={parent:s,depth:null===s?0:s.depth+1,context:a,parentValue:i,value:o};n.context=o;X$1(e,n,l);e=ie;if(null===e)throw Error(l$2(403));o=e.parentValue;e.context._currentValue2=o===oe?e.context._defaultValue:o;e=ie=e.parent;n.context=e;return;case O:o=o.children;o=o(a._currentValue2);X$1(e,n,o);return;case te:l=a._init;a=l(a._payload);o=Fb(a,o);Gb$1(e,n,a,o,void 0);return}throw Error(l$2(130,null==a?a:typeof a,\"\"))}l=n.blockedSegment;i=ya$1(l.chunks,a,o,e.responseState,l.formatContext);l.lastPushedText=!1;s=l.formatContext;l.formatContext=ra$1(s,a,o);Hb$1(e,n,i);l.formatContext=s;switch(a){case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"input\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":break;default:l.chunks.push(\"</\",a,\">\")}l.lastPushedText=!1}}function X$1(e,n,a){n.node=a;if(\"object\"===typeof a&&null!==a){switch(a.$$typeof){case I:Gb$1(e,n,a.type,a.props,a.ref);return;case B:throw Error(l$2(257));case te:var o=a._init;a=o(a._payload);X$1(e,n,a);return}if(x(a)){Ib$1(e,n,a);return}null===a||\"object\"!==typeof a?o=null:(o=le&&a[le]||a[\"@@iterator\"],o=\"function\"===typeof o?o:null);if(o&&(o=o.call(a))){a=o.next();if(!a.done){var l=[];do{l.push(a.value),a=o.next()}while(!a.done);Ib$1(e,n,l)}return}e=Object.prototype.toString.call(a);throw Error(l$2(31,\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e))}\"string\"===typeof a?(o=n.blockedSegment,o.lastPushedText=Fa$1(n.blockedSegment.chunks,a,e.responseState,o.lastPushedText)):\"number\"===typeof a&&(o=n.blockedSegment,o.lastPushedText=Fa$1(n.blockedSegment.chunks,\"\"+a,e.responseState,o.lastPushedText))}function Ib$1(e,n,a){for(var o=a.length,l=0;l<o;l++){var i=n.treeContext;n.treeContext=gb$1(i,o,l);try{Hb$1(e,n,a[l])}finally{n.treeContext=i}}}function Hb$1(e,n,a){var o=n.blockedSegment.formatContext,l=n.legacyContext,i=n.context;try{return X$1(e,n,a)}catch(d){if(rb$1(),\"object\"!==typeof d||null===d||\"function\"!==typeof d.then)throw n.blockedSegment.formatContext=o,n.legacyContext=l,n.context=i,G(i),d;a=d;var s=n.blockedSegment,c=U$1(e,s.chunks.length,null,s.formatContext,s.lastPushedText,!0);s.children.push(c);s.lastPushedText=!1;e=Bb$1(e,n.node,n.blockedBoundary,c,n.abortSet,n.legacyContext,n.context,n.treeContext).ping;a.then(e,e);n.blockedSegment.formatContext=o;n.legacyContext=l;n.context=i;G(i)}}function Jb$1(e){var n=e.blockedBoundary;e=e.blockedSegment;e.status=3;Kb$1(this,n,e)}function Lb$1(e,n,a){var o=e.blockedBoundary;e.blockedSegment.status=3;null===o?(n.allPendingTasks--,2!==n.status&&(n.status=2,null!==n.destination&&n.destination.push(null))):(o.pendingTasks--,o.forceClientRender||(o.forceClientRender=!0,e=void 0===a?Error(l$2(432)):a,o.errorDigest=n.onError(e),o.parentFlushed&&n.clientRenderedBoundaries.push(o)),o.fallbackAbortableTasks.forEach((function(e){return Lb$1(e,n,a)})),o.fallbackAbortableTasks.clear(),n.allPendingTasks--,0===n.allPendingTasks&&(o=n.onAllReady,o()))}function Y$1(e,n){if(0===n.chunks.length&&1===n.children.length&&null===n.children[0].boundary){var a=n.children[0];a.id=n.id;a.parentFlushed=!0;1===a.status&&Y$1(e,a)}else e.completedSegments.push(n)}function Kb$1(e,n,a){if(null===n){if(a.parentFlushed){if(null!==e.completedRootSegment)throw Error(l$2(389));e.completedRootSegment=a}e.pendingRootTasks--;0===e.pendingRootTasks&&(e.onShellError=T$1,n=e.onShellReady,n())}else n.pendingTasks--,n.forceClientRender||(0===n.pendingTasks?(a.parentFlushed&&1===a.status&&Y$1(n,a),n.parentFlushed&&e.completedBoundaries.push(n),n.fallbackAbortableTasks.forEach(Jb$1,e),n.fallbackAbortableTasks.clear()):a.parentFlushed&&1===a.status&&(Y$1(n,a),1===n.completedSegments.length&&n.parentFlushed&&e.partialBoundaries.push(n)));e.allPendingTasks--;0===e.allPendingTasks&&(e=e.onAllReady,e())}function Cb$1(e){if(2!==e.status){var n=ie,a=Ee.current;Ee.current=$e;var o=Ce;Ce=e.responseState;try{var l,i=e.pingedTasks;for(l=0;l<i.length;l++){var s=i[l];var c=e,d=s.blockedSegment;if(0===d.status){G(s.context);try{X$1(c,s,s.node),c.responseState.generateStaticMarkup||d.lastPushedText&&d.textEmbedded&&d.chunks.push(\"\\x3c!-- --\\x3e\"),s.abortSet.delete(s),d.status=1,Kb$1(c,s.blockedBoundary,d)}catch(e){if(rb$1(),\"object\"===typeof e&&null!==e&&\"function\"===typeof e.then){var f=s.ping;e.then(f,f)}else{s.abortSet.delete(s);d.status=4;var h=s.blockedBoundary,g=e,b=V$1(c,g);null===h?W$1(c,g):(h.pendingTasks--,h.forceClientRender||(h.forceClientRender=!0,h.errorDigest=b,h.parentFlushed&&c.clientRenderedBoundaries.push(h)));c.allPendingTasks--;if(0===c.allPendingTasks){var m=c.onAllReady;m()}}}}}i.splice(0,l);null!==e.destination&&Mb$1(e,e.destination)}catch(n){V$1(e,n),W$1(e,n)}finally{Ce=o,Ee.current=a,a===$e&&G(n)}}}function Z$1(e,n,a){a.parentFlushed=!0;switch(a.status){case 0:var o=a.id=e.nextSegmentId++;a.lastPushedText=!1;a.textEmbedded=!1;e=e.responseState;n.push('<template id=\"');n.push(e.placeholderPrefix);e=o.toString(16);n.push(e);return n.push('\"></template>');case 1:a.status=2;var l=!0;o=a.chunks;var i=0;a=a.children;for(var s=0;s<a.length;s++){for(l=a[s];i<l.index;i++)n.push(o[i]);l=Nb$1(e,n,l)}for(;i<o.length-1;i++)n.push(o[i]);i<o.length&&(l=n.push(o[i]));return l;default:throw Error(l$2(390))}}function Nb$1(e,n,a){var o=a.boundary;if(null===o)return Z$1(e,n,a);o.parentFlushed=!0;if(o.forceClientRender)return e.responseState.generateStaticMarkup||(o=o.errorDigest,n.push(\"\\x3c!--$!--\\x3e\"),n.push(\"<template\"),o&&(n.push(' data-dgst=\"'),o=v(o),n.push(o),n.push('\"')),n.push(\"></template>\")),Z$1(e,n,a),e=!!e.responseState.generateStaticMarkup||n.push(\"\\x3c!--/$--\\x3e\"),e;if(0<o.pendingTasks){o.rootSegmentID=e.nextSegmentId++;0<o.completedSegments.length&&e.partialBoundaries.push(o);var l=e.responseState;var i=l.nextSuspenseID++;l=l.boundaryPrefix+i.toString(16);o=o.id=l;za$1(n,e.responseState,o);Z$1(e,n,a);return n.push(\"\\x3c!--/$--\\x3e\")}if(o.byteSize>e.progressiveChunkSize)return o.rootSegmentID=e.nextSegmentId++,e.completedBoundaries.push(o),za$1(n,e.responseState,o.id),Z$1(e,n,a),n.push(\"\\x3c!--/$--\\x3e\");e.responseState.generateStaticMarkup||n.push(\"\\x3c!--$--\\x3e\");a=o.completedSegments;if(1!==a.length)throw Error(l$2(391));Nb$1(e,n,a[0]);e=!!e.responseState.generateStaticMarkup||n.push(\"\\x3c!--/$--\\x3e\");return e}function Ob$1(e,n,a){Aa$1(n,e.responseState,a.formatContext,a.id);Nb$1(e,n,a);return Ba$1(n,a.formatContext)}function Pb$1(e,n,a){for(var o=a.completedSegments,l=0;l<o.length;l++)Qb$1(e,n,a,o[l]);o.length=0;e=e.responseState;o=a.id;a=a.rootSegmentID;n.push(e.startInlineScript);e.sentCompleteBoundaryFunction?n.push('$RC(\"'):(e.sentCompleteBoundaryFunction=!0,n.push('function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if(\"/$\"===d)if(0===e)break;else e--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data=\"$\";a._reactRetry&&a._reactRetry()}};$RC(\"'));if(null===o)throw Error(l$2(395));a=a.toString(16);n.push(o);n.push('\",\"');n.push(e.segmentPrefix);n.push(a);return n.push('\")<\\/script>')}function Qb$1(e,n,a,o){if(2===o.status)return!0;var l=o.id;if(-1===l){if(-1===(o.id=a.rootSegmentID))throw Error(l$2(392));return Ob$1(e,n,o)}Ob$1(e,n,o);e=e.responseState;n.push(e.startInlineScript);e.sentCompleteSegmentFunction?n.push('$RS(\"'):(e.sentCompleteSegmentFunction=!0,n.push('function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"'));n.push(e.segmentPrefix);l=l.toString(16);n.push(l);n.push('\",\"');n.push(e.placeholderPrefix);n.push(l);return n.push('\")<\\/script>')}function Mb$1(e,n){try{var a=e.completedRootSegment;if(null!==a&&0===e.pendingRootTasks){Nb$1(e,n,a);e.completedRootSegment=null;var o=e.responseState.bootstrapChunks;for(a=0;a<o.length-1;a++)n.push(o[a]);a<o.length&&n.push(o[a])}var l,i=e.clientRenderedBoundaries;for(l=0;l<i.length;l++){var s=i[l];o=n;var c=e.responseState,d=s.id,f=s.errorDigest,h=s.errorMessage,g=s.errorComponentStack;o.push(c.startInlineScript);c.sentClientRenderFunction?o.push('$RX(\"'):(c.sentClientRenderFunction=!0,o.push('function $RX(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};$RX(\"'));if(null===d)throw Error(l$2(395));o.push(d);o.push('\"');if(f||h||g){o.push(\",\");var b=Da$1(f||\"\");o.push(b)}if(h||g){o.push(\",\");var m=Da$1(h||\"\");o.push(m)}if(g){o.push(\",\");var S=Da$1(g);o.push(S)}if(!o.push(\")<\\/script>\")){e.destination=null;l++;i.splice(0,l);return}}i.splice(0,l);var x=e.completedBoundaries;for(l=0;l<x.length;l++)if(!Pb$1(e,n,x[l])){e.destination=null;l++;x.splice(0,l);return}x.splice(0,l);var $=e.partialBoundaries;for(l=0;l<$.length;l++){var E=$[l];e:{i=e;s=n;var T=E.completedSegments;for(c=0;c<T.length;c++)if(!Qb$1(i,s,E,T[c])){c++;T.splice(0,c);var R=!1;break e}T.splice(0,c);R=!0}if(!R){e.destination=null;l++;$.splice(0,l);return}}$.splice(0,l);var _=e.completedBoundaries;for(l=0;l<_.length;l++)if(!Pb$1(e,n,_[l])){e.destination=null;l++;_.splice(0,l);return}_.splice(0,l)}finally{0===e.allPendingTasks&&0===e.pingedTasks.length&&0===e.clientRenderedBoundaries.length&&0===e.completedBoundaries.length&&n.push(null)}}function Rb$1(e,n){try{var a=e.abortableTasks;a.forEach((function(a){return Lb$1(a,e,n)}));a.clear();null!==e.destination&&Mb$1(e,e.destination)}catch(n){V$1(e,n),W$1(e,n)}}function Sb$1(){}function Tb$1(e,n,a,o){var l=!1,i=null,s=\"\",c={push:function(e){null!==e&&(s+=e);return!0},destroy:function(e){l=!0;i=e}},d=!1;e=Ab$1(e,Ea$1(a,n?n.identifierPrefix:void 0),{insertionMode:1,selectedValue:null},Infinity,Sb$1,void 0,(function(){d=!0}),void 0,void 0);Cb$1(e);Rb$1(e,o);if(1===e.status)e.status=2,c.destroy(e.fatalError);else if(2!==e.status&&null===e.destination){e.destination=c;try{Mb$1(e,c)}catch(n){V$1(e,n),W$1(e,n)}}if(l)throw i;if(!d)throw Error(l$2(426));return s}a.renderToNodeStream=function(){throw Error(l$2(207))};a.renderToStaticMarkup=function(e,n){return Tb$1(e,n,!0,'The server used \"renderToStaticMarkup\" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server')};a.renderToStaticNodeStream=function(){throw Error(l$2(208))};a.renderToString=function(e,n){return Tb$1(e,n,!1,'The server used \"renderToString\" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server')};a.version=\"18.2.0\";var Fe=\"default\"in e?e.default:e;var Te={};var Re=Fe;function k(e){for(var n=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,a=1;a<arguments.length;a++)n+=\"&args[]=\"+encodeURIComponent(arguments[a]);return\"Minified React error #\"+e+\"; visit \"+n+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var Pe=null,_e=0;function p(e,n){if(0!==n.length)if(512<n.length)0<_e&&(e.enqueue(new Uint8Array(Pe.buffer,0,_e)),Pe=new Uint8Array(512),_e=0),e.enqueue(n);else{var a=Pe.length-_e;a<n.length&&(0===a?e.enqueue(Pe):(Pe.set(n.subarray(0,a),_e),e.enqueue(Pe),n=n.subarray(a)),Pe=new Uint8Array(512),_e=0);Pe.set(n,_e);_e+=n.length}}function t(e,n){p(e,n);return!0}function ba(e){Pe&&0<_e&&(e.enqueue(new Uint8Array(Pe.buffer,0,_e)),Pe=null,_e=0)}var Me=new TextEncoder;function u(e){return Me.encode(e)}function w(e){return Me.encode(e)}function da(e,n){\"function\"===typeof e.error?e.error(n):e.close()}var Ie=Object.prototype.hasOwnProperty,De=/^[: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]*$/,Be={},Ne={};function ia(e){if(Ie.call(Ne,e))return!0;if(Ie.call(Be,e))return!1;if(De.test(e))return Ne[e]=!0;Be[e]=!0;return!1}function y(e,n,a,o,l,i,s){this.acceptsBooleans=2===n||3===n||4===n;this.attributeName=o;this.attributeNamespace=l;this.mustUseProperty=a;this.propertyName=e;this.type=n;this.sanitizeURL=i;this.removeEmptyString=s}var ze={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach((function(e){ze[e]=new y(e,0,!1,e,null,!1,!1)}));[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach((function(e){var n=e[0];ze[n]=new y(n,1,!1,e[1],null,!1,!1)}));[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach((function(e){ze[e]=new y(e,2,!1,e.toLowerCase(),null,!1,!1)}));[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach((function(e){ze[e]=new y(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){ze[e]=new y(e,3,!1,e.toLowerCase(),null,!1,!1)}));[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach((function(e){ze[e]=new y(e,3,!0,e,null,!1,!1)}));[\"capture\",\"download\"].forEach((function(e){ze[e]=new y(e,4,!1,e,null,!1,!1)}));[\"cols\",\"rows\",\"size\",\"span\"].forEach((function(e){ze[e]=new y(e,6,!1,e,null,!1,!1)}));[\"rowSpan\",\"start\"].forEach((function(e){ze[e]=new y(e,5,!1,e.toLowerCase(),null,!1,!1)}));var Ve=/[\\-:]([a-z])/g;function ka(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 n=e.replace(Ve,ka);ze[n]=new y(n,1,!1,e,null,!1,!1)}));\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach((function(e){var n=e.replace(Ve,ka);ze[n]=new y(n,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)}));[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach((function(e){var n=e.replace(Ve,ka);ze[n]=new y(n,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)}));[\"tabIndex\",\"crossOrigin\"].forEach((function(e){ze[e]=new y(e,1,!1,e.toLowerCase(),null,!1,!1)}));ze.xlinkHref=new y(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach((function(e){ze[e]=new y(e,1,!1,e.toLowerCase(),null,!0,!0)}));var Ae={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},Le=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Ae).forEach((function(e){Le.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1);Ae[n]=Ae[e]}))}));var je=/[\"'&<>]/;function C(e){if(\"boolean\"===typeof e||\"number\"===typeof e)return\"\"+e;e=\"\"+e;var n=je.exec(e);if(n){var a,o=\"\",l=0;for(a=n.index;a<e.length;a++){switch(e.charCodeAt(a)){case 34:n=\"&quot;\";break;case 38:n=\"&amp;\";break;case 39:n=\"&#x27;\";break;case 60:n=\"&lt;\";break;case 62:n=\"&gt;\";break;default:continue}l!==a&&(o+=e.substring(l,a));l=a+1;o+=n}e=l!==a?o+e.substring(l,a):o}return e}var Oe=/([A-Z])/g,qe=/^ms-/,We=Array.isArray,He=w(\"<script>\"),Ue=w(\"<\\/script>\"),Ze=w('<script src=\"'),Xe=w('<script type=\"module\" src=\"'),Je=w('\" async=\"\"><\\/script>'),Ge=/(<\\/|<)(s)(cript)/gi;function ya(e,n,a,o){return n+(\"s\"===a?\"\\\\u0073\":\"\\\\u0053\")+o}function za(e,n,a,o,l){e=void 0===e?\"\":e;n=void 0===n?He:w('<script nonce=\"'+C(n)+'\">');var i=[];void 0!==a&&i.push(n,u((\"\"+a).replace(Ge,ya)),Ue);if(void 0!==o)for(a=0;a<o.length;a++)i.push(Ze,u(C(o[a])),Je);if(void 0!==l)for(o=0;o<l.length;o++)i.push(Xe,u(C(l[o])),Je);return{bootstrapChunks:i,startInlineScript:n,placeholderPrefix:w(e+\"P:\"),segmentPrefix:w(e+\"S:\"),boundaryPrefix:e+\"B:\",idPrefix:e,nextSuspenseID:0,sentCompleteSegmentFunction:!1,sentCompleteBoundaryFunction:!1,sentClientRenderFunction:!1}}function D(e,n){return{insertionMode:e,selectedValue:n}}function Aa(e){return D(\"http://www.w3.org/2000/svg\"===e?2:\"http://www.w3.org/1998/Math/MathML\"===e?3:0,null)}function Ba(e,n,a){switch(n){case\"select\":return D(1,null!=a.value?a.value:a.defaultValue);case\"svg\":return D(2,null);case\"math\":return D(3,null);case\"foreignObject\":return D(1,null);case\"table\":return D(4,null);case\"thead\":case\"tbody\":case\"tfoot\":return D(5,null);case\"colgroup\":return D(7,null);case\"tr\":return D(6,null)}return 4<=e.insertionMode||0===e.insertionMode?D(1,null):e}var Qe=w(\"\\x3c!-- --\\x3e\");function Da(e,n,a,o){if(\"\"===n)return o;o&&e.push(Qe);e.push(u(C(n)));return!0}var Ye=new Map,Ke=w(' style=\"'),et=w(\":\"),tt=w(\";\");function Ia(e,n,a){if(\"object\"!==typeof a)throw Error(k(62));n=!0;for(var o in a)if(Ie.call(a,o)){var l=a[o];if(null!=l&&\"boolean\"!==typeof l&&\"\"!==l){if(0===o.indexOf(\"--\")){var i=u(C(o));l=u(C((\"\"+l).trim()))}else{i=o;var s=Ye.get(i);void 0!==s||(s=w(C(i.replace(Oe,\"-$1\").toLowerCase().replace(qe,\"-ms-\"))),Ye.set(i,s)),i=s;l=\"number\"===typeof l?0===l||Ie.call(Ae,o)?u(\"\"+l):u(l+\"px\"):u(C((\"\"+l).trim()))}n?(n=!1,e.push(Ke,i,et,l)):e.push(tt,i,et,l)}}n||e.push(at)}var nt=w(\" \"),rt=w('=\"'),at=w('\"'),ot=w('=\"\"');function J(e,n,a,o){switch(a){case\"style\":Ia(e,n,o);return;case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":return}if(!(2<a.length)||\"o\"!==a[0]&&\"O\"!==a[0]||\"n\"!==a[1]&&\"N\"!==a[1])if(n=ze.hasOwnProperty(a)?ze[a]:null,null!==n){switch(typeof o){case\"function\":case\"symbol\":return;case\"boolean\":if(!n.acceptsBooleans)return}a=u(n.attributeName);switch(n.type){case 3:o&&e.push(nt,a,ot);break;case 4:!0===o?e.push(nt,a,ot):!1!==o&&e.push(nt,a,rt,u(C(o)),at);break;case 5:isNaN(o)||e.push(nt,a,rt,u(C(o)),at);break;case 6:!isNaN(o)&&1<=o&&e.push(nt,a,rt,u(C(o)),at);break;default:n.sanitizeURL&&(o=\"\"+o),e.push(nt,a,rt,u(C(o)),at)}}else if(ia(a)){switch(typeof o){case\"function\":case\"symbol\":return;case\"boolean\":if(n=a.toLowerCase().slice(0,5),\"data-\"!==n&&\"aria-\"!==n)return}e.push(nt,u(a),rt,u(C(o)),at)}}var lt=w(\">\"),ut=w(\"/>\");function L(e,n,a){if(null!=n){if(null!=a)throw Error(k(60));if(\"object\"!==typeof n||!(\"__html\"in n))throw Error(k(61));n=n.__html;null!==n&&void 0!==n&&e.push(u(\"\"+n))}}function La(e){var n=\"\";Re.Children.forEach(e,(function(e){null!=e&&(n+=e)}));return n}var it=w(' selected=\"\"');function Na(e,n,a,o){e.push(M(a));var l,i=a=null;for(l in n)if(Ie.call(n,l)){var s=n[l];if(null!=s)switch(l){case\"children\":a=s;break;case\"dangerouslySetInnerHTML\":i=s;break;default:J(e,o,l,s)}}e.push(lt);L(e,i,a);return\"string\"===typeof a?(e.push(u(C(a))),null):a}var st=w(\"\\n\"),ct=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,dt=new Map;function M(e){var n=dt.get(e);if(void 0===n){if(!ct.test(e))throw Error(k(65,e));n=w(\"<\"+e);dt.set(e,n)}return n}var ft=w(\"<!DOCTYPE html>\");function Sa(e,n,a,o,l){switch(n){case\"select\":e.push(M(\"select\"));var i=null,s=null;for(h in a)if(Ie.call(a,h)){var c=a[h];if(null!=c)switch(h){case\"children\":i=c;break;case\"dangerouslySetInnerHTML\":s=c;break;case\"defaultValue\":case\"value\":break;default:J(e,o,h,c)}}e.push(lt);L(e,s,i);return i;case\"option\":s=l.selectedValue;e.push(M(\"option\"));var d=c=null,f=null;var h=null;for(i in a)if(Ie.call(a,i)){var g=a[i];if(null!=g)switch(i){case\"children\":c=g;break;case\"selected\":f=g;break;case\"dangerouslySetInnerHTML\":h=g;break;case\"value\":d=g;default:J(e,o,i,g)}}if(null!=s)if(a=null!==d?\"\"+d:La(c),We(s)){for(o=0;o<s.length;o++)if(\"\"+s[o]===a){e.push(it);break}}else\"\"+s===a&&e.push(it);else f&&e.push(it);e.push(lt);L(e,h,c);return c;case\"textarea\":e.push(M(\"textarea\"));h=s=i=null;for(c in a)if(Ie.call(a,c)&&(d=a[c],null!=d))switch(c){case\"children\":h=d;break;case\"value\":i=d;break;case\"defaultValue\":s=d;break;case\"dangerouslySetInnerHTML\":throw Error(k(91));default:J(e,o,c,d)}null===i&&null!==s&&(i=s);e.push(lt);if(null!=h){if(null!=i)throw Error(k(92));if(We(h)&&1<h.length)throw Error(k(93));i=\"\"+h}\"string\"===typeof i&&\"\\n\"===i[0]&&e.push(st);null!==i&&e.push(u(C(\"\"+i)));return null;case\"input\":e.push(M(\"input\"));d=h=c=i=null;for(s in a)if(Ie.call(a,s)&&(f=a[s],null!=f))switch(s){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(k(399,\"input\"));case\"defaultChecked\":d=f;break;case\"defaultValue\":c=f;break;case\"checked\":h=f;break;case\"value\":i=f;break;default:J(e,o,s,f)}null!==h?J(e,o,\"checked\",h):null!==d&&J(e,o,\"checked\",d);null!==i?J(e,o,\"value\",i):null!==c&&J(e,o,\"value\",c);e.push(ut);return null;case\"menuitem\":e.push(M(\"menuitem\"));for(var b in a)if(Ie.call(a,b)&&(i=a[b],null!=i))switch(b){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(k(400));default:J(e,o,b,i)}e.push(lt);return null;case\"title\":e.push(M(\"title\"));i=null;for(g in a)if(Ie.call(a,g)&&(s=a[g],null!=s))switch(g){case\"children\":i=s;break;case\"dangerouslySetInnerHTML\":throw Error(k(434));default:J(e,o,g,s)}e.push(lt);return i;case\"listing\":case\"pre\":e.push(M(n));s=i=null;for(d in a)if(Ie.call(a,d)&&(c=a[d],null!=c))switch(d){case\"children\":i=c;break;case\"dangerouslySetInnerHTML\":s=c;break;default:J(e,o,d,c)}e.push(lt);if(null!=s){if(null!=i)throw Error(k(60));if(\"object\"!==typeof s||!(\"__html\"in s))throw Error(k(61));a=s.__html;null!==a&&void 0!==a&&(\"string\"===typeof a&&0<a.length&&\"\\n\"===a[0]?e.push(st,u(a)):e.push(u(\"\"+a)))}\"string\"===typeof i&&\"\\n\"===i[0]&&e.push(st);return i;case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":e.push(M(n));for(var m in a)if(Ie.call(a,m)&&(i=a[m],null!=i))switch(m){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(k(399,n));default:J(e,o,m,i)}e.push(ut);return null;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 Na(e,a,n,o);case\"html\":return 0===l.insertionMode&&e.push(ft),Na(e,a,n,o);default:if(-1===n.indexOf(\"-\")&&\"string\"!==typeof a.is)return Na(e,a,n,o);e.push(M(n));s=i=null;for(f in a)if(Ie.call(a,f)&&(c=a[f],null!=c))switch(f){case\"children\":i=c;break;case\"dangerouslySetInnerHTML\":s=c;break;case\"style\":Ia(e,o,c);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":break;default:ia(f)&&\"function\"!==typeof c&&\"symbol\"!==typeof c&&e.push(nt,u(f),rt,u(C(c)),at)}e.push(lt);L(e,s,i);return i}}var pt=w(\"</\"),ht=w(\">\"),gt=w('<template id=\"'),bt=w('\"></template>'),mt=w(\"\\x3c!--$--\\x3e\"),yt=w('\\x3c!--$?--\\x3e<template id=\"'),vt=w('\"></template>'),kt=w(\"\\x3c!--$!--\\x3e\"),wt=w(\"\\x3c!--/$--\\x3e\"),St=w(\"<template\"),xt=w('\"'),$t=w(' data-dgst=\"');w(' data-msg=\"');w(' data-stck=\"');var Ct=w(\"></template>\");function fb(e,n,a){p(e,yt);if(null===a)throw Error(k(395));p(e,a);return t(e,vt)}var Et=w('<div hidden id=\"'),Ft=w('\">'),Tt=w(\"</div>\"),Rt=w('<svg aria-hidden=\"true\" style=\"display:none\" id=\"'),Pt=w('\">'),_t=w(\"</svg>\"),Mt=w('<math aria-hidden=\"true\" style=\"display:none\" id=\"'),It=w('\">'),Dt=w(\"</math>\"),Bt=w('<table hidden id=\"'),Nt=w('\">'),zt=w(\"</table>\"),Vt=w('<table hidden><tbody id=\"'),At=w('\">'),Lt=w(\"</tbody></table>\"),jt=w('<table hidden><tr id=\"'),Ot=w('\">'),qt=w(\"</tr></table>\"),Wt=w('<table hidden><colgroup id=\"'),Ht=w('\">'),Ut=w(\"</colgroup></table>\");function Bb(e,n,a,o){switch(a.insertionMode){case 0:case 1:return p(e,Et),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Ft);case 2:return p(e,Rt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Pt);case 3:return p(e,Mt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,It);case 4:return p(e,Bt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Nt);case 5:return p(e,Vt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,At);case 6:return p(e,jt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Ot);case 7:return p(e,Wt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Ht);default:throw Error(k(397))}}function Cb(e,n){switch(n.insertionMode){case 0:case 1:return t(e,Tt);case 2:return t(e,_t);case 3:return t(e,Dt);case 4:return t(e,zt);case 5:return t(e,Lt);case 6:return t(e,qt);case 7:return t(e,Ut);default:throw Error(k(397))}}var Zt=w('function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"'),Xt=w('$RS(\"'),Jt=w('\",\"'),Gt=w('\")<\\/script>'),Qt=w('function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if(\"/$\"===d)if(0===e)break;else e--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data=\"$\";a._reactRetry&&a._reactRetry()}};$RC(\"'),Yt=w('$RC(\"'),Kt=w('\",\"'),en=w('\")<\\/script>'),tn=w('function $RX(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};$RX(\"'),nn=w('$RX(\"'),rn=w('\"'),an=w(\")<\\/script>\"),on=w(\",\"),ln=/[<\\u2028\\u2029]/g;function Sb(e){return JSON.stringify(e).replace(ln,(function(e){switch(e){case\"<\":return\"\\\\u003c\";case\"\\u2028\":return\"\\\\u2028\";case\"\\u2029\":return\"\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}}))}var un=Object.assign,sn=Symbol.for(\"react.element\"),cn=Symbol.for(\"react.portal\"),dn=Symbol.for(\"react.fragment\"),fn=Symbol.for(\"react.strict_mode\"),pn=Symbol.for(\"react.profiler\"),hn=Symbol.for(\"react.provider\"),gn=Symbol.for(\"react.context\"),bn=Symbol.for(\"react.forward_ref\"),mn=Symbol.for(\"react.suspense\"),yn=Symbol.for(\"react.suspense_list\"),vn=Symbol.for(\"react.memo\"),kn=Symbol.for(\"react.lazy\"),wn=Symbol.for(\"react.scope\"),Sn=Symbol.for(\"react.debug_trace_mode\"),xn=Symbol.for(\"react.legacy_hidden\"),$n=Symbol.for(\"react.default_value\"),Cn=Symbol.iterator;function jc(e){if(null==e)return null;if(\"function\"===typeof e)return e.displayName||e.name||null;if(\"string\"===typeof e)return e;switch(e){case dn:return\"Fragment\";case cn:return\"Portal\";case pn:return\"Profiler\";case fn:return\"StrictMode\";case mn:return\"Suspense\";case yn:return\"SuspenseList\"}if(\"object\"===typeof e)switch(e.$$typeof){case gn:return(e.displayName||\"Context\")+\".Consumer\";case hn:return(e._context.displayName||\"Context\")+\".Provider\";case bn:var n=e.render;e=e.displayName;e||(e=n.displayName||n.name||\"\",e=\"\"!==e?\"ForwardRef(\"+e+\")\":\"ForwardRef\");return e;case vn:return n=e.displayName||null,null!==n?n:jc(e.type)||\"Memo\";case kn:n=e._payload;e=e._init;try{return jc(e(n))}catch(e){}}return null}var En={};function lc(e,n){e=e.contextTypes;if(!e)return En;var a,o={};for(a in e)o[a]=n[a];return o}var Fn=null;function P(e,n){if(e!==n){e.context._currentValue=e.parentValue;e=e.parent;var a=n.parent;if(null===e){if(null!==a)throw Error(k(401))}else{if(null===a)throw Error(k(401));P(e,a)}n.context._currentValue=n.value}}function mc(e){e.context._currentValue=e.parentValue;e=e.parent;null!==e&&mc(e)}function nc(e){var n=e.parent;null!==n&&nc(n);e.context._currentValue=e.value}function oc(e,n){e.context._currentValue=e.parentValue;e=e.parent;if(null===e)throw Error(k(402));e.depth===n.depth?P(e,n):oc(e,n)}function pc(e,n){var a=n.parent;if(null===a)throw Error(k(402));e.depth===a.depth?P(e,a):pc(e,a);n.context._currentValue=n.value}function Q(e){var n=Fn;n!==e&&(null===n?nc(e):null===e?mc(n):n.depth===e.depth?P(n,e):n.depth>e.depth?oc(n,e):pc(n,e),Fn=e)}var Tn={isMounted:function(){return!1},enqueueSetState:function(e,n){e=e._reactInternals;null!==e.queue&&e.queue.push(n)},enqueueReplaceState:function(e,n){e=e._reactInternals;e.replace=!0;e.queue=[n]},enqueueForceUpdate:function(){}};function rc(e,n,a,o){var l=void 0!==e.state?e.state:null;e.updater=Tn;e.props=a;e.state=l;var i={queue:[],replace:!1};e._reactInternals=i;var s=n.contextType;e.context=\"object\"===typeof s&&null!==s?s._currentValue:o;s=n.getDerivedStateFromProps;\"function\"===typeof s&&(s=s(a,l),l=null===s||void 0===s?l:un({},l,s),e.state=l);if(\"function\"!==typeof n.getDerivedStateFromProps&&\"function\"!==typeof e.getSnapshotBeforeUpdate&&(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount))if(n=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),n!==e.state&&Tn.enqueueReplaceState(e,e.state,null),null!==i.queue&&0<i.queue.length)if(n=i.queue,s=i.replace,i.queue=null,i.replace=!1,s&&1===n.length)e.state=n[0];else{i=s?n[0]:e.state;l=!0;for(s=s?1:0;s<n.length;s++){var c=n[s];c=\"function\"===typeof c?c.call(e,i,a,o):c;null!=c&&(l?(l=!1,i=un({},i,c)):un(i,c))}e.state=i}else i.queue=null}var Rn={id:1,overflow:\"\"};function tc(e,n,a){var o=e.id;e=e.overflow;var l=32-Pn(o)-1;o&=~(1<<l);a+=1;var i=32-Pn(n)+l;if(30<i){var s=l-l%5;i=(o&(1<<s)-1).toString(32);o>>=s;l-=s;return{id:1<<32-Pn(n)+l|a<<l|o,overflow:i+e}}return{id:1<<i|a<<l|o,overflow:e}}var Pn=Math.clz32?Math.clz32:vc,_n=Math.log,Mn=Math.LN2;function vc(e){e>>>=0;return 0===e?32:31-(_n(e)/Mn|0)|0}function yc(e,n){return e===n&&(0!==e||1/e===1/n)||e!==e&&n!==n}var In=\"function\"===typeof Object.is?Object.is:yc,Dn=null,Bn=null,Nn=null,zn=null,Vn=!1,An=!1,Ln=0,jn=null,On=0;function W(){if(null===Dn)throw Error(k(321));return Dn}function Ec(){if(0<On)throw Error(k(312));return{memoizedState:null,queue:null,next:null}}function Fc(){null===zn?null===Nn?(Vn=!1,Nn=zn=Ec()):(Vn=!0,zn=Nn):null===zn.next?(Vn=!1,zn=zn.next=Ec()):(Vn=!0,zn=zn.next);return zn}function Gc(){Bn=Dn=null;An=!1;Nn=null;On=0;zn=jn=null}function Hc(e,n){return\"function\"===typeof n?n(e):n}function Ic(e,n,a){Dn=W();zn=Fc();if(Vn){var o=zn.queue;n=o.dispatch;if(null!==jn&&(a=jn.get(o),void 0!==a)){jn.delete(o);o=zn.memoizedState;do{o=e(o,a.action),a=a.next}while(null!==a);zn.memoizedState=o;return[o,n]}return[zn.memoizedState,n]}e=e===Hc?\"function\"===typeof n?n():n:void 0!==a?a(n):n;zn.memoizedState=e;e=zn.queue={last:null,dispatch:null};e=e.dispatch=Jc.bind(null,Dn,e);return[zn.memoizedState,e]}function Kc(e,n){Dn=W();zn=Fc();n=void 0===n?null:n;if(null!==zn){var a=zn.memoizedState;if(null!==a&&null!==n){var o=a[1];e:if(null===o)o=!1;else{for(var l=0;l<o.length&&l<n.length;l++)if(!In(n[l],o[l])){o=!1;break e}o=!0}if(o)return a[0]}}e=e();zn.memoizedState=[e,n];return e}function Jc(e,n,a){if(25<=On)throw Error(k(301));if(e===Dn)if(An=!0,e={action:a,next:null},null===jn&&(jn=new Map),a=jn.get(n),void 0===a)jn.set(n,e);else{for(n=a;null!==n.next;)n=n.next;n.next=e}}function Lc(){throw Error(k(394))}function Mc(){}var qn={readContext:function(e){return e._currentValue},useContext:function(e){W();return e._currentValue},useMemo:Kc,useReducer:Ic,useRef:function(e){Dn=W();zn=Fc();var n=zn.memoizedState;return null===n?(e={current:e},zn.memoizedState=e):n},useState:function(e){return Ic(Hc,e)},useInsertionEffect:Mc,useLayoutEffect:function(){},useCallback:function(e,n){return Kc((function(){return e}),n)},useImperativeHandle:Mc,useEffect:Mc,useDebugValue:Mc,useDeferredValue:function(e){W();return e},useTransition:function(){W();return[!1,Lc]},useId:function(){var e=Bn.treeContext;var n=e.overflow;e=e.id;e=(e&~(1<<32-Pn(e)-1)).toString(32)+n;var a=Wn;if(null===a)throw Error(k(404));n=Ln++;e=\":\"+a.idPrefix+\"R\"+e;0<n&&(e+=\"H\"+n.toString(32));return e+\":\"},useMutableSource:function(e,n){W();return n(e._source)},useSyncExternalStore:function(e,n,a){if(void 0===a)throw Error(k(407));return a()}},Wn=null,Hn=Re.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;function Qc(e){console.error(e);return null}function X(){}function Rc(e,n,a,o,l,i,s,c,d){var f=[],h=new Set;n={destination:null,responseState:n,progressiveChunkSize:void 0===o?12800:o,status:0,fatalError:null,nextSegmentId:0,allPendingTasks:0,pendingRootTasks:0,completedRootSegment:null,abortableTasks:h,pingedTasks:f,clientRenderedBoundaries:[],completedBoundaries:[],partialBoundaries:[],onError:void 0===l?Qc:l,onAllReady:void 0===i?X:i,onShellReady:void 0===s?X:s,onShellError:void 0===c?X:c,onFatalError:void 0===d?X:d};a=Sc(n,0,null,a,!1,!1);a.parentFlushed=!0;e=Tc(n,e,null,a,h,En,null,Rn);f.push(e);return n}function Tc(e,n,a,o,l,i,s,c){e.allPendingTasks++;null===a?e.pendingRootTasks++:a.pendingTasks++;var d={node:n,ping:function(){var n=e.pingedTasks;n.push(d);1===n.length&&Uc(e)},blockedBoundary:a,blockedSegment:o,abortSet:l,legacyContext:i,context:s,treeContext:c};l.add(d);return d}function Sc(e,n,a,o,l,i){return{status:0,id:-1,index:n,parentFlushed:!1,chunks:[],children:[],formatContext:o,boundary:a,lastPushedText:l,textEmbedded:i}}function Y(e,n){e=e.onError(n);if(null!=e&&\"string\"!==typeof e)throw Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"'+typeof e+'\" instead');return e}function Vc(e,n){var a=e.onShellError;a(n);a=e.onFatalError;a(n);null!==e.destination?(e.status=2,da(e.destination,n)):(e.status=1,e.fatalError=n)}function Wc(e,n,a,o,l){Dn={};Bn=n;Ln=0;for(e=a(o,l);An;)An=!1,Ln=0,On+=1,zn=null,e=a(o,l);Gc();return e}function Xc(e,n,a,o){var l=a.render(),i=o.childContextTypes;if(null!==i&&void 0!==i){var s=n.legacyContext;if(\"function\"!==typeof a.getChildContext)o=s;else{a=a.getChildContext();for(var c in a)if(!(c in i))throw Error(k(108,jc(o)||\"Unknown\",c));o=un({},s,a)}n.legacyContext=o;Z(e,n,l);n.legacyContext=s}else Z(e,n,l)}function Yc(e,n){if(e&&e.defaultProps){n=un({},n);e=e.defaultProps;for(var a in e)void 0===n[a]&&(n[a]=e[a]);return n}return n}function Zc(e,n,a,o,l){if(\"function\"===typeof a)if(a.prototype&&a.prototype.isReactComponent){l=lc(a,n.legacyContext);var i=a.contextType;i=new a(o,\"object\"===typeof i&&null!==i?i._currentValue:l);rc(i,a,o,l);Xc(e,n,i,a)}else{i=lc(a,n.legacyContext);l=Wc(e,n,a,o,i);var s=0!==Ln;if(\"object\"===typeof l&&null!==l&&\"function\"===typeof l.render&&void 0===l.$$typeof)rc(l,a,o,i),Xc(e,n,l,a);else if(s){o=n.treeContext;n.treeContext=tc(o,1,0);try{Z(e,n,l)}finally{n.treeContext=o}}else Z(e,n,l)}else{if(\"string\"!==typeof a){switch(a){case xn:case Sn:case fn:case pn:case dn:Z(e,n,o.children);return;case yn:Z(e,n,o.children);return;case wn:throw Error(k(343));case mn:e:{a=n.blockedBoundary;l=n.blockedSegment;i=o.fallback;o=o.children;s=new Set;var c={id:null,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,forceClientRender:!1,completedSegments:[],byteSize:0,fallbackAbortableTasks:s,errorDigest:null},d=Sc(e,l.chunks.length,c,l.formatContext,!1,!1);l.children.push(d);l.lastPushedText=!1;var f=Sc(e,0,null,l.formatContext,!1,!1);f.parentFlushed=!0;n.blockedBoundary=c;n.blockedSegment=f;try{if($c(e,n,o),f.lastPushedText&&f.textEmbedded&&f.chunks.push(Qe),f.status=1,ad(c,f),0===c.pendingTasks)break e}catch(n){f.status=4,c.forceClientRender=!0,c.errorDigest=Y(e,n)}finally{n.blockedBoundary=a,n.blockedSegment=l}n=Tc(e,i,a,d,s,n.legacyContext,n.context,n.treeContext);e.pingedTasks.push(n)}return}if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case bn:o=Wc(e,n,a.render,o,l);if(0!==Ln){a=n.treeContext;n.treeContext=tc(a,1,0);try{Z(e,n,o)}finally{n.treeContext=a}}else Z(e,n,o);return;case vn:a=a.type;o=Yc(a,o);Zc(e,n,a,o,l);return;case hn:l=o.children;a=a._context;o=o.value;i=a._currentValue;a._currentValue=o;s=Fn;Fn=o={parent:s,depth:null===s?0:s.depth+1,context:a,parentValue:i,value:o};n.context=o;Z(e,n,l);e=Fn;if(null===e)throw Error(k(403));o=e.parentValue;e.context._currentValue=o===$n?e.context._defaultValue:o;e=Fn=e.parent;n.context=e;return;case gn:o=o.children;o=o(a._currentValue);Z(e,n,o);return;case kn:l=a._init;a=l(a._payload);o=Yc(a,o);Zc(e,n,a,o,void 0);return}throw Error(k(130,null==a?a:typeof a,\"\"))}l=n.blockedSegment;i=Sa(l.chunks,a,o,e.responseState,l.formatContext);l.lastPushedText=!1;s=l.formatContext;l.formatContext=Ba(s,a,o);$c(e,n,i);l.formatContext=s;switch(a){case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"input\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":break;default:l.chunks.push(pt,u(a),ht)}l.lastPushedText=!1}}function Z(e,n,a){n.node=a;if(\"object\"===typeof a&&null!==a){switch(a.$$typeof){case sn:Zc(e,n,a.type,a.props,a.ref);return;case cn:throw Error(k(257));case kn:var o=a._init;a=o(a._payload);Z(e,n,a);return}if(We(a)){bd(e,n,a);return}null===a||\"object\"!==typeof a?o=null:(o=Cn&&a[Cn]||a[\"@@iterator\"],o=\"function\"===typeof o?o:null);if(o&&(o=o.call(a))){a=o.next();if(!a.done){var l=[];do{l.push(a.value),a=o.next()}while(!a.done);bd(e,n,l)}return}e=Object.prototype.toString.call(a);throw Error(k(31,\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e))}\"string\"===typeof a?(o=n.blockedSegment,o.lastPushedText=Da(n.blockedSegment.chunks,a,e.responseState,o.lastPushedText)):\"number\"===typeof a&&(o=n.blockedSegment,o.lastPushedText=Da(n.blockedSegment.chunks,\"\"+a,e.responseState,o.lastPushedText))}function bd(e,n,a){for(var o=a.length,l=0;l<o;l++){var i=n.treeContext;n.treeContext=tc(i,o,l);try{$c(e,n,a[l])}finally{n.treeContext=i}}}function $c(e,n,a){var o=n.blockedSegment.formatContext,l=n.legacyContext,i=n.context;try{return Z(e,n,a)}catch(d){if(Gc(),\"object\"!==typeof d||null===d||\"function\"!==typeof d.then)throw n.blockedSegment.formatContext=o,n.legacyContext=l,n.context=i,Q(i),d;a=d;var s=n.blockedSegment,c=Sc(e,s.chunks.length,null,s.formatContext,s.lastPushedText,!0);s.children.push(c);s.lastPushedText=!1;e=Tc(e,n.node,n.blockedBoundary,c,n.abortSet,n.legacyContext,n.context,n.treeContext).ping;a.then(e,e);n.blockedSegment.formatContext=o;n.legacyContext=l;n.context=i;Q(i)}}function cd(e){var n=e.blockedBoundary;e=e.blockedSegment;e.status=3;dd(this,n,e)}function ed(e,n,a){var o=e.blockedBoundary;e.blockedSegment.status=3;null===o?(n.allPendingTasks--,2!==n.status&&(n.status=2,null!==n.destination&&n.destination.close())):(o.pendingTasks--,o.forceClientRender||(o.forceClientRender=!0,e=void 0===a?Error(k(432)):a,o.errorDigest=n.onError(e),o.parentFlushed&&n.clientRenderedBoundaries.push(o)),o.fallbackAbortableTasks.forEach((function(e){return ed(e,n,a)})),o.fallbackAbortableTasks.clear(),n.allPendingTasks--,0===n.allPendingTasks&&(o=n.onAllReady,o()))}function ad(e,n){if(0===n.chunks.length&&1===n.children.length&&null===n.children[0].boundary){var a=n.children[0];a.id=n.id;a.parentFlushed=!0;1===a.status&&ad(e,a)}else e.completedSegments.push(n)}function dd(e,n,a){if(null===n){if(a.parentFlushed){if(null!==e.completedRootSegment)throw Error(k(389));e.completedRootSegment=a}e.pendingRootTasks--;0===e.pendingRootTasks&&(e.onShellError=X,n=e.onShellReady,n())}else n.pendingTasks--,n.forceClientRender||(0===n.pendingTasks?(a.parentFlushed&&1===a.status&&ad(n,a),n.parentFlushed&&e.completedBoundaries.push(n),n.fallbackAbortableTasks.forEach(cd,e),n.fallbackAbortableTasks.clear()):a.parentFlushed&&1===a.status&&(ad(n,a),1===n.completedSegments.length&&n.parentFlushed&&e.partialBoundaries.push(n)));e.allPendingTasks--;0===e.allPendingTasks&&(e=e.onAllReady,e())}function Uc(e){if(2!==e.status){var n=Fn,a=Hn.current;Hn.current=qn;var o=Wn;Wn=e.responseState;try{var l,i=e.pingedTasks;for(l=0;l<i.length;l++){var s=i[l];var c=e,d=s.blockedSegment;if(0===d.status){Q(s.context);try{Z(c,s,s.node),d.lastPushedText&&d.textEmbedded&&d.chunks.push(Qe),s.abortSet.delete(s),d.status=1,dd(c,s.blockedBoundary,d)}catch(e){if(Gc(),\"object\"===typeof e&&null!==e&&\"function\"===typeof e.then){var f=s.ping;e.then(f,f)}else{s.abortSet.delete(s);d.status=4;var h=s.blockedBoundary,g=e,b=Y(c,g);null===h?Vc(c,g):(h.pendingTasks--,h.forceClientRender||(h.forceClientRender=!0,h.errorDigest=b,h.parentFlushed&&c.clientRenderedBoundaries.push(h)));c.allPendingTasks--;if(0===c.allPendingTasks){var m=c.onAllReady;m()}}}}}i.splice(0,l);null!==e.destination&&fd(e,e.destination)}catch(n){Y(e,n),Vc(e,n)}finally{Wn=o,Hn.current=a,a===qn&&Q(n)}}}function gd(e,n,a){a.parentFlushed=!0;switch(a.status){case 0:var o=a.id=e.nextSegmentId++;a.lastPushedText=!1;a.textEmbedded=!1;e=e.responseState;p(n,gt);p(n,e.placeholderPrefix);e=u(o.toString(16));p(n,e);return t(n,bt);case 1:a.status=2;var l=!0;o=a.chunks;var i=0;a=a.children;for(var s=0;s<a.length;s++){for(l=a[s];i<l.index;i++)p(n,o[i]);l=hd(e,n,l)}for(;i<o.length-1;i++)p(n,o[i]);i<o.length&&(l=t(n,o[i]));return l;default:throw Error(k(390))}}function hd(e,n,a){var o=a.boundary;if(null===o)return gd(e,n,a);o.parentFlushed=!0;if(o.forceClientRender)o=o.errorDigest,t(n,kt),p(n,St),o&&(p(n,$t),p(n,u(C(o))),p(n,xt)),t(n,Ct),gd(e,n,a);else if(0<o.pendingTasks){o.rootSegmentID=e.nextSegmentId++;0<o.completedSegments.length&&e.partialBoundaries.push(o);var l=e.responseState;var i=l.nextSuspenseID++;l=w(l.boundaryPrefix+i.toString(16));o=o.id=l;fb(n,e.responseState,o);gd(e,n,a)}else if(o.byteSize>e.progressiveChunkSize)o.rootSegmentID=e.nextSegmentId++,e.completedBoundaries.push(o),fb(n,e.responseState,o.id),gd(e,n,a);else{t(n,mt);a=o.completedSegments;if(1!==a.length)throw Error(k(391));hd(e,n,a[0])}return t(n,wt)}function id(e,n,a){Bb(n,e.responseState,a.formatContext,a.id);hd(e,n,a);return Cb(n,a.formatContext)}function jd(e,n,a){for(var o=a.completedSegments,l=0;l<o.length;l++)kd(e,n,a,o[l]);o.length=0;e=e.responseState;o=a.id;a=a.rootSegmentID;p(n,e.startInlineScript);e.sentCompleteBoundaryFunction?p(n,Yt):(e.sentCompleteBoundaryFunction=!0,p(n,Qt));if(null===o)throw Error(k(395));a=u(a.toString(16));p(n,o);p(n,Kt);p(n,e.segmentPrefix);p(n,a);return t(n,en)}function kd(e,n,a,o){if(2===o.status)return!0;var l=o.id;if(-1===l){if(-1===(o.id=a.rootSegmentID))throw Error(k(392));return id(e,n,o)}id(e,n,o);e=e.responseState;p(n,e.startInlineScript);e.sentCompleteSegmentFunction?p(n,Xt):(e.sentCompleteSegmentFunction=!0,p(n,Zt));p(n,e.segmentPrefix);l=u(l.toString(16));p(n,l);p(n,Jt);p(n,e.placeholderPrefix);p(n,l);return t(n,Gt)}function fd(e,n){Pe=new Uint8Array(512);_e=0;try{var a=e.completedRootSegment;if(null!==a&&0===e.pendingRootTasks){hd(e,n,a);e.completedRootSegment=null;var o=e.responseState.bootstrapChunks;for(a=0;a<o.length-1;a++)p(n,o[a]);a<o.length&&t(n,o[a])}var l,i=e.clientRenderedBoundaries;for(l=0;l<i.length;l++){var s=i[l];o=n;var c=e.responseState,d=s.id,f=s.errorDigest,h=s.errorMessage,g=s.errorComponentStack;p(o,c.startInlineScript);c.sentClientRenderFunction?p(o,nn):(c.sentClientRenderFunction=!0,p(o,tn));if(null===d)throw Error(k(395));p(o,d);p(o,rn);(f||h||g)&&(p(o,on),p(o,u(Sb(f||\"\"))));(h||g)&&(p(o,on),p(o,u(Sb(h||\"\"))));g&&(p(o,on),p(o,u(Sb(g))));if(!t(o,an)){e.destination=null;l++;i.splice(0,l);return}}i.splice(0,l);var b=e.completedBoundaries;for(l=0;l<b.length;l++)if(!jd(e,n,b[l])){e.destination=null;l++;b.splice(0,l);return}b.splice(0,l);ba(n);Pe=new Uint8Array(512);_e=0;var m=e.partialBoundaries;for(l=0;l<m.length;l++){var S=m[l];e:{i=e;s=n;var x=S.completedSegments;for(c=0;c<x.length;c++)if(!kd(i,s,S,x[c])){c++;x.splice(0,c);var $=!1;break e}x.splice(0,c);$=!0}if(!$){e.destination=null;l++;m.splice(0,l);return}}m.splice(0,l);var E=e.completedBoundaries;for(l=0;l<E.length;l++)if(!jd(e,n,E[l])){e.destination=null;l++;E.splice(0,l);return}E.splice(0,l)}finally{ba(n),0===e.allPendingTasks&&0===e.pingedTasks.length&&0===e.clientRenderedBoundaries.length&&0===e.completedBoundaries.length&&n.close()}}function ld(e,n){try{var a=e.abortableTasks;a.forEach((function(a){return ed(a,e,n)}));a.clear();null!==e.destination&&fd(e,e.destination)}catch(n){Y(e,n),Vc(e,n)}}Te.renderToReadableStream=function(e,n){return new Promise((function(a,o){var l,i,s=new Promise((function(e,n){i=e;l=n})),c=Rc(e,za(n?n.identifierPrefix:void 0,n?n.nonce:void 0,n?n.bootstrapScriptContent:void 0,n?n.bootstrapScripts:void 0,n?n.bootstrapModules:void 0),Aa(n?n.namespaceURI:void 0),n?n.progressiveChunkSize:void 0,n?n.onError:void 0,i,(function(){var e=new ReadableStream({type:\"bytes\",pull:function(e){if(1===c.status)c.status=2,da(e,c.fatalError);else if(2!==c.status&&null===c.destination){c.destination=e;try{fd(c,e)}catch(e){Y(c,e),Vc(c,e)}}},cancel:function(){ld(c)}},{highWaterMark:0});e.allReady=s;a(e)}),(function(e){s.catch((function(){}));o(e)}),l);if(n&&n.signal){var d=n.signal,q=function(){ld(c,d.reason);d.removeEventListener(\"abort\",q)};d.addEventListener(\"abort\",q)}Uc(c)}))};Te.version=\"18.2.0\";var Un={};var Zn,Xn;Zn=a;Xn=Te;Un.version=Zn.version;Un.renderToString=Zn.renderToString;Un.renderToStaticMarkup=Zn.renderToStaticMarkup;Un.renderToNodeStream=Zn.renderToNodeStream;Un.renderToStaticNodeStream=Zn.renderToStaticNodeStream;Un.renderToReadableStream=Xn.renderToReadableStream;const Jn=Un.version,Gn=Un.renderToString,Qn=Un.renderToStaticMarkup,Yn=Un.renderToNodeStream,Kn=Un.renderToStaticNodeStream,er=Un.renderToReadableStream;export{Un as default,Yn as renderToNodeStream,er as renderToReadableStream,Qn as renderToStaticMarkup,Kn as renderToStaticNodeStream,Gn as renderToString,Jn as version};\n\n//# sourceMappingURL=server.browser.js.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,forwardRef,useRef,useMemo,memo}from\"react\";import{cubicBezier}from\"framer-motion\";const DEFAULT_ANIMATE_PROPS={opacity:1,scale:1,blur:0,rotate:0,rotateX:0,rotateY:0,rotateZ:0,skewX:0,skewY:0,x:0,y:0};const TOP=0;const BOTTOM=1;const CENTER=.5;const VIEWPORT_OFFSETS={bottomToCenter:[BOTTOM,CENTER],bottomToTop:[BOTTOM,TOP],centerToTop:[TOP,CENTER],topToBottom:[TOP,BOTTOM]};const easeInOut=cubicBezier(.44,0,.56,1);/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 400\n */export default function TextEffectOnScroll(props){var _effect_rotate;const{effect}=props;const id=useMemo(generateRandomString,[]);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const ref=useRef(null);const animate={};const initial={};let willChangeOpacity=false;let willChangeTransform=false;let willChangeFilter=false;if(effect.opacity!==1){animate.opacity=1;initial.opacity=effect.opacity;willChangeOpacity=true;}if(effect.scale!==1){animate.scale=1;initial.scale=effect.scale;willChangeTransform=true;}if(effect.blur!==0){animate.blur=0;initial.blur=effect.blur;willChangeFilter=true;}if(effect.rotate){if(effect.rotate.type===\"3d\"){if(effect.rotate.x!==0){animate.rotateX=0;initial.rotateX=effect.rotate.x;willChangeTransform=true;}if(effect.rotate.y!==0){animate.rotateY=0;initial.rotateY=effect.rotate.y;willChangeTransform=true;}if(effect.rotate.z!==0){animate.rotateZ=0;initial.rotateZ=effect.rotate.z;willChangeTransform=true;}}else{if(effect.rotate.rotation!==0){animate.rotate=0;initial.rotate=effect.rotate.rotation;willChangeTransform=true;}}}if(effect.skew){if(effect.skew.x!==0){animate.skewX=0;initial.skewX=effect.skew.x;willChangeTransform=true;}if(effect.skew.y!==0){animate.skewY=0;initial.skewY=effect.skew.y;willChangeTransform=true;}}if(effect.offset){var _effect_offset,_effect_offset1;if(((_effect_offset=effect.offset)===null||_effect_offset===void 0?void 0:_effect_offset.x)!==0){var _effect_offset2;animate.x=0;initial.x=(_effect_offset2=effect.offset)===null||_effect_offset2===void 0?void 0:_effect_offset2.x;willChangeTransform=true;}if(((_effect_offset1=effect.offset)===null||_effect_offset1===void 0?void 0:_effect_offset1.y)!==0){var _effect_offset3;animate.y=0;initial.y=(_effect_offset3=effect.offset)===null||_effect_offset3===void 0?void 0:_effect_offset3.y;willChangeTransform=true;}}let willChangeProps=[];if(willChangeOpacity)willChangeProps.push(\"opacity\");if(willChangeTransform)willChangeProps.push(\"transform\");if(willChangeFilter)willChangeProps.push(\"filter\");const willChange=willChangeProps.join(\", \");return /*#__PURE__*/_jsx(SplitText,{ref:ref,id:id,style:{color:props.color,userSelect:props.userSelect?\"auto\":\"none\",margin:0,perspective:((_effect_rotate=effect.rotate)===null||_effect_rotate===void 0?void 0:_effect_rotate.type)===\"3d\"?`${effect.rotate.perspective}px`:undefined,...props.font,...props.style},text:props.text,animate:isCanvas?{}:animate,initial:isCanvas?{}:initial,animation:props.animation,offset:props.offset,gap:props.lineGap,willChange:willChange,noTransformEffects:!willChangeTransform,splitCharacters:props.per===\"character\",tag:props.tag,origin:effect.origin});}TextEffectOnScroll.displayName=\"Text Effect on Scroll\";addPropertyControls(TextEffectOnScroll,{text:{type:ControlType.String,defaultValue:\"Learn Framer With Framer University\",placeholder:\"Text\",displayTextArea:true},effect:{type:ControlType.Object,icon:\"effect\",controls:{opacity:{type:ControlType.Number,defaultValue:1,min:0,max:1,step:.01},scale:{type:ControlType.Number,defaultValue:1,min:0,max:10,step:.1},blur:{type:ControlType.Number,defaultValue:0,min:0,step:1},rotate:{type:ControlType.Object,optional:true,controls:{type:{type:ControlType.Enum,options:[\"2d\",\"3d\"],optionTitles:[\"2D\",\"3D\"],displaySegmentedControl:true},rotation:{type:ControlType.Number,defaultValue:0,min:-360,max:360,step:1,unit:\"\\xb0\",hidden:props=>props.type!==\"2d\"},x:{type:ControlType.Number,defaultValue:0,min:-360,max:360,step:1,unit:\"\\xb0\",hidden:props=>props.type!==\"3d\"},y:{type:ControlType.Number,defaultValue:0,min:-360,max:360,step:1,unit:\"\\xb0\",hidden:props=>props.type!==\"3d\"},z:{type:ControlType.Number,defaultValue:0,min:-360,max:360,step:1,unit:\"\\xb0\",hidden:props=>props.type!==\"3d\"},perspective:{type:ControlType.Number,defaultValue:1200,min:1,max:1e4,step:1,hidden:props=>props.type!==\"3d\"}}},skew:{type:ControlType.Object,optional:true,controls:{x:{type:ControlType.Number,defaultValue:0,min:-90,max:90,step:1,unit:\"\\xb0\"},y:{type:ControlType.Number,defaultValue:0,min:-90,max:90,step:1,unit:\"\\xb0\"}}},offset:{type:ControlType.Object,optional:true,controls:{x:{type:ControlType.Number,defaultValue:0,min:-500,max:500,step:1,unit:\"px\"},y:{type:ControlType.Number,defaultValue:0,min:-500,max:500,step:1,unit:\"px\"}}},origin:{type:ControlType.Object,controls:{x:{type:ControlType.Number,defaultValue:50,min:0,max:100,step:1,unit:\"%\"},y:{type:ControlType.Number,defaultValue:50,min:0,max:100,step:1,unit:\"%\"}}}}},animation:{type:ControlType.Enum,options:[\"bottomToCenter\",\"bottomToTop\",\"centerToTop\",\"topToBottom\",\"inAndOutQuick\",\"inAndOutSlow\"],optionTitles:[\"In (Quick)\",\"In (Slow)\",\"Out (Quick)\",\"Out (Slow)\",\"In and Out (Quick)\",\"In and Out (Slow)\"]},per:{type:ControlType.Enum,options:[\"character\",\"word\"],optionTitles:[\"Letter\",\"Word\"],displaySegmentedControl:true},offset:{type:ControlType.Number,defaultValue:10,min:0,max:100,step:.1,unit:\"%\"},font:{type:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1}},color:{type:ControlType.Color,defaultValue:\"#000\"},lineGap:{type:ControlType.Number,defaultValue:0,min:0,step:1,displayStepper:true},userSelect:{type:ControlType.Boolean,defaultValue:false},tag:{type:ControlType.Enum,title:\"Tag\",defaultValue:\"p\",displaySegmentedControl:true,options:[\"h1\",\"h2\",\"h3\",\"p\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"P\"],description:\"More components at [Framer University](https://frameruni.link/cc).\"}});const SplitText=/*#__PURE__*/memo(/*#__PURE__*/forwardRef(function SplitText({id,text,className,style,animate,initial,animation,offset,gap,willChange,noTransformEffects,splitCharacters=false,tag,origin},ref){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const elementsRef=useRef([]);const Tag=tag;const spanClassName=noTransformEffects?`${id}-span-no`:`${id}-span-yes`;const lines=useMemo(()=>{const textLines=text.split(\"\\n\");const lines=[];for(let i=0;i<textLines.length;i++){lines.push(textLines[i].split(/[ \\t]+/));}return lines;},[text]);useEffect(()=>{if(isCanvas){return;}const updateElements=topPosition=>{const viewportOffset=VIEWPORT_OFFSETS[animation];const viewportHeight=window.innerHeight;const totalElements=elementsRef.current.length;const updates=[];for(let i=0;i<totalElements;i++){const element=elementsRef.current[i];if(!element){continue;}const scrollY=(topPosition+(offset||0)*(i-totalElements/2))/viewportHeight;let progress=1;if(animation===\"inAndOutQuick\"){if(scrollY<=.3){progress=mapRange(scrollY,0,.3,0,1);}else if(scrollY>=.7){progress=mapRange(scrollY,.7,1,1,0);}}else if(animation===\"inAndOutSlow\"){if(scrollY<=.5){progress=mapRange(scrollY,0,.5,0,1);}else{progress=mapRange(scrollY,.5,1,1,0);}}else{progress=mapRange(scrollY,viewportOffset[0],viewportOffset[1],0,1);}progress=Math.max(0,Math.min(1,easeInOut(progress)));const transforms=[];const styles={};const opacity=getValue(animate,initial,\"opacity\",progress);if(opacity!==undefined){styles.opacity=String(opacity);}const scale=getValue(animate,initial,\"scale\",progress);if(scale!==undefined){transforms.push(`scale(${scale})`);}const blur=getValue(animate,initial,\"blur\",progress);if(blur!==undefined){element.style.filter=`blur(${blur}px)`;}const rotate=getValue(animate,initial,\"rotate\",progress);if(rotate!==undefined){transforms.push(`rotate(${rotate}deg)`);}const rotateX=getValue(animate,initial,\"rotateX\",progress);if(rotateX!==undefined){transforms.push(`rotateX(${rotateX}deg)`);}const rotateY=getValue(animate,initial,\"rotateY\",progress);if(rotateY!==undefined){transforms.push(`rotateY(${rotateY}deg)`);}const rotateZ=getValue(animate,initial,\"rotateZ\",progress);if(rotateZ!==undefined){transforms.push(`rotateZ(${rotateZ}deg)`);}const skewX=getValue(animate,initial,\"skewX\",progress);if(skewX!==undefined){transforms.push(`skewX(${skewX}deg)`);}const skewY=getValue(animate,initial,\"skewY\",progress);if(skewY!==undefined){transforms.push(`skewY(${skewY}deg)`);}const offsetX=getValue(animate,initial,\"x\",progress);if(offsetX!==undefined){transforms.push(`translateX(${offsetX}px)`);}const offsetY=getValue(animate,initial,\"y\",progress);if(offsetY!==undefined){transforms.push(`translateY(${offsetY}px)`);}if(transforms.length){styles.transform=transforms.join(\" \");}updates.push({element,styles});}// Batch DOM writes\nrequestAnimationFrame(()=>{updates.forEach(update=>{if(!update)return;const{element,styles}=update;Object.assign(element.style,styles);});});};const cleanup=trackElementPosition(ref,updateElements);return cleanup;},[animate,initial]);let index=0;const createLineChildren=(lineIndex,lineWords)=>{return lineWords.map((word,wordIndex)=>{if(splitCharacters){return /*#__PURE__*/_jsx(\"span\",{className:`${id}-word-wrapper`,children:(word+(wordIndex<lineWords.length-1?\" \":\"\")).split(\"\").map((char,charIndex)=>{const savedIndex=index;index++;return /*#__PURE__*/_jsx(\"span\",{ref:el=>{if(el)elementsRef.current[savedIndex]=el;},className:spanClassName,children:char},`${lineIndex}-${wordIndex}-${charIndex}`);})},`${lineIndex}-${wordIndex}`);}const savedIndex=index;index++;return /*#__PURE__*/_jsx(\"span\",{ref:el=>{if(el)elementsRef.current[savedIndex]=el;},className:spanClassName,children:word+(wordIndex<lineWords.length-1?\" \":\"\")},`${lineIndex}-${wordIndex}`);});};var _origin_x,_origin_y;return /*#__PURE__*/_jsxs(Tag,{className:className,ref:ref,style:{...style,...lines.length===1?{}:{display:\"flex\",flexDirection:\"column\",gap:gap},transformStyle:\"preserve-3d\",whiteSpace:(style===null||style===void 0?void 0:style.width)?undefined:\"nowrap\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n\t\t\t\t.${id}-line {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\ttransform-style: preserve-3d;\n\t\t\t\t}\n\t\t\t\t.${id}-word-wrapper {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\ttransform-style: preserve-3d;\n\t\t\t\t\twhite-space: pre;\n\t\t\t\t}\n\t\t\t\t.${id}-span-no {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\ttransform-style: preserve-3d;\n\t\t\t\t\twhite-space: pre;\n\t\t\t\t}\n\t\t\t\t.${id}-span-yes {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\ttransform-style: preserve-3d;\n\t\t\t\t\twhite-space: pre;\n\t\t\t\t}\n\t\t\t\t.${id}-span-no,\n\t\t\t\t.${id}-span-yes {\n\t\t\t\t\twill-change: ${willChange};\n\t\t\t\t\ttransform-origin: ${(_origin_x=origin===null||origin===void 0?void 0:origin.x)!==null&&_origin_x!==void 0?_origin_x:50}% ${(_origin_y=origin===null||origin===void 0?void 0:origin.y)!==null&&_origin_y!==void 0?_origin_y:50}%;\n\t\t\t\t}\n\t\t\t\t`}),lines.length===1?createLineChildren(0,lines[0]):lines.map((lineWords,lineIndex)=>/*#__PURE__*/_jsx(\"span\",{className:`${id}-line`,children:createLineChildren(lineIndex,lineWords)},lineIndex))]});}));function getValue(animate,initial,key,progress){if(!animate||!initial||!animate.hasOwnProperty(key)){return undefined;}const value=animate[key];var _initial_key,_ref;const initialValue=(_ref=(_initial_key=initial===null||initial===void 0?void 0:initial[key])!==null&&_initial_key!==void 0?_initial_key:DEFAULT_ANIMATE_PROPS[key])!==null&&_ref!==void 0?_ref:0;if(progress<=0){return initialValue;}else if(progress>=1){return value;}else{return initialValue+(value-initialValue)*progress;}}const trackElementPosition=(ref,callback)=>{let rafId=null;let lastPosition=null;let throttleTimeout=null;const updatePosition=()=>{if(ref.current){const element=ref.current;const rect=element.getBoundingClientRect();// Add throttling to reduce updates\nif(throttleTimeout===null){throttleTimeout=window.setTimeout(()=>{if(lastPosition!==rect.top){lastPosition=rect.top;callback(rect.top);}throttleTimeout=null;},16)// Approximately 60fps\n;}}rafId=requestAnimationFrame(updatePosition);};// Start the animation frame loop\nrafId=requestAnimationFrame(updatePosition);// Return a cleanup function\nreturn()=>{if(rafId!==null){cancelAnimationFrame(rafId);}};};function mapRange(value,fromLow,fromHigh,toLow,toHigh){if(fromLow===fromHigh){return toLow;}const percentage=(value-fromLow)/(fromHigh-fromLow);return toLow+percentage*(toHigh-toLow);}const CHARACTERS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";function generateRandomString(){let result=\"\";for(let i=0;i<8;i++){const randomIndex=Math.floor(Math.random()*CHARACTERS.length);result+=CHARACTERS.charAt(randomIndex);}return result;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextEffectOnScroll\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"*\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextEffectOnScroll_Prod.map","function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let f=0;for(;f<o-2;f++)if(s<e[f+1])break;let r=clamp(0,1,progress(e[f],e[f+1],s));const c=getEasingForSegment(n,f);r=c(r);return mix(t[f],t[f+1],r)}}const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isFunction=t=>\"function\"===typeof t;const isString=t=>\"string\"===typeof t;const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isFunction,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,clamp as n}from\"@motionone/utils\";const calcBezier=(t,n,e)=>(((1-3*e+3*n)*t+(3*e-6*n))*t+3*n)*t;const e=1e-7;const i=12;function binarySubdivide(t,n,o,r,c){let u;let a;let s=0;do{a=n+(o-n)/2;u=calcBezier(a,r,c)-t;u>0?o=a:n=a}while(Math.abs(u)>e&&++s<i);return a}function cubicBezier(n,e,i,o){if(n===e&&i===o)return t;const getTForX=t=>binarySubdivide(t,0,1,n,i);return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>i=>{i=\"end\"===e?Math.min(i,.999):Math.max(i,.001);const o=i*t;const r=\"end\"===e?Math.floor(o):Math.ceil(o);return n(0,1,r/t)};export{cubicBezier,steps};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,defaults as i,isEasingGenerator as e,isEasingList as s,interpolate as a}from\"@motionone/utils\";import{cubicBezier as n,steps as r}from\"@motionone/easing\";const o={ease:n(.25,.1,.25,1),\"ease-in\":n(.42,0,1,1),\"ease-in-out\":n(.42,0,.58,1),\"ease-out\":n(0,0,.58,1)};const h=/\\((.*?)\\)/;function getEasingFunction(i){if(\"function\"===typeof i)return i;if(Array.isArray(i))return n(...i);if(o[i])return o[i];if(i.startsWith(\"steps\")){const t=h.exec(i);if(t){const i=t[1].split(\",\");return r(parseFloat(i[0]),i[1].trim())}}return t}class Animation{constructor(n,r=[0,1],{easing:o,duration:h=i.duration,delay:u=i.delay,endDelay:l=i.endDelay,repeat:m=i.repeat,offset:c,direction:p=\"normal\"}={}){this.startTime=null;this.rate=1;this.t=0;this.cancelTimestamp=null;this.easing=t;this.duration=0;this.totalDuration=0;this.repeat=0;this.playState=\"idle\";this.finished=new Promise(((t,i)=>{this.resolve=t;this.reject=i}));o=o||i.easing;if(e(o)){const t=o.createAnimation(r,(()=>\"0\"),true);o=t.easing;void 0!==t.keyframes&&(r=t.keyframes);void 0!==t.duration&&(h=t.duration)}this.repeat=m;this.easing=s(o)?t:getEasingFunction(o);this.updateDuration(h);const d=a(r,c,s(o)?o.map(getEasingFunction):t);this.tick=t=>{var i;u=u;let e=0;e=void 0!==this.pauseTime?this.pauseTime:(t-this.startTime)*this.rate;this.t=e;e/=1e3;e=Math.max(e-u,0);\"finished\"===this.playState&&void 0===this.pauseTime&&(e=this.totalDuration);const s=e/this.duration;let a=Math.floor(s);let r=s%1;!r&&s>=1&&(r=1);1===r&&a--;const o=a%2;(\"reverse\"===p||\"alternate\"===p&&o||\"alternate-reverse\"===p&&!o)&&(r=1-r);const h=e>=this.totalDuration?1:Math.min(r,1);const m=d(this.easing(h));n(m);const c=void 0===this.pauseTime&&(\"finished\"===this.playState||e>=this.totalDuration+l);if(c){this.playState=\"finished\";null===(i=this.resolve)||void 0===i?void 0:i.call(this,m)}else\"idle\"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))};this.play()}play(){const t=performance.now();this.playState=\"running\";void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t);this.cancelTimestamp=this.startTime;this.pauseTime=void 0;this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState=\"paused\";this.pauseTime=this.t}finish(){this.playState=\"finished\";this.tick(0)}stop(){var t;this.playState=\"idle\";void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId);null===(t=this.reject)||void 0===t?void 0:t.call(this,false)}cancel(){this.stop();this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t;this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}export{Animation,getEasingFunction};\n\n//# sourceMappingURL=index.es.js.map","var extendStatics=function(e,t){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])};return extendStatics(e,t)};function __extends(e,t){if(\"function\"!==typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}var __assign=function(){__assign=Object.assign||function __assign(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};return __assign.apply(this,arguments)};function __rest(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"===typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}function __decorate(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function __param(e,t){return function(r,n){t(r,n,e)}}function __metadata(e,t){if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function __awaiter(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,o){function fulfilled(e){try{step(n.next(e))}catch(e){o(e)}}function rejected(e){try{step(n.throw(e))}catch(e){o(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:verb(0),throw:verb(1),return:verb(2)},\"function\"===typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function verb(e){return function(t){return step([e,t])}}function step(a){if(r)throw new TypeError(\"Generator is already executing.\");while(i)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;(n=0,o)&&(a=[2&a[0],o.value]);switch(a[0]){case 0:case 1:o=a;break;case 4:i.label++;return{value:a[1],done:false};case 5:i.label++;n=a[1];a=[0];continue;case 7:a=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1];o=a;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(a);break}o[2]&&i.ops.pop();i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e];n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}var e=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:true,get:function(){return t[r]}});Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r);e[n]=t[r]};function __exportStar(t,r){for(var n in t)\"default\"===n||Object.prototype.hasOwnProperty.call(r,n)||e(r,t,n)}function __values(e){var t=\"function\"===typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"===typeof e.length)return{next:function(){e&&n>=e.length&&(e=void 0);return{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function __read(e,t){var r=\"function\"===typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{while((void 0===t||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}\n/** @deprecated */function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}\n/** @deprecated */function __spreadArrays(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],i=0,c=a.length;i<c;i++,o++)n[o]=a[i];return n}function __spreadArray(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)if(n||!(o in t)){n||(n=Array.prototype.slice.call(t,0,o));n[o]=t[o]}return e.concat(n||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var n,o=r.apply(e,t||[]),a=[];return n={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),n[Symbol.asyncIterator]=function(){return this},n;function verb(e){o[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||resume(e,t)}))})}function resume(e,t){try{step(o[e](t))}catch(e){settle(a[0][3],e)}}function step(e){e.value instanceof __await?Promise.resolve(e.value.v).then(fulfill,reject):settle(a[0][2],e)}function fulfill(e){resume(\"next\",e)}function reject(e){resume(\"throw\",e)}function settle(e,t){(e(t),a.shift(),a.length)&&resume(a[0][0],a[0][1])}}function __asyncDelegator(e){var t,r;return t={},verb(\"next\"),verb(\"throw\",(function(e){throw e})),verb(\"return\"),t[Symbol.iterator]=function(){return this},t;function verb(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=\"function\"===typeof __values?__values(e):e[Symbol.iterator](),t={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function verb(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){t=e[r](t),settle(n,o,t.done,t.value)}))}}function settle(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}}function __makeTemplateObject(e,t){Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t;return e}var t=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:true,value:t})}:function(e,t){e.default=t};function __importStar(r){if(r&&r.__esModule)return r;var n={};if(null!=r)for(var o in r)\"default\"!==o&&Object.prototype.hasOwnProperty.call(r,o)&&e(n,r,o);t(n,r);return n}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"===typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)}function __classPrivateFieldSet(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"===typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r}function __classPrivateFieldIn(e,t){if(null===t||\"object\"!==typeof t&&\"function\"!==typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"===typeof e?t===e:e.has(t)}export{__assign,__asyncDelegator,__asyncGenerator,__asyncValues,__await,__awaiter,__classPrivateFieldGet,__classPrivateFieldIn,__classPrivateFieldSet,e as __createBinding,__decorate,__exportStar,__extends,__generator,__importDefault,__importStar,__makeTemplateObject,__metadata,__param,__read,__rest,__spread,__spreadArray,__spreadArrays,__values};\n\n//# sourceMappingURL=tslib.es6.js.map","var n={};Object.defineProperty(n,\"__esModule\",{value:true});n.warning=function(){};n.invariant=function(){};const e=n.__esModule,t=n.warning,r=n.invariant;export default n;export{e as __esModule,r as invariant,t as warning};\n\n//# sourceMappingURL=index.js.map","import{velocityPerSecond as e,time as t}from\"@motionone/utils\";const s=5;function calcGeneratorVelocity(t,n,r){const a=Math.max(n-s,0);return e(r-t(a),n-a)}const n={stiffness:100,damping:10,mass:1};const calcDampingRatio=(e=n.stiffness,t=n.damping,s=n.mass)=>t/(2*Math.sqrt(e*s));function hasReachedTarget(e,t,s){return e<t&&s>=t||e>t&&s<=t}const spring=({stiffness:e=n.stiffness,damping:s=n.damping,mass:r=n.mass,from:a=0,to:o=1,velocity:c=0,restSpeed:i=2,restDistance:h=.5}={})=>{c=c?t.s(c):0;const u={done:false,hasReachedTarget:false,current:a,target:o};const d=o-a;const f=Math.sqrt(e/r)/1e3;const l=calcDampingRatio(e,s,r);let g;if(l<1){const e=f*Math.sqrt(1-l*l);g=t=>o-Math.exp(-l*f*t)*((l*f*d-c)/e*Math.sin(e*t)+d*Math.cos(e*t))}else g=e=>o-Math.exp(-f*e)*(d+(f*d-c)*e);return e=>{u.current=g(e);const t=0===e?c:calcGeneratorVelocity(g,e,u.current);const s=Math.abs(t)<=i;const n=Math.abs(o-u.current)<=h;u.done=s&&n;u.hasReachedTarget=hasReachedTarget(a,o,u.current);return u}};const glide=({from:e=0,velocity:s=0,power:n=.8,decay:r=.325,bounceDamping:a,bounceStiffness:o,changeTarget:c,min:i,max:h,restDistance:u=.5,restSpeed:d})=>{r=t.ms(r);const f={hasReachedTarget:false,done:false,current:e,target:e};const isOutOfBounds=e=>void 0!==i&&e<i||void 0!==h&&e>h;const nearestBoundary=e=>void 0===i?h:void 0===h||Math.abs(i-e)<Math.abs(h-e)?i:h;let l=n*s;const g=e+l;const m=void 0===c?g:c(g);f.target=m;m!==g&&(l=m-e);const calcDelta=e=>-l*Math.exp(-e/r);const calcLatest=e=>m+calcDelta(e);const applyFriction=e=>{const t=calcDelta(e);const s=calcLatest(e);f.done=Math.abs(t)<=u;f.current=f.done?m:s};let p;let M;const checkCatchBoundary=e=>{if(isOutOfBounds(f.current)){p=e;M=spring({from:f.current,to:nearestBoundary(f.current),velocity:calcGeneratorVelocity(calcLatest,e,f.current),damping:a,stiffness:o,restDistance:u,restSpeed:d})}};checkCatchBoundary(0);return e=>{let t=false;if(!M&&void 0===p){t=true;applyFriction(e);checkCatchBoundary(e)}if(void 0!==p&&e>p){f.hasReachedTarget=true;return M(e-p)}f.hasReachedTarget=false;!t&&applyFriction(e);return f}};const r=10;const a=1e4;function pregenerateKeyframes(e){let t;let s=r;let n=e(0);const o=[n.current];while(!n.done&&s<a){n=e(s);o.push(n.done?n.target:n.current);void 0===t&&n.hasReachedTarget&&(t=s);s+=r}const c=s-r;1===o.length&&o.push(n.current);return{keyframes:o,duration:c/1e3,overshootDuration:(null!==t&&void 0!==t?t:c)/1e3}}export{calcGeneratorVelocity,glide,pregenerateKeyframes,spring};\n\n//# sourceMappingURL=index.es.js.map","import{MotionValue as e}from\"@motionone/types\";import{noopReturn as t,addUniqueItem as n,progress as o,isFunction as i,defaults as s,isCubicBezier as r,isEasingGenerator as a,isEasingList as c,isNumber as l,time as f,noop as u,removeItem as d,mix as g,getEasingForSegment as m,isString as h,defaultOffset as p,fillOffset as v,velocityPerSecond as y,interpolate as w}from\"@motionone/utils\";import{Animation as E,getEasingFunction as b}from\"@motionone/animation\";import{__rest as S}from\"tslib\";import{invariant as A}from\"hey-listen\";import{pregenerateKeyframes as O,calcGeneratorVelocity as x,spring as V,glide as z}from\"@motionone/generators\";const W=new WeakMap;function getAnimationData(e){W.has(e)||W.set(e,{transforms:[],values:new Map});return W.get(e)}function getMotionValue(t,n){t.has(n)||t.set(n,new e);return t.get(n)}const L=[\"\",\"X\",\"Y\",\"Z\"];const T=[\"translate\",\"scale\",\"rotate\",\"skew\"];const D={x:\"translateX\",y:\"translateY\",z:\"translateZ\"};const M={syntax:\"<angle>\",initialValue:\"0deg\",toDefaultUnit:e=>e+\"deg\"};const k={translate:{syntax:\"<length-percentage>\",initialValue:\"0px\",toDefaultUnit:e=>e+\"px\"},rotate:M,scale:{syntax:\"<number>\",initialValue:1,toDefaultUnit:t},skew:M};const B=new Map;const asTransformCssVar=e=>`--motion-${e}`;const j=[\"x\",\"y\",\"z\"];T.forEach((e=>{L.forEach((t=>{j.push(e+t);B.set(asTransformCssVar(e+t),k[e])}))}));const compareTransformOrder=(e,t)=>j.indexOf(e)-j.indexOf(t);const P=new Set(j);const isTransform=e=>P.has(e);const addTransformToElement=(e,t)=>{D[t]&&(t=D[t]);const{transforms:o}=getAnimationData(e);n(o,t);e.style.transform=buildTransformTemplate(o)};const buildTransformTemplate=e=>e.sort(compareTransformOrder).reduce(transformListToString,\"\").trim();const transformListToString=(e,t)=>`${e} ${t}(var(${asTransformCssVar(t)}))`;const isCssVar=e=>e.startsWith(\"--\");const $=new Set;function registerCssVariable(e){if(!$.has(e)){$.add(e);try{const{syntax:t,initialValue:n}=B.has(e)?B.get(e):{};CSS.registerProperty({name:e,inherits:false,syntax:t,initialValue:n})}catch(e){}}}const testAnimation=(e,t)=>document.createElement(\"div\").animate(e,t);const C={cssRegisterProperty:()=>\"undefined\"!==typeof CSS&&Object.hasOwnProperty.call(CSS,\"registerProperty\"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,\"animate\"),partialKeyframes:()=>{try{testAnimation({opacity:[1]})}catch(e){return false}return true},finished:()=>Boolean(testAnimation({opacity:[0,1]},{duration:.001}).finished),linearEasing:()=>{try{testAnimation({opacity:0},{easing:\"linear(0, 1)\"})}catch(e){return false}return true}};const R={};const H={};for(const e in C)H[e]=()=>{void 0===R[e]&&(R[e]=C[e]());return R[e]};const I=.015;const generateLinearEasingPoints=(e,t)=>{let n=\"\";const i=Math.round(t/I);for(let t=0;t<i;t++)n+=e(o(0,i-1,t))+\", \";return n.substring(0,n.length-2)};const convertEasing=(e,t)=>i(e)?H.linearEasing()?`linear(${generateLinearEasingPoints(e,t)})`:s.easing:r(e)?cubicBezierAsString(e):e;const cubicBezierAsString=([e,t,n,o])=>`cubic-bezier(${e}, ${t}, ${n}, ${o})`;function hydrateKeyframes(e,t){for(let n=0;n<e.length;n++)null===e[n]&&(e[n]=n?e[n-1]:t());return e}const keyframesList=e=>Array.isArray(e)?e:[e];function getStyleName(e){D[e]&&(e=D[e]);return isTransform(e)?asTransformCssVar(e):e}const N={get:(e,t)=>{t=getStyleName(t);let n=isCssVar(t)?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!n&&0!==n){const e=B.get(t);e&&(n=e.initialValue)}return n},set:(e,t,n)=>{t=getStyleName(t);isCssVar(t)?e.style.setProperty(t,n):e.style[t]=n}};function stopAnimation(e,t=true){if(e&&\"finished\"!==e.playState)try{if(e.stop)e.stop();else{t&&e.commitStyles();e.cancel()}}catch(e){}}function getDevToolsRecord(){return window.__MOTION_DEV_TOOLS_RECORD}function animateStyle(e,t,n,o={}){const r=getDevToolsRecord();const d=false!==o.record&&r;let g;let{duration:m=s.duration,delay:h=s.delay,endDelay:p=s.endDelay,repeat:v=s.repeat,easing:y=s.easing,direction:w,offset:b,allowWebkitAcceleration:S=false}=o;const A=getAnimationData(e);const O=isTransform(t);let x=H.waapi();O&&addTransformToElement(e,t);const V=getStyleName(t);const z=getMotionValue(A.values,V);const W=B.get(V);stopAnimation(z.animation,!(a(y)&&z.generator)&&false!==o.record);return()=>{const readInitialValue=()=>{var t,n;return null!==(n=null!==(t=N.get(e,V))&&void 0!==t?t:null===W||void 0===W?void 0:W.initialValue)&&void 0!==n?n:0};let s=hydrateKeyframes(keyframesList(n),readInitialValue);if(a(y)){const e=y.createAnimation(s,readInitialValue,O,V,z);y=e.easing;void 0!==e.keyframes&&(s=e.keyframes);void 0!==e.duration&&(m=e.duration)}isCssVar(V)&&(H.cssRegisterProperty()?registerCssVariable(V):x=false);O&&!H.linearEasing()&&(i(y)||c(y)&&y.some(i))&&(x=false);if(x){W&&(s=s.map((e=>l(e)?W.toDefaultUnit(e):e)));1!==s.length||H.partialKeyframes()&&!d||s.unshift(readInitialValue());const t={delay:f.ms(h),duration:f.ms(m),endDelay:f.ms(p),easing:c(y)?void 0:convertEasing(y,m),direction:w,iterations:v+1,fill:\"both\"};g=e.animate({[V]:s,offset:b,easing:c(y)?y.map((e=>convertEasing(e,m))):void 0},t);g.finished||(g.finished=new Promise(((e,t)=>{g.onfinish=e;g.oncancel=t})));const n=s[s.length-1];g.finished.then((()=>{N.set(e,V,n);g.cancel()})).catch(u);S||(g.playbackRate=1.000001)}else if(O){s=s.map((e=>\"string\"===typeof e?parseFloat(e):e));1===s.length&&s.unshift(parseFloat(readInitialValue()));const render=t=>{W&&(t=W.toDefaultUnit(t));N.set(e,V,t)};g=new E(render,s,Object.assign(Object.assign({},o),{duration:m,easing:y}))}else{const t=s[s.length-1];N.set(e,V,W&&l(t)?W.toDefaultUnit(t):t)}d&&r(e,t,s,{duration:m,delay:h,easing:y,repeat:v,offset:b},\"motion-one\");z.setAnimation(g);return g}}const getOptions=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e);function resolveElements(e,t){var n;if(\"string\"===typeof e)if(t){null!==(n=t[e])&&void 0!==n?n:t[e]=document.querySelectorAll(e);e=t[e]}else e=document.querySelectorAll(e);else e instanceof Element&&(e=[e]);return Array.from(e||[])}const createAnimation=e=>e();const withControls=(e,t,n=s.duration)=>new Proxy({animations:e.map(createAnimation).filter(Boolean),duration:n,options:t},F);const getActiveAnimation=e=>e.animations[0];const F={get:(e,t)=>{const n=getActiveAnimation(e);switch(t){case\"duration\":return e.duration;case\"currentTime\":return f.s((null===n||void 0===n?void 0:n[t])||0);case\"playbackRate\":case\"playState\":return null===n||void 0===n?void 0:n[t];case\"finished\":e.finished||(e.finished=Promise.all(e.animations.map(selectFinished)).catch(u));return e.finished;case\"stop\":return()=>{e.animations.forEach((e=>stopAnimation(e)))};case\"forEachNative\":return t=>{e.animations.forEach((n=>t(n,e)))};default:return\"undefined\"===typeof(null===n||void 0===n?void 0:n[t])?void 0:()=>e.animations.forEach((e=>e[t]()))}},set:(e,t,n)=>{switch(t){case\"currentTime\":n=f.ms(n);case\"currentTime\":case\"playbackRate\":for(let o=0;o<e.animations.length;o++)e.animations[o][t]=n;return true}return false}};const selectFinished=e=>e.finished;function stagger(e=.1,{start:t=0,from:n=0,easing:o}={}){return(i,s)=>{const r=l(n)?n:getFromIndex(n,s);const a=Math.abs(r-i);let c=e*a;if(o){const t=s*e;const n=b(o);c=n(c/t)*t}return t+c}}function getFromIndex(e,t){if(\"first\"===e)return 0;{const n=t-1;return\"last\"===e?n:n/2}}function resolveOption(e,t,n){return i(e)?e(t,n):e}function animate(e,t,n={}){e=resolveElements(e);const o=e.length;const i=[];for(let s=0;s<o;s++){const r=e[s];for(const e in t){const a=getOptions(n,e);a.delay=resolveOption(a.delay,s,o);const c=animateStyle(r,e,t[e],a);i.push(c)}}return withControls(i,n,n.duration)}function calcNextTime(e,t,n,o){var i;return l(t)?t:t.startsWith(\"-\")||t.startsWith(\"+\")?Math.max(0,e+parseFloat(t)):\"<\"===t?n:null!==(i=o.get(t))&&void 0!==i?i:e}function eraseKeyframes(e,t,n){for(let o=0;o<e.length;o++){const i=e[o];if(i.at>t&&i.at<n){d(e,i);o--}}}function addKeyframes(e,t,n,o,i,s){eraseKeyframes(e,i,s);for(let r=0;r<t.length;r++)e.push({value:t[r],at:g(i,s,o[r]),easing:m(n,r)})}function compareByTime(e,t){return e.at===t.at?null===e.value?1:-1:e.at-t.at}function timeline(e,t={}){var n;const o=createAnimationsFromTimeline(e,t);const i=o.map((e=>animateStyle(...e))).filter(Boolean);return withControls(i,t,null===(n=o[0])||void 0===n?void 0:n[3].duration)}function createAnimationsFromTimeline(e,t={}){var{defaultOptions:n={}}=t,i=S(t,[\"defaultOptions\"]);const r=[];const c=new Map;const l={};const f=new Map;let u=0;let d=0;let g=0;for(let t=0;t<e.length;t++){const o=e[t];if(h(o)){f.set(o,d);continue}if(!Array.isArray(o)){f.set(o.name,calcNextTime(d,o.at,u,f));continue}const[i,r,m={}]=o;void 0!==m.at&&(d=calcNextTime(d,m.at,u,f));let y=0;const w=resolveElements(i,l);const E=w.length;for(let e=0;e<E;e++){const t=w[e];const o=getElementSequence(t,c);for(const t in r){const i=getValueSequence(t,o);let c=keyframesList(r[t]);const l=getOptions(m,t);let{duration:f=n.duration||s.duration,easing:u=n.easing||s.easing}=l;if(a(u)){const e=isTransform(t);A(2===c.length||!e,\"spring must be provided 2 keyframes within timeline\");const n=u.createAnimation(c,(()=>\"0\"),e);u=n.easing;void 0!==n.keyframes&&(c=n.keyframes);void 0!==n.duration&&(f=n.duration)}const h=resolveOption(m.delay,e,E)||0;const w=d+h;const b=w+f;let{offset:S=p(c.length)}=l;1===S.length&&0===S[0]&&(S[1]=1);const O=length-c.length;O>0&&v(S,O);1===c.length&&c.unshift(null);addKeyframes(i,c,u,S,w,b);y=Math.max(h+f,y);g=Math.max(b,g)}}u=d;d+=y}c.forEach(((e,t)=>{for(const a in e){const c=e[a];c.sort(compareByTime);const l=[];const f=[];const u=[];for(let e=0;e<c.length;e++){const{at:t,value:n,easing:i}=c[e];l.push(n);f.push(o(0,g,t));u.push(i||s.easing)}if(0!==f[0]){f.unshift(0);l.unshift(l[0]);u.unshift(\"linear\")}if(1!==f[f.length-1]){f.push(1);l.push(null)}r.push([t,a,l,Object.assign(Object.assign(Object.assign({},n),{duration:g,easing:u,offset:f}),i)])}}));return r}function getElementSequence(e,t){!t.has(e)&&t.set(e,{});return t.get(e)}function getValueSequence(e,t){t[e]||(t[e]=[]);return t[e]}function createGeneratorEasing(e){const t=new WeakMap;return(n={})=>{const o=new Map;const getGenerator=(t=0,i=100,s=0,r=false)=>{const a=`${t}-${i}-${s}-${r}`;o.has(a)||o.set(a,e(Object.assign({from:t,to:i,velocity:s,restSpeed:r?.05:2,restDistance:r?.01:.5},n)));return o.get(a)};const getKeyframes=e=>{t.has(e)||t.set(e,O(e));return t.get(e)};return{createAnimation:(e,t,n,o,i)=>{var s,r;let a;const c=e.length;let l=n&&c<=2&&e.every(isNumberOrNull);if(l){const n=e[c-1];const l=1===c?null:e[0];let f=0;let u=0;const d=null===i||void 0===i?void 0:i.generator;if(d){const{animation:t,generatorStartTime:n}=i;const o=(null===t||void 0===t?void 0:t.startTime)||n||0;const r=(null===t||void 0===t?void 0:t.currentTime)||performance.now()-o;const a=d(r).current;u=null!==(s=l)&&void 0!==s?s:a;(1===c||2===c&&null===e[0])&&(f=x((e=>d(e).current),r,a))}else u=null!==(r=l)&&void 0!==r?r:parseFloat(t());const g=getGenerator(u,n,f,null===o||void 0===o?void 0:o.includes(\"scale\"));const m=getKeyframes(g);a=Object.assign(Object.assign({},m),{easing:\"linear\"});if(i){i.generator=g;i.generatorStartTime=performance.now()}}else{const e=getKeyframes(getGenerator(0,100));a={easing:\"ease\",duration:e.overshootDuration}}return a}}}}const isNumberOrNull=e=>\"string\"!==typeof e;const U=createGeneratorEasing(V);const q=createGeneratorEasing(z);const K={any:0,all:1};function inView$1(e,t,{root:n,margin:o,amount:s=\"any\"}={}){if(\"undefined\"===typeof IntersectionObserver)return()=>{};const r=resolveElements(e);const a=new WeakMap;const onIntersectionChange=e=>{e.forEach((e=>{const n=a.get(e.target);if(e.isIntersecting!==Boolean(n))if(e.isIntersecting){const n=t(e);i(n)?a.set(e.target,n):c.unobserve(e.target)}else if(n){n(e);a.delete(e.target)}}))};const c=new IntersectionObserver(onIntersectionChange,{root:n,rootMargin:o,threshold:\"number\"===typeof s?s:K[s]});r.forEach((e=>c.observe(e)));return()=>c.disconnect()}const G=new WeakMap;let _;function getElementSize(e,t){if(t){const{inlineSize:e,blockSize:n}=t[0];return{width:e,height:n}}return e instanceof SVGElement&&\"getBBox\"in e?e.getBBox():{width:e.offsetWidth,height:e.offsetHeight}}function notifyTarget({target:e,contentRect:t,borderBoxSize:n}){var o;null===(o=G.get(e))||void 0===o?void 0:o.forEach((o=>{o({target:e,contentSize:t,get size(){return getElementSize(e,n)}})}))}function notifyAll(e){e.forEach(notifyTarget)}function createResizeObserver(){\"undefined\"!==typeof ResizeObserver&&(_=new ResizeObserver(notifyAll))}function resizeElement(e,t){_||createResizeObserver();const n=resolveElements(e);n.forEach((e=>{let n=G.get(e);if(!n){n=new Set;G.set(e,n)}n.add(t);null===_||void 0===_?void 0:_.observe(e)}));return()=>{n.forEach((e=>{const n=G.get(e);null===n||void 0===n?void 0:n.delete(t);(null===n||void 0===n?void 0:n.size)||(null===_||void 0===_?void 0:_.unobserve(e))}))}}const Z=new Set;let X;function createWindowResizeHandler(){X=()=>{const e={width:window.innerWidth,height:window.innerHeight};const t={target:window,size:e,contentSize:e};Z.forEach((e=>e(t)))};window.addEventListener(\"resize\",X)}function resizeWindow(e){Z.add(e);X||createWindowResizeHandler();return()=>{Z.delete(e);!Z.size&&X&&(X=void 0)}}function resize(e,t){return i(e)?resizeWindow(e):resizeElement(e,t)}const Y=50;const createAxisInfo=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0});const createScrollInfo=()=>({time:0,x:createAxisInfo(),y:createAxisInfo()});const J={x:{length:\"Width\",position:\"Left\"},y:{length:\"Height\",position:\"Top\"}};function updateAxisInfo(e,t,n,i){const s=n[t];const{length:r,position:a}=J[t];const c=s.current;const l=n.time;s.current=e[\"scroll\"+a];s.scrollLength=e[\"scroll\"+r]-e[\"client\"+r];s.offset.length=0;s.offset[0]=0;s.offset[1]=s.scrollLength;s.progress=o(0,s.scrollLength,s.current);const f=i-l;s.velocity=f>Y?0:y(s.current-c,f)}function updateScrollInfo(e,t,n){updateAxisInfo(e,\"x\",t,n);updateAxisInfo(e,\"y\",t,n);t.time=n}function calcInset(e,t){let n={x:0,y:0};let o=e;while(o&&o!==t)if(o instanceof HTMLElement){n.x+=o.offsetLeft;n.y+=o.offsetTop;o=o.offsetParent}else if(o instanceof SVGGraphicsElement&&\"getBBox\"in o){const{top:e,left:t}=o.getBBox();n.x+=t;n.y+=e;while(o&&\"svg\"!==o.tagName)o=o.parentNode}return n}const Q={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]};const ee={start:0,center:.5,end:1};function resolveEdge(e,t,n=0){let o=0;void 0!==ee[e]&&(e=ee[e]);if(h(e)){const t=parseFloat(e);e.endsWith(\"px\")?o=t:e.endsWith(\"%\")?e=t/100:e.endsWith(\"vw\")?o=t/100*document.documentElement.clientWidth:e.endsWith(\"vh\")?o=t/100*document.documentElement.clientHeight:e=t}l(e)&&(o=t*e);return n+o}const te=[0,0];function resolveOffset(e,t,n,o){let i=Array.isArray(e)?e:te;let s=0;let r=0;if(l(e))i=[e,e];else if(h(e)){e=e.trim();i=e.includes(\" \")?e.split(\" \"):[e,ee[e]?e:\"0\"]}s=resolveEdge(i[0],n,o);r=resolveEdge(i[1],t);return s-r}const ne={x:0,y:0};function resolveOffsets(e,t,n){let{offset:o=Q.All}=n;const{target:i=e,axis:s=\"y\"}=n;const r=\"y\"===s?\"height\":\"width\";const a=i!==e?calcInset(i,e):ne;const c=i===e?{width:e.scrollWidth,height:e.scrollHeight}:{width:i.clientWidth,height:i.clientHeight};const l={width:e.clientWidth,height:e.clientHeight};t[s].offset.length=0;let f=!t[s].interpolate;const u=o.length;for(let e=0;e<u;e++){const n=resolveOffset(o[e],l[r],c[r],a[s]);f||n===t[s].interpolatorOffsets[e]||(f=true);t[s].offset[e]=n}if(f){t[s].interpolate=w(p(u),t[s].offset);t[s].interpolatorOffsets=[...t[s].offset]}t[s].progress=t[s].interpolate(t[s].current)}function measure(e,t=e,n){n.x.targetOffset=0;n.y.targetOffset=0;if(t!==e){let o=t;while(o&&o!=e){n.x.targetOffset+=o.offsetLeft;n.y.targetOffset+=o.offsetTop;o=o.offsetParent}}n.x.targetLength=t===e?t.scrollWidth:t.clientWidth;n.y.targetLength=t===e?t.scrollHeight:t.clientHeight;n.x.containerLength=e.clientWidth;n.y.containerLength=e.clientHeight}function createOnScrollHandler(e,t,n,o={}){const s=o.axis||\"y\";return{measure:()=>measure(e,o.target,n),update:t=>{updateScrollInfo(e,n,t);(o.offset||o.target)&&resolveOffsets(e,n,o)},notify:i(t)?()=>t(n):scrubAnimation(t,n[s])}}function scrubAnimation(e,n){e.pause();e.forEachNative(((e,{easing:n})=>{var o,i;if(e.updateDuration){n||(e.easing=t);e.updateDuration(1)}else{const t={duration:1e3};n||(t.easing=\"linear\");null===(i=null===(o=e.effect)||void 0===o?void 0:o.updateTiming)||void 0===i?void 0:i.call(o,t)}}));return()=>{e.currentTime=n.progress}}const oe=new WeakMap;const ie=new WeakMap;const se=new WeakMap;const getEventTarget=e=>e===document.documentElement?window:e;function scroll(e,t={}){var{container:n=document.documentElement}=t,o=S(t,[\"container\"]);let i=se.get(n);if(!i){i=new Set;se.set(n,i)}const s=createScrollInfo();const r=createOnScrollHandler(n,e,s,o);i.add(r);if(!oe.has(n)){const listener=()=>{const e=performance.now();for(const e of i)e.measure();for(const t of i)t.update(e);for(const e of i)e.notify()};oe.set(n,listener);const e=getEventTarget(n);window.addEventListener(\"resize\",listener,{passive:true});n!==document.documentElement&&ie.set(n,resize(n,listener));e.addEventListener(\"scroll\",listener,{passive:true})}const a=oe.get(n);const c=requestAnimationFrame(a);return()=>{var t;\"function\"!==typeof e&&e.stop();cancelAnimationFrame(c);const o=se.get(n);if(!o)return;o.delete(r);if(o.size)return;const i=oe.get(n);oe.delete(n);if(i){getEventTarget(n).removeEventListener(\"scroll\",i);null===(t=ie.get(n))||void 0===t?void 0:t();window.removeEventListener(\"resize\",i)}}}function hasChanged(e,t){return typeof e!==typeof t||(Array.isArray(e)&&Array.isArray(t)?!shallowCompare(e,t):e!==t)}function shallowCompare(e,t){const n=t.length;if(n!==e.length)return false;for(let o=0;o<n;o++)if(t[o]!==e[o])return false;return true}function isVariant(e){return\"object\"===typeof e}function resolveVariant(e,t){return isVariant(e)?e:e&&t?t[e]:void 0}let re;function processScheduledAnimations(){if(!re)return;const e=re.sort(compareByDepth).map(fireAnimateUpdates);e.forEach(fireNext);e.forEach(fireNext);re=void 0}function scheduleAnimation(e){if(re)n(re,e);else{re=[e];requestAnimationFrame(processScheduledAnimations)}}function unscheduleAnimation(e){re&&d(re,e)}const compareByDepth=(e,t)=>e.getDepth()-t.getDepth();const fireAnimateUpdates=e=>e.animateUpdates();const fireNext=e=>e.next();const motionEvent=(e,t)=>new CustomEvent(e,{detail:{target:t}});function dispatchPointerEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEvent:n}}))}function dispatchViewEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEntry:n}}))}const ae={isActive:e=>Boolean(e.inView),subscribe:(e,{enable:t,disable:n},{inViewOptions:o={}})=>{const{once:i}=o,s=S(o,[\"once\"]);return inView$1(e,(o=>{t();dispatchViewEvent(e,\"viewenter\",o);if(!i)return t=>{n();dispatchViewEvent(e,\"viewleave\",t)}}),s)}};const mouseEvent=(e,t,n)=>o=>{if(!o.pointerType||\"mouse\"===o.pointerType){n();dispatchPointerEvent(e,t,o)}};const ce={isActive:e=>Boolean(e.hover),subscribe:(e,{enable:t,disable:n})=>{const o=mouseEvent(e,\"hoverstart\",t);const i=mouseEvent(e,\"hoverend\",n);e.addEventListener(\"pointerenter\",o);e.addEventListener(\"pointerleave\",i);return()=>{e.removeEventListener(\"pointerenter\",o);e.removeEventListener(\"pointerleave\",i)}}};const le={isActive:e=>Boolean(e.press),subscribe:(e,{enable:t,disable:n})=>{const onPointerUp=t=>{n();dispatchPointerEvent(e,\"pressend\",t);window.removeEventListener(\"pointerup\",onPointerUp)};const onPointerDown=n=>{t();dispatchPointerEvent(e,\"pressstart\",n);window.addEventListener(\"pointerup\",onPointerUp)};e.addEventListener(\"pointerdown\",onPointerDown);return()=>{e.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"pointerup\",onPointerUp)}}};const fe={inView:ae,hover:ce,press:le};const ue=[\"initial\",\"animate\",...Object.keys(fe),\"exit\"];const de=new WeakMap;function createMotionState(e={},t){let n;let o=t?t.getDepth()+1:0;const i={initial:true,animate:true};const s={};const r={};for(const n of ue)r[n]=\"string\"===typeof e[n]?e[n]:null===t||void 0===t?void 0:t.getContext()[n];const a=false===e.initial?\"animate\":\"initial\";let c=resolveVariant(e[a]||r[a],e.variants)||{},l=S(c,[\"transition\"]);const f=Object.assign({},l);function*animateUpdates(){var t,o;const s=l;l={};const r={};for(const n of ue){if(!i[n])continue;const s=resolveVariant(e[n]);if(s)for(const n in s)if(\"transition\"!==n){l[n]=s[n];r[n]=getOptions(null!==(o=null!==(t=s.transition)&&void 0!==t?t:e.transition)&&void 0!==o?o:{},n)}}const a=new Set([...Object.keys(l),...Object.keys(s)]);const c=[];a.forEach((e=>{var t;void 0===l[e]&&(l[e]=f[e]);if(hasChanged(s[e],l[e])){null!==(t=f[e])&&void 0!==t?t:f[e]=N.get(n,e);c.push(animateStyle(n,e,l[e],r[e]))}}));yield;const d=c.map((e=>e())).filter(Boolean);if(!d.length)return;const g=l;n.dispatchEvent(motionEvent(\"motionstart\",g));Promise.all(d.map((e=>e.finished))).then((()=>{n.dispatchEvent(motionEvent(\"motioncomplete\",g))})).catch(u)}const setGesture=(e,t)=>()=>{i[e]=t;scheduleAnimation(d)};const updateGestureSubscriptions=()=>{for(const t in fe){const o=fe[t].isActive(e);const i=s[t];if(o&&!i)s[t]=fe[t].subscribe(n,{enable:setGesture(t,true),disable:setGesture(t,false)},e);else if(!o&&i){i();delete s[t]}}};const d={update:t=>{if(n){e=t;updateGestureSubscriptions();scheduleAnimation(d)}},setActive:(e,t)=>{if(n){i[e]=t;scheduleAnimation(d)}},animateUpdates:animateUpdates,getDepth:()=>o,getTarget:()=>l,getOptions:()=>e,getContext:()=>r,mount:e=>{A(Boolean(e),\"Animation state must be mounted with valid Element\");n=e;de.set(n,d);updateGestureSubscriptions();return()=>{de.delete(n);unscheduleAnimation(d);for(const e in s)s[e]()}},isMounted:()=>Boolean(n)};return d}function createStyles(e){const t={};const n=[];for(let o in e){const i=e[o];if(isTransform(o)){D[o]&&(o=D[o]);n.push(o);o=asTransformCssVar(o)}let s=Array.isArray(i)?i[0]:i;const r=B.get(o);r&&(s=l(i)?r.toDefaultUnit(i):i);t[o]=s}n.length&&(t.transform=buildTransformTemplate(n));return t}const camelLetterToPipeLetter=e=>`-${e.toLowerCase()}`;const camelToPipeCase=e=>e.replace(/[A-Z]/g,camelLetterToPipeLetter);function createStyleString(e={}){const t=createStyles(e);let n=\"\";for(const e in t){n+=e.startsWith(\"--\")?e:camelToPipeCase(e);n+=`: ${t[e]}; `}return n}export{Q as ScrollOffset,animate,animateStyle,createMotionState,createStyleString,createStyles,getAnimationData,getStyleName,q as glide,inView$1 as inView,de as mountedStates,resize,scroll,U as spring,stagger,N as style,timeline,withControls};\n\n//# sourceMappingURL=index.es.js.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,useLayoutEffect,useEffect,useState,useRef,useMemo,useCallback,cloneElement,startTransition,forwardRef,useImperativeHandle}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useReducedMotion,LayoutGroup,useInView,useMotionValue,useTransform,motion,frame}from\"framer-motion\";import{resize}from\"@motionone/dom\";const MAX_DUPLICATED_ITEMS=100;const directionTransformers={left:offset=>`translateX(-${offset}px)`,right:offset=>`translateX(${offset}px)`,top:offset=>`translateY(-${offset}px)`,bottom:offset=>`translateY(${offset}px)`};/**\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Ticker(props){/* Props */let{slots=[],gap,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,speed,hoverFactor,direction,alignment,sizingOptions,fadeOptions,style}=props;const{fadeContent,overflow,fadeWidth,fadeInset,fadeAlpha}=fadeOptions;const{widthType,heightType}=sizingOptions;const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;/* Checks */const currentTarget=RenderTarget.current();const isCanvas=currentTarget===RenderTarget.canvas||currentTarget===RenderTarget.export;// Remove empty slots (such as hidden layers)\nconst filteredSlots=slots.filter(Boolean);const numChildren=Children.count(filteredSlots);const hasChildren=numChildren>0;if(direction===true){direction=\"left\";}const isHorizontal=direction===\"left\"||direction===\"right\";const offset=useMotionValue(0);const transformer=directionTransformers[direction];const transform=useTransform(offset,transformer);/* Refs and State */const parentRef=useRef(null);const childrenRef=useMemo(()=>{return[{current:null},{current:null}];},[]);const[size,setSize]=useState({parent:null,children:null});/* Arrays */let clonedChildren=null;let dupedChildren=[];/* Duplicate value */let duplicateBy=0;let opacity=0;if(isCanvas){duplicateBy=numChildren?Math.floor(10/numChildren):0;opacity=1;}if(!isCanvas&&hasChildren&&size.parent){duplicateBy=Math.round(size.parent/size.children*2)+1;duplicateBy=Math.min(duplicateBy,MAX_DUPLICATED_ITEMS);opacity=1;}/* Measure parent and child */const measure=useCallback(()=>{if(hasChildren&&parentRef.current){const parentLength=isHorizontal?parentRef.current.offsetWidth:parentRef.current.offsetHeight;const start=childrenRef[0].current?isHorizontal?childrenRef[0].current.offsetLeft:childrenRef[0].current.offsetTop:0;const end=childrenRef[1].current?isHorizontal?childrenRef[1].current.offsetLeft+childrenRef[1].current.offsetWidth:childrenRef[1].current.offsetTop+childrenRef[1].current.offsetHeight:0;const childrenLength=end-start+gap;startTransition(()=>{setSize({parent:parentLength,children:childrenLength});});}},[]);const childrenStyles=isCanvas?{contentVisibility:\"auto\"}:{};/* Add refs to first and last child */if(hasChildren){// TODO: These conditional hooks will be unsafe if hasChildren ever changes outside the canvas.\nif(!isCanvas){/**\n             * Track whether this is the initial resize event. By default this will fire on mount,\n             * which we do in the useEffect. We should only fire it on subsequent resizes.\n             */let initialResize=useRef(true);useLayoutEffect(()=>{frame.read(measure,false,true);return resize(parentRef.current,({contentSize})=>{if(!initialResize.current&&(contentSize.width||contentSize.height)){frame.read(measure,false,true);}initialResize.current=false;});},[]);}clonedChildren=Children.map(filteredSlots,(child,index)=>{let ref;if(index===0){ref=childrenRef[0];}if(index===filteredSlots.length-1){ref=childrenRef[1];}const size={width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(Wrapper,{ref:ref,style:size,children:/*#__PURE__*/cloneElement(child,{style:{...child.props?.style,...size,flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-original-\"+index:undefined},child.props?.children)})});});}const isInView=isCanvas?true:useInView(parentRef);if(!isCanvas){for(let i=0;i<duplicateBy;i++){dupedChildren=dupedChildren.concat(Children.map(filteredSlots,(child,childIndex)=>{const size={width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\",willChange:!isInView?undefined:\"transform\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(Wrapper,{style:size,children:/*#__PURE__*/cloneElement(child,{key:i+\" \"+childIndex,style:{...child.props?.style,width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\",flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-dupe-\"+i:undefined},child.props?.children)},i+\"li\"+childIndex)},i+\"lg\"+childIndex);}));}}const animateToValue=size.children+size.children*Math.round(size.parent/size.children);const initialTime=useRef(null);const prevTime=useRef(null);const xOrY=useRef(0);const isHover=useRef(false);const isReducedMotion=useReducedMotion();const listRef=useRef(null);const animationRef=useRef(null);/**\n     * Setup animations\n     */if(!isCanvas){useEffect(()=>{if(isReducedMotion||!animateToValue||!speed){return;}animationRef.current=listRef.current.animate({transform:[transformer(0),transformer(animateToValue)]},{duration:Math.abs(animateToValue)/speed*1e3,iterations:Infinity,easing:\"linear\"});return()=>animationRef.current.cancel();},[hoverFactor,animateToValue,speed]);const playOrPause=useCallback(()=>{if(!animationRef.current)return;const hidden=document.hidden;if(isInView&&!hidden&&animationRef.current.playState===\"paused\"){animationRef.current.play();}else if((!isInView||hidden)&&animationRef.current.playState===\"running\"){animationRef.current.pause();}},[isInView]);useEffect(()=>{playOrPause();},[isInView,hoverFactor,animateToValue,speed]);useEffect(()=>{document.addEventListener(\"visibilitychange\",playOrPause);return()=>{document.removeEventListener(\"visibilitychange\",playOrPause);};},[playOrPause]);}/* Fades */const fadeDirection=isHorizontal?\"to right\":\"to bottom\";const fadeWidthStart=fadeWidth/2;const fadeWidthEnd=100-fadeWidth/2;const fadeInsetStart=clamp(fadeInset,0,fadeWidthStart);const fadeInsetEnd=100-fadeInset;const fadeMask=`linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`;/* Empty state */if(!hasChildren){return /*#__PURE__*/_jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"✨\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to infinitely loop on your page.\"})]});}return /*#__PURE__*/_jsx(\"section\",{style:{...containerStyle,opacity:opacity,WebkitMaskImage:fadeContent?fadeMask:undefined,maskImage:fadeContent?fadeMask:undefined,overflow:overflow?\"visible\":\"hidden\",padding:paddingValue},ref:parentRef,children:/*#__PURE__*/_jsxs(motion.ul,{ref:listRef,style:{...containerStyle,gap:gap,top:direction===\"bottom\"&&isValidNumber(animateToValue)?-animateToValue:undefined,left:direction===\"right\"&&isValidNumber(animateToValue)?-animateToValue:undefined,placeItems:alignment,position:\"relative\",flexDirection:isHorizontal?\"row\":\"column\",...style,willChange:isCanvas||!isInView?\"auto\":\"transform\",transform:transformer(0)},onMouseEnter:()=>{isHover.current=true;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=hoverFactor;}},onMouseLeave:()=>{isHover.current=false;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=1;}},children:[clonedChildren,dupedChildren]})});}const Wrapper=/*#__PURE__*/forwardRef(({children,...props},ref)=>{const innerRef=useRef();const inView=useInView(innerRef);useImperativeHandle(ref,()=>innerRef.current);useEffect(()=>{const current=innerRef.current;if(!current)return;// for a11y: Manage tabIndex on focusable descendants & aria-hidden on the parent.\nif(inView){current.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.dataset.origTabIndex;if(orig)el.tabIndex=orig;else el.removeAttribute(\"tabIndex\");});}else{current.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.getAttribute(\"tabIndex\");if(orig)el.dataset.origTabIndex=orig;el.tabIndex=-1;});}},[inView]);return /*#__PURE__*/_jsx(\"li\",{...props,\"aria-hidden\":!inView,ref:innerRef,children:children});});/* Default Properties */Ticker.defaultProps={gap:10,padding:10,sizingOptions:{widthType:true,heightType:true},fadeOptions:{fadeContent:true,overflow:false,fadeWidth:25,fadeAlpha:0,fadeInset:0},direction:true};/* Property Controls */addPropertyControls(Ticker,{slots:{type:ControlType.Array,title:\"Children\",control:{type:ControlType.ComponentInstance}},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:1e3,defaultValue:100,unit:\"%\",displayStepper:true,step:5},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"top\",\"bottom\"],optionIcons:[\"direction-left\",\"direction-right\",\"direction-up\",\"direction-down\"],optionTitles:[\"Left\",\"Right\",\"Top\",\"Bottom\"],defaultValue:\"left\",displaySegmentedControl:true},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{direction:{right:[\"align-top\",\"align-middle\",\"align-bottom\"],left:[\"align-top\",\"align-middle\",\"align-bottom\"],top:[\"align-left\",\"align-center\",\"align-right\"],bottom:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\"},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},sizingOptions:{type:ControlType.Object,title:\"Sizing\",controls:{widthType:{type:ControlType.Boolean,title:\"Width\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true},heightType:{type:ControlType.Boolean,title:\"Height\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true}}},fadeOptions:{type:ControlType.Object,title:\"Clipping\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Fade\",defaultValue:true},overflow:{type:ControlType.Boolean,title:\"Overflow\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden(props){return props.fadeContent===true;}},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden(props){return props.fadeContent===false;}}}},hoverFactor:{type:ControlType.Number,title:\"Hover\",min:0,max:1,unit:\"x\",defaultValue:1,step:.1,displayStepper:true,description:\"Slows down the speed while you are hovering.\"}});/* Placeholder Styles */const containerStyle={display:\"flex\",width:\"100%\",height:\"100%\",maxWidth:\"100%\",maxHeight:\"100%\",placeItems:\"center\",margin:0,padding:0,listStyleType:\"none\",textIndent:\"none\"};/* Styles */const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:150,lineHeight:1.5,textAlign:\"center\"};/* Clamp function, used for fadeInset */const clamp=(num,min,max)=>Math.min(Math.max(num,min),max);const isValidNumber=value=>typeof value===\"number\"&&!isNaN(value);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Ticker\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"400\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Ticker.map","// package.json\nvar version = \"1.3.8\";\n\n// packages/core/src/maths.ts\nfunction clamp(min, input, max) {\n  return Math.max(min, Math.min(input, max));\n}\nfunction lerp(x, y, t) {\n  return (1 - t) * x + t * y;\n}\nfunction damp(x, y, lambda, deltaTime) {\n  return lerp(x, y, 1 - Math.exp(-lambda * deltaTime));\n}\nfunction modulo(n, d) {\n  return (n % d + d) % d;\n}\n\n// packages/core/src/animate.ts\nvar Animate = class {\n  isRunning = false;\n  value = 0;\n  from = 0;\n  to = 0;\n  currentTime = 0;\n  // These are instanciated in the fromTo method\n  lerp;\n  duration;\n  easing;\n  onUpdate;\n  /**\n   * Advance the animation by the given delta time\n   *\n   * @param deltaTime - The time in seconds to advance the animation\n   */\n  advance(deltaTime) {\n    if (!this.isRunning) return;\n    let completed = false;\n    if (this.duration && this.easing) {\n      this.currentTime += deltaTime;\n      const linearProgress = clamp(0, this.currentTime / this.duration, 1);\n      completed = linearProgress >= 1;\n      const easedProgress = completed ? 1 : this.easing(linearProgress);\n      this.value = this.from + (this.to - this.from) * easedProgress;\n    } else if (this.lerp) {\n      this.value = damp(this.value, this.to, this.lerp * 60, deltaTime);\n      if (Math.round(this.value) === this.to) {\n        this.value = this.to;\n        completed = true;\n      }\n    } else {\n      this.value = this.to;\n      completed = true;\n    }\n    if (completed) {\n      this.stop();\n    }\n    this.onUpdate?.(this.value, completed);\n  }\n  /** Stop the animation */\n  stop() {\n    this.isRunning = false;\n  }\n  /**\n   * Set up the animation from a starting value to an ending value\n   * with optional parameters for lerping, duration, easing, and onUpdate callback\n   *\n   * @param from - The starting value\n   * @param to - The ending value\n   * @param options - Options for the animation\n   */\n  fromTo(from, to, { lerp: lerp2, duration, easing, onStart, onUpdate }) {\n    this.from = this.value = from;\n    this.to = to;\n    this.lerp = lerp2;\n    this.duration = duration;\n    this.easing = easing;\n    this.currentTime = 0;\n    this.isRunning = true;\n    onStart?.();\n    this.onUpdate = onUpdate;\n  }\n};\n\n// packages/core/src/debounce.ts\nfunction debounce(callback, delay) {\n  let timer;\n  return function(...args) {\n    let context = this;\n    clearTimeout(timer);\n    timer = setTimeout(() => {\n      timer = void 0;\n      callback.apply(context, args);\n    }, delay);\n  };\n}\n\n// packages/core/src/dimensions.ts\nvar Dimensions = class {\n  constructor(wrapper, content, { autoResize = true, debounce: debounceValue = 250 } = {}) {\n    this.wrapper = wrapper;\n    this.content = content;\n    if (autoResize) {\n      this.debouncedResize = debounce(this.resize, debounceValue);\n      if (this.wrapper instanceof Window) {\n        window.addEventListener(\"resize\", this.debouncedResize, false);\n      } else {\n        this.wrapperResizeObserver = new ResizeObserver(this.debouncedResize);\n        this.wrapperResizeObserver.observe(this.wrapper);\n      }\n      this.contentResizeObserver = new ResizeObserver(this.debouncedResize);\n      this.contentResizeObserver.observe(this.content);\n    }\n    this.resize();\n  }\n  width = 0;\n  height = 0;\n  scrollHeight = 0;\n  scrollWidth = 0;\n  // These are instanciated in the constructor as they need information from the options\n  debouncedResize;\n  wrapperResizeObserver;\n  contentResizeObserver;\n  destroy() {\n    this.wrapperResizeObserver?.disconnect();\n    this.contentResizeObserver?.disconnect();\n    if (this.wrapper === window && this.debouncedResize) {\n      window.removeEventListener(\"resize\", this.debouncedResize, false);\n    }\n  }\n  resize = () => {\n    this.onWrapperResize();\n    this.onContentResize();\n  };\n  onWrapperResize = () => {\n    if (this.wrapper instanceof Window) {\n      this.width = window.innerWidth;\n      this.height = window.innerHeight;\n    } else {\n      this.width = this.wrapper.clientWidth;\n      this.height = this.wrapper.clientHeight;\n    }\n  };\n  onContentResize = () => {\n    if (this.wrapper instanceof Window) {\n      this.scrollHeight = this.content.scrollHeight;\n      this.scrollWidth = this.content.scrollWidth;\n    } else {\n      this.scrollHeight = this.wrapper.scrollHeight;\n      this.scrollWidth = this.wrapper.scrollWidth;\n    }\n  };\n  get limit() {\n    return {\n      x: this.scrollWidth - this.width,\n      y: this.scrollHeight - this.height\n    };\n  }\n};\n\n// packages/core/src/emitter.ts\nvar Emitter = class {\n  events = {};\n  /**\n   * Emit an event with the given data\n   * @param event Event name\n   * @param args Data to pass to the event handlers\n   */\n  emit(event, ...args) {\n    let callbacks = this.events[event] || [];\n    for (let i = 0, length = callbacks.length; i < length; i++) {\n      callbacks[i]?.(...args);\n    }\n  }\n  /**\n   * Add a callback to the event\n   * @param event Event name\n   * @param cb Callback function\n   * @returns Unsubscribe function\n   */\n  on(event, cb) {\n    this.events[event]?.push(cb) || (this.events[event] = [cb]);\n    return () => {\n      this.events[event] = this.events[event]?.filter((i) => cb !== i);\n    };\n  }\n  /**\n   * Remove a callback from the event\n   * @param event Event name\n   * @param callback Callback function\n   */\n  off(event, callback) {\n    this.events[event] = this.events[event]?.filter((i) => callback !== i);\n  }\n  /**\n   * Remove all event listeners and clean up\n   */\n  destroy() {\n    this.events = {};\n  }\n};\n\n// packages/core/src/virtual-scroll.ts\nvar LINE_HEIGHT = 100 / 6;\nvar listenerOptions = { passive: false };\nvar VirtualScroll = class {\n  constructor(element, options = { wheelMultiplier: 1, touchMultiplier: 1 }) {\n    this.element = element;\n    this.options = options;\n    window.addEventListener(\"resize\", this.onWindowResize, false);\n    this.onWindowResize();\n    this.element.addEventListener(\"wheel\", this.onWheel, listenerOptions);\n    this.element.addEventListener(\n      \"touchstart\",\n      this.onTouchStart,\n      listenerOptions\n    );\n    this.element.addEventListener(\n      \"touchmove\",\n      this.onTouchMove,\n      listenerOptions\n    );\n    this.element.addEventListener(\"touchend\", this.onTouchEnd, listenerOptions);\n  }\n  touchStart = {\n    x: 0,\n    y: 0\n  };\n  lastDelta = {\n    x: 0,\n    y: 0\n  };\n  window = {\n    width: 0,\n    height: 0\n  };\n  emitter = new Emitter();\n  /**\n   * Add an event listener for the given event and callback\n   *\n   * @param event Event name\n   * @param callback Callback function\n   */\n  on(event, callback) {\n    return this.emitter.on(event, callback);\n  }\n  /** Remove all event listeners and clean up */\n  destroy() {\n    this.emitter.destroy();\n    window.removeEventListener(\"resize\", this.onWindowResize, false);\n    this.element.removeEventListener(\"wheel\", this.onWheel, listenerOptions);\n    this.element.removeEventListener(\n      \"touchstart\",\n      this.onTouchStart,\n      listenerOptions\n    );\n    this.element.removeEventListener(\n      \"touchmove\",\n      this.onTouchMove,\n      listenerOptions\n    );\n    this.element.removeEventListener(\n      \"touchend\",\n      this.onTouchEnd,\n      listenerOptions\n    );\n  }\n  /**\n   * Event handler for 'touchstart' event\n   *\n   * @param event Touch event\n   */\n  onTouchStart = (event) => {\n    const { clientX, clientY } = event.targetTouches ? event.targetTouches[0] : event;\n    this.touchStart.x = clientX;\n    this.touchStart.y = clientY;\n    this.lastDelta = {\n      x: 0,\n      y: 0\n    };\n    this.emitter.emit(\"scroll\", {\n      deltaX: 0,\n      deltaY: 0,\n      event\n    });\n  };\n  /** Event handler for 'touchmove' event */\n  onTouchMove = (event) => {\n    const { clientX, clientY } = event.targetTouches ? event.targetTouches[0] : event;\n    const deltaX = -(clientX - this.touchStart.x) * this.options.touchMultiplier;\n    const deltaY = -(clientY - this.touchStart.y) * this.options.touchMultiplier;\n    this.touchStart.x = clientX;\n    this.touchStart.y = clientY;\n    this.lastDelta = {\n      x: deltaX,\n      y: deltaY\n    };\n    this.emitter.emit(\"scroll\", {\n      deltaX,\n      deltaY,\n      event\n    });\n  };\n  onTouchEnd = (event) => {\n    this.emitter.emit(\"scroll\", {\n      deltaX: this.lastDelta.x,\n      deltaY: this.lastDelta.y,\n      event\n    });\n  };\n  /** Event handler for 'wheel' event */\n  onWheel = (event) => {\n    let { deltaX, deltaY, deltaMode } = event;\n    const multiplierX = deltaMode === 1 ? LINE_HEIGHT : deltaMode === 2 ? this.window.width : 1;\n    const multiplierY = deltaMode === 1 ? LINE_HEIGHT : deltaMode === 2 ? this.window.height : 1;\n    deltaX *= multiplierX;\n    deltaY *= multiplierY;\n    deltaX *= this.options.wheelMultiplier;\n    deltaY *= this.options.wheelMultiplier;\n    this.emitter.emit(\"scroll\", { deltaX, deltaY, event });\n  };\n  onWindowResize = () => {\n    this.window = {\n      width: window.innerWidth,\n      height: window.innerHeight\n    };\n  };\n};\n\n// packages/core/src/lenis.ts\nvar defaultEasing = (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t));\nvar Lenis = class {\n  _isScrolling = false;\n  // true when scroll is animating\n  _isStopped = false;\n  // true if user should not be able to scroll - enable/disable programmatically\n  _isLocked = false;\n  // same as isStopped but enabled/disabled when scroll reaches target\n  _preventNextNativeScrollEvent = false;\n  _resetVelocityTimeout = null;\n  __rafID = null;\n  /**\n   * Whether or not the user is touching the screen\n   */\n  isTouching;\n  /**\n   * The time in ms since the lenis instance was created\n   */\n  time = 0;\n  /**\n   * User data that will be forwarded through the scroll event\n   *\n   * @example\n   * lenis.scrollTo(100, {\n   *   userData: {\n   *     foo: 'bar'\n   *   }\n   * })\n   */\n  userData = {};\n  /**\n   * The last velocity of the scroll\n   */\n  lastVelocity = 0;\n  /**\n   * The current velocity of the scroll\n   */\n  velocity = 0;\n  /**\n   * The direction of the scroll\n   */\n  direction = 0;\n  /**\n   * The options passed to the lenis instance\n   */\n  options;\n  /**\n   * The target scroll value\n   */\n  targetScroll;\n  /**\n   * The animated scroll value\n   */\n  animatedScroll;\n  // These are instanciated here as they don't need information from the options\n  animate = new Animate();\n  emitter = new Emitter();\n  // These are instanciated in the constructor as they need information from the options\n  dimensions;\n  // This is not private because it's used in the Snap class\n  virtualScroll;\n  constructor({\n    wrapper = window,\n    content = document.documentElement,\n    eventsTarget = wrapper,\n    smoothWheel = true,\n    syncTouch = false,\n    syncTouchLerp = 0.075,\n    touchInertiaExponent = 1.7,\n    duration,\n    // in seconds\n    easing,\n    lerp: lerp2 = 0.1,\n    infinite = false,\n    orientation = \"vertical\",\n    // vertical, horizontal\n    gestureOrientation = \"vertical\",\n    // vertical, horizontal, both\n    touchMultiplier = 1,\n    wheelMultiplier = 1,\n    autoResize = true,\n    prevent,\n    virtualScroll,\n    overscroll = true,\n    autoRaf = false,\n    anchors = false,\n    autoToggle = false,\n    // https://caniuse.com/?search=transition-behavior\n    allowNestedScroll = false,\n    __experimental__naiveDimensions = false\n  } = {}) {\n    window.lenisVersion = version;\n    if (!wrapper || wrapper === document.documentElement) {\n      wrapper = window;\n    }\n    if (typeof duration === \"number\" && typeof easing !== \"function\") {\n      easing = defaultEasing;\n    } else if (typeof easing === \"function\" && typeof duration !== \"number\") {\n      duration = 1;\n    }\n    this.options = {\n      wrapper,\n      content,\n      eventsTarget,\n      smoothWheel,\n      syncTouch,\n      syncTouchLerp,\n      touchInertiaExponent,\n      duration,\n      easing,\n      lerp: lerp2,\n      infinite,\n      gestureOrientation,\n      orientation,\n      touchMultiplier,\n      wheelMultiplier,\n      autoResize,\n      prevent,\n      virtualScroll,\n      overscroll,\n      autoRaf,\n      anchors,\n      autoToggle,\n      allowNestedScroll,\n      __experimental__naiveDimensions\n    };\n    this.dimensions = new Dimensions(wrapper, content, { autoResize });\n    this.updateClassName();\n    this.targetScroll = this.animatedScroll = this.actualScroll;\n    this.options.wrapper.addEventListener(\"scroll\", this.onNativeScroll, false);\n    this.options.wrapper.addEventListener(\"scrollend\", this.onScrollEnd, {\n      capture: true\n    });\n    if (this.options.anchors && this.options.wrapper === window) {\n      this.options.wrapper.addEventListener(\n        \"click\",\n        this.onClick,\n        false\n      );\n    }\n    this.options.wrapper.addEventListener(\n      \"pointerdown\",\n      this.onPointerDown,\n      false\n    );\n    this.virtualScroll = new VirtualScroll(eventsTarget, {\n      touchMultiplier,\n      wheelMultiplier\n    });\n    this.virtualScroll.on(\"scroll\", this.onVirtualScroll);\n    if (this.options.autoToggle) {\n      this.rootElement.addEventListener(\"transitionend\", this.onTransitionEnd, {\n        passive: true\n      });\n    }\n    if (this.options.autoRaf) {\n      this.__rafID = requestAnimationFrame(this.raf);\n    }\n  }\n  /**\n   * Destroy the lenis instance, remove all event listeners and clean up the class name\n   */\n  destroy() {\n    this.emitter.destroy();\n    this.options.wrapper.removeEventListener(\n      \"scroll\",\n      this.onNativeScroll,\n      false\n    );\n    this.options.wrapper.removeEventListener(\"scrollend\", this.onScrollEnd, {\n      capture: true\n    });\n    this.options.wrapper.removeEventListener(\n      \"pointerdown\",\n      this.onPointerDown,\n      false\n    );\n    if (this.options.anchors && this.options.wrapper === window) {\n      this.options.wrapper.removeEventListener(\n        \"click\",\n        this.onClick,\n        false\n      );\n    }\n    this.virtualScroll.destroy();\n    this.dimensions.destroy();\n    this.cleanUpClassName();\n    if (this.__rafID) {\n      cancelAnimationFrame(this.__rafID);\n    }\n  }\n  on(event, callback) {\n    return this.emitter.on(event, callback);\n  }\n  off(event, callback) {\n    return this.emitter.off(event, callback);\n  }\n  onScrollEnd = (e) => {\n    if (!(e instanceof CustomEvent)) {\n      if (this.isScrolling === \"smooth\" || this.isScrolling === false) {\n        e.stopPropagation();\n      }\n    }\n  };\n  dispatchScrollendEvent = () => {\n    this.options.wrapper.dispatchEvent(\n      new CustomEvent(\"scrollend\", {\n        bubbles: this.options.wrapper === window,\n        // cancelable: false,\n        detail: {\n          lenisScrollEnd: true\n        }\n      })\n    );\n  };\n  onTransitionEnd = (event) => {\n    if (event.propertyName.includes(\"overflow\")) {\n      const property = this.isHorizontal ? \"overflow-x\" : \"overflow-y\";\n      const overflow = getComputedStyle(this.rootElement)[property];\n      if ([\"hidden\", \"clip\"].includes(overflow)) {\n        this.internalStop();\n      } else {\n        this.internalStart();\n      }\n    }\n  };\n  setScroll(scroll) {\n    if (this.isHorizontal) {\n      this.options.wrapper.scrollTo({ left: scroll, behavior: \"instant\" });\n    } else {\n      this.options.wrapper.scrollTo({ top: scroll, behavior: \"instant\" });\n    }\n  }\n  onClick = (event) => {\n    const path = event.composedPath();\n    const anchor = path.find(\n      (node) => node instanceof HTMLAnchorElement && (node.getAttribute(\"href\")?.startsWith(\"#\") || node.getAttribute(\"href\")?.startsWith(\"/#\") || node.getAttribute(\"href\")?.startsWith(\"./#\"))\n    );\n    if (anchor) {\n      const id = anchor.getAttribute(\"href\");\n      if (id) {\n        const options = typeof this.options.anchors === \"object\" && this.options.anchors ? this.options.anchors : void 0;\n        let target = `#${id.split(\"#\")[1]}`;\n        if ([\"#\", \"/#\", \"./#\", \"#top\", \"/#top\", \"./#top\"].includes(id)) {\n          target = 0;\n        }\n        this.scrollTo(target, options);\n      }\n    }\n  };\n  onPointerDown = (event) => {\n    if (event.button === 1) {\n      this.reset();\n    }\n  };\n  onVirtualScroll = (data) => {\n    if (typeof this.options.virtualScroll === \"function\" && this.options.virtualScroll(data) === false)\n      return;\n    const { deltaX, deltaY, event } = data;\n    this.emitter.emit(\"virtual-scroll\", { deltaX, deltaY, event });\n    if (event.ctrlKey) return;\n    if (event.lenisStopPropagation) return;\n    const isTouch = event.type.includes(\"touch\");\n    const isWheel = event.type.includes(\"wheel\");\n    this.isTouching = event.type === \"touchstart\" || event.type === \"touchmove\";\n    const isClickOrTap = deltaX === 0 && deltaY === 0;\n    const isTapToStop = this.options.syncTouch && isTouch && event.type === \"touchstart\" && isClickOrTap && !this.isStopped && !this.isLocked;\n    if (isTapToStop) {\n      this.reset();\n      return;\n    }\n    const isUnknownGesture = this.options.gestureOrientation === \"vertical\" && deltaY === 0 || this.options.gestureOrientation === \"horizontal\" && deltaX === 0;\n    if (isClickOrTap || isUnknownGesture) {\n      return;\n    }\n    let composedPath = event.composedPath();\n    composedPath = composedPath.slice(0, composedPath.indexOf(this.rootElement));\n    const prevent = this.options.prevent;\n    if (!!composedPath.find(\n      (node) => node instanceof HTMLElement && (typeof prevent === \"function\" && prevent?.(node) || node.hasAttribute?.(\"data-lenis-prevent\") || isTouch && node.hasAttribute?.(\"data-lenis-prevent-touch\") || isWheel && node.hasAttribute?.(\"data-lenis-prevent-wheel\") || this.options.allowNestedScroll && this.checkNestedScroll(node, { deltaX, deltaY }))\n    ))\n      return;\n    if (this.isStopped || this.isLocked) {\n      if (event.cancelable) {\n        event.preventDefault();\n      }\n      return;\n    }\n    const isSmooth = this.options.syncTouch && isTouch || this.options.smoothWheel && isWheel;\n    if (!isSmooth) {\n      this.isScrolling = \"native\";\n      this.animate.stop();\n      event.lenisStopPropagation = true;\n      return;\n    }\n    let delta = deltaY;\n    if (this.options.gestureOrientation === \"both\") {\n      delta = Math.abs(deltaY) > Math.abs(deltaX) ? deltaY : deltaX;\n    } else if (this.options.gestureOrientation === \"horizontal\") {\n      delta = deltaX;\n    }\n    if (!this.options.overscroll || this.options.infinite || this.options.wrapper !== window && (this.animatedScroll > 0 && this.animatedScroll < this.limit || this.animatedScroll === 0 && deltaY > 0 || this.animatedScroll === this.limit && deltaY < 0)) {\n      event.lenisStopPropagation = true;\n    }\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n    const isSyncTouch = isTouch && this.options.syncTouch;\n    const isTouchEnd = isTouch && event.type === \"touchend\";\n    const hasTouchInertia = isTouchEnd;\n    if (hasTouchInertia) {\n      delta = Math.sign(this.velocity) * Math.pow(Math.abs(this.velocity), this.options.touchInertiaExponent);\n    }\n    this.scrollTo(this.targetScroll + delta, {\n      programmatic: false,\n      ...isSyncTouch ? {\n        lerp: hasTouchInertia ? this.options.syncTouchLerp : 1\n        // immediate: !hasTouchInertia,\n      } : {\n        lerp: this.options.lerp,\n        duration: this.options.duration,\n        easing: this.options.easing\n      }\n    });\n  };\n  /**\n   * Force lenis to recalculate the dimensions\n   */\n  resize() {\n    this.dimensions.resize();\n    this.animatedScroll = this.targetScroll = this.actualScroll;\n    this.emit();\n  }\n  emit() {\n    this.emitter.emit(\"scroll\", this);\n  }\n  onNativeScroll = () => {\n    if (this._resetVelocityTimeout !== null) {\n      clearTimeout(this._resetVelocityTimeout);\n      this._resetVelocityTimeout = null;\n    }\n    if (this._preventNextNativeScrollEvent) {\n      this._preventNextNativeScrollEvent = false;\n      return;\n    }\n    if (this.isScrolling === false || this.isScrolling === \"native\") {\n      const lastScroll = this.animatedScroll;\n      this.animatedScroll = this.targetScroll = this.actualScroll;\n      this.lastVelocity = this.velocity;\n      this.velocity = this.animatedScroll - lastScroll;\n      this.direction = Math.sign(\n        this.animatedScroll - lastScroll\n      );\n      if (!this.isStopped) {\n        this.isScrolling = \"native\";\n      }\n      this.emit();\n      if (this.velocity !== 0) {\n        this._resetVelocityTimeout = setTimeout(() => {\n          this.lastVelocity = this.velocity;\n          this.velocity = 0;\n          this.isScrolling = false;\n          this.emit();\n        }, 400);\n      }\n    }\n  };\n  reset() {\n    this.isLocked = false;\n    this.isScrolling = false;\n    this.animatedScroll = this.targetScroll = this.actualScroll;\n    this.lastVelocity = this.velocity = 0;\n    this.animate.stop();\n  }\n  /**\n   * Start lenis scroll after it has been stopped\n   */\n  start() {\n    if (!this.isStopped) return;\n    if (this.options.autoToggle) {\n      this.rootElement.style.removeProperty(\"overflow\");\n      return;\n    }\n    this.internalStart();\n  }\n  internalStart() {\n    if (!this.isStopped) return;\n    this.reset();\n    this.isStopped = false;\n    this.emit();\n  }\n  /**\n   * Stop lenis scroll\n   */\n  stop() {\n    if (this.isStopped) return;\n    if (this.options.autoToggle) {\n      this.rootElement.style.setProperty(\"overflow\", \"clip\");\n      return;\n    }\n    this.internalStop();\n  }\n  internalStop() {\n    if (this.isStopped) return;\n    this.reset();\n    this.isStopped = true;\n    this.emit();\n  }\n  /**\n   * RequestAnimationFrame for lenis\n   *\n   * @param time The time in ms from an external clock like `requestAnimationFrame` or Tempus\n   */\n  raf = (time) => {\n    const deltaTime = time - (this.time || time);\n    this.time = time;\n    this.animate.advance(deltaTime * 1e-3);\n    if (this.options.autoRaf) {\n      this.__rafID = requestAnimationFrame(this.raf);\n    }\n  };\n  /**\n   * Scroll to a target value\n   *\n   * @param target The target value to scroll to\n   * @param options The options for the scroll\n   *\n   * @example\n   * lenis.scrollTo(100, {\n   *   offset: 100,\n   *   duration: 1,\n   *   easing: (t) => 1 - Math.cos((t * Math.PI) / 2),\n   *   lerp: 0.1,\n   *   onStart: () => {\n   *     console.log('onStart')\n   *   },\n   *   onComplete: () => {\n   *     console.log('onComplete')\n   *   },\n   * })\n   */\n  scrollTo(target, {\n    offset = 0,\n    immediate = false,\n    lock = false,\n    duration = this.options.duration,\n    easing = this.options.easing,\n    lerp: lerp2 = this.options.lerp,\n    onStart,\n    onComplete,\n    force = false,\n    // scroll even if stopped\n    programmatic = true,\n    // called from outside of the class\n    userData\n  } = {}) {\n    if ((this.isStopped || this.isLocked) && !force) return;\n    if (typeof target === \"string\" && [\"top\", \"left\", \"start\"].includes(target)) {\n      target = 0;\n    } else if (typeof target === \"string\" && [\"bottom\", \"right\", \"end\"].includes(target)) {\n      target = this.limit;\n    } else {\n      let node;\n      if (typeof target === \"string\") {\n        node = document.querySelector(target);\n      } else if (target instanceof HTMLElement && target?.nodeType) {\n        node = target;\n      }\n      if (node) {\n        if (this.options.wrapper !== window) {\n          const wrapperRect = this.rootElement.getBoundingClientRect();\n          offset -= this.isHorizontal ? wrapperRect.left : wrapperRect.top;\n        }\n        const rect = node.getBoundingClientRect();\n        target = (this.isHorizontal ? rect.left : rect.top) + this.animatedScroll;\n      }\n    }\n    if (typeof target !== \"number\") return;\n    target += offset;\n    target = Math.round(target);\n    if (this.options.infinite) {\n      if (programmatic) {\n        this.targetScroll = this.animatedScroll = this.scroll;\n        const distance = target - this.animatedScroll;\n        if (distance > this.limit / 2) {\n          target = target - this.limit;\n        } else if (distance < -this.limit / 2) {\n          target = target + this.limit;\n        }\n      }\n    } else {\n      target = clamp(0, target, this.limit);\n    }\n    if (target === this.targetScroll) {\n      onStart?.(this);\n      onComplete?.(this);\n      return;\n    }\n    this.userData = userData ?? {};\n    if (immediate) {\n      this.animatedScroll = this.targetScroll = target;\n      this.setScroll(this.scroll);\n      this.reset();\n      this.preventNextNativeScrollEvent();\n      this.emit();\n      onComplete?.(this);\n      this.userData = {};\n      requestAnimationFrame(() => {\n        this.dispatchScrollendEvent();\n      });\n      return;\n    }\n    if (!programmatic) {\n      this.targetScroll = target;\n    }\n    if (typeof duration === \"number\" && typeof easing !== \"function\") {\n      easing = defaultEasing;\n    } else if (typeof easing === \"function\" && typeof duration !== \"number\") {\n      duration = 1;\n    }\n    this.animate.fromTo(this.animatedScroll, target, {\n      duration,\n      easing,\n      lerp: lerp2,\n      onStart: () => {\n        if (lock) this.isLocked = true;\n        this.isScrolling = \"smooth\";\n        onStart?.(this);\n      },\n      onUpdate: (value, completed) => {\n        this.isScrolling = \"smooth\";\n        this.lastVelocity = this.velocity;\n        this.velocity = value - this.animatedScroll;\n        this.direction = Math.sign(this.velocity);\n        this.animatedScroll = value;\n        this.setScroll(this.scroll);\n        if (programmatic) {\n          this.targetScroll = value;\n        }\n        if (!completed) this.emit();\n        if (completed) {\n          this.reset();\n          this.emit();\n          onComplete?.(this);\n          this.userData = {};\n          requestAnimationFrame(() => {\n            this.dispatchScrollendEvent();\n          });\n          this.preventNextNativeScrollEvent();\n        }\n      }\n    });\n  }\n  preventNextNativeScrollEvent() {\n    this._preventNextNativeScrollEvent = true;\n    requestAnimationFrame(() => {\n      this._preventNextNativeScrollEvent = false;\n    });\n  }\n  checkNestedScroll(node, { deltaX, deltaY }) {\n    const time = Date.now();\n    const cache = node._lenis ??= {};\n    let hasOverflowX, hasOverflowY, isScrollableX, isScrollableY, scrollWidth, scrollHeight, clientWidth, clientHeight;\n    const gestureOrientation = this.options.gestureOrientation;\n    if (time - (cache.time ?? 0) > 2e3) {\n      cache.time = Date.now();\n      const computedStyle = window.getComputedStyle(node);\n      cache.computedStyle = computedStyle;\n      const overflowXString = computedStyle.overflowX;\n      const overflowYString = computedStyle.overflowY;\n      hasOverflowX = [\"auto\", \"overlay\", \"scroll\"].includes(overflowXString);\n      hasOverflowY = [\"auto\", \"overlay\", \"scroll\"].includes(overflowYString);\n      cache.hasOverflowX = hasOverflowX;\n      cache.hasOverflowY = hasOverflowY;\n      if (!hasOverflowX && !hasOverflowY) return false;\n      if (gestureOrientation === \"vertical\" && !hasOverflowY) return false;\n      if (gestureOrientation === \"horizontal\" && !hasOverflowX) return false;\n      scrollWidth = node.scrollWidth;\n      scrollHeight = node.scrollHeight;\n      clientWidth = node.clientWidth;\n      clientHeight = node.clientHeight;\n      isScrollableX = scrollWidth > clientWidth;\n      isScrollableY = scrollHeight > clientHeight;\n      cache.isScrollableX = isScrollableX;\n      cache.isScrollableY = isScrollableY;\n      cache.scrollWidth = scrollWidth;\n      cache.scrollHeight = scrollHeight;\n      cache.clientWidth = clientWidth;\n      cache.clientHeight = clientHeight;\n    } else {\n      isScrollableX = cache.isScrollableX;\n      isScrollableY = cache.isScrollableY;\n      hasOverflowX = cache.hasOverflowX;\n      hasOverflowY = cache.hasOverflowY;\n      scrollWidth = cache.scrollWidth;\n      scrollHeight = cache.scrollHeight;\n      clientWidth = cache.clientWidth;\n      clientHeight = cache.clientHeight;\n    }\n    if (!hasOverflowX && !hasOverflowY || !isScrollableX && !isScrollableY) {\n      return false;\n    }\n    if (gestureOrientation === \"vertical\" && (!hasOverflowY || !isScrollableY))\n      return false;\n    if (gestureOrientation === \"horizontal\" && (!hasOverflowX || !isScrollableX))\n      return false;\n    let orientation;\n    if (gestureOrientation === \"horizontal\") {\n      orientation = \"x\";\n    } else if (gestureOrientation === \"vertical\") {\n      orientation = \"y\";\n    } else {\n      const isScrollingX = deltaX !== 0;\n      const isScrollingY = deltaY !== 0;\n      if (isScrollingX && hasOverflowX && isScrollableX) {\n        orientation = \"x\";\n      }\n      if (isScrollingY && hasOverflowY && isScrollableY) {\n        orientation = \"y\";\n      }\n    }\n    if (!orientation) return false;\n    let scroll, maxScroll, delta, hasOverflow, isScrollable;\n    if (orientation === \"x\") {\n      scroll = node.scrollLeft;\n      maxScroll = scrollWidth - clientWidth;\n      delta = deltaX;\n      hasOverflow = hasOverflowX;\n      isScrollable = isScrollableX;\n    } else if (orientation === \"y\") {\n      scroll = node.scrollTop;\n      maxScroll = scrollHeight - clientHeight;\n      delta = deltaY;\n      hasOverflow = hasOverflowY;\n      isScrollable = isScrollableY;\n    } else {\n      return false;\n    }\n    const willScroll = delta > 0 ? scroll < maxScroll : scroll > 0;\n    return willScroll && hasOverflow && isScrollable;\n  }\n  /**\n   * The root element on which lenis is instanced\n   */\n  get rootElement() {\n    return this.options.wrapper === window ? document.documentElement : this.options.wrapper;\n  }\n  /**\n   * The limit which is the maximum scroll value\n   */\n  get limit() {\n    if (this.options.__experimental__naiveDimensions) {\n      if (this.isHorizontal) {\n        return this.rootElement.scrollWidth - this.rootElement.clientWidth;\n      } else {\n        return this.rootElement.scrollHeight - this.rootElement.clientHeight;\n      }\n    } else {\n      return this.dimensions.limit[this.isHorizontal ? \"x\" : \"y\"];\n    }\n  }\n  /**\n   * Whether or not the scroll is horizontal\n   */\n  get isHorizontal() {\n    return this.options.orientation === \"horizontal\";\n  }\n  /**\n   * The actual scroll value\n   */\n  get actualScroll() {\n    const wrapper = this.options.wrapper;\n    return this.isHorizontal ? wrapper.scrollX ?? wrapper.scrollLeft : wrapper.scrollY ?? wrapper.scrollTop;\n  }\n  /**\n   * The current scroll value\n   */\n  get scroll() {\n    return this.options.infinite ? modulo(this.animatedScroll, this.limit) : this.animatedScroll;\n  }\n  /**\n   * The progress of the scroll relative to the limit\n   */\n  get progress() {\n    return this.limit === 0 ? 1 : this.scroll / this.limit;\n  }\n  /**\n   * Current scroll state\n   */\n  get isScrolling() {\n    return this._isScrolling;\n  }\n  set isScrolling(value) {\n    if (this._isScrolling !== value) {\n      this._isScrolling = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is stopped\n   */\n  get isStopped() {\n    return this._isStopped;\n  }\n  set isStopped(value) {\n    if (this._isStopped !== value) {\n      this._isStopped = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is locked\n   */\n  get isLocked() {\n    return this._isLocked;\n  }\n  set isLocked(value) {\n    if (this._isLocked !== value) {\n      this._isLocked = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is smooth scrolling\n   */\n  get isSmooth() {\n    return this.isScrolling === \"smooth\";\n  }\n  /**\n   * The class name applied to the wrapper element\n   */\n  get className() {\n    let className = \"lenis\";\n    if (this.options.autoToggle) className += \" lenis-autoToggle\";\n    if (this.isStopped) className += \" lenis-stopped\";\n    if (this.isLocked) className += \" lenis-locked\";\n    if (this.isScrolling) className += \" lenis-scrolling\";\n    if (this.isScrolling === \"smooth\") className += \" lenis-smooth\";\n    return className;\n  }\n  updateClassName() {\n    this.cleanUpClassName();\n    this.rootElement.className = `${this.rootElement.className} ${this.className}`.trim();\n  }\n  cleanUpClassName() {\n    this.rootElement.className = this.rootElement.className.replace(/lenis(-\\w+)?/g, \"\").trim();\n  }\n};\nexport {\n  Lenis as default\n};\n//# sourceMappingURL=lenis.mjs.map","// packages/snap/src/debounce.ts\nfunction debounce(callback, delay) {\n  let timer;\n  return function(...args) {\n    let context = this;\n    clearTimeout(timer);\n    timer = setTimeout(() => {\n      timer = void 0;\n      callback.apply(context, args);\n    }, delay);\n  };\n}\n\n// packages/snap/src/element.ts\nfunction removeParentSticky(element) {\n  const position = getComputedStyle(element).position;\n  const isSticky = position === \"sticky\";\n  if (isSticky) {\n    element.style.setProperty(\"position\", \"static\");\n    element.dataset.sticky = \"true\";\n  }\n  if (element.offsetParent) {\n    removeParentSticky(element.offsetParent);\n  }\n}\nfunction addParentSticky(element) {\n  if (element?.dataset?.sticky === \"true\") {\n    element.style.removeProperty(\"position\");\n    delete element.dataset.sticky;\n  }\n  if (element.offsetParent) {\n    addParentSticky(element.offsetParent);\n  }\n}\nfunction offsetTop(element, accumulator = 0) {\n  const top = accumulator + element.offsetTop;\n  if (element.offsetParent) {\n    return offsetTop(element.offsetParent, top);\n  }\n  return top;\n}\nfunction offsetLeft(element, accumulator = 0) {\n  const left = accumulator + element.offsetLeft;\n  if (element.offsetParent) {\n    return offsetLeft(element.offsetParent, left);\n  }\n  return left;\n}\nfunction scrollTop(element, accumulator = 0) {\n  const top = accumulator + element.scrollTop;\n  if (element.offsetParent) {\n    return scrollTop(element.offsetParent, top);\n  }\n  return top + window.scrollY;\n}\nfunction scrollLeft(element, accumulator = 0) {\n  const left = accumulator + element.scrollLeft;\n  if (element.offsetParent) {\n    return scrollLeft(element.offsetParent, left);\n  }\n  return left + window.scrollX;\n}\nvar SnapElement = class {\n  element;\n  options;\n  align;\n  // @ts-ignore\n  rect = {};\n  wrapperResizeObserver;\n  resizeObserver;\n  constructor(element, {\n    align = [\"start\"],\n    ignoreSticky = true,\n    ignoreTransform = false\n  } = {}) {\n    this.element = element;\n    this.options = { align, ignoreSticky, ignoreTransform };\n    this.align = [align].flat();\n    this.wrapperResizeObserver = new ResizeObserver(this.onWrapperResize);\n    this.wrapperResizeObserver.observe(document.body);\n    this.onWrapperResize();\n    this.resizeObserver = new ResizeObserver(this.onResize);\n    this.resizeObserver.observe(this.element);\n    this.setRect({\n      width: this.element.offsetWidth,\n      height: this.element.offsetHeight\n    });\n  }\n  destroy() {\n    this.wrapperResizeObserver.disconnect();\n    this.resizeObserver.disconnect();\n  }\n  setRect({\n    top,\n    left,\n    width,\n    height,\n    element\n  } = {}) {\n    top = top ?? this.rect.top;\n    left = left ?? this.rect.left;\n    width = width ?? this.rect.width;\n    height = height ?? this.rect.height;\n    element = element ?? this.rect.element;\n    if (top === this.rect.top && left === this.rect.left && width === this.rect.width && height === this.rect.height && element === this.rect.element)\n      return;\n    this.rect.top = top;\n    this.rect.y = top;\n    this.rect.width = width;\n    this.rect.height = height;\n    this.rect.left = left;\n    this.rect.x = left;\n    this.rect.bottom = top + height;\n    this.rect.right = left + width;\n  }\n  onWrapperResize = () => {\n    let top, left;\n    if (this.options.ignoreSticky) removeParentSticky(this.element);\n    if (this.options.ignoreTransform) {\n      top = offsetTop(this.element);\n      left = offsetLeft(this.element);\n    } else {\n      const rect = this.element.getBoundingClientRect();\n      top = rect.top + scrollTop(this.element);\n      left = rect.left + scrollLeft(this.element);\n    }\n    if (this.options.ignoreSticky) addParentSticky(this.element);\n    this.setRect({ top, left });\n  };\n  onResize = ([entry]) => {\n    if (!entry?.borderBoxSize[0]) return;\n    const width = entry.borderBoxSize[0].inlineSize;\n    const height = entry.borderBoxSize[0].blockSize;\n    this.setRect({ width, height });\n  };\n};\n\n// packages/snap/src/uid.ts\nvar index = 0;\nfunction uid() {\n  return index++;\n}\n\n// packages/snap/src/snap.ts\nvar Snap = class {\n  constructor(lenis, {\n    type = \"proximity\",\n    lerp,\n    easing,\n    duration,\n    distanceThreshold = \"50%\",\n    // velocityThreshold = 1.2,\n    debounce: debounceDelay = 500,\n    onSnapStart,\n    onSnapComplete\n  } = {}) {\n    this.lenis = lenis;\n    this.options = {\n      type,\n      lerp,\n      easing,\n      duration,\n      distanceThreshold,\n      // velocityThreshold,\n      debounce: debounceDelay,\n      onSnapStart,\n      onSnapComplete\n    };\n    this.onWindowResize();\n    window.addEventListener(\"resize\", this.onWindowResize, false);\n    this.onSnapDebounced = debounce(this.onSnap, this.options.debounce);\n    this.lenis.on(\"virtual-scroll\", this.onSnapDebounced);\n  }\n  options;\n  elements = /* @__PURE__ */ new Map();\n  snaps = /* @__PURE__ */ new Map();\n  viewport = {\n    width: window.innerWidth,\n    height: window.innerHeight\n  };\n  isStopped = false;\n  onSnapDebounced;\n  /**\n   * Destroy the snap instance\n   */\n  destroy() {\n    this.lenis.off(\"virtual-scroll\", this.onSnapDebounced);\n    window.removeEventListener(\"resize\", this.onWindowResize, false);\n    this.elements.forEach((element) => element.destroy());\n  }\n  /**\n   * Start the snap after it has been stopped\n   */\n  start() {\n    this.isStopped = false;\n  }\n  /**\n   * Stop the snap\n   */\n  stop() {\n    this.isStopped = true;\n  }\n  /**\n   * Add a snap to the snap instance\n   *\n   * @param value The value to snap to\n   * @param userData User data that will be forwarded through the snap event\n   * @returns Unsubscribe function\n   */\n  add(value, userData = {}) {\n    const id = uid();\n    this.snaps.set(id, { value, userData });\n    return () => this.snaps.delete(id);\n  }\n  /**\n   * Add an element to the snap instance\n   *\n   * @param element The element to add\n   * @param options The options for the element\n   * @returns Unsubscribe function\n   */\n  addElement(element, options = {}) {\n    const id = uid();\n    this.elements.set(id, new SnapElement(element, options));\n    return () => this.elements.delete(id);\n  }\n  onWindowResize = () => {\n    this.viewport.width = window.innerWidth;\n    this.viewport.height = window.innerHeight;\n  };\n  // private onScroll = ({\n  //   // scroll,\n  //   // limit,\n  //   lastVelocity,\n  //   velocity,\n  //   // isScrolling,\n  //   userData,\n  // }: // isHorizontal,\n  // Lenis) => {\n  //   if (this.isStopped) return\n  //   // return\n  //   const isDecelerating = Math.abs(lastVelocity) > Math.abs(velocity)\n  //   const isTurningBack =\n  //     Math.sign(lastVelocity) !== Math.sign(velocity) && velocity !== 0\n  //   if (\n  //     Math.abs(velocity) < this.options.velocityThreshold &&\n  //     // !isTouching &&\n  //     isDecelerating &&\n  //     !isTurningBack &&\n  //     userData?.initiator !== 'snap'\n  //   ) {\n  //     this.onSnapDebounced()\n  //   }\n  // }\n  onSnap = () => {\n    let { scroll, isHorizontal } = this.lenis;\n    scroll = Math.ceil(this.lenis.scroll);\n    let snaps = [...this.snaps.values()];\n    this.elements.forEach(({ rect, align }) => {\n      let value;\n      align.forEach((align2) => {\n        if (align2 === \"start\") {\n          value = rect.top;\n        } else if (align2 === \"center\") {\n          value = isHorizontal ? rect.left + rect.width / 2 - this.viewport.width / 2 : rect.top + rect.height / 2 - this.viewport.height / 2;\n        } else if (align2 === \"end\") {\n          value = isHorizontal ? rect.left + rect.width - this.viewport.width : rect.top + rect.height - this.viewport.height;\n        }\n        if (typeof value === \"number\") {\n          snaps.push({ value: Math.ceil(value), userData: {} });\n        }\n      });\n    });\n    snaps = snaps.sort((a, b) => Math.abs(a.value) - Math.abs(b.value));\n    if (snaps.length === 0) return;\n    let prevSnap = snaps.findLast(({ value }) => value <= scroll);\n    if (prevSnap === void 0) prevSnap = snaps[0];\n    const distanceToPrevSnap = Math.abs(scroll - prevSnap.value);\n    let nextSnap = snaps.find(({ value }) => value >= scroll);\n    if (nextSnap === void 0) nextSnap = snaps[snaps.length - 1];\n    const distanceToNextSnap = Math.abs(scroll - nextSnap.value);\n    const snap = distanceToPrevSnap < distanceToNextSnap ? prevSnap : nextSnap;\n    const distance = Math.abs(scroll - snap.value);\n    let distanceThreshold;\n    const axis = isHorizontal ? \"width\" : \"height\";\n    if (typeof this.options.distanceThreshold === \"string\" && this.options.distanceThreshold.endsWith(\"%\")) {\n      distanceThreshold = Number(this.options.distanceThreshold.replace(\"%\", \"\")) / 100 * this.viewport[axis];\n    } else if (typeof this.options.distanceThreshold === \"number\") {\n      distanceThreshold = this.options.distanceThreshold;\n    } else {\n      distanceThreshold = this.viewport[axis];\n    }\n    if (this.options.type === \"mandatory\" || this.options.type === \"proximity\" && distance <= distanceThreshold) {\n      this.lenis.scrollTo(snap.value, {\n        lerp: this.options.lerp,\n        easing: this.options.easing,\n        duration: this.options.duration,\n        userData: { initiator: \"snap\" },\n        onStart: () => {\n          this.options.onSnapStart?.(snap);\n        },\n        onComplete: () => {\n          this.options.onSnapComplete?.(snap);\n        }\n      });\n    }\n  };\n};\nexport {\n  Snap as default\n};\n//# sourceMappingURL=lenis-snap.mjs.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import Lenis from\"https://unpkg.com/lenis@1.3.8/dist/lenis.mjs\";import Snap from\"https://unpkg.com/lenis@1.3.8/dist/lenis-snap.mjs\";import{useEffect,useRef,Children,isValidElement,cloneElement}from\"react\";/**\n * @framerSupportedLayoutHeight any\n * @framerSupportedLayoutWidth any\n * @framerDisableUnlink\n */export default function Component({smooth,easing,infinite,orientation,intensity,children,snap}){const wrapperRef=useRef();const contentRef=useRef();useEffect(()=>{if(children&&(!wrapperRef.current||!contentRef.current))return;if(wrapperRef.current&&contentRef.current){if(orientation===\"horizontal\"){wrapperRef.current.style.setProperty(\"overflowX\",\"auto\");}else{wrapperRef.current.style.setProperty(\"overflowY\",\"auto\");}}const lenis=new Lenis({smoothWheel:smooth,duration:intensity/10,infinite,orientation,gestureOrientation:orientation===\"horizontal\"?\"both\":\"vertical\",autoRaf:true,autoToggle:true,anchors:true,allowNestedScroll:true,wrapper:wrapperRef.current,content:contentRef.current,syncTouch:Boolean(infinite)||orientation===\"horizontal\"});let lenisSnap;if(snap&&snap.snaps.length>0){lenisSnap=new Snap(lenis,{type:snap.type,distanceThreshold:snap.threshold+\"%\"});snap.snaps.forEach(item=>{if(!item.target?.current)return;const id=item.target.current.id;// workaround when content is duplicated by LenisSeamlessInfinite\nconst elements=document.querySelectorAll(`#${id}`);elements.forEach(element=>{lenisSnap.addElement(element,{align:item.align});});});}window.lenis=lenis;window.lenisSnap=snap;return()=>{lenis.destroy();if(lenisSnap)lenisSnap.destroy();};},[children]);return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"link\",{href:\"https://unpkg.com/lenis@1.3.8/dist/lenis.css\",rel:\"stylesheet\"}),children&&/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,style:orientation===\"horizontal\"?{overflowX:\"auto\",width:\"100%\"}:{overflowY:\"auto\",height:\"100%\"},children:/*#__PURE__*/_jsx(\"div\",{ref:contentRef,style:{width:\"100%\"},children:Children.map(children,child=>/*#__PURE__*/isValidElement(child)?/*#__PURE__*/cloneElement(child,{style:{...child.props.style,width:\"100%\"}}):child)})})})]});}Component.displayName=\"Lenis\";addPropertyControls(Component,{smooth:{type:ControlType.Boolean,title:\"Smooth\",defaultValue:true},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:12,step:1,min:1,max:100,hidden(props){return props.smooth===false;}},infinite:{type:ControlType.Boolean,title:\"Infinite\",defaultValue:false,hidden(props){return props.smooth===false;}},orientation:{type:ControlType.Enum,defaultValue:\"Vertical\",displaySegmentedControl:true,options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],hidden(props){return props.smooth===false;}},children:{type:ControlType.ComponentInstance,title:\"Content\"},snap:{type:ControlType.Object,optional:true,description:\"Cooked and served by [darkroom.engineering](https://darkroom.engineering).\",controls:{type:{type:ControlType.Enum,defaultValue:\"proximity\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",options:[\"proximity\",\"mandatory\"],optionTitles:[\"Proximity\",\"Mandatory\"]},threshold:{type:ControlType.Number,defaultValue:50,min:0,max:100,unit:\"%\",hidden:props=>{return props.snap.type===\"mandatory\";}},snaps:{type:ControlType.Array,control:{type:ControlType.Object,controls:{target:{title:\"Target\",type:ControlType.ScrollSectionRef},align:{type:ControlType.Enum,defaultValue:\"center\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"start\",\"center\",\"end\"],optionIcons:[\"align-top\",\"align-middle\",\"align-bottom\"]}}}}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Component\",\"slots\":[\"children\"],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lenis.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useMemo,useState}from\"react\";export default function GLUtils(props){return /*#__PURE__*/_jsx(\"div\",{});}export const DEFAULT_IMAGE=\"https://framerusercontent.com/images/6MTlf3HAzQ2kjMqPur2sdbkznQ.png?scale-down-to=2048\";export const DEFAULT_IMAGE_FLOWER=\"https://framerusercontent.com/images/cz3ePY6OFcSC4EItQFuQxLrQbBA.jpg\";export const DEFAULT_IMAGE_FLOWER_DARK=\"https://framerusercontent.com/images/l4gFK0Yuorz9j7RwU2EbwWxpw.jpg\";export const DEFAULT_ALT=\"Default image\";export const DEFAULT_ALT_FLOWER=\"A wilted tulip with red and yellow petals.\";export const DEFAULT_ALT_FLOWER_DARK=\"A bright yellow sunflower against a dark background.\";export function degToRad(degrees){return degrees*(Math.PI/180);}export function colorToVec4(color){let actualColor=color;if(color.startsWith(\"var(\")){const varMatch=color.match(/var\\([^,]+,\\s*(.+)\\)$/);if(varMatch){actualColor=varMatch[1].trim();}else{console.warn(\"无法解析 CSS 变量:\",color);return[0,0,0,1];}}actualColor=actualColor.replace(/\\s/g,\"\");let r,g,b,a=1;// 处理 rgb() 和 rgba() 格式\nconst rgbaMatch=actualColor.match(/rgba?\\((\\d+),(\\d+),(\\d+)(?:,([0-9]*\\.?[0-9]+))?\\)/);if(rgbaMatch){r=parseInt(rgbaMatch[1]);g=parseInt(rgbaMatch[2]);b=parseInt(rgbaMatch[3]);if(rgbaMatch[4]!==undefined){a=parseFloat(rgbaMatch[4]);}return[r/255,g/255,b/255,a];}// 处理十六进制格式 (#RGB 或 #RRGGBB)\nconst hexMatch=actualColor.match(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);if(hexMatch){const hex=hexMatch[1];if(hex.length===3){// 处理 #RGB 格式，扩展为 #RRGGBB\nr=parseInt(hex[0]+hex[0],16);g=parseInt(hex[1]+hex[1],16);b=parseInt(hex[2]+hex[2],16);}else{// 处理 #RRGGBB 格式\nr=parseInt(hex.substr(0,2),16);g=parseInt(hex.substr(2,2),16);b=parseInt(hex.substr(4,2),16);}return[r/255,g/255,b/255,a];}console.warn(\"无法解析颜色格式:\",color);return[0,0,0,1];}export function colorToVec3(color){let actualColor=color;if(color.startsWith(\"var(\")){const varMatch=color.match(/var\\([^,]+,\\s*(.+)\\)$/);if(varMatch){actualColor=varMatch[1].trim();}else{console.warn(\"无法解析 CSS 变量:\",color);return[0,0,0];}}actualColor=actualColor.replace(/\\s/g,\"\");let r,g,b;// 处理 rgb() 和 rgba() 格式\nconst rgbaMatch=actualColor.match(/rgba?\\((\\d+),(\\d+),(\\d+)(?:,([0-9]*\\.?[0-9]+))?\\)/);if(rgbaMatch){r=parseInt(rgbaMatch[1]);g=parseInt(rgbaMatch[2]);b=parseInt(rgbaMatch[3]);return[r/255,g/255,b/255];}// 处理十六进制格式 (#RGB 或 #RRGGBB)\nconst hexMatch=actualColor.match(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);if(hexMatch){const hex=hexMatch[1];if(hex.length===3){// 处理 #RGB 格式，扩展为 #RRGGBB\nr=parseInt(hex[0]+hex[0],16);g=parseInt(hex[1]+hex[1],16);b=parseInt(hex[2]+hex[2],16);}else{// 处理 #RRGGBB 格式\nr=parseInt(hex.substr(0,2),16);g=parseInt(hex.substr(2,2),16);b=parseInt(hex.substr(4,2),16);}return[r/255,g/255,b/255];}console.warn(\"无法解析颜色格式:\",color);return[0,0,0];}export const useDarkMode=()=>{const[isDarkMode,setIsDarkMode]=useState(false);useEffect(()=>{const mediaQuery=window.matchMedia(\"(prefers-color-scheme: dark)\");setIsDarkMode(mediaQuery.matches);const handler=e=>setIsDarkMode(e.matches);mediaQuery.addListener(handler);return()=>mediaQuery.removeListener(handler);},[]);return isDarkMode;};export const CompatibleMedia=({mediaType,mediaSrc,imageAlt,fit,loop,style={},...props})=>{const isStaticRenderer=useIsStaticRenderer();const defaultStyle={width:\"100%\",height:\"100%\",objectFit:fit};if(mediaType===\"image\"){return /*#__PURE__*/_jsx(\"img\",{src:mediaSrc,alt:imageAlt,style:{...defaultStyle,...style},crossOrigin:\"anonymous\"});}else{return /*#__PURE__*/_jsx(\"video\",{src:mediaSrc,autoPlay:!isStaticRenderer,muted:true,playsInline:true,loop:loop,style:{...defaultStyle,...style},crossOrigin:\"anonymous\"});}};export const useMediaSource=(media,file,urlVideo,upVideo,defaultImage,darkImage,dark,placeholder=\"flower_dark\")=>{const isDarkMode=useDarkMode();const getPlaceholderValues=useMemo(()=>{const placeholderMap={reveals:{image:\"https://framerusercontent.com/images/6MTlf3HAzQ2kjMqPur2sdbkznQ.png?scale-down-to=2048\",alt:\"reveals original image.\"},flower_light:{image:\"https://framerusercontent.com/images/cz3ePY6OFcSC4EItQFuQxLrQbBA.jpg\",alt:\"A wilted tulip with red and yellow petals.\"},flower_dark:{image:\"https://framerusercontent.com/images/l4gFK0Yuorz9j7RwU2EbwWxpw.jpg\",alt:\"A bright yellow sunflower against a dark background.\"},arch_dark:{image:\"https://framerusercontent.com/images/kW9tNTLiYRYp7LGxfxbuywTR4I.jpg\",alt:\"A white sphere suspended among curved black metallic ribbons.\"},dice_dark:{image:\"https://framerusercontent.com/images/bXMH0vhJVBjFjMhCnvcVuK0KA0.jpg\",alt:\"A cluster of smooth, reflective metallic shapes on a dark background.\"},astronaut:{image:\"https://framerusercontent.com/images/K54OdkNAJ7dNPCQlcqviSKRrXAY.jpg?width=1920&height=1282\",alt:\"Close-up of an astronaut’s face inside a reflective helmet.\"},silhouetted:{image:\"https://framerusercontent.com/images/CeZXMYBfdBEchX3ub79dGEHlyCQ.jpg?width=1920&height=1280\",alt:\"Silhouetted figure walking behind frosted glass panels.\"},structure:{image:\"https://framerusercontent.com/images/Ud6oqYomUb6OGy9FMr1VmAPXIU.jpg?width=1920&height=1280\",alt:\"Abstract red metal structure against a clear sky.\"},dizzy:{image:\"https://framerusercontent.com/images/JJmc0OZsfY0HhNmbr8W4De17Pw.jpg?width=1920&height=1343\",alt:\"Blurred portrait of a person in motion with hands near the head.\"},hand:{image:\"https://framerusercontent.com/images/qAQg0suczEYw3OPZEmj7XxyW0.jpg?width=1920&height=1440\",alt:\"A hand reaching toward a glowing blue light.\"},porsche:{image:\"https://framerusercontent.com/images/9bPvA91sUvfr4lgE2gQ1MbfUMDs.jpg?width=1920&height=1280\",alt:\"A silver sports car in the rain, seen from the rear side.\"},wheat:{image:\"https://framerusercontent.com/images/jhGTXFJ0WKeCaZXfyfE5pSL1Pbc.jpg?width=1920&height=1280\",alt:\"Golden grass glistening in sunlight.\"}};return placeholderMap[placeholder]||placeholderMap.flower_dark;},[placeholder]);const imageSrc=useMemo(()=>{if(dark&&isDarkMode&&darkImage?.src){return darkImage.src;}return defaultImage?.src||getPlaceholderValues.image;},[isDarkMode,defaultImage,darkImage,dark,getPlaceholderValues.image]);const imageAlt=useMemo(()=>{if(media===\"image\"){if(dark&&isDarkMode&&darkImage?.alt){return darkImage.alt;}return defaultImage?.alt||getPlaceholderValues.alt;}else if(media===\"cms\"){if(dark&&isDarkMode&&darkImage?.alt){return darkImage.alt;}return defaultImage?.alt||getPlaceholderValues.alt;}},[isDarkMode,defaultImage,darkImage,dark,getPlaceholderValues.alt]);const mediaSrc=useMemo(()=>{if(media===\"image\"){return imageSrc;}return file===\"url\"?urlVideo:upVideo;},[media,file,imageSrc,urlVideo,upVideo,defaultImage,darkImage,dark]);const mediaType=useMemo(()=>{const mediaTypeMap={image:\"image\",cms:\"image\",video:\"video\"};return mediaTypeMap[media]||\"video\";},[media]);return{imageSrc,imageAlt,mediaSrc,mediaType};};export const propertyControls={media:{type:{type:ControlType.Enum,title:\"Media\",options:[\"image\",\"video\"],optionTitles:[\"Image\",\"Video\"],displaySegmentedControl:true,defaultValue:\"image\"},file:{type:ControlType.Enum,title:\"File\",options:[\"url\",\"upload\"],optionTitles:[\"URL\",\"Upload\"],displaySegmentedControl:true,defaultValue:\"url\",hidden(props){return props.type!==\"video\";}},defaultImage:{type:ControlType.ResponsiveImage,title:\"Image\",hidden(props){return props.type!==\"image\";}},// dark: {\n//     type: ControlType.Boolean,\n//     title: \"Dark Mode\",\n//     defaultValue: false,\n//     hidden(props) {\n//         return props.type !== \"image\"\n//     },\n// },\n// darkImage: {\n//     type: ControlType.ResponsiveImage,\n//     title: \"Dark Image\",\n//     hidden(props) {\n//         return props.dark\n//             ? props.type === \"image\"\n//                 ? false\n//                 : true\n//             : true\n//     },\n// },\nurlVideo:{type:ControlType.String,title:\"URL\",defaultValue:\"https://framerusercontent.com/assets/Jhocnrz23GM4PK1CT7mBiwAu5U.mp4\",// description: \"Use video will affect performance more.\",\nhidden(props){return props.file===\"url\"?props.type===\"video\"?false:true:true;}},upVideo:{type:ControlType.File,title:\"Upload\",allowedFileTypes:[\"mp4\",\"webm\"],description:\"Use video will affect performance more.\",hidden(props){return props.file===\"upload\"?props.type===\"video\"?false:true:true;}},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true,hidden(props){return props.type!==\"video\";}}},size:{fit:{type:ControlType.Enum,title:\"Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],defaultValue:\"cover\"}},animateControls:{type:{type:ControlType.Enum,title:\"Type\",options:[\"disable\",\"appear\",\"enter\",\"transform\",\"variant\"],optionTitles:[\"Disable\",\"Appear\",\"Enter\",\"Transform\",\"Variant\"],defaultValue:\"appear\"},replay:{type:ControlType.Boolean,title:\"Replay\",defaultValue:true,hidden(props){return props.type!==\"enter\";}},trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"layer\",\"section\"],optionTitles:[\"Layer in View\",\"Section in View\"],defaultValue:\"layer\",hidden(props){return props.type==\"appear\"||props.type==\"disable\"||props.type==\"variant\";}},section:{// @ts-ignore\ntype:ControlType.ScrollSectionRef,title:\"Section\",hidden(props){if((props.type===\"transform\"||props.type===\"enter\")&&props.trigger===\"section\"){return false;}return true;}},amount:{type:ControlType.Enum,title:\"Amount\",options:[1,.5,0],optionTitles:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,defaultValue:0,description:\"Play animation when how much of the media comes into view.\",hidden(props){return props.type!==\"enter\";}},viewport:{type:ControlType.Enum,title:\"Viewport\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,defaultValue:\"center\",description:\"Start transforming when how much of the media comes into view.\",hidden(props){return props.type!==\"transform\";}}},accessibility:{accessibility:{type:ControlType.Object,title:\"Accessibility\",buttonTitle:\"Aria Label\",icon:\"boolean\",// description: \"Learn more on [Reveals](https://reveals.cool).\",\ncontrols:{enableAria:{type:ControlType.Boolean,title:\"Aria Label\",defaultValue:false},compatibility:{type:ControlType.Boolean,title:\"Compatibility\",defaultValue:false,description:\"Disable effects and use regular *image/video* elements. e.g. use on Phone layout for better performance.\"},reduce:{type:ControlType.Enum,title:\"Reduce Motion\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[true,false],optionTitles:[\"Allow\",\"Block\"],defaultValue:false,description:\"Whether to allow Reduce Motion to control animation.\"},renderer:{type:ControlType.Enum,title:\"Renderer\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"auto\",\"always\"],optionTitles:[\"Auto\",\"Always\"],defaultValue:\"auto\",description:\"Control when the renderer will render.\"}}},ariaLabel:{type:ControlType.String,title:\"Aria Label\",defaultValue:\"\",hidden(props){return!props.accessibility.enableAria;}}},eventHandler:{onLoad:{type:ControlType.EventHandler,title:\"Load\"},onError:{type:ControlType.EventHandler,title:\"Error\"},onVideoEnd:{type:ControlType.EventHandler,title:\"Video End\"},onAnimationComplete:{type:ControlType.EventHandler,title:\"Animation Complete\"}}};\nexport const __FramerMetadata__ = {\"exports\":{\"DEFAULT_ALT_FLOWER_DARK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CompatibleMedia\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useDarkMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_ALT_FLOWER\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_IMAGE_FLOWER\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorToVec3\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_IMAGE_FLOWER_DARK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"propertyControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"GLUtils\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorToVec4\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMediaSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_IMAGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_ALT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"degToRad\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GLUtils.map","import{jsx as _jsx}from\"react/jsx-runtime\";export default function OGLUtils(props){return /*#__PURE__*/_jsx(\"div\",{});}export const calculatePlaneSize=(mediaWidth,mediaHeight,containerWidth,containerHeight,fitMode)=>{const mediaAspect=mediaWidth/mediaHeight;const containerAspect=containerWidth/containerHeight;let planeWidth,planeHeight;if(fitMode===\"cover\"){if(mediaAspect>containerAspect){planeHeight=containerHeight;planeWidth=containerHeight*mediaAspect;}else{planeWidth=containerWidth;planeHeight=containerWidth/mediaAspect;}}else if(fitMode===\"contain\"){if(mediaAspect>containerAspect){planeWidth=containerWidth;planeHeight=containerWidth/mediaAspect;}else{planeHeight=containerHeight;planeWidth=containerHeight*mediaAspect;}}return{width:planeWidth,height:planeHeight};};export const defaultPostProcessVertexShader=`\n    attribute vec2 uv;\n    attribute vec3 position;\n\n    varying vec2 vUv;\n\n    void main() {\n        vUv = uv;\n        gl_Position = vec4(position, 1.0);\n    }\n`;export const defaultPostProcessFragmentShader=`\n    precision highp float;\n\n    uniform sampler2D uTexture;\n    uniform float uTime;\n    uniform vec2 uResolution;\n\n    varying vec2 vUv;\n\n    void main() {\n        vec4 color = texture2D(uTexture, vUv);\n        gl_FragColor = color;\n    }\n`;export const defaultVertexShader=`\n        attribute vec3 position;\n        attribute vec2 uv;\n        uniform mat4 modelViewMatrix;\n        uniform mat4 projectionMatrix;\n        varying vec2 vUv;\n        \n        void main() {\n            vUv = uv;\n            gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n        }\n    `;export const defaultFragmentShader=`\n        precision mediump float;\n        \n        uniform sampler2D uTexture;\n        varying vec2 vUv;\n        \n        void main() {\n            vec4 textureColor = texture2D(uTexture, vUv);\n            gl_FragColor = textureColor;\n        }\n    `;\nexport const __FramerMetadata__ = {\"exports\":{\"defaultVertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"OGLUtils\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultPostProcessVertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultFragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultPostProcessFragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatePlaneSize\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OGLUtils.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{animate,MotionValue}from\"framer-motion\";export default function VariantValue(props){return /*#__PURE__*/_jsx(\"div\",{});}export const useVariantValues=(values,transition,enabled=true)=>{const[isAnimating,setIsAnimating]=useState(false);const motionValuesRef=useRef({});// 确保 motionValuesRef.current 拥有所有当前值的 MotionValue 实例\nfor(const key in values){if(!motionValuesRef.current[key]){motionValuesRef.current[key]=new MotionValue(values[key]);}}// Effect 用于处理值的更新（带或不带动画）\nuseEffect(()=>{// 如果禁用了动画，立即设置值并确保动画状态为 false\nif(!enabled){for(const key in values){const mv=motionValuesRef.current[key];const targetValue=values[key];if(mv&&mv.get()!==targetValue){// 直接设置值，不进行动画\nmv.set(targetValue);}}// 确保动画状态为 false\nif(isAnimating){setIsAnimating(false);}return;// 提前退出 effect\n}// --- 如果启用了动画，执行以下逻辑 ---\nconst allAnimations=[];let hasStartedAnimation=false;for(const key in values){const mv=motionValuesRef.current[key];const targetValue=values[key];if(mv&&mv.get()!==targetValue){hasStartedAnimation=true;const animationPromise=animate(mv,targetValue,transition);allAnimations.push(animationPromise);}}if(hasStartedAnimation){setIsAnimating(true);}// 等待所有动画完成\nPromise.all(allAnimations).then(()=>{if(hasStartedAnimation){setIsAnimating(false);}});// 清理函数\nreturn()=>{allAnimations.forEach(animationControl=>{animationControl.stop();});};// 将 enabled 添加到依赖数组\n},[JSON.stringify(values),transition,enabled]);return{variantValue:motionValuesRef.current,isVariantUpdating:isAnimating};};\nexport const __FramerMetadata__ = {\"exports\":{\"useVariantValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"VariantValue\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseVariantValue.map","import{jsx as _jsx}from\"react/jsx-runtime\";export default function AnimatedValue(props){return /*#__PURE__*/_jsx(\"div\",{});}import{useRef,useEffect,useState}from\"react\";import{useInView,useScroll}from\"framer-motion\";import{animate}from\"framer-motion\";export function useAnimatedValues(config,animateProp,transition,mountRef,enable=true){const values=useRef(Object.fromEntries(Object.entries(config).map(([key,{from}])=>[key,from])));const[isUpdating,setIsUpdating]=useState(false);const animationControlsRef=useRef(null);const targetRef=enable?animateProp.trigger===\"section\"&&animateProp.section?animateProp.section:mountRef:mountRef;const isInView=useInView(targetRef,{once:!animateProp.replay,amount:animateProp.amount});const{scrollYProgress}=useScroll({target:targetRef,layoutEffect:false,offset:animateProp.viewport===\"top\"?[\"start start\",\"end start\"]:animateProp.viewport===\"bottom\"?[\"start end\",\"start start\"]:[\"start center\",\"end center\"]});const[scrollProgress,setScrollProgress]=useState(0);// 只有在启用时才监听滚动进度变化\nuseEffect(()=>{if(enable&&animateProp.type===\"transform\"){const unsubscribe=scrollYProgress.onChange(latest=>{setScrollProgress(1-latest);});return unsubscribe;}},[scrollYProgress,animateProp.type,enable]);useEffect(()=>{// 清理之前的动画\nif(animationControlsRef.current){animationControlsRef.current.stop();animationControlsRef.current=null;}// 如果禁用，重置到初始值\nif(!enable){Object.entries(config).forEach(([key,{from}])=>{values.current[key]=from;});// 不需要手动设置 isUpdating，因为没有动画在运行\nreturn;}const targets={};const animatableTargets={};let shouldAnimate=false;let hasAnimatableValues=false;Object.entries(config).forEach(([key,{from,to}])=>{let targetValue;switch(animateProp.type){case\"appear\":targetValue=to;shouldAnimate=true;break;case\"enter\":targetValue=isInView?to:from;shouldAnimate=true;break;case\"transform\":targetValue=from+(to-from)*scrollProgress;shouldAnimate=true;break;default:values.current[key]=from;return;}targets[key]=targetValue;// 只有当值确实需要改变时才加入动画目标\nif(Math.abs(values.current[key]-targetValue)>.001){animatableTargets[key]=targetValue;hasAnimatableValues=true;}else{// 直接设置不需要动画的值\nvalues.current[key]=targetValue;}});// 如果不需要动画或没有可动画的值，直接返回\nif(!shouldAnimate||!hasAnimatableValues){return;}const controls=animate(values.current,animatableTargets,{...transition,restDelta:.001,restSpeed:.001,onComplete:()=>{setIsUpdating(false);animationControlsRef.current=null;},onUpdate:latest=>{if(!isUpdating){setIsUpdating(true);}}});animationControlsRef.current=controls;return()=>{if(controls){controls.stop();// setIsUpdating(false)\nanimationControlsRef.current=null;}};},[isInView,scrollProgress,animateProp.type,enable]);return{values:values.current,isUpdating};}export function useAnimatedProgress(animateProp,transition,mountRef,enable=true){const progressRef=useRef(1);const[progress,setProgress]=useState(1);const[isUpdatingProgress,setIsUpdatingProgress]=useState(false);const[scrollProgress,setScrollProgress]=useState(1);// 滚动动画 - 根据 enable 状态决定监听目标\nconst isInView=useInView(enable&&animateProp.trigger===\"section\"&&animateProp.section?animateProp.section:mountRef,{once:enable?!animateProp.replay:true,amount:enable?animateProp.amount:0});// 滚动进度 - 根据 enable 状态决定监听目标\nconst{scrollYProgress}=useScroll({target:enable&&animateProp.trigger===\"section\"&&animateProp.section?animateProp.section:mountRef,layoutEffect:false,offset:enable&&animateProp.viewport===\"top\"?[\"start start\",\"end start\"]:enable&&animateProp.viewport===\"bottom\"?[\"start end\",\"start start\"]:[\"start center\",\"end center\"]});// 监听滚动进度变化\nuseEffect(()=>{if(enable&&animateProp.type===\"transform\"){const unsubscribe=scrollYProgress.onChange(latest=>{setScrollProgress(1-latest);});return unsubscribe;}},[scrollYProgress,animateProp.type,enable]);// 动画控制逻辑\nuseEffect(()=>{// 如果禁用了 Hook，重置为默认状态\nif(!enable){progressRef.current=1;setProgress(1);setIsUpdatingProgress(false);return;}let targetValue=1;let shouldAnimate=false;switch(animateProp.type){case\"appear\":// 直接动画\ntargetValue=0;shouldAnimate=true;break;case\"enter\":// 滚动动画\ntargetValue=isInView?0:1;shouldAnimate=true;break;case\"transform\":// 滚动进度\ntargetValue=scrollProgress;shouldAnimate=true;break;default:progressRef.current=1;setProgress(1);setIsUpdatingProgress(false);return;}if(!shouldAnimate)return;setIsUpdatingProgress(true);const controls=animate(progressRef.current,targetValue,{...transition,restDelta:.001,restSpeed:.001,onUpdate:latest=>{progressRef.current=latest;setProgress(latest);},onComplete:()=>{setIsUpdatingProgress(false);}});return()=>{controls.stop();};},[enable,isInView,scrollProgress,animateProp.type,transition]);return{progress,isUpdatingProgress};}\nexport const __FramerMetadata__ = {\"exports\":{\"useAnimatedProgress\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"AnimatedValue\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAnimatedValues\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseAnimatedValue.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useState,useCallback}from\"react\";export default function Media(props){return /*#__PURE__*/_jsx(\"div\",{});}export function useMedia(src,mediaType=\"image\",loop=true,autoplay=true){const[mediaState,setMediaState]=useState({media:null,dimensions:{width:0,height:0},isLoaded:false,isError:false,isVideoPlaying:false,playVideo:null,pauseVideo:null});// 使用 ref 来存储当前的媒体元素，方便清理\nconst currentMediaRef=useRef(null);const loadMedia=useCallback((mediaSrc,type)=>{if(!mediaSrc)return;// 清理之前的媒体元素和事件监听器\nif(currentMediaRef.current){if(type===\"video\"){const video=currentMediaRef.current;video.pause();video.removeAttribute(\"src\");video.load();}currentMediaRef.current=null;}// 每次加载新媒体时，先重置所有状态\nsetMediaState(prev=>({...prev,media:null,dimensions:{width:0,height:0},isLoaded:false,isError:false,isVideoPlaying:false,playVideo:null,pauseVideo:null}));if(type===\"image\"){const img=new Image;img.crossOrigin=\"anonymous\";currentMediaRef.current=img;// 图片基础信息加载完成\nconst handleLoad=()=>{// 检查是否还是当前的媒体元素\nif(currentMediaRef.current!==img)return;setMediaState(prev=>({...prev,media:img,dimensions:{width:img.width,height:img.height},isError:false}));// 检查图片是否完全解码完成\nif(img.decode){// 使用 decode() 方法进行更严格的检查\nimg.decode().then(()=>{if(currentMediaRef.current!==img)return;setMediaState(prev=>({...prev,isLoaded:true,isVideoPlaying:false,playVideo:null,pauseVideo:null}));}).catch(()=>{if(currentMediaRef.current!==img)return;setMediaState(prev=>({...prev,isError:true,isLoaded:false}));});}else{// 降级处理：对于不支持 decode() 的浏览器\n// 使用 requestAnimationFrame 确保图片渲染就绪\nrequestAnimationFrame(()=>{if(currentMediaRef.current!==img)return;if(img.naturalWidth>0&&img.naturalHeight>0){setMediaState(prev=>({...prev,isLoaded:true,isVideoPlaying:false,playVideo:null,pauseVideo:null}));}else{setMediaState(prev=>({...prev,isError:true,isLoaded:false}));}});}};const handleError=()=>{if(currentMediaRef.current!==img)return;setMediaState(prev=>({...prev,isError:true,isLoaded:false}));};img.addEventListener(\"load\",handleLoad);img.addEventListener(\"error\",handleError);img.src=mediaSrc;}else if(type===\"video\"){const video=document.createElement(\"video\");video.crossOrigin=\"anonymous\";video.muted=true;video.loop=loop;video.playsInline=true;video.preload=\"metadata\";currentMediaRef.current=video;// 确保每次创建新视频时状态都是初始的\nlet isVideoReady=false;// 视频基础信息加载完成\nconst handleLoadedMetadata=()=>{if(currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,media:video,dimensions:{width:video.videoWidth,height:video.videoHeight},isError:false,isLoaded:false}));};// 检查视频是否可以开始播放（readyState >= 2）\nconst checkVideoReady=()=>{// 防止重复触发和处理已废弃的视频元素\nif(isVideoReady||currentMediaRef.current!==video)return;if(video.readyState>=2){isVideoReady=true;const playVideo=()=>{return video.play().catch(console.error);};const pauseVideo=()=>{video.pause();};setMediaState(prev=>({...prev,isLoaded:true,isVideoPlaying:autoplay,playVideo,pauseVideo}));// 确保视频显示第一帧作为封面\nif(!autoplay){video.currentTime=0;}else{playVideo();}}};// 视频可以完整播放\nconst handleCanPlayThrough=()=>{checkVideoReady();};// 视频有足够数据播放当前帧\nconst handleLoadedData=()=>{checkVideoReady();};// 视频状态改变时检查\nconst handleReadyStateChange=()=>{checkVideoReady();};const handleError=()=>{if(currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,isError:true,isLoaded:false}));};// 视频播放结束时\nconst handleVideoEnd=()=>{if(currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,isVideoPlaying:false}));};// 视频开始播放时\nconst handleVideoPlay=()=>{if(currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,isVideoPlaying:true}));};// 视频暂停时\nconst handleVideoPause=()=>{if(currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,isVideoPlaying:false}));};// 视频等待数据时（缓冲）\nconst handleVideoWaiting=()=>{if(currentMediaRef.current!==video)return;};video.addEventListener(\"loadedmetadata\",handleLoadedMetadata);video.addEventListener(\"loadeddata\",handleLoadedData);video.addEventListener(\"canplaythrough\",handleCanPlayThrough);video.addEventListener(\"readystatechange\",handleReadyStateChange);video.addEventListener(\"error\",handleError);video.addEventListener(\"ended\",handleVideoEnd);video.addEventListener(\"play\",handleVideoPlay);video.addEventListener(\"pause\",handleVideoPause);video.addEventListener(\"waiting\",handleVideoWaiting);video.src=mediaSrc;}},[loop,autoplay]);useEffect(()=>{loadMedia(src,mediaType);// 清理函数\nreturn()=>{if(currentMediaRef.current){if(mediaType===\"video\"){const video=currentMediaRef.current;video.pause();video.removeAttribute(\"src\");video.load();}currentMediaRef.current=null;}};},[src,mediaType,loadMedia]);return mediaState;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Media\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMedia\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseMedia.map","const EPSILON = 0.000001;\n\n/**\n * Calculates the length of a vec3\n *\n * @param {vec3} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    return Math.sqrt(x * x + y * y + z * z);\n}\n\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the source vector\n * @returns {vec3} out\n */\nexport function copy(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    return out;\n}\n\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\nexport function set(out, x, y, z) {\n    out[0] = x;\n    out[1] = y;\n    out[2] = z;\n    return out;\n}\n\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function add(out, a, b) {\n    out[0] = a[0] + b[0];\n    out[1] = a[1] + b[1];\n    out[2] = a[2] + b[2];\n    return out;\n}\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function subtract(out, a, b) {\n    out[0] = a[0] - b[0];\n    out[1] = a[1] - b[1];\n    out[2] = a[2] - b[2];\n    return out;\n}\n\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function multiply(out, a, b) {\n    out[0] = a[0] * b[0];\n    out[1] = a[1] * b[1];\n    out[2] = a[2] * b[2];\n    return out;\n}\n\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function divide(out, a, b) {\n    out[0] = a[0] / b[0];\n    out[1] = a[1] / b[1];\n    out[2] = a[2] / b[2];\n    return out;\n}\n\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\nexport function scale(out, a, b) {\n    out[0] = a[0] * b;\n    out[1] = a[1] * b;\n    out[2] = a[2] * b;\n    return out;\n}\n\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} distance between a and b\n */\nexport function distance(a, b) {\n    let x = b[0] - a[0];\n    let y = b[1] - a[1];\n    let z = b[2] - a[2];\n    return Math.sqrt(x * x + y * y + z * z);\n}\n\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\nexport function squaredDistance(a, b) {\n    let x = b[0] - a[0];\n    let y = b[1] - a[1];\n    let z = b[2] - a[2];\n    return x * x + y * y + z * z;\n}\n\n/**\n * Calculates the squared length of a vec3\n *\n * @param {vec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nexport function squaredLength(a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    return x * x + y * y + z * z;\n}\n\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to negate\n * @returns {vec3} out\n */\nexport function negate(out, a) {\n    out[0] = -a[0];\n    out[1] = -a[1];\n    out[2] = -a[2];\n    return out;\n}\n\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to invert\n * @returns {vec3} out\n */\nexport function inverse(out, a) {\n    out[0] = 1.0 / a[0];\n    out[1] = 1.0 / a[1];\n    out[2] = 1.0 / a[2];\n    return out;\n}\n\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to normalize\n * @returns {vec3} out\n */\nexport function normalize(out, a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    let len = x * x + y * y + z * z;\n    if (len > 0) {\n        //TODO: evaluate use of glm_invsqrt here?\n        len = 1 / Math.sqrt(len);\n    }\n    out[0] = a[0] * len;\n    out[1] = a[1] * len;\n    out[2] = a[2] * len;\n    return out;\n}\n\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function cross(out, a, b) {\n    let ax = a[0],\n        ay = a[1],\n        az = a[2];\n    let bx = b[0],\n        by = b[1],\n        bz = b[2];\n\n    out[0] = ay * bz - az * by;\n    out[1] = az * bx - ax * bz;\n    out[2] = ax * by - ay * bx;\n    return out;\n}\n\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec3} out\n */\nexport function lerp(out, a, b, t) {\n    let ax = a[0];\n    let ay = a[1];\n    let az = a[2];\n    out[0] = ax + t * (b[0] - ax);\n    out[1] = ay + t * (b[1] - ay);\n    out[2] = az + t * (b[2] - az);\n    return out;\n}\n\n/**\n * Performs a frame rate independant, linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} decay decay constant for interpolation. useful range between 1 and 25, from slow to fast.\n * @param {Number} dt delta time\n * @returns {vec3} out\n */\nexport function smoothLerp(out, a, b, decay, dt) {\n    const exp = Math.exp(-decay * dt);\n    let ax = a[0];\n    let ay = a[1];\n    let az = a[2];\n\n    out[0] = b[0] + (ax - b[0]) * exp;\n    out[1] = b[1] + (ay - b[1]) * exp;\n    out[2] = b[2] + (az - b[2]) * exp;\n    return out;\n}\n\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {mat4} m matrix to transform with\n * @returns {vec3} out\n */\nexport function transformMat4(out, a, m) {\n    let x = a[0],\n        y = a[1],\n        z = a[2];\n    let w = m[3] * x + m[7] * y + m[11] * z + m[15];\n    w = w || 1.0;\n    out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n    out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n    out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n    return out;\n}\n\n/**\n * Same as above but doesn't apply translation.\n * Useful for rays.\n */\nexport function scaleRotateMat4(out, a, m) {\n    let x = a[0],\n        y = a[1],\n        z = a[2];\n    let w = m[3] * x + m[7] * y + m[11] * z + m[15];\n    w = w || 1.0;\n    out[0] = (m[0] * x + m[4] * y + m[8] * z) / w;\n    out[1] = (m[1] * x + m[5] * y + m[9] * z) / w;\n    out[2] = (m[2] * x + m[6] * y + m[10] * z) / w;\n    return out;\n}\n\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {mat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\nexport function transformMat3(out, a, m) {\n    let x = a[0],\n        y = a[1],\n        z = a[2];\n    out[0] = x * m[0] + y * m[3] + z * m[6];\n    out[1] = x * m[1] + y * m[4] + z * m[7];\n    out[2] = x * m[2] + y * m[5] + z * m[8];\n    return out;\n}\n\n/**\n * Transforms the vec3 with a quat\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {quat} q quaternion to transform with\n * @returns {vec3} out\n */\nexport function transformQuat(out, a, q) {\n    // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n\n    let x = a[0],\n        y = a[1],\n        z = a[2];\n    let qx = q[0],\n        qy = q[1],\n        qz = q[2],\n        qw = q[3];\n\n    let uvx = qy * z - qz * y;\n    let uvy = qz * x - qx * z;\n    let uvz = qx * y - qy * x;\n\n    let uuvx = qy * uvz - qz * uvy;\n    let uuvy = qz * uvx - qx * uvz;\n    let uuvz = qx * uvy - qy * uvx;\n\n    let w2 = qw * 2;\n    uvx *= w2;\n    uvy *= w2;\n    uvz *= w2;\n\n    uuvx *= 2;\n    uuvy *= 2;\n    uuvz *= 2;\n\n    out[0] = x + uvx + uuvx;\n    out[1] = y + uvy + uuvy;\n    out[2] = z + uvz + uuvz;\n    return out;\n}\n\n/**\n * Get the angle between two 3D vectors\n * @param {vec3} a The first operand\n * @param {vec3} b The second operand\n * @returns {Number} The angle in radians\n */\nexport const angle = (function () {\n    const tempA = [0, 0, 0];\n    const tempB = [0, 0, 0];\n\n    return function (a, b) {\n        copy(tempA, a);\n        copy(tempB, b);\n\n        normalize(tempA, tempA);\n        normalize(tempB, tempB);\n\n        let cosine = dot(tempA, tempB);\n\n        if (cosine > 1.0) {\n            return 0;\n        } else if (cosine < -1.0) {\n            return Math.PI;\n        } else {\n            return Math.acos(cosine);\n        }\n    };\n})();\n\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {vec3} a The first vector.\n * @param {vec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n    return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n","import * as Vec3Func from './functions/Vec3Func.js';\n\nexport class Vec3 extends Array {\n    constructor(x = 0, y = x, z = x) {\n        super(x, y, z);\n        return this;\n    }\n\n    get x() {\n        return this[0];\n    }\n\n    get y() {\n        return this[1];\n    }\n\n    get z() {\n        return this[2];\n    }\n\n    set x(v) {\n        this[0] = v;\n    }\n\n    set y(v) {\n        this[1] = v;\n    }\n\n    set z(v) {\n        this[2] = v;\n    }\n\n    set(x, y = x, z = x) {\n        if (x.length) return this.copy(x);\n        Vec3Func.set(this, x, y, z);\n        return this;\n    }\n\n    copy(v) {\n        Vec3Func.copy(this, v);\n        return this;\n    }\n\n    add(va, vb) {\n        if (vb) Vec3Func.add(this, va, vb);\n        else Vec3Func.add(this, this, va);\n        return this;\n    }\n\n    sub(va, vb) {\n        if (vb) Vec3Func.subtract(this, va, vb);\n        else Vec3Func.subtract(this, this, va);\n        return this;\n    }\n\n    multiply(v) {\n        if (v.length) Vec3Func.multiply(this, this, v);\n        else Vec3Func.scale(this, this, v);\n        return this;\n    }\n\n    divide(v) {\n        if (v.length) Vec3Func.divide(this, this, v);\n        else Vec3Func.scale(this, this, 1 / v);\n        return this;\n    }\n\n    inverse(v = this) {\n        Vec3Func.inverse(this, v);\n        return this;\n    }\n\n    // Can't use 'length' as Array.prototype uses it\n    len() {\n        return Vec3Func.length(this);\n    }\n\n    distance(v) {\n        if (v) return Vec3Func.distance(this, v);\n        else return Vec3Func.length(this);\n    }\n\n    squaredLen() {\n        return Vec3Func.squaredLength(this);\n    }\n\n    squaredDistance(v) {\n        if (v) return Vec3Func.squaredDistance(this, v);\n        else return Vec3Func.squaredLength(this);\n    }\n\n    negate(v = this) {\n        Vec3Func.negate(this, v);\n        return this;\n    }\n\n    cross(va, vb) {\n        if (vb) Vec3Func.cross(this, va, vb);\n        else Vec3Func.cross(this, this, va);\n        return this;\n    }\n\n    scale(v) {\n        Vec3Func.scale(this, this, v);\n        return this;\n    }\n\n    normalize() {\n        Vec3Func.normalize(this, this);\n        return this;\n    }\n\n    dot(v) {\n        return Vec3Func.dot(this, v);\n    }\n\n    equals(v) {\n        return Vec3Func.exactEquals(this, v);\n    }\n\n    applyMatrix3(mat3) {\n        Vec3Func.transformMat3(this, this, mat3);\n        return this;\n    }\n\n    applyMatrix4(mat4) {\n        Vec3Func.transformMat4(this, this, mat4);\n        return this;\n    }\n\n    scaleRotateMatrix4(mat4) {\n        Vec3Func.scaleRotateMat4(this, this, mat4);\n        return this;\n    }\n\n    applyQuaternion(q) {\n        Vec3Func.transformQuat(this, this, q);\n        return this;\n    }\n\n    angle(v) {\n        return Vec3Func.angle(this, v);\n    }\n\n    lerp(v, t) {\n        Vec3Func.lerp(this, this, v, t);\n        return this;\n    }\n\n    smoothLerp(v, decay, dt) {\n        Vec3Func.smoothLerp(this, this, v, decay, dt);\n        return this;\n    }\n\n    clone() {\n        return new Vec3(this[0], this[1], this[2]);\n    }\n\n    fromArray(a, o = 0) {\n        this[0] = a[o];\n        this[1] = a[o + 1];\n        this[2] = a[o + 2];\n        return this;\n    }\n\n    toArray(a = [], o = 0) {\n        a[o] = this[0];\n        a[o + 1] = this[1];\n        a[o + 2] = this[2];\n        return a;\n    }\n\n    transformDirection(mat4) {\n        const x = this[0];\n        const y = this[1];\n        const z = this[2];\n\n        this[0] = mat4[0] * x + mat4[4] * y + mat4[8] * z;\n        this[1] = mat4[1] * x + mat4[5] * y + mat4[9] * z;\n        this[2] = mat4[2] * x + mat4[6] * y + mat4[10] * z;\n\n        return this.normalize();\n    }\n}\n","// attribute params\n// {\n//     data - typed array eg UInt16Array for indices, Float32Array\n//     size - int default 1\n//     instanced - default null. Pass divisor amount\n//     type - gl enum default gl.UNSIGNED_SHORT for 'index', gl.FLOAT for others\n//     normalized - boolean default false\n\n//     buffer - gl buffer, if buffer exists, don't need to provide data - although needs position data for bounds calculation\n//     stride - default 0 - for when passing in buffer\n//     offset - default 0 - for when passing in buffer\n//     count - default null - for when passing in buffer\n//     min - array - for when passing in buffer\n//     max - array - for when passing in buffer\n// }\n\n// TODO: fit in transform feedback\n\nimport { Vec3 } from '../math/Vec3.js';\n\nconst tempVec3 = /* @__PURE__ */ new Vec3();\n\nlet ID = 1;\nlet ATTR_ID = 1;\n\n// To stop inifinite warnings\nlet isBoundsWarned = false;\n\nexport class Geometry {\n    constructor(gl, attributes = {}) {\n        if (!gl.canvas) console.error('gl not passed as first argument to Geometry');\n        this.gl = gl;\n        this.attributes = attributes;\n        this.id = ID++;\n\n        // Store one VAO per program attribute locations order\n        this.VAOs = {};\n\n        this.drawRange = { start: 0, count: 0 };\n        this.instancedCount = 0;\n\n        // Unbind current VAO so that new buffers don't get added to active mesh\n        this.gl.renderer.bindVertexArray(null);\n        this.gl.renderer.currentGeometry = null;\n\n        // Alias for state store to avoid redundant calls for global state\n        this.glState = this.gl.renderer.state;\n\n        // create the buffers\n        for (let key in attributes) {\n            this.addAttribute(key, attributes[key]);\n        }\n    }\n\n    addAttribute(key, attr) {\n        this.attributes[key] = attr;\n\n        // Set options\n        attr.id = ATTR_ID++; // TODO: currently unused, remove?\n        attr.size = attr.size || 1;\n        attr.type =\n            attr.type ||\n            (attr.data.constructor === Float32Array\n                ? this.gl.FLOAT\n                : attr.data.constructor === Uint16Array\n                ? this.gl.UNSIGNED_SHORT\n                : this.gl.UNSIGNED_INT); // Uint32Array\n        attr.target = key === 'index' ? this.gl.ELEMENT_ARRAY_BUFFER : this.gl.ARRAY_BUFFER;\n        attr.normalized = attr.normalized || false;\n        attr.stride = attr.stride || 0;\n        attr.offset = attr.offset || 0;\n        attr.count = attr.count || (attr.stride ? attr.data.byteLength / attr.stride : attr.data.length / attr.size);\n        attr.divisor = attr.instanced || 0;\n        attr.needsUpdate = false;\n        attr.usage = attr.usage || this.gl.STATIC_DRAW;\n\n        if (!attr.buffer) {\n            // Push data to buffer\n            this.updateAttribute(attr);\n        }\n\n        // Update geometry counts. If indexed, ignore regular attributes\n        if (attr.divisor) {\n            this.isInstanced = true;\n            if (this.instancedCount && this.instancedCount !== attr.count * attr.divisor) {\n                console.warn('geometry has multiple instanced buffers of different length');\n                return (this.instancedCount = Math.min(this.instancedCount, attr.count * attr.divisor));\n            }\n            this.instancedCount = attr.count * attr.divisor;\n        } else if (key === 'index') {\n            this.drawRange.count = attr.count;\n        } else if (!this.attributes.index) {\n            this.drawRange.count = Math.max(this.drawRange.count, attr.count);\n        }\n    }\n\n    updateAttribute(attr) {\n        const isNewBuffer = !attr.buffer;\n        if (isNewBuffer) attr.buffer = this.gl.createBuffer();\n        if (this.glState.boundBuffer !== attr.buffer) {\n            this.gl.bindBuffer(attr.target, attr.buffer);\n            this.glState.boundBuffer = attr.buffer;\n        }\n        if (isNewBuffer) {\n            this.gl.bufferData(attr.target, attr.data, attr.usage);\n        } else {\n            this.gl.bufferSubData(attr.target, 0, attr.data);\n        }\n        attr.needsUpdate = false;\n    }\n\n    setIndex(value) {\n        this.addAttribute('index', value);\n    }\n\n    setDrawRange(start, count) {\n        this.drawRange.start = start;\n        this.drawRange.count = count;\n    }\n\n    setInstancedCount(value) {\n        this.instancedCount = value;\n    }\n\n    createVAO(program) {\n        this.VAOs[program.attributeOrder] = this.gl.renderer.createVertexArray();\n        this.gl.renderer.bindVertexArray(this.VAOs[program.attributeOrder]);\n        this.bindAttributes(program);\n    }\n\n    bindAttributes(program) {\n        // Link all attributes to program using gl.vertexAttribPointer\n        program.attributeLocations.forEach((location, { name, type }) => {\n            // If geometry missing a required shader attribute\n            if (!this.attributes[name]) {\n                console.warn(`active attribute ${name} not being supplied`);\n                return;\n            }\n\n            const attr = this.attributes[name];\n\n            this.gl.bindBuffer(attr.target, attr.buffer);\n            this.glState.boundBuffer = attr.buffer;\n\n            // For matrix attributes, buffer needs to be defined per column\n            let numLoc = 1;\n            if (type === 35674) numLoc = 2; // mat2\n            if (type === 35675) numLoc = 3; // mat3\n            if (type === 35676) numLoc = 4; // mat4\n\n            const size = attr.size / numLoc;\n            const stride = numLoc === 1 ? 0 : numLoc * numLoc * 4;\n            const offset = numLoc === 1 ? 0 : numLoc * 4;\n\n            for (let i = 0; i < numLoc; i++) {\n                this.gl.vertexAttribPointer(location + i, size, attr.type, attr.normalized, attr.stride + stride, attr.offset + i * offset);\n                this.gl.enableVertexAttribArray(location + i);\n\n                // For instanced attributes, divisor needs to be set.\n                // For firefox, need to set back to 0 if non-instanced drawn after instanced. Else won't render\n                this.gl.renderer.vertexAttribDivisor(location + i, attr.divisor);\n            }\n        });\n\n        // Bind indices if geometry indexed\n        if (this.attributes.index) this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, this.attributes.index.buffer);\n    }\n\n    draw({ program, mode = this.gl.TRIANGLES }) {\n        if (this.gl.renderer.currentGeometry !== `${this.id}_${program.attributeOrder}`) {\n            if (!this.VAOs[program.attributeOrder]) this.createVAO(program);\n            this.gl.renderer.bindVertexArray(this.VAOs[program.attributeOrder]);\n            this.gl.renderer.currentGeometry = `${this.id}_${program.attributeOrder}`;\n        }\n\n        // Check if any attributes need updating\n        program.attributeLocations.forEach((location, { name }) => {\n            const attr = this.attributes[name];\n            if (attr.needsUpdate) this.updateAttribute(attr);\n        });\n\n        // For drawElements, offset needs to be multiple of type size\n        let indexBytesPerElement = 2;\n        if (this.attributes.index?.type === this.gl.UNSIGNED_INT) indexBytesPerElement = 4;\n\n        if (this.isInstanced) {\n            if (this.attributes.index) {\n                this.gl.renderer.drawElementsInstanced(\n                    mode,\n                    this.drawRange.count,\n                    this.attributes.index.type,\n                    this.attributes.index.offset + this.drawRange.start * indexBytesPerElement,\n                    this.instancedCount\n                );\n            } else {\n                this.gl.renderer.drawArraysInstanced(mode, this.drawRange.start, this.drawRange.count, this.instancedCount);\n            }\n        } else {\n            if (this.attributes.index) {\n                this.gl.drawElements(\n                    mode,\n                    this.drawRange.count,\n                    this.attributes.index.type,\n                    this.attributes.index.offset + this.drawRange.start * indexBytesPerElement\n                );\n            } else {\n                this.gl.drawArrays(mode, this.drawRange.start, this.drawRange.count);\n            }\n        }\n    }\n\n    getPosition() {\n        // Use position buffer, or min/max if available\n        const attr = this.attributes.position;\n        // if (attr.min) return [...attr.min, ...attr.max];\n        if (attr.data) return attr;\n        if (isBoundsWarned) return;\n        console.warn('No position buffer data found to compute bounds');\n        return (isBoundsWarned = true);\n    }\n\n    computeBoundingBox(attr) {\n        if (!attr) attr = this.getPosition();\n        const array = attr.data;\n        // Data loaded shouldn't haave stride, only buffers\n        // const stride = attr.stride ? attr.stride / array.BYTES_PER_ELEMENT : attr.size;\n        const stride = attr.size;\n\n        if (!this.bounds) {\n            this.bounds = {\n                min: new Vec3(),\n                max: new Vec3(),\n                center: new Vec3(),\n                scale: new Vec3(),\n                radius: Infinity,\n            };\n        }\n\n        const min = this.bounds.min;\n        const max = this.bounds.max;\n        const center = this.bounds.center;\n        const scale = this.bounds.scale;\n\n        min.set(+Infinity);\n        max.set(-Infinity);\n\n        // TODO: check size of position (eg triangle with Vec2)\n        for (let i = 0, l = array.length; i < l; i += stride) {\n            const x = array[i];\n            const y = array[i + 1];\n            const z = array[i + 2];\n\n            min.x = Math.min(x, min.x);\n            min.y = Math.min(y, min.y);\n            min.z = Math.min(z, min.z);\n\n            max.x = Math.max(x, max.x);\n            max.y = Math.max(y, max.y);\n            max.z = Math.max(z, max.z);\n        }\n\n        scale.sub(max, min);\n        center.add(min, max).divide(2);\n    }\n\n    computeBoundingSphere(attr) {\n        if (!attr) attr = this.getPosition();\n        const array = attr.data;\n        // Data loaded shouldn't haave stride, only buffers\n        // const stride = attr.stride ? attr.stride / array.BYTES_PER_ELEMENT : attr.size;\n        const stride = attr.size;\n\n        if (!this.bounds) this.computeBoundingBox(attr);\n\n        let maxRadiusSq = 0;\n        for (let i = 0, l = array.length; i < l; i += stride) {\n            tempVec3.fromArray(array, i);\n            maxRadiusSq = Math.max(maxRadiusSq, this.bounds.center.squaredDistance(tempVec3));\n        }\n\n        this.bounds.radius = Math.sqrt(maxRadiusSq);\n    }\n\n    remove() {\n        for (let key in this.VAOs) {\n            this.gl.renderer.deleteVertexArray(this.VAOs[key]);\n            delete this.VAOs[key];\n        }\n        for (let key in this.attributes) {\n            this.gl.deleteBuffer(this.attributes[key].buffer);\n            delete this.attributes[key];\n        }\n    }\n}\n","// TODO: upload empty texture if null ? maybe not\n// TODO: upload identity matrix if null ?\n// TODO: sampler Cube\n\nlet ID = 1;\n\n// cache of typed arrays used to flatten uniform arrays\nconst arrayCacheF32 = {};\n\nexport class Program {\n    constructor(\n        gl,\n        {\n            vertex,\n            fragment,\n            uniforms = {},\n\n            transparent = false,\n            cullFace = gl.BACK,\n            frontFace = gl.CCW,\n            depthTest = true,\n            depthWrite = true,\n            depthFunc = gl.LEQUAL,\n        } = {}\n    ) {\n        if (!gl.canvas) console.error('gl not passed as first argument to Program');\n        this.gl = gl;\n        this.uniforms = uniforms;\n        this.id = ID++;\n\n        if (!vertex) console.warn('vertex shader not supplied');\n        if (!fragment) console.warn('fragment shader not supplied');\n\n        // Store program state\n        this.transparent = transparent;\n        this.cullFace = cullFace;\n        this.frontFace = frontFace;\n        this.depthTest = depthTest;\n        this.depthWrite = depthWrite;\n        this.depthFunc = depthFunc;\n        this.blendFunc = {};\n        this.blendEquation = {};\n        this.stencilFunc = {};\n        this.stencilOp = {}\n\n        // set default blendFunc if transparent flagged\n        if (this.transparent && !this.blendFunc.src) {\n            if (this.gl.renderer.premultipliedAlpha) this.setBlendFunc(this.gl.ONE, this.gl.ONE_MINUS_SRC_ALPHA);\n            else this.setBlendFunc(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA);\n        }\n\n        // Create empty shaders and attach to program\n        this.vertexShader = gl.createShader(gl.VERTEX_SHADER);\n        this.fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n        this.program = gl.createProgram();\n        gl.attachShader(this.program, this.vertexShader);\n        gl.attachShader(this.program, this.fragmentShader);\n\n        // Compile shaders with source\n        this.setShaders({ vertex, fragment });\n    }\n\n    setShaders({ vertex, fragment }) {\n        if (vertex) {\n            // compile vertex shader and log errors\n            this.gl.shaderSource(this.vertexShader, vertex);\n            this.gl.compileShader(this.vertexShader);\n            if (this.gl.getShaderInfoLog(this.vertexShader) !== '') {\n                console.warn(`${this.gl.getShaderInfoLog(this.vertexShader)}\\nVertex Shader\\n${addLineNumbers(vertex)}`);\n            }\n        }\n\n        if (fragment) {\n            // compile fragment shader and log errors\n            this.gl.shaderSource(this.fragmentShader, fragment);\n            this.gl.compileShader(this.fragmentShader);\n            if (this.gl.getShaderInfoLog(this.fragmentShader) !== '') {\n                console.warn(`${this.gl.getShaderInfoLog(this.fragmentShader)}\\nFragment Shader\\n${addLineNumbers(fragment)}`);\n            }\n        }\n\n        // compile program and log errors\n        this.gl.linkProgram(this.program);\n        if (!this.gl.getProgramParameter(this.program, this.gl.LINK_STATUS)) {\n            return console.warn(this.gl.getProgramInfoLog(this.program));\n        }\n\n        // Get active uniform locations\n        this.uniformLocations = new Map();\n        let numUniforms = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_UNIFORMS);\n        for (let uIndex = 0; uIndex < numUniforms; uIndex++) {\n            let uniform = this.gl.getActiveUniform(this.program, uIndex);\n            this.uniformLocations.set(uniform, this.gl.getUniformLocation(this.program, uniform.name));\n\n            // split uniforms' names to separate array and struct declarations\n            const split = uniform.name.match(/(\\w+)/g);\n\n            uniform.uniformName = split[0];\n            uniform.nameComponents = split.slice(1);\n        }\n\n        // Get active attribute locations\n        this.attributeLocations = new Map();\n        const locations = [];\n        const numAttribs = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES);\n        for (let aIndex = 0; aIndex < numAttribs; aIndex++) {\n            const attribute = this.gl.getActiveAttrib(this.program, aIndex);\n            const location = this.gl.getAttribLocation(this.program, attribute.name);\n            // Ignore special built-in inputs. eg gl_VertexID, gl_InstanceID\n            if (location === -1) continue;\n            locations[location] = attribute.name;\n            this.attributeLocations.set(attribute, location);\n        }\n        this.attributeOrder = locations.join('');\n    }\n\n    setBlendFunc(src, dst, srcAlpha, dstAlpha) {\n        this.blendFunc.src = src;\n        this.blendFunc.dst = dst;\n        this.blendFunc.srcAlpha = srcAlpha;\n        this.blendFunc.dstAlpha = dstAlpha;\n        if (src) this.transparent = true;\n    }\n\n    setBlendEquation(modeRGB, modeAlpha) {\n        this.blendEquation.modeRGB = modeRGB;\n        this.blendEquation.modeAlpha = modeAlpha;\n    }\n\n    setStencilFunc(func, ref, mask) {\n        this.stencilRef = ref;\n        this.stencilFunc.func = func;\n        this.stencilFunc.ref = ref;\n        this.stencilFunc.mask = mask;\n    }\n\n    setStencilOp(stencilFail, depthFail, depthPass) {\n        this.stencilOp.stencilFail = stencilFail;\n        this.stencilOp.depthFail = depthFail;\n        this.stencilOp.depthPass = depthPass;\n    }\n\n    applyState() {\n        if (this.depthTest) this.gl.renderer.enable(this.gl.DEPTH_TEST);\n        else this.gl.renderer.disable(this.gl.DEPTH_TEST);\n\n        if (this.cullFace) this.gl.renderer.enable(this.gl.CULL_FACE);\n        else this.gl.renderer.disable(this.gl.CULL_FACE);\n\n        if (this.blendFunc.src) this.gl.renderer.enable(this.gl.BLEND);\n        else this.gl.renderer.disable(this.gl.BLEND);\n\n        if (this.cullFace) this.gl.renderer.setCullFace(this.cullFace);\n        this.gl.renderer.setFrontFace(this.frontFace);\n        this.gl.renderer.setDepthMask(this.depthWrite);\n        this.gl.renderer.setDepthFunc(this.depthFunc);\n        if (this.blendFunc.src) this.gl.renderer.setBlendFunc(this.blendFunc.src, this.blendFunc.dst, this.blendFunc.srcAlpha, this.blendFunc.dstAlpha);\n        this.gl.renderer.setBlendEquation(this.blendEquation.modeRGB, this.blendEquation.modeAlpha);\n\n        if(this.stencilFunc.func || this.stencilOp.stencilFail) this.gl.renderer.enable(this.gl.STENCIL_TEST)\n            else this.gl.renderer.disable(this.gl.STENCIL_TEST)\n\n        this.gl.renderer.setStencilFunc(this.stencilFunc.func, this.stencilFunc.ref, this.stencilFunc.mask)\n        this.gl.renderer.setStencilOp(this.stencilOp.stencilFail, this.stencilOp.depthFail, this.stencilOp.depthPass)\n\n    }\n\n    use({ flipFaces = false } = {}) {\n        let textureUnit = -1;\n        const programActive = this.gl.renderer.state.currentProgram === this.id;\n\n        // Avoid gl call if program already in use\n        if (!programActive) {\n            this.gl.useProgram(this.program);\n            this.gl.renderer.state.currentProgram = this.id;\n        }\n\n        // Set only the active uniforms found in the shader\n        this.uniformLocations.forEach((location, activeUniform) => {\n            let uniform = this.uniforms[activeUniform.uniformName];\n\n            for (const component of activeUniform.nameComponents) {\n                if (!uniform) break;\n\n                if (component in uniform) {\n                    uniform = uniform[component];\n                } else if (Array.isArray(uniform.value)) {\n                    break;\n                } else {\n                    uniform = undefined;\n                    break;\n                }\n            }\n\n            if (!uniform) {\n                return warn(`Active uniform ${activeUniform.name} has not been supplied`);\n            }\n\n            if (uniform && uniform.value === undefined) {\n                return warn(`${activeUniform.name} uniform is missing a value parameter`);\n            }\n\n            if (uniform.value.texture) {\n                textureUnit = textureUnit + 1;\n\n                // Check if texture needs to be updated\n                uniform.value.update(textureUnit);\n                return setUniform(this.gl, activeUniform.type, location, textureUnit);\n            }\n\n            // For texture arrays, set uniform as an array of texture units instead of just one\n            if (uniform.value.length && uniform.value[0].texture) {\n                const textureUnits = [];\n                uniform.value.forEach((value) => {\n                    textureUnit = textureUnit + 1;\n                    value.update(textureUnit);\n                    textureUnits.push(textureUnit);\n                });\n\n                return setUniform(this.gl, activeUniform.type, location, textureUnits);\n            }\n\n            setUniform(this.gl, activeUniform.type, location, uniform.value);\n        });\n\n        this.applyState();\n        if (flipFaces) this.gl.renderer.setFrontFace(this.frontFace === this.gl.CCW ? this.gl.CW : this.gl.CCW);\n    }\n\n    remove() {\n        this.gl.deleteProgram(this.program);\n    }\n}\n\nfunction setUniform(gl, type, location, value) {\n    value = value.length ? flatten(value) : value;\n    const setValue = gl.renderer.state.uniformLocations.get(location);\n\n    // Avoid redundant uniform commands\n    if (value.length) {\n        if (setValue === undefined || setValue.length !== value.length) {\n            // clone array to store as cache\n            gl.renderer.state.uniformLocations.set(location, value.slice(0));\n        } else {\n            if (arraysEqual(setValue, value)) return;\n\n            // Update cached array values\n            setValue.set ? setValue.set(value) : setArray(setValue, value);\n            gl.renderer.state.uniformLocations.set(location, setValue);\n        }\n    } else {\n        if (setValue === value) return;\n        gl.renderer.state.uniformLocations.set(location, value);\n    }\n\n    switch (type) {\n        case 5126:\n            return value.length ? gl.uniform1fv(location, value) : gl.uniform1f(location, value); // FLOAT\n        case 35664:\n            return gl.uniform2fv(location, value); // FLOAT_VEC2\n        case 35665:\n            return gl.uniform3fv(location, value); // FLOAT_VEC3\n        case 35666:\n            return gl.uniform4fv(location, value); // FLOAT_VEC4\n        case 35670: // BOOL\n        case 5124: // INT\n        case 35678: // SAMPLER_2D\n        case 36306: // U_SAMPLER_2D\n        case 35680: // SAMPLER_CUBE\n        case 36289: // SAMPLER_2D_ARRAY\n            return value.length ? gl.uniform1iv(location, value) : gl.uniform1i(location, value); // SAMPLER_CUBE\n        case 35671: // BOOL_VEC2\n        case 35667:\n            return gl.uniform2iv(location, value); // INT_VEC2\n        case 35672: // BOOL_VEC3\n        case 35668:\n            return gl.uniform3iv(location, value); // INT_VEC3\n        case 35673: // BOOL_VEC4\n        case 35669:\n            return gl.uniform4iv(location, value); // INT_VEC4\n        case 35674:\n            return gl.uniformMatrix2fv(location, false, value); // FLOAT_MAT2\n        case 35675:\n            return gl.uniformMatrix3fv(location, false, value); // FLOAT_MAT3\n        case 35676:\n            return gl.uniformMatrix4fv(location, false, value); // FLOAT_MAT4\n    }\n}\n\nfunction addLineNumbers(string) {\n    let lines = string.split('\\n');\n    for (let i = 0; i < lines.length; i++) {\n        lines[i] = i + 1 + ': ' + lines[i];\n    }\n    return lines.join('\\n');\n}\n\nfunction flatten(a) {\n    const arrayLen = a.length;\n    const valueLen = a[0].length;\n    if (valueLen === undefined) return a;\n    const length = arrayLen * valueLen;\n    let value = arrayCacheF32[length];\n    if (!value) arrayCacheF32[length] = value = new Float32Array(length);\n    for (let i = 0; i < arrayLen; i++) value.set(a[i], i * valueLen);\n    return value;\n}\n\nfunction arraysEqual(a, b) {\n    if (a.length !== b.length) return false;\n    for (let i = 0, l = a.length; i < l; i++) {\n        if (a[i] !== b[i]) return false;\n    }\n    return true;\n}\n\nfunction setArray(a, b) {\n    for (let i = 0, l = a.length; i < l; i++) {\n        a[i] = b[i];\n    }\n}\n\nlet warnCount = 0;\nfunction warn(message) {\n    if (warnCount > 100) return;\n    console.warn(message);\n    warnCount++;\n    if (warnCount > 100) console.warn('More than 100 program warnings - stopping logs.');\n}\n","import { Vec3 } from '../math/Vec3.js';\n\n// TODO: Handle context loss https://www.khronos.org/webgl/wiki/HandlingContextLost\n\n// Not automatic - devs to use these methods manually\n// gl.colorMask( colorMask, colorMask, colorMask, colorMask );\n// gl.clearColor( r, g, b, a );\n// gl.stencilMask( stencilMask );\n// gl.stencilFunc( stencilFunc, stencilRef, stencilMask );\n// gl.stencilOp( stencilFail, stencilZFail, stencilZPass );\n// gl.clearStencil( stencil );\n\nconst tempVec3 = /* @__PURE__ */ new Vec3();\nlet ID = 1;\n\nexport class Renderer {\n    constructor({\n        canvas = document.createElement('canvas'),\n        width = 300,\n        height = 150,\n        dpr = 1,\n        alpha = false,\n        depth = true,\n        stencil = false,\n        antialias = false,\n        premultipliedAlpha = false,\n        preserveDrawingBuffer = false,\n        powerPreference = 'default',\n        autoClear = true,\n        webgl = 2,\n    } = {}) {\n        const attributes = { alpha, depth, stencil, antialias, premultipliedAlpha, preserveDrawingBuffer, powerPreference };\n        this.dpr = dpr;\n        this.alpha = alpha;\n        this.color = true;\n        this.depth = depth;\n        this.stencil = stencil;\n        this.premultipliedAlpha = premultipliedAlpha;\n        this.autoClear = autoClear;\n        this.id = ID++;\n\n        // Attempt WebGL2 unless forced to 1, if not supported fallback to WebGL1\n        if (webgl === 2) this.gl = canvas.getContext('webgl2', attributes);\n        this.isWebgl2 = !!this.gl;\n        if (!this.gl) this.gl = canvas.getContext('webgl', attributes);\n        if (!this.gl) console.error('unable to create webgl context');\n\n        // Attach renderer to gl so that all classes have access to internal state functions\n        this.gl.renderer = this;\n\n        // initialise size values\n        this.setSize(width, height);\n\n        // gl state stores to avoid redundant calls on methods used internally\n        this.state = {};\n        this.state.blendFunc = { src: this.gl.ONE, dst: this.gl.ZERO };\n        this.state.blendEquation = { modeRGB: this.gl.FUNC_ADD };\n        this.state.cullFace = false;\n        this.state.frontFace = this.gl.CCW;\n        this.state.depthMask = true;\n        this.state.depthFunc = this.gl.LEQUAL;\n        this.state.premultiplyAlpha = false;\n        this.state.flipY = false;\n        this.state.unpackAlignment = 4;\n        this.state.framebuffer = null;\n        this.state.viewport = { x: 0, y: 0, width: null, height: null };\n        this.state.textureUnits = [];\n        this.state.activeTextureUnit = 0;\n        this.state.boundBuffer = null;\n        this.state.uniformLocations = new Map();\n        this.state.currentProgram = null;\n\n        // store requested extensions\n        this.extensions = {};\n\n        // Initialise extra format types\n        if (this.isWebgl2) {\n            this.getExtension('EXT_color_buffer_float');\n            this.getExtension('OES_texture_float_linear');\n        } else {\n            this.getExtension('OES_texture_float');\n            this.getExtension('OES_texture_float_linear');\n            this.getExtension('OES_texture_half_float');\n            this.getExtension('OES_texture_half_float_linear');\n            this.getExtension('OES_element_index_uint');\n            this.getExtension('OES_standard_derivatives');\n            this.getExtension('EXT_sRGB');\n            this.getExtension('WEBGL_depth_texture');\n            this.getExtension('WEBGL_draw_buffers');\n        }\n        this.getExtension('WEBGL_compressed_texture_astc');\n        this.getExtension('EXT_texture_compression_bptc');\n        this.getExtension('WEBGL_compressed_texture_s3tc');\n        this.getExtension('WEBGL_compressed_texture_etc1');\n        this.getExtension('WEBGL_compressed_texture_pvrtc');\n        this.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');\n\n        // Create method aliases using extension (WebGL1) or native if available (WebGL2)\n        this.vertexAttribDivisor = this.getExtension('ANGLE_instanced_arrays', 'vertexAttribDivisor', 'vertexAttribDivisorANGLE');\n        this.drawArraysInstanced = this.getExtension('ANGLE_instanced_arrays', 'drawArraysInstanced', 'drawArraysInstancedANGLE');\n        this.drawElementsInstanced = this.getExtension('ANGLE_instanced_arrays', 'drawElementsInstanced', 'drawElementsInstancedANGLE');\n        this.createVertexArray = this.getExtension('OES_vertex_array_object', 'createVertexArray', 'createVertexArrayOES');\n        this.bindVertexArray = this.getExtension('OES_vertex_array_object', 'bindVertexArray', 'bindVertexArrayOES');\n        this.deleteVertexArray = this.getExtension('OES_vertex_array_object', 'deleteVertexArray', 'deleteVertexArrayOES');\n        this.drawBuffers = this.getExtension('WEBGL_draw_buffers', 'drawBuffers', 'drawBuffersWEBGL');\n\n        // Store device parameters\n        this.parameters = {};\n        this.parameters.maxTextureUnits = this.gl.getParameter(this.gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\n        this.parameters.maxAnisotropy = this.getExtension('EXT_texture_filter_anisotropic')\n            ? this.gl.getParameter(this.getExtension('EXT_texture_filter_anisotropic').MAX_TEXTURE_MAX_ANISOTROPY_EXT)\n            : 0;\n    }\n\n    setSize(width, height) {\n        this.width = width;\n        this.height = height;\n\n        this.gl.canvas.width = width * this.dpr;\n        this.gl.canvas.height = height * this.dpr;\n\n        if (!this.gl.canvas.style) return;\n        Object.assign(this.gl.canvas.style, {\n            width: width + 'px',\n            height: height + 'px',\n        });\n    }\n\n    setViewport(width, height, x = 0, y = 0) {\n        if (this.state.viewport.width === width && this.state.viewport.height === height) return;\n        this.state.viewport.width = width;\n        this.state.viewport.height = height;\n        this.state.viewport.x = x;\n        this.state.viewport.y = y;\n        this.gl.viewport(x, y, width, height);\n    }\n\n    setScissor(width, height, x = 0, y = 0) {\n        this.gl.scissor(x, y, width, height);\n    }\n\n    enable(id) {\n        if (this.state[id] === true) return;\n        this.gl.enable(id);\n        this.state[id] = true;\n    }\n\n    disable(id) {\n        if (this.state[id] === false) return;\n        this.gl.disable(id);\n        this.state[id] = false;\n    }\n\n    setBlendFunc(src, dst, srcAlpha, dstAlpha) {\n        if (\n            this.state.blendFunc.src === src &&\n            this.state.blendFunc.dst === dst &&\n            this.state.blendFunc.srcAlpha === srcAlpha &&\n            this.state.blendFunc.dstAlpha === dstAlpha\n        )\n            return;\n        this.state.blendFunc.src = src;\n        this.state.blendFunc.dst = dst;\n        this.state.blendFunc.srcAlpha = srcAlpha;\n        this.state.blendFunc.dstAlpha = dstAlpha;\n        if (srcAlpha !== undefined) this.gl.blendFuncSeparate(src, dst, srcAlpha, dstAlpha);\n        else this.gl.blendFunc(src, dst);\n    }\n\n    setBlendEquation(modeRGB, modeAlpha) {\n        modeRGB = modeRGB || this.gl.FUNC_ADD;\n        if (this.state.blendEquation.modeRGB === modeRGB && this.state.blendEquation.modeAlpha === modeAlpha) return;\n        this.state.blendEquation.modeRGB = modeRGB;\n        this.state.blendEquation.modeAlpha = modeAlpha;\n        if (modeAlpha !== undefined) this.gl.blendEquationSeparate(modeRGB, modeAlpha);\n        else this.gl.blendEquation(modeRGB);\n    }\n\n    setCullFace(value) {\n        if (this.state.cullFace === value) return;\n        this.state.cullFace = value;\n        this.gl.cullFace(value);\n    }\n\n    setFrontFace(value) {\n        if (this.state.frontFace === value) return;\n        this.state.frontFace = value;\n        this.gl.frontFace(value);\n    }\n\n    setDepthMask(value) {\n        if (this.state.depthMask === value) return;\n        this.state.depthMask = value;\n        this.gl.depthMask(value);\n    }\n\n    setDepthFunc(value) {\n        if (this.state.depthFunc === value) return;\n        this.state.depthFunc = value;\n        this.gl.depthFunc(value);\n    }\n\n    setStencilMask(value) {\n        if(this.state.stencilMask === value) return;\n        this.state.stencilMask = value;\n        this.gl.stencilMask(value)\n    }\n\n    setStencilFunc(func, ref, mask) {\n\n        if((this.state.stencilFunc === func) &&\n            (this.state.stencilRef === ref) &&\n            (this.state.stencilFuncMask === mask)\n        ) return;\n\n        this.state.stencilFunc = func || this.gl.ALWAYS;\n        this.state.stencilRef = ref || 0;\n        this.state.stencilFuncMask = mask || 0;\n\n        this.gl.stencilFunc(func || this.gl.ALWAYS, ref || 0, mask || 0);\n    }\n\n    setStencilOp(stencilFail, depthFail, depthPass) {\n\n        if(this.state.stencilFail === stencilFail &&\n            this.state.stencilDepthFail === depthFail &&\n            this.state.stencilDepthPass === depthPass\n        ) return;\n\n        this.state.stencilFail = stencilFail;\n        this.state.stencilDepthFail = depthFail;\n        this.state.stencilDepthPass = depthPass;\n        \n        this.gl.stencilOp(stencilFail, depthFail, depthPass);\n        \n    }\n\n    activeTexture(value) {\n        if (this.state.activeTextureUnit === value) return;\n        this.state.activeTextureUnit = value;\n        this.gl.activeTexture(this.gl.TEXTURE0 + value);\n    }\n\n    bindFramebuffer({ target = this.gl.FRAMEBUFFER, buffer = null } = {}) {\n        if (this.state.framebuffer === buffer) return;\n        this.state.framebuffer = buffer;\n        this.gl.bindFramebuffer(target, buffer);\n    }\n\n    getExtension(extension, webgl2Func, extFunc) {\n        // if webgl2 function supported, return func bound to gl context\n        if (webgl2Func && this.gl[webgl2Func]) return this.gl[webgl2Func].bind(this.gl);\n\n        // fetch extension once only\n        if (!this.extensions[extension]) {\n            this.extensions[extension] = this.gl.getExtension(extension);\n        }\n\n        // return extension if no function requested\n        if (!webgl2Func) return this.extensions[extension];\n\n        // Return null if extension not supported\n        if (!this.extensions[extension]) return null;\n\n        // return extension function, bound to extension\n        return this.extensions[extension][extFunc].bind(this.extensions[extension]);\n    }\n\n    sortOpaque(a, b) {\n        if (a.renderOrder !== b.renderOrder) {\n            return a.renderOrder - b.renderOrder;\n        } else if (a.program.id !== b.program.id) {\n            return a.program.id - b.program.id;\n        } else if (a.zDepth !== b.zDepth) {\n            return a.zDepth - b.zDepth;\n        } else {\n            return b.id - a.id;\n        }\n    }\n\n    sortTransparent(a, b) {\n        if (a.renderOrder !== b.renderOrder) {\n            return a.renderOrder - b.renderOrder;\n        }\n        if (a.zDepth !== b.zDepth) {\n            return b.zDepth - a.zDepth;\n        } else {\n            return b.id - a.id;\n        }\n    }\n\n    sortUI(a, b) {\n        if (a.renderOrder !== b.renderOrder) {\n            return a.renderOrder - b.renderOrder;\n        } else if (a.program.id !== b.program.id) {\n            return a.program.id - b.program.id;\n        } else {\n            return b.id - a.id;\n        }\n    }\n\n    getRenderList({ scene, camera, frustumCull, sort }) {\n        let renderList = [];\n\n        if (camera && frustumCull) camera.updateFrustum();\n\n        // Get visible\n        scene.traverse((node) => {\n            if (!node.visible) return true;\n            if (!node.draw) return;\n\n            if (frustumCull && node.frustumCulled && camera) {\n                if (!camera.frustumIntersectsMesh(node)) return;\n            }\n\n            renderList.push(node);\n        });\n\n        if (sort) {\n            const opaque = [];\n            const transparent = []; // depthTest true\n            const ui = []; // depthTest false\n\n            renderList.forEach((node) => {\n                // Split into the 3 render groups\n                if (!node.program.transparent) {\n                    opaque.push(node);\n                } else if (node.program.depthTest) {\n                    transparent.push(node);\n                } else {\n                    ui.push(node);\n                }\n\n                node.zDepth = 0;\n\n                // Only calculate z-depth if renderOrder unset and depthTest is true\n                if (node.renderOrder !== 0 || !node.program.depthTest || !camera) return;\n\n                // update z-depth\n                node.worldMatrix.getTranslation(tempVec3);\n                tempVec3.applyMatrix4(camera.projectionViewMatrix);\n                node.zDepth = tempVec3.z;\n            });\n\n            opaque.sort(this.sortOpaque);\n            transparent.sort(this.sortTransparent);\n            ui.sort(this.sortUI);\n\n            renderList = opaque.concat(transparent, ui);\n        }\n\n        return renderList;\n    }\n\n    render({ scene, camera, target = null, update = true, sort = true, frustumCull = true, clear }) {\n        if (target === null) {\n            // make sure no render target bound so draws to canvas\n            this.bindFramebuffer();\n            this.setViewport(this.width * this.dpr, this.height * this.dpr);\n        } else {\n            // bind supplied render target and update viewport\n            this.bindFramebuffer(target);\n            this.setViewport(target.width, target.height);\n        }\n\n        if (clear || (this.autoClear && clear !== false)) {\n            // Ensure depth buffer writing is enabled so it can be cleared\n            if (this.depth && (!target || target.depth)) {\n                this.enable(this.gl.DEPTH_TEST);\n                this.setDepthMask(true);\n            }\n\n            // Same for stencil\n            if(this.stencil || (!target || target.stencil)) {\n                this.enable(this.gl.STENCIL_TEST);\n                this.setStencilMask(0xff)\n            }\n\n            this.gl.clear(\n                (this.color ? this.gl.COLOR_BUFFER_BIT : 0) |\n                    (this.depth ? this.gl.DEPTH_BUFFER_BIT : 0) |\n                    (this.stencil ? this.gl.STENCIL_BUFFER_BIT : 0)\n            );\n        }\n\n        // updates all scene graph matrices\n        if (update) scene.updateMatrixWorld();\n\n        // Update camera separately, in case not in scene graph\n        if (camera) camera.updateMatrixWorld();\n\n        // Get render list - entails culling and sorting\n        const renderList = this.getRenderList({ scene, camera, frustumCull, sort });\n\n        renderList.forEach((node) => {\n            node.draw({ camera });\n        });\n    }\n}\n","const EPSILON = 0.000001;\n\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the source vector\n * @returns {vec4} out\n */\nexport function copy(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\n\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */\nexport function set(out, x, y, z, w) {\n    out[0] = x;\n    out[1] = y;\n    out[2] = z;\n    out[3] = w;\n    return out;\n}\n\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nexport function add(out, a, b) {\n    out[0] = a[0] + b[0];\n    out[1] = a[1] + b[1];\n    out[2] = a[2] + b[2];\n    out[3] = a[3] + b[3];\n    return out;\n}\n\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */\nexport function scale(out, a, b) {\n    out[0] = a[0] * b;\n    out[1] = a[1] * b;\n    out[2] = a[2] * b;\n    out[3] = a[3] * b;\n    return out;\n}\n\n/**\n * Calculates the length of a vec4\n *\n * @param {vec4} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    let w = a[3];\n    return Math.sqrt(x * x + y * y + z * z + w * w);\n}\n\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a vector to normalize\n * @returns {vec4} out\n */\nexport function normalize(out, a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    let w = a[3];\n    let len = x * x + y * y + z * z + w * w;\n    if (len > 0) {\n        len = 1 / Math.sqrt(len);\n    }\n    out[0] = x * len;\n    out[1] = y * len;\n    out[2] = z * len;\n    out[3] = w * len;\n    return out;\n}\n\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec4} out\n */\nexport function lerp(out, a, b, t) {\n    let ax = a[0];\n    let ay = a[1];\n    let az = a[2];\n    let aw = a[3];\n    out[0] = ax + t * (b[0] - ax);\n    out[1] = ay + t * (b[1] - ay);\n    out[2] = az + t * (b[2] - az);\n    out[3] = aw + t * (b[3] - aw);\n    return out;\n}\n","import * as vec4 from './Vec4Func.js';\n\n/**\n * Set a quat to the identity quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\nexport function identity(out) {\n    out[0] = 0;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    return out;\n}\n\n/**\n * Sets a quat from the given angle and rotation axis,\n * then returns it.\n *\n * @param {quat} out the receiving quaternion\n * @param {vec3} axis the axis around which to rotate\n * @param {Number} rad the angle in radians\n * @returns {quat} out\n **/\nexport function setAxisAngle(out, axis, rad) {\n    rad = rad * 0.5;\n    let s = Math.sin(rad);\n    out[0] = s * axis[0];\n    out[1] = s * axis[1];\n    out[2] = s * axis[2];\n    out[3] = Math.cos(rad);\n    return out;\n}\n\n/**\n * Multiplies two quats\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {quat} out\n */\nexport function multiply(out, a, b) {\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let bx = b[0],\n        by = b[1],\n        bz = b[2],\n        bw = b[3];\n\n    out[0] = ax * bw + aw * bx + ay * bz - az * by;\n    out[1] = ay * bw + aw * by + az * bx - ax * bz;\n    out[2] = az * bw + aw * bz + ax * by - ay * bx;\n    out[3] = aw * bw - ax * bx - ay * by - az * bz;\n    return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the X axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateX(out, a, rad) {\n    rad *= 0.5;\n\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let bx = Math.sin(rad),\n        bw = Math.cos(rad);\n\n    out[0] = ax * bw + aw * bx;\n    out[1] = ay * bw + az * bx;\n    out[2] = az * bw - ay * bx;\n    out[3] = aw * bw - ax * bx;\n    return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the Y axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateY(out, a, rad) {\n    rad *= 0.5;\n\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let by = Math.sin(rad),\n        bw = Math.cos(rad);\n\n    out[0] = ax * bw - az * by;\n    out[1] = ay * bw + aw * by;\n    out[2] = az * bw + ax * by;\n    out[3] = aw * bw - ay * by;\n    return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the Z axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateZ(out, a, rad) {\n    rad *= 0.5;\n\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let bz = Math.sin(rad),\n        bw = Math.cos(rad);\n\n    out[0] = ax * bw + ay * bz;\n    out[1] = ay * bw - ax * bz;\n    out[2] = az * bw + aw * bz;\n    out[3] = aw * bw - az * bz;\n    return out;\n}\n\n/**\n * Performs a spherical linear interpolation between two quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {quat} out\n */\nexport function slerp(out, a, b, t) {\n    // benchmarks:\n    //    http://jsperf.com/quaternion-slerp-implementations\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let bx = b[0],\n        by = b[1],\n        bz = b[2],\n        bw = b[3];\n\n    let omega, cosom, sinom, scale0, scale1;\n\n    // calc cosine\n    cosom = ax * bx + ay * by + az * bz + aw * bw;\n    // adjust signs (if necessary)\n    if (cosom < 0.0) {\n        cosom = -cosom;\n        bx = -bx;\n        by = -by;\n        bz = -bz;\n        bw = -bw;\n    }\n    // calculate coefficients\n    if (1.0 - cosom > 0.000001) {\n        // standard case (slerp)\n        omega = Math.acos(cosom);\n        sinom = Math.sin(omega);\n        scale0 = Math.sin((1.0 - t) * omega) / sinom;\n        scale1 = Math.sin(t * omega) / sinom;\n    } else {\n        // \"from\" and \"to\" quaternions are very close\n        //  ... so we can do a linear interpolation\n        scale0 = 1.0 - t;\n        scale1 = t;\n    }\n    // calculate final values\n    out[0] = scale0 * ax + scale1 * bx;\n    out[1] = scale0 * ay + scale1 * by;\n    out[2] = scale0 * az + scale1 * bz;\n    out[3] = scale0 * aw + scale1 * bw;\n\n    return out;\n}\n\n/**\n * Calculates the inverse of a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quat to calculate inverse of\n * @returns {quat} out\n */\nexport function invert(out, a) {\n    let a0 = a[0],\n        a1 = a[1],\n        a2 = a[2],\n        a3 = a[3];\n    let dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n    let invDot = dot ? 1.0 / dot : 0;\n\n    // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n\n    out[0] = -a0 * invDot;\n    out[1] = -a1 * invDot;\n    out[2] = -a2 * invDot;\n    out[3] = a3 * invDot;\n    return out;\n}\n\n/**\n * Calculates the conjugate of a quat\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quat to calculate conjugate of\n * @returns {quat} out\n */\nexport function conjugate(out, a) {\n    out[0] = -a[0];\n    out[1] = -a[1];\n    out[2] = -a[2];\n    out[3] = a[3];\n    return out;\n}\n\n/**\n * Creates a quaternion from the given 3x3 rotation matrix.\n *\n * NOTE: The resultant quaternion is not normalized, so you should be sure\n * to renormalize the quaternion yourself where necessary.\n *\n * @param {quat} out the receiving quaternion\n * @param {mat3} m rotation matrix\n * @returns {quat} out\n * @function\n */\nexport function fromMat3(out, m) {\n    // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n    // article \"Quaternion Calculus and Fast Animation\".\n    let fTrace = m[0] + m[4] + m[8];\n    let fRoot;\n\n    if (fTrace > 0.0) {\n        // |w| > 1/2, may as well choose w > 1/2\n        fRoot = Math.sqrt(fTrace + 1.0); // 2w\n        out[3] = 0.5 * fRoot;\n        fRoot = 0.5 / fRoot; // 1/(4w)\n        out[0] = (m[5] - m[7]) * fRoot;\n        out[1] = (m[6] - m[2]) * fRoot;\n        out[2] = (m[1] - m[3]) * fRoot;\n    } else {\n        // |w| <= 1/2\n        let i = 0;\n        if (m[4] > m[0]) i = 1;\n        if (m[8] > m[i * 3 + i]) i = 2;\n        let j = (i + 1) % 3;\n        let k = (i + 2) % 3;\n\n        fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n        out[i] = 0.5 * fRoot;\n        fRoot = 0.5 / fRoot;\n        out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n        out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n        out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n    }\n\n    return out;\n}\n\n/**\n * Creates a quaternion from the given euler angle x, y, z.\n *\n * @param {quat} out the receiving quaternion\n * @param {vec3} euler Angles to rotate around each axis in degrees.\n * @param {String} order detailing order of operations. Default 'XYZ'.\n * @returns {quat} out\n * @function\n */\nexport function fromEuler(out, euler, order = 'YXZ') {\n    let sx = Math.sin(euler[0] * 0.5);\n    let cx = Math.cos(euler[0] * 0.5);\n    let sy = Math.sin(euler[1] * 0.5);\n    let cy = Math.cos(euler[1] * 0.5);\n    let sz = Math.sin(euler[2] * 0.5);\n    let cz = Math.cos(euler[2] * 0.5);\n\n    if (order === 'XYZ') {\n        out[0] = sx * cy * cz + cx * sy * sz;\n        out[1] = cx * sy * cz - sx * cy * sz;\n        out[2] = cx * cy * sz + sx * sy * cz;\n        out[3] = cx * cy * cz - sx * sy * sz;\n    } else if (order === 'YXZ') {\n        out[0] = sx * cy * cz + cx * sy * sz;\n        out[1] = cx * sy * cz - sx * cy * sz;\n        out[2] = cx * cy * sz - sx * sy * cz;\n        out[3] = cx * cy * cz + sx * sy * sz;\n    } else if (order === 'ZXY') {\n        out[0] = sx * cy * cz - cx * sy * sz;\n        out[1] = cx * sy * cz + sx * cy * sz;\n        out[2] = cx * cy * sz + sx * sy * cz;\n        out[3] = cx * cy * cz - sx * sy * sz;\n    } else if (order === 'ZYX') {\n        out[0] = sx * cy * cz - cx * sy * sz;\n        out[1] = cx * sy * cz + sx * cy * sz;\n        out[2] = cx * cy * sz - sx * sy * cz;\n        out[3] = cx * cy * cz + sx * sy * sz;\n    } else if (order === 'YZX') {\n        out[0] = sx * cy * cz + cx * sy * sz;\n        out[1] = cx * sy * cz + sx * cy * sz;\n        out[2] = cx * cy * sz - sx * sy * cz;\n        out[3] = cx * cy * cz - sx * sy * sz;\n    } else if (order === 'XZY') {\n        out[0] = sx * cy * cz - cx * sy * sz;\n        out[1] = cx * sy * cz - sx * cy * sz;\n        out[2] = cx * cy * sz + sx * sy * cz;\n        out[3] = cx * cy * cz + sx * sy * sz;\n    }\n\n    return out;\n}\n\n/**\n * Copy the values from one quat to another\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the source quaternion\n * @returns {quat} out\n * @function\n */\nexport const copy = vec4.copy;\n\n/**\n * Set the components of a quat to the given values\n *\n * @param {quat} out the receiving quaternion\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} out\n * @function\n */\nexport const set = vec4.set;\n\n/**\n * Adds two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {quat} out\n * @function\n */\nexport const add = vec4.add;\n\n/**\n * Scales a quat by a scalar number\n *\n * @param {quat} out the receiving vector\n * @param {quat} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {quat} out\n * @function\n */\nexport const scale = vec4.scale;\n\n/**\n * Calculates the dot product of two quat's\n *\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {Number} dot product of a and b\n * @function\n */\nexport const dot = vec4.dot;\n\n/**\n * Performs a linear interpolation between two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {quat} out\n * @function\n */\nexport const lerp = vec4.lerp;\n\n/**\n * Calculates the length of a quat\n *\n * @param {quat} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport const length = vec4.length;\n\n/**\n * Normalize a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quaternion to normalize\n * @returns {quat} out\n * @function\n */\nexport const normalize = vec4.normalize;\n","import * as QuatFunc from './functions/QuatFunc.js';\n\nexport class Quat extends Array {\n    constructor(x = 0, y = 0, z = 0, w = 1) {\n        super(x, y, z, w);\n        this.onChange = () => {};\n\n        // Keep reference to proxy target to avoid triggering onChange internally\n        this._target = this;\n\n        // Return a proxy to trigger onChange when array elements are edited directly\n        const triggerProps = ['0', '1', '2', '3'];\n        return new Proxy(this, {\n            set(target, property) {\n                const success = Reflect.set(...arguments);\n                if (success && triggerProps.includes(property)) target.onChange();\n                return success;\n            },\n        });\n    }\n\n    get x() {\n        return this[0];\n    }\n\n    get y() {\n        return this[1];\n    }\n\n    get z() {\n        return this[2];\n    }\n\n    get w() {\n        return this[3];\n    }\n\n    set x(v) {\n        this._target[0] = v;\n        this.onChange();\n    }\n\n    set y(v) {\n        this._target[1] = v;\n        this.onChange();\n    }\n\n    set z(v) {\n        this._target[2] = v;\n        this.onChange();\n    }\n\n    set w(v) {\n        this._target[3] = v;\n        this.onChange();\n    }\n\n    identity() {\n        QuatFunc.identity(this._target);\n        this.onChange();\n        return this;\n    }\n\n    set(x, y, z, w) {\n        if (x.length) return this.copy(x);\n        QuatFunc.set(this._target, x, y, z, w);\n        this.onChange();\n        return this;\n    }\n\n    rotateX(a) {\n        QuatFunc.rotateX(this._target, this._target, a);\n        this.onChange();\n        return this;\n    }\n\n    rotateY(a) {\n        QuatFunc.rotateY(this._target, this._target, a);\n        this.onChange();\n        return this;\n    }\n\n    rotateZ(a) {\n        QuatFunc.rotateZ(this._target, this._target, a);\n        this.onChange();\n        return this;\n    }\n\n    inverse(q = this._target) {\n        QuatFunc.invert(this._target, q);\n        this.onChange();\n        return this;\n    }\n\n    conjugate(q = this._target) {\n        QuatFunc.conjugate(this._target, q);\n        this.onChange();\n        return this;\n    }\n\n    copy(q) {\n        QuatFunc.copy(this._target, q);\n        this.onChange();\n        return this;\n    }\n\n    normalize(q = this._target) {\n        QuatFunc.normalize(this._target, q);\n        this.onChange();\n        return this;\n    }\n\n    multiply(qA, qB) {\n        if (qB) {\n            QuatFunc.multiply(this._target, qA, qB);\n        } else {\n            QuatFunc.multiply(this._target, this._target, qA);\n        }\n        this.onChange();\n        return this;\n    }\n\n    dot(v) {\n        return QuatFunc.dot(this._target, v);\n    }\n\n    fromMatrix3(matrix3) {\n        QuatFunc.fromMat3(this._target, matrix3);\n        this.onChange();\n        return this;\n    }\n\n    fromEuler(euler, isInternal) {\n        QuatFunc.fromEuler(this._target, euler, euler.order);\n        // Avoid infinite recursion\n        if (!isInternal) this.onChange();\n        return this;\n    }\n\n    fromAxisAngle(axis, a) {\n        QuatFunc.setAxisAngle(this._target, axis, a);\n        this.onChange();\n        return this;\n    }\n\n    slerp(q, t) {\n        QuatFunc.slerp(this._target, this._target, q, t);\n        this.onChange();\n        return this;\n    }\n\n    fromArray(a, o = 0) {\n        this._target[0] = a[o];\n        this._target[1] = a[o + 1];\n        this._target[2] = a[o + 2];\n        this._target[3] = a[o + 3];\n        this.onChange();\n        return this;\n    }\n\n    toArray(a = [], o = 0) {\n        a[o] = this[0];\n        a[o + 1] = this[1];\n        a[o + 2] = this[2];\n        a[o + 3] = this[3];\n        return a;\n    }\n}\n","import * as vec3 from './Vec3Func.js';\n\nconst EPSILON = 0.000001;\n\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */\nexport function copy(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4];\n    out[5] = a[5];\n    out[6] = a[6];\n    out[7] = a[7];\n    out[8] = a[8];\n    out[9] = a[9];\n    out[10] = a[10];\n    out[11] = a[11];\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n    return out;\n}\n\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n    out[0] = m00;\n    out[1] = m01;\n    out[2] = m02;\n    out[3] = m03;\n    out[4] = m10;\n    out[5] = m11;\n    out[6] = m12;\n    out[7] = m13;\n    out[8] = m20;\n    out[9] = m21;\n    out[10] = m22;\n    out[11] = m23;\n    out[12] = m30;\n    out[13] = m31;\n    out[14] = m32;\n    out[15] = m33;\n    return out;\n}\n\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 0;\n    out[5] = 1;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 0;\n    out[9] = 0;\n    out[10] = 1;\n    out[11] = 0;\n    out[12] = 0;\n    out[13] = 0;\n    out[14] = 0;\n    out[15] = 1;\n    return out;\n}\n\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */\nexport function transpose(out, a) {\n    // If we are transposing ourselves we can skip a few steps but have to cache some values\n    if (out === a) {\n        let a01 = a[1],\n            a02 = a[2],\n            a03 = a[3];\n        let a12 = a[6],\n            a13 = a[7];\n        let a23 = a[11];\n\n        out[1] = a[4];\n        out[2] = a[8];\n        out[3] = a[12];\n        out[4] = a01;\n        out[6] = a[9];\n        out[7] = a[13];\n        out[8] = a02;\n        out[9] = a12;\n        out[11] = a[14];\n        out[12] = a03;\n        out[13] = a13;\n        out[14] = a23;\n    } else {\n        out[0] = a[0];\n        out[1] = a[4];\n        out[2] = a[8];\n        out[3] = a[12];\n        out[4] = a[1];\n        out[5] = a[5];\n        out[6] = a[9];\n        out[7] = a[13];\n        out[8] = a[2];\n        out[9] = a[6];\n        out[10] = a[10];\n        out[11] = a[14];\n        out[12] = a[3];\n        out[13] = a[7];\n        out[14] = a[11];\n        out[15] = a[15];\n    }\n\n    return out;\n}\n\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */\nexport function invert(out, a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    let a10 = a[4],\n        a11 = a[5],\n        a12 = a[6],\n        a13 = a[7];\n    let a20 = a[8],\n        a21 = a[9],\n        a22 = a[10],\n        a23 = a[11];\n    let a30 = a[12],\n        a31 = a[13],\n        a32 = a[14],\n        a33 = a[15];\n\n    let b00 = a00 * a11 - a01 * a10;\n    let b01 = a00 * a12 - a02 * a10;\n    let b02 = a00 * a13 - a03 * a10;\n    let b03 = a01 * a12 - a02 * a11;\n    let b04 = a01 * a13 - a03 * a11;\n    let b05 = a02 * a13 - a03 * a12;\n    let b06 = a20 * a31 - a21 * a30;\n    let b07 = a20 * a32 - a22 * a30;\n    let b08 = a20 * a33 - a23 * a30;\n    let b09 = a21 * a32 - a22 * a31;\n    let b10 = a21 * a33 - a23 * a31;\n    let b11 = a22 * a33 - a23 * a32;\n\n    // Calculate the determinant\n    let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n\n    out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n    out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n    out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n    out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n    out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n    out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n    out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n    out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n    out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n    out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n    out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n    out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n    out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n    out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n    out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n    out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n\n    return out;\n}\n\n/**\n * Calculates the determinant of a mat4\n *\n * @param {mat4} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    let a10 = a[4],\n        a11 = a[5],\n        a12 = a[6],\n        a13 = a[7];\n    let a20 = a[8],\n        a21 = a[9],\n        a22 = a[10],\n        a23 = a[11];\n    let a30 = a[12],\n        a31 = a[13],\n        a32 = a[14],\n        a33 = a[15];\n\n    let b00 = a00 * a11 - a01 * a10;\n    let b01 = a00 * a12 - a02 * a10;\n    let b02 = a00 * a13 - a03 * a10;\n    let b03 = a01 * a12 - a02 * a11;\n    let b04 = a01 * a13 - a03 * a11;\n    let b05 = a02 * a13 - a03 * a12;\n    let b06 = a20 * a31 - a21 * a30;\n    let b07 = a20 * a32 - a22 * a30;\n    let b08 = a20 * a33 - a23 * a30;\n    let b09 = a21 * a32 - a22 * a31;\n    let b10 = a21 * a33 - a23 * a31;\n    let b11 = a22 * a33 - a23 * a32;\n\n    // Calculate the determinant\n    return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nexport function multiply(out, a, b) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    let a10 = a[4],\n        a11 = a[5],\n        a12 = a[6],\n        a13 = a[7];\n    let a20 = a[8],\n        a21 = a[9],\n        a22 = a[10],\n        a23 = a[11];\n    let a30 = a[12],\n        a31 = a[13],\n        a32 = a[14],\n        a33 = a[15];\n\n    // Cache only the current line of the second matrix\n    let b0 = b[0],\n        b1 = b[1],\n        b2 = b[2],\n        b3 = b[3];\n    out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n    out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n    out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n    out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n\n    b0 = b[4];\n    b1 = b[5];\n    b2 = b[6];\n    b3 = b[7];\n    out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n    out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n    out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n    out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n\n    b0 = b[8];\n    b1 = b[9];\n    b2 = b[10];\n    b3 = b[11];\n    out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n    out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n    out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n    out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n\n    b0 = b[12];\n    b1 = b[13];\n    b2 = b[14];\n    b3 = b[15];\n    out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n    out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n    out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n    out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n    return out;\n}\n\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to translate\n * @param {vec3} v vector to translate by\n * @returns {mat4} out\n */\nexport function translate(out, a, v) {\n    let x = v[0],\n        y = v[1],\n        z = v[2];\n    let a00, a01, a02, a03;\n    let a10, a11, a12, a13;\n    let a20, a21, a22, a23;\n\n    if (a === out) {\n        out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n        out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n        out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n        out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n    } else {\n        a00 = a[0];\n        a01 = a[1];\n        a02 = a[2];\n        a03 = a[3];\n        a10 = a[4];\n        a11 = a[5];\n        a12 = a[6];\n        a13 = a[7];\n        a20 = a[8];\n        a21 = a[9];\n        a22 = a[10];\n        a23 = a[11];\n\n        out[0] = a00;\n        out[1] = a01;\n        out[2] = a02;\n        out[3] = a03;\n        out[4] = a10;\n        out[5] = a11;\n        out[6] = a12;\n        out[7] = a13;\n        out[8] = a20;\n        out[9] = a21;\n        out[10] = a22;\n        out[11] = a23;\n\n        out[12] = a00 * x + a10 * y + a20 * z + a[12];\n        out[13] = a01 * x + a11 * y + a21 * z + a[13];\n        out[14] = a02 * x + a12 * y + a22 * z + a[14];\n        out[15] = a03 * x + a13 * y + a23 * z + a[15];\n    }\n\n    return out;\n}\n\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to scale\n * @param {vec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\nexport function scale(out, a, v) {\n    let x = v[0],\n        y = v[1],\n        z = v[2];\n\n    out[0] = a[0] * x;\n    out[1] = a[1] * x;\n    out[2] = a[2] * x;\n    out[3] = a[3] * x;\n    out[4] = a[4] * y;\n    out[5] = a[5] * y;\n    out[6] = a[6] * y;\n    out[7] = a[7] * y;\n    out[8] = a[8] * z;\n    out[9] = a[9] * z;\n    out[10] = a[10] * z;\n    out[11] = a[11] * z;\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n    return out;\n}\n\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {vec3} axis the axis to rotate around\n * @returns {mat4} out\n */\nexport function rotate(out, a, rad, axis) {\n    let x = axis[0],\n        y = axis[1],\n        z = axis[2];\n    let len = Math.hypot(x, y, z);\n    let s, c, t;\n    let a00, a01, a02, a03;\n    let a10, a11, a12, a13;\n    let a20, a21, a22, a23;\n    let b00, b01, b02;\n    let b10, b11, b12;\n    let b20, b21, b22;\n\n    if (Math.abs(len) < EPSILON) {\n        return null;\n    }\n\n    len = 1 / len;\n    x *= len;\n    y *= len;\n    z *= len;\n\n    s = Math.sin(rad);\n    c = Math.cos(rad);\n    t = 1 - c;\n\n    a00 = a[0];\n    a01 = a[1];\n    a02 = a[2];\n    a03 = a[3];\n    a10 = a[4];\n    a11 = a[5];\n    a12 = a[6];\n    a13 = a[7];\n    a20 = a[8];\n    a21 = a[9];\n    a22 = a[10];\n    a23 = a[11];\n\n    // Construct the elements of the rotation matrix\n    b00 = x * x * t + c;\n    b01 = y * x * t + z * s;\n    b02 = z * x * t - y * s;\n    b10 = x * y * t - z * s;\n    b11 = y * y * t + c;\n    b12 = z * y * t + x * s;\n    b20 = x * z * t + y * s;\n    b21 = y * z * t - x * s;\n    b22 = z * z * t + c;\n\n    // Perform rotation-specific matrix multiplication\n    out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n    out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n    out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n    out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n    out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n    out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n    out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n    out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n    out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n    out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n    out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n    out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n    if (a !== out) {\n        // If the source and destination differ, copy the unchanged last row\n        out[12] = a[12];\n        out[13] = a[13];\n        out[14] = a[14];\n        out[15] = a[15];\n    }\n    return out;\n}\n\n/**\n * Returns the translation vector component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslation,\n *  the returned vector will be the same as the translation vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive translation component\n * @param  {mat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\nexport function getTranslation(out, mat) {\n    out[0] = mat[12];\n    out[1] = mat[13];\n    out[2] = mat[14];\n\n    return out;\n}\n\n/**\n * Returns the scaling factor component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslationScale\n *  with a normalized Quaternion paramter, the returned vector will be\n *  the same as the scaling vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive scaling factor component\n * @param  {mat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\nexport function getScaling(out, mat) {\n    let m11 = mat[0];\n    let m12 = mat[1];\n    let m13 = mat[2];\n    let m21 = mat[4];\n    let m22 = mat[5];\n    let m23 = mat[6];\n    let m31 = mat[8];\n    let m32 = mat[9];\n    let m33 = mat[10];\n\n    out[0] = Math.hypot(m11, m12, m13);\n    out[1] = Math.hypot(m21, m22, m23);\n    out[2] = Math.hypot(m31, m32, m33);\n\n    return out;\n}\n\nexport function getMaxScaleOnAxis(mat) {\n    let m11 = mat[0];\n    let m12 = mat[1];\n    let m13 = mat[2];\n    let m21 = mat[4];\n    let m22 = mat[5];\n    let m23 = mat[6];\n    let m31 = mat[8];\n    let m32 = mat[9];\n    let m33 = mat[10];\n\n    const x = m11 * m11 + m12 * m12 + m13 * m13;\n    const y = m21 * m21 + m22 * m22 + m23 * m23;\n    const z = m31 * m31 + m32 * m32 + m33 * m33;\n\n    return Math.sqrt(Math.max(x, y, z));\n}\n\n/**\n * Returns a quaternion representing the rotational component\n *  of a transformation matrix. If a matrix is built with\n *  fromRotationTranslation, the returned quaternion will be the\n *  same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {mat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\nexport const getRotation = (function () {\n    const temp = [1, 1, 1];\n\n    return function (out, mat) {\n        let scaling = temp;\n        getScaling(scaling, mat);\n\n        let is1 = 1 / scaling[0];\n        let is2 = 1 / scaling[1];\n        let is3 = 1 / scaling[2];\n\n        let sm11 = mat[0] * is1;\n        let sm12 = mat[1] * is2;\n        let sm13 = mat[2] * is3;\n        let sm21 = mat[4] * is1;\n        let sm22 = mat[5] * is2;\n        let sm23 = mat[6] * is3;\n        let sm31 = mat[8] * is1;\n        let sm32 = mat[9] * is2;\n        let sm33 = mat[10] * is3;\n\n        let trace = sm11 + sm22 + sm33;\n        let S = 0;\n\n        if (trace > 0) {\n            S = Math.sqrt(trace + 1.0) * 2;\n            out[3] = 0.25 * S;\n            out[0] = (sm23 - sm32) / S;\n            out[1] = (sm31 - sm13) / S;\n            out[2] = (sm12 - sm21) / S;\n        } else if (sm11 > sm22 && sm11 > sm33) {\n            S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n            out[3] = (sm23 - sm32) / S;\n            out[0] = 0.25 * S;\n            out[1] = (sm12 + sm21) / S;\n            out[2] = (sm31 + sm13) / S;\n        } else if (sm22 > sm33) {\n            S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n            out[3] = (sm31 - sm13) / S;\n            out[0] = (sm12 + sm21) / S;\n            out[1] = 0.25 * S;\n            out[2] = (sm23 + sm32) / S;\n        } else {\n            S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n            out[3] = (sm12 - sm21) / S;\n            out[0] = (sm31 + sm13) / S;\n            out[1] = (sm23 + sm32) / S;\n            out[2] = 0.25 * S;\n        }\n\n        return out;\n    };\n})();\n\n/**\n * From glTF-Transform\n * https://github.com/donmccurdy/glTF-Transform/blob/main/packages/core/src/utils/math-utils.ts\n *\n * Decompose a mat4 to TRS properties.\n *\n * Equivalent to the Matrix4 decompose() method in three.js, and intentionally not using the\n * gl-matrix version. See: https://github.com/toji/gl-matrix/issues/408\n *\n * @param {mat4} srcMat Matrix element, to be decomposed to TRS properties.\n * @param {quat4} dstRotation Rotation element, to be overwritten.\n * @param {vec3} dstTranslation Translation element, to be overwritten.\n * @param {vec3} dstScale Scale element, to be overwritten\n */\nexport function decompose(srcMat, dstRotation, dstTranslation, dstScale) {\n    let sx = vec3.length([srcMat[0], srcMat[1], srcMat[2]]);\n    const sy = vec3.length([srcMat[4], srcMat[5], srcMat[6]]);\n    const sz = vec3.length([srcMat[8], srcMat[9], srcMat[10]]);\n\n    // if determine is negative, we need to invert one scale\n    const det = determinant(srcMat);\n    if (det < 0) sx = -sx;\n\n    dstTranslation[0] = srcMat[12];\n    dstTranslation[1] = srcMat[13];\n    dstTranslation[2] = srcMat[14];\n\n    // scale the rotation part\n    const _m1 = srcMat.slice();\n\n    const invSX = 1 / sx;\n    const invSY = 1 / sy;\n    const invSZ = 1 / sz;\n\n    _m1[0] *= invSX;\n    _m1[1] *= invSX;\n    _m1[2] *= invSX;\n\n    _m1[4] *= invSY;\n    _m1[5] *= invSY;\n    _m1[6] *= invSY;\n\n    _m1[8] *= invSZ;\n    _m1[9] *= invSZ;\n    _m1[10] *= invSZ;\n\n    getRotation(dstRotation, _m1);\n\n    dstScale[0] = sx;\n    dstScale[1] = sy;\n    dstScale[2] = sz;\n}\n\n/**\n * From glTF-Transform\n * https://github.com/donmccurdy/glTF-Transform/blob/main/packages/core/src/utils/math-utils.ts\n *\n * Compose TRS properties to a mat4.\n *\n * Equivalent to the Matrix4 compose() method in three.js, and intentionally not using the\n * gl-matrix version. See: https://github.com/toji/gl-matrix/issues/408\n *\n * @param {mat4} dstMat Matrix element, to be modified and returned.\n * @param {quat4} srcRotation Rotation element of matrix.\n * @param {vec3} srcTranslation Translation element of matrix.\n * @param {vec3} srcScale Scale element of matrix.\n * @returns {mat4} dstMat, overwritten to mat4 equivalent of given TRS properties.\n */\nexport function compose(dstMat, srcRotation, srcTranslation, srcScale) {\n    const te = dstMat;\n\n    const x = srcRotation[0],\n        y = srcRotation[1],\n        z = srcRotation[2],\n        w = srcRotation[3];\n    const x2 = x + x,\n        y2 = y + y,\n        z2 = z + z;\n    const xx = x * x2,\n        xy = x * y2,\n        xz = x * z2;\n    const yy = y * y2,\n        yz = y * z2,\n        zz = z * z2;\n    const wx = w * x2,\n        wy = w * y2,\n        wz = w * z2;\n\n    const sx = srcScale[0],\n        sy = srcScale[1],\n        sz = srcScale[2];\n\n    te[0] = (1 - (yy + zz)) * sx;\n    te[1] = (xy + wz) * sx;\n    te[2] = (xz - wy) * sx;\n    te[3] = 0;\n\n    te[4] = (xy - wz) * sy;\n    te[5] = (1 - (xx + zz)) * sy;\n    te[6] = (yz + wx) * sy;\n    te[7] = 0;\n\n    te[8] = (xz + wy) * sz;\n    te[9] = (yz - wx) * sz;\n    te[10] = (1 - (xx + yy)) * sz;\n    te[11] = 0;\n\n    te[12] = srcTranslation[0];\n    te[13] = srcTranslation[1];\n    te[14] = srcTranslation[2];\n    te[15] = 1;\n\n    return te;\n}\n\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, vec);\n *     let quatMat = mat4.create();\n *     quat4.toMat4(quat, quatMat);\n *     mat4.multiply(dest, quatMat);\n *     mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {vec3} v Translation vector\n * @param {vec3} s Scaling vector\n * @returns {mat4} out\n */\nexport function fromRotationTranslationScale(out, q, v, s) {\n    // Quaternion math\n    let x = q[0],\n        y = q[1],\n        z = q[2],\n        w = q[3];\n    let x2 = x + x;\n    let y2 = y + y;\n    let z2 = z + z;\n\n    let xx = x * x2;\n    let xy = x * y2;\n    let xz = x * z2;\n    let yy = y * y2;\n    let yz = y * z2;\n    let zz = z * z2;\n    let wx = w * x2;\n    let wy = w * y2;\n    let wz = w * z2;\n    let sx = s[0];\n    let sy = s[1];\n    let sz = s[2];\n\n    out[0] = (1 - (yy + zz)) * sx;\n    out[1] = (xy + wz) * sx;\n    out[2] = (xz - wy) * sx;\n    out[3] = 0;\n    out[4] = (xy - wz) * sy;\n    out[5] = (1 - (xx + zz)) * sy;\n    out[6] = (yz + wx) * sy;\n    out[7] = 0;\n    out[8] = (xz + wy) * sz;\n    out[9] = (yz - wx) * sz;\n    out[10] = (1 - (xx + yy)) * sz;\n    out[11] = 0;\n    out[12] = v[0];\n    out[13] = v[1];\n    out[14] = v[2];\n    out[15] = 1;\n\n    return out;\n}\n\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\nexport function fromQuat(out, q) {\n    let x = q[0],\n        y = q[1],\n        z = q[2],\n        w = q[3];\n    let x2 = x + x;\n    let y2 = y + y;\n    let z2 = z + z;\n\n    let xx = x * x2;\n    let yx = y * x2;\n    let yy = y * y2;\n    let zx = z * x2;\n    let zy = z * y2;\n    let zz = z * z2;\n    let wx = w * x2;\n    let wy = w * y2;\n    let wz = w * z2;\n\n    out[0] = 1 - yy - zz;\n    out[1] = yx + wz;\n    out[2] = zx - wy;\n    out[3] = 0;\n\n    out[4] = yx - wz;\n    out[5] = 1 - xx - zz;\n    out[6] = zy + wx;\n    out[7] = 0;\n\n    out[8] = zx + wy;\n    out[9] = zy - wx;\n    out[10] = 1 - xx - yy;\n    out[11] = 0;\n\n    out[12] = 0;\n    out[13] = 0;\n    out[14] = 0;\n    out[15] = 1;\n\n    return out;\n}\n\n/**\n * Generates a perspective projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nexport function perspective(out, fovy, aspect, near, far) {\n    let f = 1.0 / Math.tan(fovy / 2);\n    let nf = 1 / (near - far);\n    out[0] = f / aspect;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 0;\n    out[5] = f;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 0;\n    out[9] = 0;\n    out[10] = (far + near) * nf;\n    out[11] = -1;\n    out[12] = 0;\n    out[13] = 0;\n    out[14] = 2 * far * near * nf;\n    out[15] = 0;\n    return out;\n}\n\n/**\n * Generates a orthogonal projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nexport function ortho(out, left, right, bottom, top, near, far) {\n    let lr = 1 / (left - right);\n    let bt = 1 / (bottom - top);\n    let nf = 1 / (near - far);\n    out[0] = -2 * lr;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 0;\n    out[5] = -2 * bt;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 0;\n    out[9] = 0;\n    out[10] = 2 * nf;\n    out[11] = 0;\n    out[12] = (left + right) * lr;\n    out[13] = (top + bottom) * bt;\n    out[14] = (far + near) * nf;\n    out[15] = 1;\n    return out;\n}\n\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {vec3} eye Position of the viewer\n * @param {vec3} target Point the viewer is looking at\n * @param {vec3} up vec3 pointing up\n * @returns {mat4} out\n */\nexport function targetTo(out, eye, target, up) {\n    let eyex = eye[0],\n        eyey = eye[1],\n        eyez = eye[2],\n        upx = up[0],\n        upy = up[1],\n        upz = up[2];\n\n    let z0 = eyex - target[0],\n        z1 = eyey - target[1],\n        z2 = eyez - target[2];\n\n    let len = z0 * z0 + z1 * z1 + z2 * z2;\n    if (len === 0) {\n        // eye and target are in the same position\n        z2 = 1;\n    } else {\n        len = 1 / Math.sqrt(len);\n        z0 *= len;\n        z1 *= len;\n        z2 *= len;\n    }\n\n    let x0 = upy * z2 - upz * z1,\n        x1 = upz * z0 - upx * z2,\n        x2 = upx * z1 - upy * z0;\n\n    len = x0 * x0 + x1 * x1 + x2 * x2;\n    if (len === 0) {\n        // up and z are parallel\n        if (upz) {\n            upx += 1e-6;\n        } else if (upy) {\n            upz += 1e-6;\n        } else {\n            upy += 1e-6;\n        }\n        (x0 = upy * z2 - upz * z1), (x1 = upz * z0 - upx * z2), (x2 = upx * z1 - upy * z0);\n\n        len = x0 * x0 + x1 * x1 + x2 * x2;\n    }\n\n    len = 1 / Math.sqrt(len);\n    x0 *= len;\n    x1 *= len;\n    x2 *= len;\n\n    out[0] = x0;\n    out[1] = x1;\n    out[2] = x2;\n    out[3] = 0;\n    out[4] = z1 * x2 - z2 * x1;\n    out[5] = z2 * x0 - z0 * x2;\n    out[6] = z0 * x1 - z1 * x0;\n    out[7] = 0;\n    out[8] = z0;\n    out[9] = z1;\n    out[10] = z2;\n    out[11] = 0;\n    out[12] = eyex;\n    out[13] = eyey;\n    out[14] = eyez;\n    out[15] = 1;\n    return out;\n}\n\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nexport function add(out, a, b) {\n    out[0] = a[0] + b[0];\n    out[1] = a[1] + b[1];\n    out[2] = a[2] + b[2];\n    out[3] = a[3] + b[3];\n    out[4] = a[4] + b[4];\n    out[5] = a[5] + b[5];\n    out[6] = a[6] + b[6];\n    out[7] = a[7] + b[7];\n    out[8] = a[8] + b[8];\n    out[9] = a[9] + b[9];\n    out[10] = a[10] + b[10];\n    out[11] = a[11] + b[11];\n    out[12] = a[12] + b[12];\n    out[13] = a[13] + b[13];\n    out[14] = a[14] + b[14];\n    out[15] = a[15] + b[15];\n    return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nexport function subtract(out, a, b) {\n    out[0] = a[0] - b[0];\n    out[1] = a[1] - b[1];\n    out[2] = a[2] - b[2];\n    out[3] = a[3] - b[3];\n    out[4] = a[4] - b[4];\n    out[5] = a[5] - b[5];\n    out[6] = a[6] - b[6];\n    out[7] = a[7] - b[7];\n    out[8] = a[8] - b[8];\n    out[9] = a[9] - b[9];\n    out[10] = a[10] - b[10];\n    out[11] = a[11] - b[11];\n    out[12] = a[12] - b[12];\n    out[13] = a[13] - b[13];\n    out[14] = a[14] - b[14];\n    out[15] = a[15] - b[15];\n    return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\nexport function multiplyScalar(out, a, b) {\n    out[0] = a[0] * b;\n    out[1] = a[1] * b;\n    out[2] = a[2] * b;\n    out[3] = a[3] * b;\n    out[4] = a[4] * b;\n    out[5] = a[5] * b;\n    out[6] = a[6] * b;\n    out[7] = a[7] * b;\n    out[8] = a[8] * b;\n    out[9] = a[9] * b;\n    out[10] = a[10] * b;\n    out[11] = a[11] * b;\n    out[12] = a[12] * b;\n    out[13] = a[13] * b;\n    out[14] = a[14] * b;\n    out[15] = a[15] * b;\n    return out;\n}\n","import * as Mat4Func from './functions/Mat4Func.js';\n\nexport class Mat4 extends Array {\n    constructor(\n        m00 = 1,\n        m01 = 0,\n        m02 = 0,\n        m03 = 0,\n        m10 = 0,\n        m11 = 1,\n        m12 = 0,\n        m13 = 0,\n        m20 = 0,\n        m21 = 0,\n        m22 = 1,\n        m23 = 0,\n        m30 = 0,\n        m31 = 0,\n        m32 = 0,\n        m33 = 1\n    ) {\n        super(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33);\n        return this;\n    }\n\n    get x() {\n        return this[12];\n    }\n\n    get y() {\n        return this[13];\n    }\n\n    get z() {\n        return this[14];\n    }\n\n    get w() {\n        return this[15];\n    }\n\n    set x(v) {\n        this[12] = v;\n    }\n\n    set y(v) {\n        this[13] = v;\n    }\n\n    set z(v) {\n        this[14] = v;\n    }\n\n    set w(v) {\n        this[15] = v;\n    }\n\n    set(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n        if (m00.length) return this.copy(m00);\n        Mat4Func.set(this, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33);\n        return this;\n    }\n\n    translate(v, m = this) {\n        Mat4Func.translate(this, m, v);\n        return this;\n    }\n\n    rotate(v, axis, m = this) {\n        Mat4Func.rotate(this, m, v, axis);\n        return this;\n    }\n\n    scale(v, m = this) {\n        Mat4Func.scale(this, m, typeof v === 'number' ? [v, v, v] : v);\n        return this;\n    }\n\n    add(ma, mb) {\n        if (mb) Mat4Func.add(this, ma, mb);\n        else Mat4Func.add(this, this, ma);\n        return this;\n    }\n\n    sub(ma, mb) {\n        if (mb) Mat4Func.subtract(this, ma, mb);\n        else Mat4Func.subtract(this, this, ma);\n        return this;\n    }\n\n    multiply(ma, mb) {\n        if (!ma.length) {\n            Mat4Func.multiplyScalar(this, this, ma);\n        } else if (mb) {\n            Mat4Func.multiply(this, ma, mb);\n        } else {\n            Mat4Func.multiply(this, this, ma);\n        }\n        return this;\n    }\n\n    identity() {\n        Mat4Func.identity(this);\n        return this;\n    }\n\n    copy(m) {\n        Mat4Func.copy(this, m);\n        return this;\n    }\n\n    fromPerspective({ fov, aspect, near, far } = {}) {\n        Mat4Func.perspective(this, fov, aspect, near, far);\n        return this;\n    }\n\n    fromOrthogonal({ left, right, bottom, top, near, far }) {\n        Mat4Func.ortho(this, left, right, bottom, top, near, far);\n        return this;\n    }\n\n    fromQuaternion(q) {\n        Mat4Func.fromQuat(this, q);\n        return this;\n    }\n\n    setPosition(v) {\n        this.x = v[0];\n        this.y = v[1];\n        this.z = v[2];\n        return this;\n    }\n\n    inverse(m = this) {\n        Mat4Func.invert(this, m);\n        return this;\n    }\n\n    compose(q, pos, scale) {\n        Mat4Func.compose(this, q, pos, scale);\n        return this;\n    }\n\n    decompose(q, pos, scale) {\n        Mat4Func.decompose(this, q, pos, scale);\n        return this;\n    }\n\n    getRotation(q) {\n        Mat4Func.getRotation(q, this);\n        return this;\n    }\n\n    getTranslation(pos) {\n        Mat4Func.getTranslation(pos, this);\n        return this;\n    }\n\n    getScaling(scale) {\n        Mat4Func.getScaling(scale, this);\n        return this;\n    }\n\n    getMaxScaleOnAxis() {\n        return Mat4Func.getMaxScaleOnAxis(this);\n    }\n\n    lookAt(eye, target, up) {\n        Mat4Func.targetTo(this, eye, target, up);\n        return this;\n    }\n\n    determinant() {\n        return Mat4Func.determinant(this);\n    }\n\n    fromArray(a, o = 0) {\n        this[0] = a[o];\n        this[1] = a[o + 1];\n        this[2] = a[o + 2];\n        this[3] = a[o + 3];\n        this[4] = a[o + 4];\n        this[5] = a[o + 5];\n        this[6] = a[o + 6];\n        this[7] = a[o + 7];\n        this[8] = a[o + 8];\n        this[9] = a[o + 9];\n        this[10] = a[o + 10];\n        this[11] = a[o + 11];\n        this[12] = a[o + 12];\n        this[13] = a[o + 13];\n        this[14] = a[o + 14];\n        this[15] = a[o + 15];\n        return this;\n    }\n\n    toArray(a = [], o = 0) {\n        a[o] = this[0];\n        a[o + 1] = this[1];\n        a[o + 2] = this[2];\n        a[o + 3] = this[3];\n        a[o + 4] = this[4];\n        a[o + 5] = this[5];\n        a[o + 6] = this[6];\n        a[o + 7] = this[7];\n        a[o + 8] = this[8];\n        a[o + 9] = this[9];\n        a[o + 10] = this[10];\n        a[o + 11] = this[11];\n        a[o + 12] = this[12];\n        a[o + 13] = this[13];\n        a[o + 14] = this[14];\n        a[o + 15] = this[15];\n        return a;\n    }\n}\n","// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\nexport function fromRotationMatrix(out, m, order = 'YXZ') {\n    if (order === 'XYZ') {\n        out[1] = Math.asin(Math.min(Math.max(m[8], -1), 1));\n        if (Math.abs(m[8]) < 0.99999) {\n            out[0] = Math.atan2(-m[9], m[10]);\n            out[2] = Math.atan2(-m[4], m[0]);\n        } else {\n            out[0] = Math.atan2(m[6], m[5]);\n            out[2] = 0;\n        }\n    } else if (order === 'YXZ') {\n        out[0] = Math.asin(-Math.min(Math.max(m[9], -1), 1));\n        if (Math.abs(m[9]) < 0.99999) {\n            out[1] = Math.atan2(m[8], m[10]);\n            out[2] = Math.atan2(m[1], m[5]);\n        } else {\n            out[1] = Math.atan2(-m[2], m[0]);\n            out[2] = 0;\n        }\n    } else if (order === 'ZXY') {\n        out[0] = Math.asin(Math.min(Math.max(m[6], -1), 1));\n        if (Math.abs(m[6]) < 0.99999) {\n            out[1] = Math.atan2(-m[2], m[10]);\n            out[2] = Math.atan2(-m[4], m[5]);\n        } else {\n            out[1] = 0;\n            out[2] = Math.atan2(m[1], m[0]);\n        }\n    } else if (order === 'ZYX') {\n        out[1] = Math.asin(-Math.min(Math.max(m[2], -1), 1));\n        if (Math.abs(m[2]) < 0.99999) {\n            out[0] = Math.atan2(m[6], m[10]);\n            out[2] = Math.atan2(m[1], m[0]);\n        } else {\n            out[0] = 0;\n            out[2] = Math.atan2(-m[4], m[5]);\n        }\n    } else if (order === 'YZX') {\n        out[2] = Math.asin(Math.min(Math.max(m[1], -1), 1));\n        if (Math.abs(m[1]) < 0.99999) {\n            out[0] = Math.atan2(-m[9], m[5]);\n            out[1] = Math.atan2(-m[2], m[0]);\n        } else {\n            out[0] = 0;\n            out[1] = Math.atan2(m[8], m[10]);\n        }\n    } else if (order === 'XZY') {\n        out[2] = Math.asin(-Math.min(Math.max(m[4], -1), 1));\n        if (Math.abs(m[4]) < 0.99999) {\n            out[0] = Math.atan2(m[6], m[5]);\n            out[1] = Math.atan2(m[8], m[0]);\n        } else {\n            out[0] = Math.atan2(-m[9], m[10]);\n            out[1] = 0;\n        }\n    }\n\n    return out;\n}\n","import * as EulerFunc from './functions/EulerFunc.js';\nimport { Mat4 } from './Mat4.js';\n\nconst tmpMat4 = /* @__PURE__ */ new Mat4();\n\nexport class Euler extends Array {\n    constructor(x = 0, y = x, z = x, order = 'YXZ') {\n        super(x, y, z);\n        this.order = order;\n        this.onChange = () => {};\n\n        // Keep reference to proxy target to avoid triggering onChange internally\n        this._target = this;\n\n        // Return a proxy to trigger onChange when array elements are edited directly\n        const triggerProps = ['0', '1', '2'];\n        return new Proxy(this, {\n            set(target, property) {\n                const success = Reflect.set(...arguments);\n                if (success && triggerProps.includes(property)) target.onChange();\n                return success;\n            },\n        });\n    }\n\n    get x() {\n        return this[0];\n    }\n\n    get y() {\n        return this[1];\n    }\n\n    get z() {\n        return this[2];\n    }\n\n    set x(v) {\n        this._target[0] = v;\n        this.onChange();\n    }\n\n    set y(v) {\n        this._target[1] = v;\n        this.onChange();\n    }\n\n    set z(v) {\n        this._target[2] = v;\n        this.onChange();\n    }\n\n    set(x, y = x, z = x) {\n        if (x.length) return this.copy(x);\n        this._target[0] = x;\n        this._target[1] = y;\n        this._target[2] = z;\n        this.onChange();\n        return this;\n    }\n\n    copy(v) {\n        this._target[0] = v[0];\n        this._target[1] = v[1];\n        this._target[2] = v[2];\n        this.onChange();\n        return this;\n    }\n\n    reorder(order) {\n        this._target.order = order;\n        this.onChange();\n        return this;\n    }\n\n    fromRotationMatrix(m, order = this.order) {\n        EulerFunc.fromRotationMatrix(this._target, m, order);\n        this.onChange();\n        return this;\n    }\n\n    fromQuaternion(q, order = this.order, isInternal) {\n        tmpMat4.fromQuaternion(q);\n        this._target.fromRotationMatrix(tmpMat4, order);\n        // Avoid infinite recursion\n        if (!isInternal) this.onChange();\n        return this;\n    }\n\n    fromArray(a, o = 0) {\n        this._target[0] = a[o];\n        this._target[1] = a[o + 1];\n        this._target[2] = a[o + 2];\n        return this;\n    }\n\n    toArray(a = [], o = 0) {\n        a[o] = this[0];\n        a[o + 1] = this[1];\n        a[o + 2] = this[2];\n        return a;\n    }\n}\n","import { Vec3 } from '../math/Vec3.js';\nimport { Quat } from '../math/Quat.js';\nimport { Mat4 } from '../math/Mat4.js';\nimport { Euler } from '../math/Euler.js';\n\nexport class Transform {\n    constructor() {\n        this.parent = null;\n        this.children = [];\n        this.visible = true;\n\n        this.matrix = new Mat4();\n        this.worldMatrix = new Mat4();\n        this.matrixAutoUpdate = true;\n        this.worldMatrixNeedsUpdate = false;\n\n        this.position = new Vec3();\n        this.quaternion = new Quat();\n        this.scale = new Vec3(1);\n        this.rotation = new Euler();\n        this.up = new Vec3(0, 1, 0);\n\n        this.rotation._target.onChange = () => this.quaternion.fromEuler(this.rotation, true);\n        this.quaternion._target.onChange = () => this.rotation.fromQuaternion(this.quaternion, undefined, true);\n    }\n\n    setParent(parent, notifyParent = true) {\n        if (this.parent && parent !== this.parent) this.parent.removeChild(this, false);\n        this.parent = parent;\n        if (notifyParent && parent) parent.addChild(this, false);\n    }\n\n    addChild(child, notifyChild = true) {\n        if (!~this.children.indexOf(child)) this.children.push(child);\n        if (notifyChild) child.setParent(this, false);\n    }\n\n    removeChild(child, notifyChild = true) {\n        if (!!~this.children.indexOf(child)) this.children.splice(this.children.indexOf(child), 1);\n        if (notifyChild) child.setParent(null, false);\n    }\n\n    updateMatrixWorld(force) {\n        if (this.matrixAutoUpdate) this.updateMatrix();\n        if (this.worldMatrixNeedsUpdate || force) {\n            if (this.parent === null) this.worldMatrix.copy(this.matrix);\n            else this.worldMatrix.multiply(this.parent.worldMatrix, this.matrix);\n            this.worldMatrixNeedsUpdate = false;\n            force = true;\n        }\n\n        for (let i = 0, l = this.children.length; i < l; i++) {\n            this.children[i].updateMatrixWorld(force);\n        }\n    }\n\n    updateMatrix() {\n        this.matrix.compose(this.quaternion, this.position, this.scale);\n        this.worldMatrixNeedsUpdate = true;\n    }\n\n    traverse(callback) {\n        // Return true in callback to stop traversing children\n        if (callback(this)) return;\n        for (let i = 0, l = this.children.length; i < l; i++) {\n            this.children[i].traverse(callback);\n        }\n    }\n\n    decompose() {\n        this.matrix.decompose(this.quaternion._target, this.position, this.scale);\n        this.rotation.fromQuaternion(this.quaternion);\n    }\n\n    lookAt(target, invert = false) {\n        if (invert) this.matrix.lookAt(this.position, target, this.up);\n        else this.matrix.lookAt(target, this.position, this.up);\n        this.matrix.getRotation(this.quaternion._target);\n        this.rotation.fromQuaternion(this.quaternion);\n    }\n}\n","import { Transform } from './Transform.js';\nimport { Mat4 } from '../math/Mat4.js';\nimport { Vec3 } from '../math/Vec3.js';\n\nconst tempMat4 = /* @__PURE__ */ new Mat4();\nconst tempVec3a = /* @__PURE__ */ new Vec3();\nconst tempVec3b = /* @__PURE__ */ new Vec3();\n\nexport class Camera extends Transform {\n    constructor(gl, { near = 0.1, far = 100, fov = 45, aspect = 1, left, right, bottom, top, zoom = 1 } = {}) {\n        super();\n\n        Object.assign(this, { near, far, fov, aspect, left, right, bottom, top, zoom });\n\n        this.projectionMatrix = new Mat4();\n        this.viewMatrix = new Mat4();\n        this.projectionViewMatrix = new Mat4();\n        this.worldPosition = new Vec3();\n\n        // Use orthographic if left/right set, else default to perspective camera\n        this.type = left || right ? 'orthographic' : 'perspective';\n\n        if (this.type === 'orthographic') this.orthographic();\n        else this.perspective();\n    }\n\n    perspective({ near = this.near, far = this.far, fov = this.fov, aspect = this.aspect } = {}) {\n        Object.assign(this, { near, far, fov, aspect });\n        this.projectionMatrix.fromPerspective({ fov: fov * (Math.PI / 180), aspect, near, far });\n        this.type = 'perspective';\n        return this;\n    }\n\n    orthographic({\n        near = this.near,\n        far = this.far,\n        left = this.left || -1,\n        right = this.right || 1,\n        bottom = this.bottom || -1,\n        top = this.top || 1,\n        zoom = this.zoom,\n    } = {}) {\n        Object.assign(this, { near, far, left, right, bottom, top, zoom });\n        left /= zoom;\n        right /= zoom;\n        bottom /= zoom;\n        top /= zoom;\n        this.projectionMatrix.fromOrthogonal({ left, right, bottom, top, near, far });\n        this.type = 'orthographic';\n        return this;\n    }\n\n    updateMatrixWorld() {\n        super.updateMatrixWorld();\n        this.viewMatrix.inverse(this.worldMatrix);\n        this.worldMatrix.getTranslation(this.worldPosition);\n\n        // used for sorting\n        this.projectionViewMatrix.multiply(this.projectionMatrix, this.viewMatrix);\n        return this;\n    }\n\n    updateProjectionMatrix() {\n        if (this.type === 'perspective') {\n            return this.perspective();\n        } else {\n            return this.orthographic();\n        }\n    }\n\n    lookAt(target) {\n        super.lookAt(target, true);\n        return this;\n    }\n\n    // Project 3D coordinate to 2D point\n    project(v) {\n        v.applyMatrix4(this.viewMatrix);\n        v.applyMatrix4(this.projectionMatrix);\n        return this;\n    }\n\n    // Unproject 2D point to 3D coordinate\n    unproject(v) {\n        v.applyMatrix4(tempMat4.inverse(this.projectionMatrix));\n        v.applyMatrix4(this.worldMatrix);\n        return this;\n    }\n\n    updateFrustum() {\n        if (!this.frustum) {\n            this.frustum = [new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3()];\n        }\n\n        const m = this.projectionViewMatrix;\n        this.frustum[0].set(m[3] - m[0], m[7] - m[4], m[11] - m[8]).constant = m[15] - m[12]; // -x\n        this.frustum[1].set(m[3] + m[0], m[7] + m[4], m[11] + m[8]).constant = m[15] + m[12]; // +x\n        this.frustum[2].set(m[3] + m[1], m[7] + m[5], m[11] + m[9]).constant = m[15] + m[13]; // +y\n        this.frustum[3].set(m[3] - m[1], m[7] - m[5], m[11] - m[9]).constant = m[15] - m[13]; // -y\n        this.frustum[4].set(m[3] - m[2], m[7] - m[6], m[11] - m[10]).constant = m[15] - m[14]; // +z (far)\n        this.frustum[5].set(m[3] + m[2], m[7] + m[6], m[11] + m[10]).constant = m[15] + m[14]; // -z (near)\n\n        for (let i = 0; i < 6; i++) {\n            const invLen = 1.0 / this.frustum[i].distance();\n            this.frustum[i].multiply(invLen);\n            this.frustum[i].constant *= invLen;\n        }\n    }\n\n    frustumIntersectsMesh(node, worldMatrix = node.worldMatrix) {\n        // If no position attribute, treat as frustumCulled false\n        if (!node.geometry.attributes.position) return true;\n\n        if (!node.geometry.bounds || node.geometry.bounds.radius === Infinity) node.geometry.computeBoundingSphere();\n\n        if (!node.geometry.bounds) return true;\n\n        const center = tempVec3a;\n        center.copy(node.geometry.bounds.center);\n        center.applyMatrix4(worldMatrix);\n\n        const radius = node.geometry.bounds.radius * worldMatrix.getMaxScaleOnAxis();\n\n        return this.frustumIntersectsSphere(center, radius);\n    }\n\n    frustumIntersectsSphere(center, radius) {\n        const normal = tempVec3b;\n\n        for (let i = 0; i < 6; i++) {\n            const plane = this.frustum[i];\n            const distance = normal.copy(plane).dot(center) + plane.constant;\n            if (distance < -radius) return false;\n        }\n        return true;\n    }\n}\n","const EPSILON = 0.000001;\n\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {mat4} a   the source 4x4 matrix\n * @returns {mat3} out\n */\nexport function fromMat4(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[4];\n    out[4] = a[5];\n    out[5] = a[6];\n    out[6] = a[8];\n    out[7] = a[9];\n    out[8] = a[10];\n    return out;\n}\n\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {quat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\nexport function fromQuat(out, q) {\n    let x = q[0],\n        y = q[1],\n        z = q[2],\n        w = q[3];\n    let x2 = x + x;\n    let y2 = y + y;\n    let z2 = z + z;\n\n    let xx = x * x2;\n    let yx = y * x2;\n    let yy = y * y2;\n    let zx = z * x2;\n    let zy = z * y2;\n    let zz = z * z2;\n    let wx = w * x2;\n    let wy = w * y2;\n    let wz = w * z2;\n\n    out[0] = 1 - yy - zz;\n    out[3] = yx - wz;\n    out[6] = zx + wy;\n\n    out[1] = yx + wz;\n    out[4] = 1 - xx - zz;\n    out[7] = zy - wx;\n\n    out[2] = zx - wy;\n    out[5] = zy + wx;\n    out[8] = 1 - xx - yy;\n\n    return out;\n}\n\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */\nexport function copy(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4];\n    out[5] = a[5];\n    out[6] = a[6];\n    out[7] = a[7];\n    out[8] = a[8];\n    return out;\n}\n\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n    out[0] = m00;\n    out[1] = m01;\n    out[2] = m02;\n    out[3] = m10;\n    out[4] = m11;\n    out[5] = m12;\n    out[6] = m20;\n    out[7] = m21;\n    out[8] = m22;\n    return out;\n}\n\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 1;\n    out[5] = 0;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 1;\n    return out;\n}\n\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */\nexport function transpose(out, a) {\n    // If we are transposing ourselves we can skip a few steps but have to cache some values\n    if (out === a) {\n        let a01 = a[1],\n            a02 = a[2],\n            a12 = a[5];\n        out[1] = a[3];\n        out[2] = a[6];\n        out[3] = a01;\n        out[5] = a[7];\n        out[6] = a02;\n        out[7] = a12;\n    } else {\n        out[0] = a[0];\n        out[1] = a[3];\n        out[2] = a[6];\n        out[3] = a[1];\n        out[4] = a[4];\n        out[5] = a[7];\n        out[6] = a[2];\n        out[7] = a[5];\n        out[8] = a[8];\n    }\n\n    return out;\n}\n\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */\nexport function invert(out, a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2];\n    let a10 = a[3],\n        a11 = a[4],\n        a12 = a[5];\n    let a20 = a[6],\n        a21 = a[7],\n        a22 = a[8];\n\n    let b01 = a22 * a11 - a12 * a21;\n    let b11 = -a22 * a10 + a12 * a20;\n    let b21 = a21 * a10 - a11 * a20;\n\n    // Calculate the determinant\n    let det = a00 * b01 + a01 * b11 + a02 * b21;\n\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n\n    out[0] = b01 * det;\n    out[1] = (-a22 * a01 + a02 * a21) * det;\n    out[2] = (a12 * a01 - a02 * a11) * det;\n    out[3] = b11 * det;\n    out[4] = (a22 * a00 - a02 * a20) * det;\n    out[5] = (-a12 * a00 + a02 * a10) * det;\n    out[6] = b21 * det;\n    out[7] = (-a21 * a00 + a01 * a20) * det;\n    out[8] = (a11 * a00 - a01 * a10) * det;\n    return out;\n}\n\n/**\n * Calculates the determinant of a mat3\n *\n * @param {mat3} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2];\n    let a10 = a[3],\n        a11 = a[4],\n        a12 = a[5];\n    let a20 = a[6],\n        a21 = a[7],\n        a22 = a[8];\n\n    return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */\nexport function multiply(out, a, b) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2];\n    let a10 = a[3],\n        a11 = a[4],\n        a12 = a[5];\n    let a20 = a[6],\n        a21 = a[7],\n        a22 = a[8];\n\n    let b00 = b[0],\n        b01 = b[1],\n        b02 = b[2];\n    let b10 = b[3],\n        b11 = b[4],\n        b12 = b[5];\n    let b20 = b[6],\n        b21 = b[7],\n        b22 = b[8];\n\n    out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n    out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n    out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n\n    out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n    out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n    out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n\n    out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n    out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n    out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n    return out;\n}\n\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to translate\n * @param {vec2} v vector to translate by\n * @returns {mat3} out\n */\nexport function translate(out, a, v) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a10 = a[3],\n        a11 = a[4],\n        a12 = a[5],\n        a20 = a[6],\n        a21 = a[7],\n        a22 = a[8],\n        x = v[0],\n        y = v[1];\n\n    out[0] = a00;\n    out[1] = a01;\n    out[2] = a02;\n\n    out[3] = a10;\n    out[4] = a11;\n    out[5] = a12;\n\n    out[6] = x * a00 + y * a10 + a20;\n    out[7] = x * a01 + y * a11 + a21;\n    out[8] = x * a02 + y * a12 + a22;\n    return out;\n}\n\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function rotate(out, a, rad) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a10 = a[3],\n        a11 = a[4],\n        a12 = a[5],\n        a20 = a[6],\n        a21 = a[7],\n        a22 = a[8],\n        s = Math.sin(rad),\n        c = Math.cos(rad);\n\n    out[0] = c * a00 + s * a10;\n    out[1] = c * a01 + s * a11;\n    out[2] = c * a02 + s * a12;\n\n    out[3] = c * a10 - s * a00;\n    out[4] = c * a11 - s * a01;\n    out[5] = c * a12 - s * a02;\n\n    out[6] = a20;\n    out[7] = a21;\n    out[8] = a22;\n    return out;\n}\n\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to rotate\n * @param {vec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\nexport function scale(out, a, v) {\n    let x = v[0],\n        y = v[1];\n\n    out[0] = x * a[0];\n    out[1] = x * a[1];\n    out[2] = x * a[2];\n\n    out[3] = y * a[3];\n    out[4] = y * a[4];\n    out[5] = y * a[5];\n\n    out[6] = a[6];\n    out[7] = a[7];\n    out[8] = a[8];\n    return out;\n}\n\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {mat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\nexport function normalFromMat4(out, a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    let a10 = a[4],\n        a11 = a[5],\n        a12 = a[6],\n        a13 = a[7];\n    let a20 = a[8],\n        a21 = a[9],\n        a22 = a[10],\n        a23 = a[11];\n    let a30 = a[12],\n        a31 = a[13],\n        a32 = a[14],\n        a33 = a[15];\n\n    let b00 = a00 * a11 - a01 * a10;\n    let b01 = a00 * a12 - a02 * a10;\n    let b02 = a00 * a13 - a03 * a10;\n    let b03 = a01 * a12 - a02 * a11;\n    let b04 = a01 * a13 - a03 * a11;\n    let b05 = a02 * a13 - a03 * a12;\n    let b06 = a20 * a31 - a21 * a30;\n    let b07 = a20 * a32 - a22 * a30;\n    let b08 = a20 * a33 - a23 * a30;\n    let b09 = a21 * a32 - a22 * a31;\n    let b10 = a21 * a33 - a23 * a31;\n    let b11 = a22 * a33 - a23 * a32;\n\n    // Calculate the determinant\n    let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n\n    out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n    out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n    out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n\n    out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n    out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n    out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n\n    out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n    out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n    out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n\n    return out;\n}\n\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\nexport function projection(out, width, height) {\n    out[0] = 2 / width;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = -2 / height;\n    out[5] = 0;\n    out[6] = -1;\n    out[7] = 1;\n    out[8] = 1;\n    return out;\n}\n\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */\nexport function add(out, a, b) {\n    out[0] = a[0] + b[0];\n    out[1] = a[1] + b[1];\n    out[2] = a[2] + b[2];\n    out[3] = a[3] + b[3];\n    out[4] = a[4] + b[4];\n    out[5] = a[5] + b[5];\n    out[6] = a[6] + b[6];\n    out[7] = a[7] + b[7];\n    out[8] = a[8] + b[8];\n    return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */\nexport function subtract(out, a, b) {\n    out[0] = a[0] - b[0];\n    out[1] = a[1] - b[1];\n    out[2] = a[2] - b[2];\n    out[3] = a[3] - b[3];\n    out[4] = a[4] - b[4];\n    out[5] = a[5] - b[5];\n    out[6] = a[6] - b[6];\n    out[7] = a[7] - b[7];\n    out[8] = a[8] - b[8];\n    return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\nexport function multiplyScalar(out, a, b) {\n    out[0] = a[0] * b;\n    out[1] = a[1] * b;\n    out[2] = a[2] * b;\n    out[3] = a[3] * b;\n    out[4] = a[4] * b;\n    out[5] = a[5] * b;\n    out[6] = a[6] * b;\n    out[7] = a[7] * b;\n    out[8] = a[8] * b;\n    return out;\n}\n","import * as Mat3Func from './functions/Mat3Func.js';\n\nexport class Mat3 extends Array {\n    constructor(m00 = 1, m01 = 0, m02 = 0, m10 = 0, m11 = 1, m12 = 0, m20 = 0, m21 = 0, m22 = 1) {\n        super(m00, m01, m02, m10, m11, m12, m20, m21, m22);\n        return this;\n    }\n\n    set(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n        if (m00.length) return this.copy(m00);\n        Mat3Func.set(this, m00, m01, m02, m10, m11, m12, m20, m21, m22);\n        return this;\n    }\n\n    translate(v, m = this) {\n        Mat3Func.translate(this, m, v);\n        return this;\n    }\n\n    rotate(v, m = this) {\n        Mat3Func.rotate(this, m, v);\n        return this;\n    }\n\n    scale(v, m = this) {\n        Mat3Func.scale(this, m, v);\n        return this;\n    }\n\n    multiply(ma, mb) {\n        if (mb) {\n            Mat3Func.multiply(this, ma, mb);\n        } else {\n            Mat3Func.multiply(this, this, ma);\n        }\n        return this;\n    }\n\n    identity() {\n        Mat3Func.identity(this);\n        return this;\n    }\n\n    copy(m) {\n        Mat3Func.copy(this, m);\n        return this;\n    }\n\n    fromMatrix4(m) {\n        Mat3Func.fromMat4(this, m);\n        return this;\n    }\n\n    fromQuaternion(q) {\n        Mat3Func.fromQuat(this, q);\n        return this;\n    }\n\n    fromBasis(vec3a, vec3b, vec3c) {\n        this.set(vec3a[0], vec3a[1], vec3a[2], vec3b[0], vec3b[1], vec3b[2], vec3c[0], vec3c[1], vec3c[2]);\n        return this;\n    }\n\n    inverse(m = this) {\n        Mat3Func.invert(this, m);\n        return this;\n    }\n\n    getNormalMatrix(m) {\n        Mat3Func.normalFromMat4(this, m);\n        return this;\n    }\n}\n","import { Transform } from './Transform.js';\nimport { Mat3 } from '../math/Mat3.js';\nimport { Mat4 } from '../math/Mat4.js';\n\nlet ID = 0;\n\nexport class Mesh extends Transform {\n    constructor(gl, { geometry, program, mode = gl.TRIANGLES, frustumCulled = true, renderOrder = 0 } = {}) {\n        super();\n        if (!gl.canvas) console.error('gl not passed as first argument to Mesh');\n        this.gl = gl;\n        this.id = ID++;\n        this.geometry = geometry;\n        this.program = program;\n        this.mode = mode;\n\n        // Used to skip frustum culling\n        this.frustumCulled = frustumCulled;\n\n        // Override sorting to force an order\n        this.renderOrder = renderOrder;\n        this.modelViewMatrix = new Mat4();\n        this.normalMatrix = new Mat3();\n        this.beforeRenderCallbacks = [];\n        this.afterRenderCallbacks = [];\n    }\n\n    onBeforeRender(f) {\n        this.beforeRenderCallbacks.push(f);\n        return this;\n    }\n\n    onAfterRender(f) {\n        this.afterRenderCallbacks.push(f);\n        return this;\n    }\n\n    draw({ camera } = {}) {\n        if (camera) {\n            // Add empty matrix uniforms to program if unset\n            if (!this.program.uniforms.modelMatrix) {\n                Object.assign(this.program.uniforms, {\n                    modelMatrix: { value: null },\n                    viewMatrix: { value: null },\n                    modelViewMatrix: { value: null },\n                    normalMatrix: { value: null },\n                    projectionMatrix: { value: null },\n                    cameraPosition: { value: null },\n                });\n            }\n\n            // Set the matrix uniforms\n            this.program.uniforms.projectionMatrix.value = camera.projectionMatrix;\n            this.program.uniforms.cameraPosition.value = camera.worldPosition;\n            this.program.uniforms.viewMatrix.value = camera.viewMatrix;\n            this.modelViewMatrix.multiply(camera.viewMatrix, this.worldMatrix);\n            this.normalMatrix.getNormalMatrix(this.modelViewMatrix);\n            this.program.uniforms.modelMatrix.value = this.worldMatrix;\n            this.program.uniforms.modelViewMatrix.value = this.modelViewMatrix;\n            this.program.uniforms.normalMatrix.value = this.normalMatrix;\n        }\n        this.beforeRenderCallbacks.forEach((f) => f && f({ mesh: this, camera }));\n\n        // determine if faces need to be flipped - when mesh scaled negatively\n        let flipFaces = this.program.cullFace && this.worldMatrix.determinant() < 0;\n        this.program.use({ flipFaces });\n        this.geometry.draw({ mode: this.mode, program: this.program });\n        this.afterRenderCallbacks.forEach((f) => f && f({ mesh: this, camera }));\n    }\n}\n","// TODO: delete texture\n// TODO: use texSubImage2D for updates (video or when loaded)\n// TODO: need? encoding = linearEncoding\n// TODO: support non-compressed mipmaps uploads\n\nconst emptyPixel = new Uint8Array(4);\n\nfunction isPowerOf2(value) {\n    return (value & (value - 1)) === 0;\n}\n\nlet ID = 1;\n\nexport class Texture {\n    constructor(\n        gl,\n        {\n            image,\n            target = gl.TEXTURE_2D,\n            type = gl.UNSIGNED_BYTE,\n            format = gl.RGBA,\n            internalFormat = format,\n            wrapS = gl.CLAMP_TO_EDGE,\n            wrapT = gl.CLAMP_TO_EDGE,\n            wrapR = gl.CLAMP_TO_EDGE,\n            generateMipmaps = target === (gl.TEXTURE_2D || gl.TEXTURE_CUBE_MAP),\n            minFilter = generateMipmaps ? gl.NEAREST_MIPMAP_LINEAR : gl.LINEAR,\n            magFilter = gl.LINEAR,\n            premultiplyAlpha = false,\n            unpackAlignment = 4,\n            flipY = target == (gl.TEXTURE_2D || gl.TEXTURE_3D) ? true : false,\n            anisotropy = 0,\n            level = 0,\n            width, // used for RenderTargets or Data Textures\n            height = width,\n            length = 1,\n        } = {}\n    ) {\n        this.gl = gl;\n        this.id = ID++;\n\n        this.image = image;\n        this.target = target;\n        this.type = type;\n        this.format = format;\n        this.internalFormat = internalFormat;\n        this.minFilter = minFilter;\n        this.magFilter = magFilter;\n        this.wrapS = wrapS;\n        this.wrapT = wrapT;\n        this.wrapR = wrapR;\n        this.generateMipmaps = generateMipmaps;\n        this.premultiplyAlpha = premultiplyAlpha;\n        this.unpackAlignment = unpackAlignment;\n        this.flipY = flipY;\n        this.anisotropy = Math.min(anisotropy, this.gl.renderer.parameters.maxAnisotropy);\n        this.level = level;\n        this.width = width;\n        this.height = height;\n        this.length = length;\n        this.texture = this.gl.createTexture();\n\n        this.store = {\n            image: null,\n        };\n\n        // Alias for state store to avoid redundant calls for global state\n        this.glState = this.gl.renderer.state;\n\n        // State store to avoid redundant calls for per-texture state\n        this.state = {};\n        this.state.minFilter = this.gl.NEAREST_MIPMAP_LINEAR;\n        this.state.magFilter = this.gl.LINEAR;\n        this.state.wrapS = this.gl.REPEAT;\n        this.state.wrapT = this.gl.REPEAT;\n        this.state.anisotropy = 0;\n    }\n\n    bind() {\n        // Already bound to active texture unit\n        if (this.glState.textureUnits[this.glState.activeTextureUnit] === this.id) return;\n        this.gl.bindTexture(this.target, this.texture);\n        this.glState.textureUnits[this.glState.activeTextureUnit] = this.id;\n    }\n\n    update(textureUnit = 0) {\n        const needsUpdate = !(this.image === this.store.image && !this.needsUpdate);\n\n        // Make sure that texture is bound to its texture unit\n        if (needsUpdate || this.glState.textureUnits[textureUnit] !== this.id) {\n            // set active texture unit to perform texture functions\n            this.gl.renderer.activeTexture(textureUnit);\n            this.bind();\n        }\n\n        if (!needsUpdate) return;\n        this.needsUpdate = false;\n\n        if (this.flipY !== this.glState.flipY) {\n            this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, this.flipY);\n            this.glState.flipY = this.flipY;\n        }\n\n        if (this.premultiplyAlpha !== this.glState.premultiplyAlpha) {\n            this.gl.pixelStorei(this.gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);\n            this.glState.premultiplyAlpha = this.premultiplyAlpha;\n        }\n\n        if (this.unpackAlignment !== this.glState.unpackAlignment) {\n            this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT, this.unpackAlignment);\n            this.glState.unpackAlignment = this.unpackAlignment;\n        }\n\n        if (this.minFilter !== this.state.minFilter) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_MIN_FILTER, this.minFilter);\n            this.state.minFilter = this.minFilter;\n        }\n\n        if (this.magFilter !== this.state.magFilter) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_MAG_FILTER, this.magFilter);\n            this.state.magFilter = this.magFilter;\n        }\n\n        if (this.wrapS !== this.state.wrapS) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_WRAP_S, this.wrapS);\n            this.state.wrapS = this.wrapS;\n        }\n\n        if (this.wrapT !== this.state.wrapT) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_WRAP_T, this.wrapT);\n            this.state.wrapT = this.wrapT;\n        }\n\n        if (this.wrapR !== this.state.wrapR) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_WRAP_R, this.wrapR);\n            this.state.wrapR = this.wrapR;\n        }\n\n        if (this.anisotropy && this.anisotropy !== this.state.anisotropy) {\n            this.gl.texParameterf(this.target, this.gl.renderer.getExtension('EXT_texture_filter_anisotropic').TEXTURE_MAX_ANISOTROPY_EXT, this.anisotropy);\n            this.state.anisotropy = this.anisotropy;\n        }\n\n        if (this.image) {\n            if (this.image.width) {\n                this.width = this.image.width;\n                this.height = this.image.height;\n            }\n\n            if (this.target === this.gl.TEXTURE_CUBE_MAP) {\n                // For cube maps\n                for (let i = 0; i < 6; i++) {\n                    this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, this.level, this.internalFormat, this.format, this.type, this.image[i]);\n                }\n            } else if (ArrayBuffer.isView(this.image)) {\n                // Data texture\n                if (this.target === this.gl.TEXTURE_2D) {\n                    this.gl.texImage2D(this.target, this.level, this.internalFormat, this.width, this.height, 0, this.format, this.type, this.image);\n                } else if (this.target === this.gl.TEXTURE_2D_ARRAY || this.target === this.gl.TEXTURE_3D) {\n                    this.gl.texImage3D(this.target, this.level, this.internalFormat, this.width, this.height, this.length, 0, this.format, this.type, this.image);\n                }\n            } else if (this.image.isCompressedTexture) {\n                // Compressed texture\n                for (let level = 0; level < this.image.length; level++) {\n                    this.gl.compressedTexImage2D(this.target, level, this.internalFormat, this.image[level].width, this.image[level].height, 0, this.image[level].data);\n                }\n            } else {\n                // Regular texture\n                if (this.target === this.gl.TEXTURE_2D) {\n                    this.gl.texImage2D(this.target, this.level, this.internalFormat, this.format, this.type, this.image);\n                } else {\n                    this.gl.texImage3D(this.target, this.level, this.internalFormat, this.width, this.height, this.length, 0, this.format, this.type, this.image);\n                }\n            }\n\n            if (this.generateMipmaps) {\n                // For WebGL1, if not a power of 2, turn off mips, set wrapping to clamp to edge and minFilter to linear\n                if (!this.gl.renderer.isWebgl2 && (!isPowerOf2(this.image.width) || !isPowerOf2(this.image.height))) {\n                    this.generateMipmaps = false;\n                    this.wrapS = this.wrapT = this.gl.CLAMP_TO_EDGE;\n                    this.minFilter = this.gl.LINEAR;\n                } else {\n                    this.gl.generateMipmap(this.target);\n                }\n            }\n\n            // Callback for when data is pushed to GPU\n            this.onUpdate && this.onUpdate();\n        } else {\n            if (this.target === this.gl.TEXTURE_CUBE_MAP) {\n                // Upload empty pixel for each side while no image to avoid errors while image or video loading\n                for (let i = 0; i < 6; i++) {\n                    this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, this.gl.RGBA, 1, 1, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, emptyPixel);\n                }\n            } else if (this.width) {\n                // image intentionally left null for RenderTarget\n                if (this.target === this.gl.TEXTURE_2D) {\n                    this.gl.texImage2D(this.target, this.level, this.internalFormat, this.width, this.height, 0, this.format, this.type, null);\n                } else {\n                    this.gl.texImage3D(this.target, this.level, this.internalFormat, this.width, this.height, this.length, 0, this.format, this.type, null);\n                }\n            } else {\n                // Upload empty pixel if no image to avoid errors while image or video loading\n                this.gl.texImage2D(this.target, 0, this.gl.RGBA, 1, 1, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, emptyPixel);\n            }\n        }\n        this.store.image = this.image;\n    }\n}\n","import { Texture } from './Texture.js'\n\nexport class RenderTarget {\n    constructor(\n        gl,\n        {\n            width = gl.canvas.width,\n            height = gl.canvas.height,\n            target = gl.FRAMEBUFFER,\n            color = 1, // number of color attachments\n            depth = true,\n            stencil = false,\n            depthTexture = false,\n            wrapS = gl.CLAMP_TO_EDGE,\n            wrapT = gl.CLAMP_TO_EDGE,\n            wrapR = gl.CLAMP_TO_EDGE,\n            minFilter = gl.LINEAR,\n            magFilter = minFilter,\n            type = gl.UNSIGNED_BYTE,\n            format = gl.RGBA,\n            internalFormat = format,\n            unpackAlignment,\n            premultiplyAlpha,\n        } = {}\n    ) {\n        this.gl = gl;\n        this.width = width;\n        this.height = height;\n        this.depth = depth;\n        this.stencil = stencil;\n        this.buffer = this.gl.createFramebuffer();\n        this.target = target;\n        this.gl.renderer.bindFramebuffer(this);\n\n        this.textures = [];\n        const drawBuffers = [];\n\n        // create and attach required num of color textures\n        for (let i = 0; i < color; i++) {\n            this.textures.push(\n                new Texture(gl, {\n                    width,\n                    height,\n                    wrapS,\n                    wrapT,\n                    wrapR,\n                    minFilter,\n                    magFilter,\n                    type,\n                    format,\n                    internalFormat,\n                    unpackAlignment,\n                    premultiplyAlpha,\n                    flipY: false,\n                    generateMipmaps: false,\n                })\n            );\n            this.textures[i].update();\n            this.gl.framebufferTexture2D(this.target, this.gl.COLOR_ATTACHMENT0 + i, this.gl.TEXTURE_2D, this.textures[i].texture, 0 /* level */);\n            drawBuffers.push(this.gl.COLOR_ATTACHMENT0 + i);\n        }\n\n        // For multi-render targets shader access\n        if (drawBuffers.length > 1) this.gl.renderer.drawBuffers(drawBuffers);\n\n        // alias for majority of use cases\n        this.texture = this.textures[0];\n\n        // note depth textures break stencil - so can't use together\n        if (depthTexture && (this.gl.renderer.isWebgl2 || this.gl.renderer.getExtension('WEBGL_depth_texture'))) {\n            this.depthTexture = new Texture(gl, {\n                width,\n                height,\n                minFilter: this.gl.NEAREST,\n                magFilter: this.gl.NEAREST,\n                format: this.stencil ? this.gl.DEPTH_STENCIL : this.gl.DEPTH_COMPONENT,\n                internalFormat: gl.renderer.isWebgl2 ? (this.stencil ? this.gl.DEPTH24_STENCIL8 : this.gl.DEPTH_COMPONENT16) : this.gl.DEPTH_COMPONENT,\n                type: this.stencil ? this.gl.UNSIGNED_INT_24_8 : this.gl.UNSIGNED_INT,\n            });\n            this.depthTexture.update();\n            this.gl.framebufferTexture2D(this.target, this.stencil ? this.gl.DEPTH_STENCIL_ATTACHMENT : this.gl.DEPTH_ATTACHMENT, this.gl.TEXTURE_2D, this.depthTexture.texture, 0 /* level */);\n        } else {\n            // Render buffers\n            if (depth && !stencil) {\n                this.depthBuffer = this.gl.createRenderbuffer();\n                this.gl.bindRenderbuffer(this.gl.RENDERBUFFER, this.depthBuffer);\n                this.gl.renderbufferStorage(this.gl.RENDERBUFFER, this.gl.DEPTH_COMPONENT16, width, height);\n                this.gl.framebufferRenderbuffer(this.target, this.gl.DEPTH_ATTACHMENT, this.gl.RENDERBUFFER, this.depthBuffer);\n            }\n\n            if (stencil && !depth) {\n                this.stencilBuffer = this.gl.createRenderbuffer();\n                this.gl.bindRenderbuffer(this.gl.RENDERBUFFER, this.stencilBuffer);\n                this.gl.renderbufferStorage(this.gl.RENDERBUFFER, this.gl.STENCIL_INDEX8, width, height);\n                this.gl.framebufferRenderbuffer(this.target, this.gl.STENCIL_ATTACHMENT, this.gl.RENDERBUFFER, this.stencilBuffer);\n            }\n\n            if (depth && stencil) {\n                this.depthStencilBuffer = this.gl.createRenderbuffer();\n                this.gl.bindRenderbuffer(this.gl.RENDERBUFFER, this.depthStencilBuffer);\n                this.gl.renderbufferStorage(this.gl.RENDERBUFFER, this.gl.DEPTH_STENCIL, width, height);\n                this.gl.framebufferRenderbuffer(this.target, this.gl.DEPTH_STENCIL_ATTACHMENT, this.gl.RENDERBUFFER, this.depthStencilBuffer);\n            }\n        }\n\n        this.gl.renderer.bindFramebuffer({ target: this.target });\n    }\n\n    setSize(width, height) {\n        if (this.width === width && this.height === height) return;\n\n        this.width = width;\n        this.height = height;\n        this.gl.renderer.bindFramebuffer(this);\n\n        for (let i = 0; i < this.textures.length; i++) {\n            this.textures[i].width = width;\n            this.textures[i].height = height;\n            this.textures[i].needsUpdate = true;\n            this.textures[i].update();\n            this.gl.framebufferTexture2D(this.target, this.gl.COLOR_ATTACHMENT0 + i, this.gl.TEXTURE_2D, this.textures[i].texture, 0 /* level */);\n        }\n\n        if (this.depthTexture) {\n            this.depthTexture.width = width;\n            this.depthTexture.height = height;\n            this.depthTexture.needsUpdate = true;\n            this.depthTexture.update();\n            this.gl.framebufferTexture2D(this.target, this.gl.DEPTH_ATTACHMENT, this.gl.TEXTURE_2D, this.depthTexture.texture, 0 /* level */);\n        } else {\n            if (this.depthBuffer) {\n                this.gl.bindRenderbuffer(this.gl.RENDERBUFFER, this.depthBuffer);\n                this.gl.renderbufferStorage(this.gl.RENDERBUFFER, this.gl.DEPTH_COMPONENT16, width, height);\n            }\n\n            if (this.stencilBuffer) {\n                this.gl.bindRenderbuffer(this.gl.RENDERBUFFER, this.stencilBuffer);\n                this.gl.renderbufferStorage(this.gl.RENDERBUFFER, this.gl.STENCIL_INDEX8, width, height);\n            }\n\n            if (this.depthStencilBuffer) {\n                this.gl.bindRenderbuffer(this.gl.RENDERBUFFER, this.depthStencilBuffer);\n                this.gl.renderbufferStorage(this.gl.RENDERBUFFER, this.gl.DEPTH_STENCIL, width, height);\n            }\n        }\n\n        this.gl.renderer.bindFramebuffer({ target: this.target });\n    }\n}\n","import { Geometry } from '../core/Geometry.js';\n\nexport class Plane extends Geometry {\n    constructor(gl, { width = 1, height = 1, widthSegments = 1, heightSegments = 1, attributes = {} } = {}) {\n        const wSegs = widthSegments;\n        const hSegs = heightSegments;\n\n        // Determine length of arrays\n        const num = (wSegs + 1) * (hSegs + 1);\n        const numIndices = wSegs * hSegs * 6;\n\n        // Generate empty arrays once\n        const position = new Float32Array(num * 3);\n        const normal = new Float32Array(num * 3);\n        const uv = new Float32Array(num * 2);\n        const index = numIndices > 65536 ? new Uint32Array(numIndices) : new Uint16Array(numIndices);\n\n        Plane.buildPlane(position, normal, uv, index, width, height, 0, wSegs, hSegs);\n\n        Object.assign(attributes, {\n            position: { size: 3, data: position },\n            normal: { size: 3, data: normal },\n            uv: { size: 2, data: uv },\n            index: { data: index },\n        });\n\n        super(gl, attributes);\n    }\n\n    static buildPlane(position, normal, uv, index, width, height, depth, wSegs, hSegs, u = 0, v = 1, w = 2, uDir = 1, vDir = -1, i = 0, ii = 0) {\n        const io = i;\n        const segW = width / wSegs;\n        const segH = height / hSegs;\n\n        for (let iy = 0; iy <= hSegs; iy++) {\n            let y = iy * segH - height / 2;\n            for (let ix = 0; ix <= wSegs; ix++, i++) {\n                let x = ix * segW - width / 2;\n\n                position[i * 3 + u] = x * uDir;\n                position[i * 3 + v] = y * vDir;\n                position[i * 3 + w] = depth / 2;\n\n                normal[i * 3 + u] = 0;\n                normal[i * 3 + v] = 0;\n                normal[i * 3 + w] = depth >= 0 ? 1 : -1;\n\n                uv[i * 2] = ix / wSegs;\n                uv[i * 2 + 1] = 1 - iy / hSegs;\n\n                if (iy === hSegs || ix === wSegs) continue;\n                let a = io + ix + iy * (wSegs + 1);\n                let b = io + ix + (iy + 1) * (wSegs + 1);\n                let c = io + ix + (iy + 1) * (wSegs + 1) + 1;\n                let d = io + ix + iy * (wSegs + 1) + 1;\n\n                index[ii * 6] = a;\n                index[ii * 6 + 1] = b;\n                index[ii * 6 + 2] = d;\n                index[ii * 6 + 3] = b;\n                index[ii * 6 + 4] = c;\n                index[ii * 6 + 5] = d;\n                ii++;\n            }\n        }\n    }\n}\n","import { Geometry } from '../core/Geometry.js';\nimport { Plane } from './Plane.js';\n\nexport class Box extends Geometry {\n    constructor(gl, { width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1, attributes = {} } = {}) {\n        const wSegs = widthSegments;\n        const hSegs = heightSegments;\n        const dSegs = depthSegments;\n\n        const num = (wSegs + 1) * (hSegs + 1) * 2 + (wSegs + 1) * (dSegs + 1) * 2 + (hSegs + 1) * (dSegs + 1) * 2;\n        const numIndices = (wSegs * hSegs * 2 + wSegs * dSegs * 2 + hSegs * dSegs * 2) * 6;\n\n        const position = new Float32Array(num * 3);\n        const normal = new Float32Array(num * 3);\n        const uv = new Float32Array(num * 2);\n        const index = num > 65536 ? new Uint32Array(numIndices) : new Uint16Array(numIndices);\n\n        let i = 0;\n        let ii = 0;\n\n        // left, right\n        Plane.buildPlane(position, normal, uv, index, depth, height, width, dSegs, hSegs, 2, 1, 0, -1, -1, i, ii);\n        i += (dSegs + 1) * (hSegs + 1);\n        ii += dSegs * hSegs;\n\n        Plane.buildPlane(position, normal, uv, index, depth, height, -width, dSegs, hSegs, 2, 1, 0, 1, -1, i, ii);\n        i += (dSegs + 1) * (hSegs + 1);\n        ii += dSegs * hSegs;\n\n        // top, bottom\n        Plane.buildPlane(position, normal, uv, index, width, depth, height, dSegs, wSegs, 0, 2, 1, 1, 1, i, ii);\n        i += (wSegs + 1) * (dSegs + 1);\n        ii += wSegs * dSegs;\n\n        Plane.buildPlane(position, normal, uv, index, width, depth, -height, dSegs, wSegs, 0, 2, 1, 1, -1, i, ii);\n        i += (wSegs + 1) * (dSegs + 1);\n        ii += wSegs * dSegs;\n\n        // front, back\n        Plane.buildPlane(position, normal, uv, index, width, height, -depth, wSegs, hSegs, 0, 1, 2, -1, -1, i, ii);\n        i += (wSegs + 1) * (hSegs + 1);\n        ii += wSegs * hSegs;\n\n        Plane.buildPlane(position, normal, uv, index, width, height, depth, wSegs, hSegs, 0, 1, 2, 1, -1, i, ii);\n\n        Object.assign(attributes, {\n            position: { size: 3, data: position },\n            normal: { size: 3, data: normal },\n            uv: { size: 2, data: uv },\n            index: { data: index },\n        });\n\n        super(gl, attributes);\n    }\n}\n","import { Geometry } from '../core/Geometry.js';\nimport { Vec3 } from '../math/Vec3.js';\n\nexport class Sphere extends Geometry {\n    constructor(\n        gl,\n        {\n            radius = 0.5,\n            widthSegments = 16,\n            heightSegments = Math.ceil(widthSegments * 0.5),\n            phiStart = 0,\n            phiLength = Math.PI * 2,\n            thetaStart = 0,\n            thetaLength = Math.PI,\n            attributes = {},\n        } = {}\n    ) {\n        const wSegs = widthSegments;\n        const hSegs = heightSegments;\n        const pStart = phiStart;\n        const pLength = phiLength;\n        const tStart = thetaStart;\n        const tLength = thetaLength;\n\n        const num = (wSegs + 1) * (hSegs + 1);\n        const numIndices = wSegs * hSegs * 6;\n\n        const position = new Float32Array(num * 3);\n        const normal = new Float32Array(num * 3);\n        const uv = new Float32Array(num * 2);\n        const index = num > 65536 ? new Uint32Array(numIndices) : new Uint16Array(numIndices);\n\n        let i = 0;\n        let iv = 0;\n        let ii = 0;\n        let te = tStart + tLength;\n        const grid = [];\n\n        let n = new Vec3();\n\n        for (let iy = 0; iy <= hSegs; iy++) {\n            let vRow = [];\n            let v = iy / hSegs;\n            for (let ix = 0; ix <= wSegs; ix++, i++) {\n                let u = ix / wSegs;\n                let x = -radius * Math.cos(pStart + u * pLength) * Math.sin(tStart + v * tLength);\n                let y = radius * Math.cos(tStart + v * tLength);\n                let z = radius * Math.sin(pStart + u * pLength) * Math.sin(tStart + v * tLength);\n\n                position[i * 3] = x;\n                position[i * 3 + 1] = y;\n                position[i * 3 + 2] = z;\n\n                n.set(x, y, z).normalize();\n                normal[i * 3] = n.x;\n                normal[i * 3 + 1] = n.y;\n                normal[i * 3 + 2] = n.z;\n\n                uv[i * 2] = u;\n                uv[i * 2 + 1] = 1 - v;\n\n                vRow.push(iv++);\n            }\n\n            grid.push(vRow);\n        }\n\n        for (let iy = 0; iy < hSegs; iy++) {\n            for (let ix = 0; ix < wSegs; ix++) {\n                let a = grid[iy][ix + 1];\n                let b = grid[iy][ix];\n                let c = grid[iy + 1][ix];\n                let d = grid[iy + 1][ix + 1];\n\n                if (iy !== 0 || tStart > 0) {\n                    index[ii * 3] = a;\n                    index[ii * 3 + 1] = b;\n                    index[ii * 3 + 2] = d;\n                    ii++;\n                }\n                if (iy !== hSegs - 1 || te < Math.PI) {\n                    index[ii * 3] = b;\n                    index[ii * 3 + 1] = c;\n                    index[ii * 3 + 2] = d;\n                    ii++;\n                }\n            }\n        }\n\n        Object.assign(attributes, {\n            position: { size: 3, data: position },\n            normal: { size: 3, data: normal },\n            uv: { size: 2, data: uv },\n            index: { data: index },\n        });\n\n        super(gl, attributes);\n    }\n}\n","import { Geometry } from '../core/Geometry.js';\nimport { Vec3 } from '../math/Vec3.js';\n\nexport class Cylinder extends Geometry {\n    constructor(\n        gl,\n        {\n            radiusTop = 0.5,\n            radiusBottom = 0.5,\n            height = 1,\n            radialSegments = 8,\n            heightSegments = 1,\n            openEnded = false,\n            thetaStart = 0,\n            thetaLength = Math.PI * 2,\n            attributes = {},\n        } = {}\n    ) {\n        const rSegs = radialSegments;\n        const hSegs = heightSegments;\n        const tStart = thetaStart;\n        const tLength = thetaLength;\n\n        const numCaps = openEnded ? 0 : radiusBottom && radiusTop ? 2 : 1;\n        const num = (rSegs + 1) * (hSegs + 1 + numCaps) + numCaps;\n        const numIndices = rSegs * hSegs * 6 + numCaps * rSegs * 3;\n\n        const position = new Float32Array(num * 3);\n        const normal = new Float32Array(num * 3);\n        const uv = new Float32Array(num * 2);\n        const index = num > 65536 ? new Uint32Array(numIndices) : new Uint16Array(numIndices);\n\n        let i = 0;\n        let ii = 0;\n        const indexArray = [];\n\n        addHeight();\n        if (!openEnded) {\n            if (radiusTop) addCap(true);\n            if (radiusBottom) addCap(false);\n        }\n\n        function addHeight() {\n            let x, y;\n            const n = new Vec3();\n            const slope = (radiusBottom - radiusTop) / height;\n\n            for (y = 0; y <= hSegs; y++) {\n                const indexRow = [];\n                const v = y / hSegs;\n\n                const r = v * (radiusBottom - radiusTop) + radiusTop;\n                for (x = 0; x <= rSegs; x++) {\n                    const u = x / rSegs;\n                    const theta = u * tLength + tStart;\n                    const sinTheta = Math.sin(theta);\n                    const cosTheta = Math.cos(theta);\n\n                    position.set([r * sinTheta, (0.5 - v) * height, r * cosTheta], i * 3);\n                    n.set(sinTheta, slope, cosTheta).normalize();\n                    normal.set([n.x, n.y, n.z], i * 3);\n                    uv.set([u, 1 - v], i * 2);\n                    indexRow.push(i++);\n                }\n                indexArray.push(indexRow);\n            }\n\n            for (x = 0; x < rSegs; x++) {\n                for (y = 0; y < hSegs; y++) {\n                    const a = indexArray[y][x];\n                    const b = indexArray[y + 1][x];\n                    const c = indexArray[y + 1][x + 1];\n                    const d = indexArray[y][x + 1];\n\n                    index.set([a, b, d, b, c, d], ii * 3);\n                    ii += 2;\n                }\n            }\n        }\n\n        function addCap(isTop) {\n            let x;\n            const r = isTop === true ? radiusTop : radiusBottom;\n            const sign = isTop === true ? 1 : -1;\n\n            const centerIndex = i;\n            position.set([0, 0.5 * height * sign, 0], i * 3);\n            normal.set([0, sign, 0], i * 3);\n            uv.set([0.5, 0.5], i * 2);\n            i++;\n\n            for (x = 0; x <= rSegs; x++) {\n                const u = x / rSegs;\n                const theta = u * tLength + tStart;\n                const cosTheta = Math.cos(theta);\n                const sinTheta = Math.sin(theta);\n\n                position.set([r * sinTheta, 0.5 * height * sign, r * cosTheta], i * 3);\n                normal.set([0, sign, 0], i * 3);\n                uv.set([cosTheta * 0.5 + 0.5, sinTheta * 0.5 * sign + 0.5], i * 2);\n                i++;\n            }\n\n            for (x = 0; x < rSegs; x++) {\n                const j = centerIndex + x + 1;\n                if (isTop) {\n                    index.set([j, j + 1, centerIndex], ii * 3);\n                } else {\n                    index.set([j + 1, j, centerIndex], ii * 3);\n                }\n                ii++;\n            }\n        }\n\n        Object.assign(attributes, {\n            position: { size: 3, data: position },\n            normal: { size: 3, data: normal },\n            uv: { size: 2, data: uv },\n            index: { data: index },\n        });\n\n        super(gl, attributes);\n    }\n}\n","import { Geometry } from '../core/Geometry.js';\n\nexport class Triangle extends Geometry {\n    constructor(gl, { attributes = {} } = {}) {\n        Object.assign(attributes, {\n            position: { size: 2, data: new Float32Array([-1, -1, 3, -1, -1, 3]) },\n            uv: { size: 2, data: new Float32Array([0, 0, 2, 0, 0, 2]) },\n        });\n\n        super(gl, attributes);\n    }\n}\n","// https://github.com/mrdoob/three.js/blob/master/src/geometries/TorusGeometry.js\n\nimport { Geometry } from '../core/Geometry.js';\nimport { Vec3 } from '../math/Vec3.js';\n\nexport class Torus extends Geometry {\n    constructor(gl, { radius = 0.5, tube = 0.2, radialSegments = 8, tubularSegments = 6, arc = Math.PI * 2, attributes = {} } = {}) {\n        const num = (radialSegments + 1) * (tubularSegments + 1);\n        const numIndices = radialSegments * tubularSegments * 6;\n\n        const vertices = new Float32Array(num * 3);\n        const normals = new Float32Array(num * 3);\n        const uvs = new Float32Array(num * 2);\n        const indices = num > 65536 ? new Uint32Array(numIndices) : new Uint16Array(numIndices);\n\n        const center = new Vec3();\n        const vertex = new Vec3();\n        const normal = new Vec3();\n\n        // generate vertices, normals and uvs\n        let idx = 0;\n        for (let j = 0; j <= radialSegments; j++) {\n            for (let i = 0; i <= tubularSegments; i++, idx++) {\n                const u = (i / tubularSegments) * arc;\n                const v = (j / radialSegments) * Math.PI * 2;\n\n                // vertex\n                vertex.x = (radius + tube * Math.cos(v)) * Math.cos(u);\n                vertex.y = (radius + tube * Math.cos(v)) * Math.sin(u);\n                vertex.z = tube * Math.sin(v);\n\n                vertices.set([vertex.x, vertex.y, vertex.z], idx * 3);\n\n                // normal\n                center.x = radius * Math.cos(u);\n                center.y = radius * Math.sin(u);\n                normal.sub(vertex, center).normalize();\n\n                normals.set([normal.x, normal.y, normal.z], idx * 3);\n\n                // uv\n                uvs.set([i / tubularSegments, j / radialSegments], idx * 2);\n            }\n        }\n\n        // generate indices\n        idx = 0;\n        for (let j = 1; j <= radialSegments; j++) {\n            for (let i = 1; i <= tubularSegments; i++, idx++) {\n                // indices\n                const a = (tubularSegments + 1) * j + i - 1;\n                const b = (tubularSegments + 1) * (j - 1) + i - 1;\n                const c = (tubularSegments + 1) * (j - 1) + i;\n                const d = (tubularSegments + 1) * j + i;\n\n                // faces\n                indices.set([a, b, d, b, c, d], idx * 6);\n            }\n        }\n\n        Object.assign(attributes, {\n            position: { size: 3, data: vertices },\n            normal: { size: 3, data: normals },\n            uv: { size: 2, data: uvs },\n            index: { data: indices },\n        });\n\n        super(gl, attributes);\n    }\n}\n","// Based from ThreeJS' OrbitControls class, rewritten using es6 with some additions and subtractions.\n// TODO: abstract event handlers so can be fed from other sources\n// TODO: make scroll zoom more accurate than just >/< zero\n// TODO: be able to pass in new camera position\n\nimport { Vec3 } from '../math/Vec3.js';\nimport { Vec2 } from '../math/Vec2.js';\n\nconst STATE = { NONE: -1, ROTATE: 0, DOLLY: 1, PAN: 2, DOLLY_PAN: 3 };\nconst tempVec3 = /* @__PURE__ */ new Vec3();\nconst tempVec2a = /* @__PURE__ */ new Vec2();\nconst tempVec2b = /* @__PURE__ */ new Vec2();\n\nexport function Orbit(\n    object,\n    {\n        element = document,\n        enabled = true,\n        target = new Vec3(),\n        ease = 0.25,\n        inertia = 0.85,\n        enableRotate = true,\n        rotateSpeed = 0.1,\n        autoRotate = false,\n        autoRotateSpeed = 1.0,\n        enableZoom = true,\n        zoomSpeed = 1,\n        zoomStyle = 'dolly',\n        enablePan = true,\n        panSpeed = 0.1,\n        minPolarAngle = 0,\n        maxPolarAngle = Math.PI,\n        minAzimuthAngle = -Infinity,\n        maxAzimuthAngle = Infinity,\n        minDistance = 0,\n        maxDistance = Infinity,\n    } = {}\n) {\n    this.enabled = enabled;\n    this.target = target;\n    this.zoomStyle = zoomStyle;\n\n    // Catch attempts to disable - set to 1 so has no effect\n    ease = ease || 1;\n    inertia = inertia || 0;\n\n    this.minDistance = minDistance;\n    this.maxDistance = maxDistance;\n\n    // current position in sphericalTarget coordinates\n    const sphericalDelta = { radius: 1, phi: 0, theta: 0 };\n    const sphericalTarget = { radius: 1, phi: 0, theta: 0 };\n    const spherical = { radius: 1, phi: 0, theta: 0 };\n    const panDelta = new Vec3();\n\n    // Grab initial position values\n    const offset = new Vec3();\n    offset.copy(object.position).sub(this.target);\n    spherical.radius = sphericalTarget.radius = offset.distance();\n    spherical.theta = sphericalTarget.theta = Math.atan2(offset.x, offset.z);\n    spherical.phi = sphericalTarget.phi = Math.acos(Math.min(Math.max(offset.y / sphericalTarget.radius, -1), 1));\n\n    this.offset = offset;\n\n    this.update = () => {\n        if (autoRotate) {\n            handleAutoRotate();\n        }\n\n        // apply delta\n        sphericalTarget.radius *= sphericalDelta.radius;\n        sphericalTarget.theta += sphericalDelta.theta;\n        sphericalTarget.phi += sphericalDelta.phi;\n\n        // apply boundaries\n        sphericalTarget.theta = Math.max(minAzimuthAngle, Math.min(maxAzimuthAngle, sphericalTarget.theta));\n        sphericalTarget.phi = Math.max(minPolarAngle, Math.min(maxPolarAngle, sphericalTarget.phi));\n        sphericalTarget.radius = Math.max(this.minDistance, Math.min(this.maxDistance, sphericalTarget.radius));\n\n        // ease values\n        spherical.phi += (sphericalTarget.phi - spherical.phi) * ease;\n        spherical.theta += (sphericalTarget.theta - spherical.theta) * ease;\n        spherical.radius += (sphericalTarget.radius - spherical.radius) * ease;\n\n        // apply pan to target. As offset is relative to target, it also shifts\n        this.target.add(panDelta);\n\n        // apply rotation to offset\n        let sinPhiRadius = spherical.radius * Math.sin(Math.max(0.000001, spherical.phi));\n        offset.x = sinPhiRadius * Math.sin(spherical.theta);\n        offset.y = spherical.radius * Math.cos(spherical.phi);\n        offset.z = sinPhiRadius * Math.cos(spherical.theta);\n\n        // Apply updated values to object\n        object.position.copy(this.target).add(offset);\n        object.lookAt(this.target);\n\n        // Apply inertia to values\n        sphericalDelta.theta *= inertia;\n        sphericalDelta.phi *= inertia;\n        panDelta.multiply(inertia);\n\n        // Reset scale every frame to avoid applying scale multiple times\n        sphericalDelta.radius = 1;\n    };\n\n    // Updates internals with new position\n    this.forcePosition = () => {\n        offset.copy(object.position).sub(this.target);\n        spherical.radius = sphericalTarget.radius = offset.distance();\n        spherical.theta = sphericalTarget.theta = Math.atan2(offset.x, offset.z);\n        spherical.phi = sphericalTarget.phi = Math.acos(Math.min(Math.max(offset.y / sphericalTarget.radius, -1), 1));\n        object.lookAt(this.target);\n    };\n\n    // Everything below here just updates panDelta and sphericalDelta\n    // Using those two objects' values, the orbit is calculated\n\n    const rotateStart = new Vec2();\n    const panStart = new Vec2();\n    const dollyStart = new Vec2();\n\n    let state = STATE.NONE;\n    this.mouseButtons = { ORBIT: 0, ZOOM: 1, PAN: 2 };\n\n    function getZoomScale() {\n        return Math.pow(0.95, zoomSpeed);\n    }\n\n    function panLeft(distance, m) {\n        tempVec3.set(m[0], m[1], m[2]);\n        tempVec3.multiply(-distance);\n        panDelta.add(tempVec3);\n    }\n\n    function panUp(distance, m) {\n        tempVec3.set(m[4], m[5], m[6]);\n        tempVec3.multiply(distance);\n        panDelta.add(tempVec3);\n    }\n\n    const pan = (deltaX, deltaY) => {\n        let el = element === document ? document.body : element;\n        tempVec3.copy(object.position).sub(this.target);\n        let targetDistance = tempVec3.distance();\n        targetDistance *= Math.tan((((object.fov || 45) / 2) * Math.PI) / 180.0);\n        panLeft((2 * deltaX * targetDistance) / el.clientHeight, object.matrix);\n        panUp((2 * deltaY * targetDistance) / el.clientHeight, object.matrix);\n    };\n\n    const dolly = (dollyScale) => {\n        if (this.zoomStyle === 'dolly') sphericalDelta.radius /= dollyScale;\n        else {\n            object.fov /= dollyScale;\n            if (object.type === 'orthographic') object.orthographic();\n            else object.perspective();\n        }\n    };\n\n    function handleAutoRotate() {\n        const angle = ((2 * Math.PI) / 60 / 60) * autoRotateSpeed;\n        sphericalDelta.theta -= angle;\n    }\n\n    function handleMoveRotate(x, y) {\n        tempVec2a.set(x, y);\n        tempVec2b.sub(tempVec2a, rotateStart).multiply(rotateSpeed);\n        let el = element === document ? document.body : element;\n        sphericalDelta.theta -= (2 * Math.PI * tempVec2b.x) / el.clientHeight;\n        sphericalDelta.phi -= (2 * Math.PI * tempVec2b.y) / el.clientHeight;\n        rotateStart.copy(tempVec2a);\n    }\n\n    function handleMouseMoveDolly(e) {\n        tempVec2a.set(e.clientX, e.clientY);\n        tempVec2b.sub(tempVec2a, dollyStart);\n        if (tempVec2b.y > 0) {\n            dolly(getZoomScale());\n        } else if (tempVec2b.y < 0) {\n            dolly(1 / getZoomScale());\n        }\n        dollyStart.copy(tempVec2a);\n    }\n\n    function handleMovePan(x, y) {\n        tempVec2a.set(x, y);\n        tempVec2b.sub(tempVec2a, panStart).multiply(panSpeed);\n        pan(tempVec2b.x, tempVec2b.y);\n        panStart.copy(tempVec2a);\n    }\n\n    function handleTouchStartDollyPan(e) {\n        if (enableZoom) {\n            let dx = e.touches[0].pageX - e.touches[1].pageX;\n            let dy = e.touches[0].pageY - e.touches[1].pageY;\n            let distance = Math.sqrt(dx * dx + dy * dy);\n            dollyStart.set(0, distance);\n        }\n\n        if (enablePan) {\n            let x = 0.5 * (e.touches[0].pageX + e.touches[1].pageX);\n            let y = 0.5 * (e.touches[0].pageY + e.touches[1].pageY);\n            panStart.set(x, y);\n        }\n    }\n\n    function handleTouchMoveDollyPan(e) {\n        if (enableZoom) {\n            let dx = e.touches[0].pageX - e.touches[1].pageX;\n            let dy = e.touches[0].pageY - e.touches[1].pageY;\n            let distance = Math.sqrt(dx * dx + dy * dy);\n            tempVec2a.set(0, distance);\n            tempVec2b.set(0, Math.pow(tempVec2a.y / dollyStart.y, zoomSpeed));\n            dolly(tempVec2b.y);\n            dollyStart.copy(tempVec2a);\n        }\n\n        if (enablePan) {\n            let x = 0.5 * (e.touches[0].pageX + e.touches[1].pageX);\n            let y = 0.5 * (e.touches[0].pageY + e.touches[1].pageY);\n            handleMovePan(x, y);\n        }\n    }\n\n    const onMouseDown = (e) => {\n        if (!this.enabled) return;\n\n        switch (e.button) {\n            case this.mouseButtons.ORBIT:\n                if (enableRotate === false) return;\n                rotateStart.set(e.clientX, e.clientY);\n                state = STATE.ROTATE;\n                break;\n            case this.mouseButtons.ZOOM:\n                if (enableZoom === false) return;\n                dollyStart.set(e.clientX, e.clientY);\n                state = STATE.DOLLY;\n                break;\n            case this.mouseButtons.PAN:\n                if (enablePan === false) return;\n                panStart.set(e.clientX, e.clientY);\n                state = STATE.PAN;\n                break;\n        }\n\n        if (state !== STATE.NONE) {\n            window.addEventListener('mousemove', onMouseMove, false);\n            window.addEventListener('mouseup', onMouseUp, false);\n        }\n    };\n\n    const onMouseMove = (e) => {\n        if (!this.enabled) return;\n\n        switch (state) {\n            case STATE.ROTATE:\n                if (enableRotate === false) return;\n                handleMoveRotate(e.clientX, e.clientY);\n                break;\n            case STATE.DOLLY:\n                if (enableZoom === false) return;\n                handleMouseMoveDolly(e);\n                break;\n            case STATE.PAN:\n                if (enablePan === false) return;\n                handleMovePan(e.clientX, e.clientY);\n                break;\n        }\n    };\n\n    const onMouseUp = () => {\n        window.removeEventListener('mousemove', onMouseMove, false);\n        window.removeEventListener('mouseup', onMouseUp, false);\n        state = STATE.NONE;\n    };\n\n    const onMouseWheel = (e) => {\n        if (!this.enabled || !enableZoom || (state !== STATE.NONE && state !== STATE.ROTATE)) return;\n        e.stopPropagation();\n        e.preventDefault();\n\n        if (e.deltaY < 0) {\n            dolly(1 / getZoomScale());\n        } else if (e.deltaY > 0) {\n            dolly(getZoomScale());\n        }\n    };\n\n    const onTouchStart = (e) => {\n        if (!this.enabled) return;\n        e.preventDefault();\n\n        switch (e.touches.length) {\n            case 1:\n                if (enableRotate === false) return;\n                rotateStart.set(e.touches[0].pageX, e.touches[0].pageY);\n                state = STATE.ROTATE;\n                break;\n            case 2:\n                if (enableZoom === false && enablePan === false) return;\n                handleTouchStartDollyPan(e);\n                state = STATE.DOLLY_PAN;\n                break;\n            default:\n                state = STATE.NONE;\n        }\n    };\n\n    const onTouchMove = (e) => {\n        if (!this.enabled) return;\n        e.preventDefault();\n        e.stopPropagation();\n\n        switch (e.touches.length) {\n            case 1:\n                if (enableRotate === false) return;\n                handleMoveRotate(e.touches[0].pageX, e.touches[0].pageY);\n                break;\n            case 2:\n                if (enableZoom === false && enablePan === false) return;\n                handleTouchMoveDollyPan(e);\n                break;\n            default:\n                state = STATE.NONE;\n        }\n    };\n\n    const onTouchEnd = () => {\n        if (!this.enabled) return;\n        state = STATE.NONE;\n    };\n\n    const onContextMenu = (e) => {\n        if (!this.enabled) return;\n        e.preventDefault();\n    };\n\n    function addHandlers() {\n        element.addEventListener('contextmenu', onContextMenu, false);\n        element.addEventListener('mousedown', onMouseDown, false);\n        element.addEventListener('wheel', onMouseWheel, { passive: false });\n        element.addEventListener('touchstart', onTouchStart, { passive: false });\n        element.addEventListener('touchend', onTouchEnd, false);\n        element.addEventListener('touchmove', onTouchMove, { passive: false });\n    }\n\n    this.remove = function () {\n        element.removeEventListener('contextmenu', onContextMenu);\n        element.removeEventListener('mousedown', onMouseDown);\n        element.removeEventListener('wheel', onMouseWheel);\n        element.removeEventListener('touchstart', onTouchStart);\n        element.removeEventListener('touchend', onTouchEnd);\n        element.removeEventListener('touchmove', onTouchMove);\n        window.removeEventListener('mousemove', onMouseMove);\n        window.removeEventListener('mouseup', onMouseUp);\n    };\n\n    addHandlers();\n}\n","// TODO: barycentric code shouldn't be here, but where?\n// TODO: SphereCast?\n\nimport { Vec2 } from '../math/Vec2.js';\nimport { Vec3 } from '../math/Vec3.js';\nimport { Mat4 } from '../math/Mat4.js';\n\nconst tempVec2a = /* @__PURE__ */ new Vec2();\nconst tempVec2b = /* @__PURE__ */ new Vec2();\nconst tempVec2c = /* @__PURE__ */ new Vec2();\n\nconst tempVec3a = /* @__PURE__ */ new Vec3();\nconst tempVec3b = /* @__PURE__ */ new Vec3();\nconst tempVec3c = /* @__PURE__ */ new Vec3();\nconst tempVec3d = /* @__PURE__ */ new Vec3();\nconst tempVec3e = /* @__PURE__ */ new Vec3();\nconst tempVec3f = /* @__PURE__ */ new Vec3();\nconst tempVec3g = /* @__PURE__ */ new Vec3();\nconst tempVec3h = /* @__PURE__ */ new Vec3();\nconst tempVec3i = /* @__PURE__ */ new Vec3();\nconst tempVec3j = /* @__PURE__ */ new Vec3();\nconst tempVec3k = /* @__PURE__ */ new Vec3();\n\nconst tempMat4 = /* @__PURE__ */ new Mat4();\n\nexport class Raycast {\n    constructor() {\n        this.origin = new Vec3();\n        this.direction = new Vec3();\n    }\n\n    // Set ray from mouse unprojection\n    castMouse(camera, mouse = [0, 0]) {\n        if (camera.type === 'orthographic') {\n            // Set origin\n            // Since camera is orthographic, origin is not the camera position\n            const { left, right, bottom, top, zoom } = camera;\n            const x = left / zoom + ((right - left) / zoom) * (mouse[0] * 0.5 + 0.5);\n            const y = bottom / zoom + ((top - bottom) / zoom) * (mouse[1] * 0.5 + 0.5);\n            this.origin.set(x, y, 0);\n            this.origin.applyMatrix4(camera.worldMatrix);\n\n            // Set direction\n            // https://community.khronos.org/t/get-direction-from-transformation-matrix-or-quat/65502/2\n            this.direction.x = -camera.worldMatrix[8];\n            this.direction.y = -camera.worldMatrix[9];\n            this.direction.z = -camera.worldMatrix[10];\n        } else {\n            // Set origin\n            camera.worldMatrix.getTranslation(this.origin);\n\n            // Set direction\n            this.direction.set(mouse[0], mouse[1], 0.5);\n            camera.unproject(this.direction);\n            this.direction.sub(this.origin).normalize();\n        }\n    }\n\n    intersectBounds(meshes, { maxDistance, output = [] } = {}) {\n        if (!Array.isArray(meshes)) meshes = [meshes];\n\n        const invWorldMat4 = tempMat4;\n        const origin = tempVec3a;\n        const direction = tempVec3b;\n\n        const hits = output;\n        hits.length = 0;\n\n        meshes.forEach((mesh) => {\n            // Create bounds\n            if (!mesh.geometry.bounds || mesh.geometry.bounds.radius === Infinity) mesh.geometry.computeBoundingSphere();\n            const bounds = mesh.geometry.bounds;\n            invWorldMat4.inverse(mesh.worldMatrix);\n\n            // Get max distance locally\n            let localMaxDistance;\n            if (maxDistance) {\n                direction.copy(this.direction).scaleRotateMatrix4(invWorldMat4);\n                localMaxDistance = maxDistance * direction.len();\n            }\n\n            // Take world space ray and make it object space to align with bounding box\n            origin.copy(this.origin).applyMatrix4(invWorldMat4);\n            direction.copy(this.direction).transformDirection(invWorldMat4);\n\n            // Break out early if bounds too far away from origin\n            if (maxDistance) {\n                if (origin.distance(bounds.center) - bounds.radius > localMaxDistance) return;\n            }\n\n            let localDistance = 0;\n\n            // Check origin isn't inside bounds before testing intersection\n            if (mesh.geometry.raycast === 'sphere') {\n                if (origin.distance(bounds.center) > bounds.radius) {\n                    localDistance = this.intersectSphere(bounds, origin, direction);\n                    if (!localDistance) return;\n                }\n            } else {\n                if (\n                    origin.x < bounds.min.x ||\n                    origin.x > bounds.max.x ||\n                    origin.y < bounds.min.y ||\n                    origin.y > bounds.max.y ||\n                    origin.z < bounds.min.z ||\n                    origin.z > bounds.max.z\n                ) {\n                    localDistance = this.intersectBox(bounds, origin, direction);\n                    if (!localDistance) return;\n                }\n            }\n\n            if (maxDistance && localDistance > localMaxDistance) return;\n\n            // Create object on mesh to avoid generating lots of objects\n            if (!mesh.hit) mesh.hit = { localPoint: new Vec3(), point: new Vec3() };\n\n            mesh.hit.localPoint.copy(direction).multiply(localDistance).add(origin);\n            mesh.hit.point.copy(mesh.hit.localPoint).applyMatrix4(mesh.worldMatrix);\n            mesh.hit.distance = mesh.hit.point.distance(this.origin);\n\n            hits.push(mesh);\n        });\n\n        hits.sort((a, b) => a.hit.distance - b.hit.distance);\n        return hits;\n    }\n\n    intersectMeshes(meshes, { cullFace = true, maxDistance, includeUV = true, includeNormal = true, output = [] } = {}) {\n        // Test bounds first before testing geometry\n        const hits = this.intersectBounds(meshes, { maxDistance, output });\n        if (!hits.length) return hits;\n\n        const invWorldMat4 = tempMat4;\n        const origin = tempVec3a;\n        const direction = tempVec3b;\n        const a = tempVec3c;\n        const b = tempVec3d;\n        const c = tempVec3e;\n        const closestFaceNormal = tempVec3f;\n        const faceNormal = tempVec3g;\n        const barycoord = tempVec3h;\n        const uvA = tempVec2a;\n        const uvB = tempVec2b;\n        const uvC = tempVec2c;\n\n        for (let i = hits.length - 1; i >= 0; i--) {\n            const mesh = hits[i];\n            invWorldMat4.inverse(mesh.worldMatrix);\n\n            // Get max distance locally\n            let localMaxDistance;\n            if (maxDistance) {\n                direction.copy(this.direction).scaleRotateMatrix4(invWorldMat4);\n                localMaxDistance = maxDistance * direction.len();\n            }\n\n            // Take world space ray and make it object space to align with bounding box\n            origin.copy(this.origin).applyMatrix4(invWorldMat4);\n            direction.copy(this.direction).transformDirection(invWorldMat4);\n\n            let localDistance = 0;\n            let closestA, closestB, closestC;\n\n            const geometry = mesh.geometry;\n            const attributes = geometry.attributes;\n            const index = attributes.index;\n            const position = attributes.position;\n\n            const start = Math.max(0, geometry.drawRange.start);\n            const end = Math.min(index ? index.count : position.count, geometry.drawRange.start + geometry.drawRange.count);\n            // Data loaded shouldn't haave stride, only buffers\n            // const stride = position.stride ? position.stride / position.data.BYTES_PER_ELEMENT : position.size;\n            const stride = position.size;\n\n            for (let j = start; j < end; j += 3) {\n                // Position attribute indices for each triangle\n                const ai = index ? index.data[j] : j;\n                const bi = index ? index.data[j + 1] : j + 1;\n                const ci = index ? index.data[j + 2] : j + 2;\n\n                a.fromArray(position.data, ai * stride);\n                b.fromArray(position.data, bi * stride);\n                c.fromArray(position.data, ci * stride);\n\n                const distance = this.intersectTriangle(a, b, c, cullFace, origin, direction, faceNormal);\n                if (!distance) continue;\n\n                // Too far away\n                if (maxDistance && distance > localMaxDistance) continue;\n\n                if (!localDistance || distance < localDistance) {\n                    localDistance = distance;\n                    closestA = ai;\n                    closestB = bi;\n                    closestC = ci;\n                    closestFaceNormal.copy(faceNormal);\n                }\n            }\n\n            if (!localDistance) hits.splice(i, 1);\n\n            // Update hit values from bounds-test\n            mesh.hit.localPoint.copy(direction).multiply(localDistance).add(origin);\n            mesh.hit.point.copy(mesh.hit.localPoint).applyMatrix4(mesh.worldMatrix);\n            mesh.hit.distance = mesh.hit.point.distance(this.origin);\n\n            // Add unique hit objects on mesh to avoid generating lots of objects\n            if (!mesh.hit.faceNormal) {\n                mesh.hit.localFaceNormal = new Vec3();\n                mesh.hit.faceNormal = new Vec3();\n                mesh.hit.uv = new Vec2();\n                mesh.hit.localNormal = new Vec3();\n                mesh.hit.normal = new Vec3();\n            }\n\n            // Add face normal data which is already computed\n            mesh.hit.localFaceNormal.copy(closestFaceNormal);\n            mesh.hit.faceNormal.copy(mesh.hit.localFaceNormal).transformDirection(mesh.worldMatrix);\n\n            // Optional data, opt out to optimise a bit if necessary\n            if (includeUV || includeNormal) {\n                // Calculate barycoords to find uv values at hit point\n                a.fromArray(position.data, closestA * 3);\n                b.fromArray(position.data, closestB * 3);\n                c.fromArray(position.data, closestC * 3);\n                this.getBarycoord(mesh.hit.localPoint, a, b, c, barycoord);\n            }\n\n            if (includeUV && attributes.uv) {\n                uvA.fromArray(attributes.uv.data, closestA * 2);\n                uvB.fromArray(attributes.uv.data, closestB * 2);\n                uvC.fromArray(attributes.uv.data, closestC * 2);\n                mesh.hit.uv.set(\n                    uvA.x * barycoord.x + uvB.x * barycoord.y + uvC.x * barycoord.z,\n                    uvA.y * barycoord.x + uvB.y * barycoord.y + uvC.y * barycoord.z\n                );\n            }\n\n            if (includeNormal && attributes.normal) {\n                a.fromArray(attributes.normal.data, closestA * 3);\n                b.fromArray(attributes.normal.data, closestB * 3);\n                c.fromArray(attributes.normal.data, closestC * 3);\n                mesh.hit.localNormal.set(\n                    a.x * barycoord.x + b.x * barycoord.y + c.x * barycoord.z,\n                    a.y * barycoord.x + b.y * barycoord.y + c.y * barycoord.z,\n                    a.z * barycoord.x + b.z * barycoord.y + c.z * barycoord.z\n                );\n\n                mesh.hit.normal.copy(mesh.hit.localNormal).transformDirection(mesh.worldMatrix);\n            }\n        }\n\n        hits.sort((a, b) => a.hit.distance - b.hit.distance);\n        return hits;\n    }\n\n    intersectPlane(plane, origin = this.origin, direction = this.direction) {\n        const xminp = tempVec3a;\n        xminp.sub(plane.origin, origin);\n\n        const a = xminp.dot(plane.normal);\n        const b = direction.dot(plane.normal);\n        // Assuming we don't want to count a ray parallel to the plane as intersecting\n        if (b == 0) return 0;\n        const delta = a / b;\n        if (delta <= 0) return 0;\n        return origin.add(direction.scale(delta));\n    }\n\n    intersectSphere(sphere, origin = this.origin, direction = this.direction) {\n        const ray = tempVec3c;\n        ray.sub(sphere.center, origin);\n        const tca = ray.dot(direction);\n        const d2 = ray.dot(ray) - tca * tca;\n        const radius2 = sphere.radius * sphere.radius;\n        if (d2 > radius2) return 0;\n        const thc = Math.sqrt(radius2 - d2);\n        const t0 = tca - thc;\n        const t1 = tca + thc;\n        if (t0 < 0 && t1 < 0) return 0;\n        if (t0 < 0) return t1;\n        return t0;\n    }\n\n    // Ray AABB - Ray Axis aligned bounding box testing\n    intersectBox(box, origin = this.origin, direction = this.direction) {\n        let tmin, tmax, tYmin, tYmax, tZmin, tZmax;\n        const invdirx = 1 / direction.x;\n        const invdiry = 1 / direction.y;\n        const invdirz = 1 / direction.z;\n        const min = box.min;\n        const max = box.max;\n        tmin = ((invdirx >= 0 ? min.x : max.x) - origin.x) * invdirx;\n        tmax = ((invdirx >= 0 ? max.x : min.x) - origin.x) * invdirx;\n        tYmin = ((invdiry >= 0 ? min.y : max.y) - origin.y) * invdiry;\n        tYmax = ((invdiry >= 0 ? max.y : min.y) - origin.y) * invdiry;\n        if (tmin > tYmax || tYmin > tmax) return 0;\n        if (tYmin > tmin) tmin = tYmin;\n        if (tYmax < tmax) tmax = tYmax;\n        tZmin = ((invdirz >= 0 ? min.z : max.z) - origin.z) * invdirz;\n        tZmax = ((invdirz >= 0 ? max.z : min.z) - origin.z) * invdirz;\n        if (tmin > tZmax || tZmin > tmax) return 0;\n        if (tZmin > tmin) tmin = tZmin;\n        if (tZmax < tmax) tmax = tZmax;\n        if (tmax < 0) return 0;\n        return tmin >= 0 ? tmin : tmax;\n    }\n\n    intersectTriangle(a, b, c, backfaceCulling = true, origin = this.origin, direction = this.direction, normal = tempVec3g) {\n        // from https://github.com/mrdoob/three.js/blob/master/src/math/Ray.js\n        // which is from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n        const edge1 = tempVec3h;\n        const edge2 = tempVec3i;\n        const diff = tempVec3j;\n        edge1.sub(b, a);\n        edge2.sub(c, a);\n        normal.cross(edge1, edge2);\n        let DdN = direction.dot(normal);\n        if (!DdN) return 0;\n        let sign;\n        if (DdN > 0) {\n            if (backfaceCulling) return 0;\n            sign = 1;\n        } else {\n            sign = -1;\n            DdN = -DdN;\n        }\n        diff.sub(origin, a);\n        let DdQxE2 = sign * direction.dot(edge2.cross(diff, edge2));\n        if (DdQxE2 < 0) return 0;\n        let DdE1xQ = sign * direction.dot(edge1.cross(diff));\n        if (DdE1xQ < 0) return 0;\n        if (DdQxE2 + DdE1xQ > DdN) return 0;\n        let QdN = -sign * diff.dot(normal);\n        if (QdN < 0) return 0;\n        return QdN / DdN;\n    }\n\n    getBarycoord(point, a, b, c, target = tempVec3h) {\n        // From https://github.com/mrdoob/three.js/blob/master/src/math/Triangle.js\n        // static/instance method to calculate barycentric coordinates\n        // based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n        const v0 = tempVec3i;\n        const v1 = tempVec3j;\n        const v2 = tempVec3k;\n        v0.sub(c, a);\n        v1.sub(b, a);\n        v2.sub(point, a);\n        const dot00 = v0.dot(v0);\n        const dot01 = v0.dot(v1);\n        const dot02 = v0.dot(v2);\n        const dot11 = v1.dot(v1);\n        const dot12 = v1.dot(v2);\n        const denom = dot00 * dot11 - dot01 * dot01;\n        if (denom === 0) return target.set(-2, -1, -1);\n        const invDenom = 1 / denom;\n        const u = (dot11 * dot02 - dot01 * dot12) * invDenom;\n        const v = (dot00 * dot12 - dot01 * dot02) * invDenom;\n        return target.set(1 - u - v, v, u);\n    }\n}\n","import { Vec3 } from '../math/Vec3.js';\n\nconst CATMULLROM = 'catmullrom';\nconst CUBICBEZIER = 'cubicbezier';\nconst QUADRATICBEZIER = 'quadraticbezier';\n\n// temp\nconst _a0 = /* @__PURE__ */ new Vec3(),\n    _a1 = /* @__PURE__ */ new Vec3(),\n    _a2 = /* @__PURE__ */ new Vec3(),\n    _a3 = /* @__PURE__ */ new Vec3();\n\n/**\n * Get the control points of cubic bezier curve.\n * @param {*} i\n * @param {*} a\n * @param {*} b\n */\nfunction getCtrlPoint(points, i, a = 0.168, b = 0.168) {\n    if (i < 1) {\n        _a0.sub(points[1], points[0]).scale(a).add(points[0]);\n    } else {\n        _a0.sub(points[i + 1], points[i - 1])\n            .scale(a)\n            .add(points[i]);\n    }\n    if (i > points.length - 3) {\n        const last = points.length - 1;\n        _a1.sub(points[last - 1], points[last])\n            .scale(b)\n            .add(points[last]);\n    } else {\n        _a1.sub(points[i], points[i + 2])\n            .scale(b)\n            .add(points[i + 1]);\n    }\n    return [_a0.clone(), _a1.clone()];\n}\n\nfunction getQuadraticBezierPoint(t, p0, c0, p1) {\n    const k = 1 - t;\n    _a0.copy(p0).scale(k ** 2);\n    _a1.copy(c0).scale(2 * k * t);\n    _a2.copy(p1).scale(t ** 2);\n    const ret = new Vec3();\n    ret.add(_a0, _a1).add(_a2);\n    return ret;\n}\n\nfunction getCubicBezierPoint(t, p0, c0, c1, p1) {\n    const k = 1 - t;\n    _a0.copy(p0).scale(k ** 3);\n    _a1.copy(c0).scale(3 * k ** 2 * t);\n    _a2.copy(c1).scale(3 * k * t ** 2);\n    _a3.copy(p1).scale(t ** 3);\n    const ret = new Vec3();\n    ret.add(_a0, _a1).add(_a2).add(_a3);\n    return ret;\n}\n\nexport class Curve {\n    constructor({ points = [new Vec3(0, 0, 0), new Vec3(0, 1, 0), new Vec3(1, 1, 0), new Vec3(1, 0, 0)], divisions = 12, type = CATMULLROM } = {}) {\n        this.points = points;\n        this.divisions = divisions;\n        this.type = type;\n    }\n\n    _getQuadraticBezierPoints(divisions = this.divisions) {\n        const points = [];\n        const count = this.points.length;\n\n        if (count < 3) {\n            console.warn('Not enough points provided.');\n            return [];\n        }\n\n        const p0 = this.points[0];\n        let c0 = this.points[1],\n            p1 = this.points[2];\n\n        for (let i = 0; i <= divisions; i++) {\n            const p = getQuadraticBezierPoint(i / divisions, p0, c0, p1);\n            points.push(p);\n        }\n\n        let offset = 3;\n        while (count - offset > 0) {\n            p0.copy(p1);\n            c0 = p1.scale(2).sub(c0);\n            p1 = this.points[offset];\n            for (let i = 1; i <= divisions; i++) {\n                const p = getQuadraticBezierPoint(i / divisions, p0, c0, p1);\n                points.push(p);\n            }\n            offset++;\n        }\n\n        return points;\n    }\n\n    _getCubicBezierPoints(divisions = this.divisions) {\n        const points = [];\n        const count = this.points.length;\n\n        if (count < 4) {\n            console.warn('Not enough points provided.');\n            return [];\n        }\n\n        let p0 = this.points[0],\n            c0 = this.points[1],\n            c1 = this.points[2],\n            p1 = this.points[3];\n\n        for (let i = 0; i <= divisions; i++) {\n            const p = getCubicBezierPoint(i / divisions, p0, c0, c1, p1);\n            points.push(p);\n        }\n\n        let offset = 4;\n        while (count - offset > 1) {\n            p0.copy(p1);\n            c0 = p1.scale(2).sub(c1);\n            c1 = this.points[offset];\n            p1 = this.points[offset + 1];\n            for (let i = 1; i <= divisions; i++) {\n                const p = getCubicBezierPoint(i / divisions, p0, c0, c1, p1);\n                points.push(p);\n            }\n            offset += 2;\n        }\n\n        return points;\n    }\n\n    _getCatmullRomPoints(divisions = this.divisions, a = 0.168, b = 0.168) {\n        const points = [];\n        const count = this.points.length;\n\n        if (count <= 2) {\n            return this.points;\n        }\n\n        let p0;\n        this.points.forEach((p, i) => {\n            if (i === 0) {\n                p0 = p;\n            } else {\n                const [c0, c1] = getCtrlPoint(this.points, i - 1, a, b);\n                const c = new Curve({\n                    points: [p0, c0, c1, p],\n                    type: CUBICBEZIER,\n                });\n                points.pop();\n                points.push(...c.getPoints(divisions));\n                p0 = p;\n            }\n        });\n\n        return points;\n    }\n\n    getPoints(divisions = this.divisions, a = 0.168, b = 0.168) {\n        const type = this.type;\n\n        if (type === QUADRATICBEZIER) {\n            return this._getQuadraticBezierPoints(divisions);\n        }\n\n        if (type === CUBICBEZIER) {\n            return this._getCubicBezierPoints(divisions);\n        }\n\n        if (type === CATMULLROM) {\n            return this._getCatmullRomPoints(divisions, a, b);\n        }\n\n        return this.points;\n    }\n}\n\nCurve.CATMULLROM = CATMULLROM;\nCurve.CUBICBEZIER = CUBICBEZIER;\nCurve.QUADRATICBEZIER = QUADRATICBEZIER;\n","import BaseSegment from './BaseSegment.js';\nimport { Vec3 } from '../../math/Vec3.js';\nimport { T_VALUES, C_VALUES } from './utils.js';\n\nconst tempVec3 = /* @__PURE__ */ new Vec3();\n\nfunction cubicBezier(t, p0, p1, p2, p3) {\n    const k = 1 - t;\n    // prettier-ignore\n    return (\n        (k * k * k * p0) +\n        (3 * k * k * t * p1) +\n        (3 * k * t * t * p2) +\n        (t * t * t * p3)\n    );\n}\n\nfunction cubicBezierDeriv(t, p0, p1, p2, p3) {\n    const k = 1 - t;\n    // prettier-ignore\n    return (\n        (3 * k * k * (p1 - p0)) +\n        (6 * k * t * (p2 - p1)) +\n        (3 * t * t * (p3 - p2))\n    );\n}\n\nexport default class CubicBezierSegment extends BaseSegment {\n    constructor(p0, p1, p2, p3, tiltStart = 0, tiltEnd = 0) {\n        super();\n        this.p0 = p0;\n        this.p1 = p1;\n        this.p2 = p2;\n        this.p3 = p3;\n\n        this.tiltStart = tiltStart;\n        this.tiltEnd = tiltEnd;\n\n        this._len = -1;\n    }\n\n    /**\n     * Updates the segment length. You must call this method every time you change the curve's control points.\n     */\n    updateLength() {\n        // from https://github.com/Pomax/bezierjs/blob/d19695f3cc3ce383cf38ce4643f467deca7edb92/src/utils.js#L265\n        const z = 0.5;\n        const len = T_VALUES.length;\n\n        let sum = 0;\n        for (let i = 0, t; i < len; i++) {\n            t = z * T_VALUES[i] + z;\n            sum += C_VALUES[i] * this.getDerivativeAt(t, tempVec3).len();\n        }\n\n        this._len = z * sum;\n    }\n\n    /**\n     * Get point at relative position in curve according to segment length.\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} Point at relative position\n     */\n    getPointAt(t, out = new Vec3()) {\n        out.x = cubicBezier(t, this.p0.x, this.p1.x, this.p2.x, this.p3.x);\n        out.y = cubicBezier(t, this.p0.y, this.p1.y, this.p2.y, this.p3.y);\n        out.z = cubicBezier(t, this.p0.z, this.p1.z, this.p2.z, this.p3.z);\n        return out;\n    }\n\n    getDerivativeAt(t, out = new Vec3()) {\n        out.x = cubicBezierDeriv(t, this.p0.x, this.p1.x, this.p2.x, this.p3.x);\n        out.y = cubicBezierDeriv(t, this.p0.y, this.p1.y, this.p2.y, this.p3.y);\n        out.z = cubicBezierDeriv(t, this.p0.z, this.p1.z, this.p2.z, this.p3.z);\n        return out;\n    }\n\n    /**\n     * Returns a unit vector tangent at t\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} A unit vector\n     */\n    getTangentAt(t, out = new Vec3()) {\n        return this.getDerivativeAt(t, out).normalize();\n    }\n\n    lastPoint() {\n        return this.p3;\n    }\n}\n","import BaseSegment from './BaseSegment.js';\nimport { Vec3 } from '../../math/Vec3.js';\nimport { T_VALUES, C_VALUES } from './utils.js';\n\nconst tempVec3 = /* @__PURE__ */ new Vec3();\n\nfunction quadraticBezier(t, p0, p1, p2) {\n    const k = 1 - t;\n    return k * k * p0 + 2 * k * t * p1 + t * t * p2;\n}\n\nfunction quadraticBezierDeriv(t, p0, p1, p2) {\n    const k = 1 - t;\n    return 2 * k * (p1 - p0) + 2 * t * (p2 - p1);\n}\n\nexport default class QuadraticBezierSegment extends BaseSegment {\n    constructor(p0, p1, p2, tiltStart = 0, tiltEnd = 0) {\n        super();\n        this.p0 = p0;\n        this.p1 = p1;\n        this.p2 = p2;\n\n        this.tiltStart = tiltStart;\n        this.tiltEnd = tiltEnd;\n\n        this._len = -1;\n    }\n\n    /**\n     * Updates the segment length. You must call this method every time you change the curve's control points.\n     */\n    updateLength() {\n        // from https://github.com/Pomax/bezierjs/blob/d19695f3cc3ce383cf38ce4643f467deca7edb92/src/utils.js#L265\n        const z = 0.5;\n        const len = T_VALUES.length;\n\n        let sum = 0;\n        for (let i = 0, t; i < len; i++) {\n            t = z * T_VALUES[i] + z;\n            sum += C_VALUES[i] * this.getDerivativeAt(t, tempVec3).len();\n        }\n\n        this._len = z * sum;\n    }\n\n    /**\n     * Get point at relative position in curve according to segment length.\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} Point at relative position\n     */\n    getPointAt(t, out = new Vec3()) {\n        out.x = quadraticBezier(t, this.p0.x, this.p1.x, this.p2.x);\n        out.y = quadraticBezier(t, this.p0.y, this.p1.y, this.p2.y);\n        out.z = quadraticBezier(t, this.p0.z, this.p1.z, this.p2.z);\n        return out;\n    }\n\n    getDerivativeAt(t, out = new Vec3()) {\n        out.x = quadraticBezierDeriv(t, this.p0.x, this.p1.x, this.p2.x);\n        out.y = quadraticBezierDeriv(t, this.p0.y, this.p1.y, this.p2.y);\n        out.z = quadraticBezierDeriv(t, this.p0.z, this.p1.z, this.p2.z);\n        return out;\n    }\n\n    /**\n     * Returns a unit vector tangent at t\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} A unit vector\n     */\n    getTangentAt(t, out = new Vec3()) {\n        return this.getDerivativeAt(t, out).normalize();\n    }\n\n    lastPoint() {\n        return this.p2;\n    }\n}\n","import BaseSegment from './BaseSegment.js';\nimport { Vec3 } from '../../math/Vec3.js';\nimport { lerp as lerp3 } from '../../math/functions/Vec3Func.js';\n\nconst tempVec3 = /* @__PURE__ */ new Vec3();\n\nexport default class LineSegment extends BaseSegment {\n    constructor(p0, p1, tiltStart = 0, tiltEnd = 0) {\n        super();\n        this.p0 = p0;\n        this.p1 = p1;\n\n        this.tiltStart = tiltStart;\n        this.tiltEnd = tiltEnd;\n\n        this._len = -1;\n    }\n\n    /**\n     * Updates the segment length. You must call this method every time you change the curve's control points.\n     */\n    updateLength() {\n        this._len = tempVec3.sub(this.p1, this.p0).len();\n    }\n\n    /**\n     * Get point at relative position in curve according to segment length.\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} Point at relative position\n     */\n    getPointAt(t, out = new Vec3()) {\n        lerp3(out, this.p0, this.p1, t);\n        return out;\n    }\n\n    /**\n     * Returns a unit vector tangent at t\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} A unit vector\n     */\n    getTangentAt(t, out = new Vec3()) {\n        return out.sub(this.p1, this.p0).normalize();\n    }\n\n    lastPoint() {\n        return this.p1;\n    }\n}\n","import { Vec3 } from '../../math/Vec3.js';\nimport { Mat4 } from '../../math/Mat4.js';\nimport CubicBezierSegment from './CubicBezierSegment.js';\nimport QuadraticBezierSegment from './QuadraticBezierSegment.js';\nimport LineSegment from './LineSegment.js';\nimport { clamp, toDegrees, toRadian, mat4fromRotationSinCos, rotateNormalBinormal } from './utils.js';\n\nconst tempVec3 = /* @__PURE__ */ new Vec3();\nconst tempMat4 = /* @__PURE__ */ new Mat4();\n\nfunction throwIfNullProperty(property, message) {\n    if (this[property] == null) throw new Error(message);\n}\n\nexport class Path {\n    constructor() {\n        this._segments = [];\n        this._lengthOffsets = null;\n        this._totalLength = -1;\n        this._lastPoint = null;\n        this._lastTilt = 0;\n\n        this._assertLastPoint = throwIfNullProperty.bind(this, '_lastPoint', 'Can`t get previous point of curve. Did you forget moveTo command?');\n\n        this.tiltFunction = null;\n    }\n\n    moveTo(p, tilt = 0) {\n        this._totalLength = -1;\n        this._lastPoint = p;\n        this._lastTilt = tilt;\n    }\n\n    bezierCurveTo(cp1, cp2, p, tilt = 0) {\n        this._assertLastPoint();\n        const seg = new CubicBezierSegment(this._lastPoint, cp1, cp2, p, this._lastTilt, tilt);\n        this.addSegment(seg);\n        return this;\n    }\n\n    quadraticCurveTo(cp, p, tilt = 0) {\n        this._assertLastPoint();\n        const seg = new QuadraticBezierSegment(this._lastPoint, cp, p, this._lastTilt, tilt);\n        this.addSegment(seg);\n        return this;\n    }\n\n    lineTo(p, tilt = 0) {\n        this._assertLastPoint();\n        const seg = new LineSegment(this._lastPoint, p, this._lastTilt, tilt);\n        this.addSegment(seg);\n        return this;\n    }\n\n    addSegment(segment) {\n        this._totalLength = -1;\n        this._lastPoint = segment.lastPoint();\n        this._lastTilt = segment.tiltEnd;\n        this._segments.push(segment);\n        return this;\n    }\n\n    getSegments() {\n        return this._segments;\n    }\n\n    updateLength() {\n        const n = this._segments.length;\n        this._lengthOffsets = new Array(n);\n\n        let offset = 0;\n        for (let i = 0; i < n; i++) {\n            this._lengthOffsets[i] = offset;\n            offset += this._segments[i].getLength();\n        }\n\n        this._totalLength = offset;\n    }\n\n    getLength() {\n        if (this._totalLength < 0) {\n            this.updateLength();\n        }\n\n        return this._totalLength;\n    }\n\n    /**\n     * Finding a path segment at a given absolute length distance\n     * @param {number} len absolute length distance\n     * @returns {[number, number]} [_segment index_, _relative segment distance_]\n     */\n    findSegmentIndexAtLength(len) {\n        const totalLength = this.getLength();\n\n        if (len <= 0) {\n            return [0, 0];\n        }\n\n        if (len >= totalLength) {\n            return [this._segments.length - 1, 1];\n        }\n\n        let start = 0;\n        let end = this._lengthOffsets.length - 1;\n        let index = -1;\n        let mid;\n\n        while (start <= end) {\n            mid = Math.ceil((start + end) / 2);\n\n            if (mid === 0 || mid === this._lengthOffsets.length - 1 || (len >= this._lengthOffsets[mid] && len < this._lengthOffsets[mid + 1])) {\n                index = mid;\n                break;\n            } else if (len < this._lengthOffsets[mid]) {\n                end = mid - 1;\n            } else {\n                start = mid + 1;\n            }\n        }\n\n        const seg = this._segments[index];\n        const segLen = seg.getLength();\n        const t = (len - this._lengthOffsets[index]) / segLen;\n\n        return [index, t];\n    }\n\n    getPointAtLength(len, out = new Vec3()) {\n        const [i, t] = this.findSegmentIndexAtLength(len);\n        return this._segments[i].getPointAt(t, out);\n    }\n\n    getPointAt(t, out = new Vec3()) {\n        const totalLength = this.getLength();\n        return this.getPointAtLength(t * totalLength, out);\n    }\n\n    getTangentAtLength(len, out = new Vec3()) {\n        const [i, t] = this.findSegmentIndexAtLength(len);\n        return this._segments[i].getTangentAt(t, out);\n    }\n\n    getTangentAt(t, out = new Vec3()) {\n        const totalLength = this.getLength();\n        return this.getTangentAtLength(t * totalLength, out);\n    }\n\n    getTiltAtLength(len) {\n        const [i, t] = this.findSegmentIndexAtLength(len);\n        return this._segments[i].getTiltAt(t);\n    }\n\n    getTiltAt(t) {\n        const totalLength = this.getLength();\n        return this.getTiltAtLength(t * totalLength);\n    }\n\n    /**\n     * Get sequence of points using `getPointAt(t)`\n     * @param {number} divisions number of subdivisions\n     * @returns {Vec3[]} array of points\n     */\n    getPoints(divisions = 64) {\n        const points = new Array(divisions + 1);\n        for (let i = 0; i <= divisions; i++) {\n            points[i] = this.getPointAt(i / divisions);\n        }\n        return points;\n    }\n\n    /**\n     * Generates the Frenet Frames.\n     * See http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n     * @param {number} divisions number of subdivisions\n     * @returns {{tangents: Vec3[], normals: Vec3[], binormals: Vec3[]}} Object with tangents, normals and binormals arrays\n     */\n    computeFrenetFrames(divisions = 64, closed = false) {\n        const tangents = new Array(divisions + 1);\n        const tilts = new Array(divisions + 1);\n\n        const tiltFunction = this.tiltFunction ?? ((a) => a);\n\n        // compute the tangent vectors and tilt for each segment on the curve\n        const totalLength = this.getLength();\n        for (let i = 0; i <= divisions; i++) {\n            const [si, st] = this.findSegmentIndexAtLength((totalLength * i) / divisions);\n            const segment = this._segments[si];\n            tangents[i] = segment.getTangentAt(st);\n            tilts[i] = tiltFunction(segment.getTiltAt(st), i / divisions, this);\n        }\n\n        const tx = Math.abs(tangents[0].x);\n        const ty = Math.abs(tangents[0].y);\n        const tz = Math.abs(tangents[0].z);\n\n        const normal = new Vec3();\n        if (tx < ty && tx < tz) {\n            normal.set(1, 0, 0);\n        } else if (ty < tx && ty < tz) {\n            normal.set(0, 1, 0);\n        } else {\n            normal.set(0, 0, 1);\n        }\n\n        // select an initial normal vector perpendicular to the first tangent vector,\n        // and in the direction of the minimum tangent xyz component\n        const normals = new Array(divisions + 1);\n        const binormals = new Array(divisions + 1);\n        normals[0] = new Vec3();\n        binormals[0] = new Vec3();\n\n        tempVec3.cross(tangents[0], normal).normalize();\n        normals[0].cross(tangents[0], tempVec3);\n        binormals[0].cross(tangents[0], normals[0]);\n\n        // compute the slowly-varying normal vector for each segment on the curve\n        for (let i = 1; i < tangents.length; i++) {\n            normals[i] = normals[i - 1].clone();\n            binormals[i] = new Vec3();\n\n            tempVec3.cross(tangents[i - 1], tangents[i]);\n            const crossLen = tempVec3.len();\n\n            if (crossLen > Number.EPSILON) {\n                tempVec3.scale(1 / crossLen); // nomalize\n                const cosTheta = clamp(tangents[i - 1].dot(tangents[i]), -1, 1); // clamp for floating pt errors\n                const sinTheta = clamp(crossLen, -1, 1);\n\n                mat4fromRotationSinCos(tempMat4, tempVec3, sinTheta, cosTheta);\n                normals[i].applyMatrix4(tempMat4);\n            }\n\n            binormals[i].cross(tangents[i], normals[i]);\n        }\n\n        // add tilt twisting\n        for (let i = 0; i < tilts.length; i++) {\n            rotateNormalBinormal(toRadian(tilts[i]), normals[i], binormals[i]);\n        }\n\n        // if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n        if (closed === true) {\n            const normalLast = normals[normals.length - 1];\n            let step = Math.acos(clamp(normals[0].dot(normalLast), -1, 1)) / (normals.length - 1);\n\n            if (tangents[0].dot(tempVec3.cross(normals[0], normalLast)) > 0) {\n                step = -step;\n            }\n\n            for (let i = 1; i < normals.length - 1; i++) {\n                const angle = step * i;\n                rotateNormalBinormal(angle, normals[i], binormals[i]);\n                tilts[i] += toDegrees(angle);\n            }\n\n            normals[normals.length - 1] = normals[0].clone();\n            binormals[binormals.length - 1] = binormals[0].clone();\n        }\n\n        return { tangents, normals, binormals, tilts };\n    }\n}\n","import { Geometry } from '../core/Geometry.js';\nimport { Vec3 } from '../math/Vec3.js';\nimport { Vec2 } from '../math/Vec2.js';\n\n// helper variables\nconst vertex = /* @__PURE__ */ new Vec3();\nconst normal = /* @__PURE__ */ new Vec3();\nconst uv = /* @__PURE__ */ new Vec2();\nconst point = /* @__PURE__ */ new Vec3();\n\nexport class Tube extends Geometry {\n    constructor(gl, { path, radius = 1, tubularSegments = 64, radialSegments = 8, closed = false, attributes = {} } = {}) {\n        super(gl, attributes);\n\n        this.path = path;\n        this.radius = radius;\n        this.tubularSegments = tubularSegments;\n        this.radialSegments = radialSegments;\n        this.closed = closed;\n\n        this.frenetFrames = path.computeFrenetFrames(tubularSegments, closed);\n\n        const numVertices = (tubularSegments + 1) * (radialSegments + 1);\n        const numIndices = tubularSegments * radialSegments * 6;\n        this.positions = new Float32Array(numVertices * 3);\n        this.normals = new Float32Array(numVertices * 3);\n        this.uvs = new Float32Array(numVertices * 2);\n        this.indices = numVertices > 65536 ? new Uint32Array(numIndices) : new Uint16Array(numIndices);\n\n        // create buffer data\n        this._generateAttributes();\n        this._generateIndices();\n\n        this.addAttribute('position', { size: 3, data: this.positions });\n        this.addAttribute('normal', { size: 3, data: this.normals });\n        this.addAttribute('uv', { size: 2, data: this.uvs });\n        this.setIndex({ data: this.indices });\n    }\n\n    _generateAttributes() {\n        for (let i = 0; i <= this.tubularSegments; i++) {\n            let ci = i;\n            if (i === this.tubularSegments) {\n                // if the geometry is not closed, generate the last row of vertices and normals\n                // at the regular position on the given path\n                // if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n                ci = this.closed ? 0 : this.tubularSegments;\n            }\n\n            this.path.getPointAt(ci / this.tubularSegments, point);\n            // retrieve corresponding normal and binormal\n            const N = this.frenetFrames.normals[ci];\n            const B = this.frenetFrames.binormals[ci];\n\n            // generate normals and vertices for the current segment\n            for (let j = 0; j <= this.radialSegments; j++) {\n                const v = (j / this.radialSegments) * Math.PI * 2;\n                const sin = Math.sin(v);\n                const cos = -Math.cos(v);\n\n                const idx = i * (this.radialSegments + 1) + j;\n\n                // normal\n                normal.x = cos * N.x + sin * B.x;\n                normal.y = cos * N.y + sin * B.y;\n                normal.z = cos * N.z + sin * B.z;\n                // normal.normalize(); // ???\n                this.normals.set(normal, idx * 3);\n\n                // vertex\n                vertex.x = point.x + this.radius * normal.x;\n                vertex.y = point.y + this.radius * normal.y;\n                vertex.z = point.z + this.radius * normal.z;\n                this.positions.set(vertex, idx * 3);\n\n                // uv\n                uv.x = i / this.tubularSegments;\n                uv.y = j / this.radialSegments;\n                this.uvs.set(uv, idx * 2);\n            }\n        }\n    }\n\n    _generateIndices() {\n        for (let j = 1; j <= this.tubularSegments; j++) {\n            for (let i = 1; i <= this.radialSegments; i++) {\n                const a = (this.radialSegments + 1) * (j - 1) + (i - 1);\n                const b = (this.radialSegments + 1) * j + (i - 1);\n                const c = (this.radialSegments + 1) * j + i;\n                const d = (this.radialSegments + 1) * (j - 1) + i;\n\n                const idx = (j - 1) * this.radialSegments + (i - 1);\n                this.indices.set([a, b, d, b, c, d], idx * 6);\n            }\n        }\n    }\n}\n","import { Program } from '../core/Program.js';\nimport { Mesh } from '../core/Mesh.js';\nimport { RenderTarget } from '../core/RenderTarget.js';\nimport { Triangle } from './Triangle.js';\n\nexport class Post {\n    constructor(\n        gl,\n        {\n            width,\n            height,\n            dpr,\n            wrapS = gl.CLAMP_TO_EDGE,\n            wrapT = gl.CLAMP_TO_EDGE,\n            minFilter = gl.LINEAR,\n            magFilter = gl.LINEAR,\n            geometry = new Triangle(gl),\n            targetOnly = null,\n            depth = true,\n        } = {}\n    ) {\n        this.gl = gl;\n\n        this.passes = [];\n\n        this.geometry = geometry;\n\n        this.uniform = { value: null };\n        this.targetOnly = targetOnly;\n\n        if (dpr) this.dpr = dpr;\n        if (width) this.width = width;\n        if (height) this.height = height;\n\n        dpr = this.dpr || this.gl.renderer.dpr;\n        this.resolutionWidth = Math.floor(this.width || this.gl.renderer.width * dpr);\n        this.resolutionHeight = Math.floor(this.height || this.gl.renderer.height * dpr);\n\n        let options = {\n            dpr: this.dpr,\n            width: this.resolutionWidth,\n            height: this.resolutionHeight,\n            wrapS,\n            wrapT,\n            minFilter,\n            magFilter,\n            depth,\n        };\n\n        const fbo = (this.fbo = {\n            read: new RenderTarget(this.gl, options),\n            write: new RenderTarget(this.gl, options),\n            swap: () => {\n                let temp = fbo.read;\n                fbo.read = fbo.write;\n                fbo.write = temp;\n            },\n        });\n    }\n\n    addPass({ vertex = defaultVertex, fragment = defaultFragment, uniforms = {}, textureUniform = 'tMap', enabled = true } = {}) {\n        uniforms[textureUniform] = { value: this.fbo.read.texture };\n\n        const program = new Program(this.gl, { vertex, fragment, uniforms });\n        const mesh = new Mesh(this.gl, { geometry: this.geometry, program });\n\n        const pass = {\n            mesh,\n            program,\n            uniforms,\n            enabled,\n            textureUniform,\n        };\n\n        this.passes.push(pass);\n        return pass;\n    }\n\n    resize({ width, height, dpr } = {}) {\n        if (dpr) this.dpr = dpr;\n        if (width) this.width = width;\n        if (height) this.height = height;\n\n        dpr = this.dpr || this.gl.renderer.dpr;\n        this.resolutionWidth = Math.floor(this.width || this.gl.renderer.width * dpr);\n        this.resolutionHeight = Math.floor(this.height || this.gl.renderer.height * dpr);\n\n        this.fbo.read.setSize(this.resolutionWidth, this.resolutionHeight);\n        this.fbo.write.setSize(this.resolutionWidth, this.resolutionHeight);\n    }\n\n    // Uses same arguments as renderer.render, with addition of optional texture passed in to avoid scene render\n    render({ scene, camera, texture, target = null, update = true, sort = true, frustumCull = true, beforePostCallbacks }) {\n        const enabledPasses = this.passes.filter((pass) => pass.enabled);\n\n        if (!texture) {\n            this.gl.renderer.render({\n                scene,\n                camera,\n                target: enabledPasses.length || (!target && this.targetOnly) ? this.fbo.write : target,\n                update,\n                sort,\n                frustumCull,\n            });\n            this.fbo.swap();\n\n            // Callback after rendering scene, but before post effects\n            if (beforePostCallbacks) beforePostCallbacks.forEach((f) => f && f());\n        }\n\n        enabledPasses.forEach((pass, i) => {\n            pass.mesh.program.uniforms[pass.textureUniform].value = !i && texture ? texture : this.fbo.read.texture;\n            this.gl.renderer.render({\n                scene: pass.mesh,\n                target: i === enabledPasses.length - 1 && (target || !this.targetOnly) ? target : this.fbo.write,\n                clear: true,\n            });\n            this.fbo.swap();\n        });\n\n        this.uniform.value = this.fbo.read.texture;\n    }\n}\n\nconst defaultVertex = /* glsl */ `\n    attribute vec2 uv;\n    attribute vec2 position;\n\n    varying vec2 vUv;\n\n    void main() {\n        vUv = uv;\n        gl_Position = vec4(position, 0, 1);\n    }\n`;\n\nconst defaultFragment = /* glsl */ `\n    precision highp float;\n\n    uniform sampler2D tMap;\n    varying vec2 vUv;\n\n    void main() {\n        gl_FragColor = texture2D(tMap, vUv);\n    }\n`;\n","import { Vec3 } from '../math/Vec3.js';\nimport { Quat } from '../math/Quat.js';\n\nconst prevPos = /* @__PURE__ */ new Vec3();\nconst prevRot = /* @__PURE__ */ new Quat();\nconst prevScl = /* @__PURE__ */ new Vec3();\n\nconst nextPos = /* @__PURE__ */ new Vec3();\nconst nextRot = /* @__PURE__ */ new Quat();\nconst nextScl = /* @__PURE__ */ new Vec3();\n\nexport class Animation {\n    constructor({ objects, data }) {\n        this.objects = objects;\n        this.data = data;\n        this.elapsed = 0;\n        this.weight = 1;\n        this.duration = data.frames.length - 1;\n    }\n\n    update(totalWeight = 1, isSet) {\n        const weight = isSet ? 1 : this.weight / totalWeight;\n        const elapsed = this.elapsed % this.duration;\n\n        const floorFrame = Math.floor(elapsed);\n        const blend = elapsed - floorFrame;\n        const prevKey = this.data.frames[floorFrame];\n        const nextKey = this.data.frames[(floorFrame + 1) % this.duration];\n\n        this.objects.forEach((object, i) => {\n            prevPos.fromArray(prevKey.position, i * 3);\n            prevRot.fromArray(prevKey.quaternion, i * 4);\n            prevScl.fromArray(prevKey.scale, i * 3);\n\n            nextPos.fromArray(nextKey.position, i * 3);\n            nextRot.fromArray(nextKey.quaternion, i * 4);\n            nextScl.fromArray(nextKey.scale, i * 3);\n\n            prevPos.lerp(nextPos, blend);\n            prevRot.slerp(nextRot, blend);\n            prevScl.lerp(nextScl, blend);\n\n            object.position.lerp(prevPos, weight);\n            object.quaternion.slerp(prevRot, weight);\n            object.scale.lerp(prevScl, weight);\n        });\n    }\n}\n","import { Mesh } from '../core/Mesh.js';\nimport { Transform } from '../core/Transform.js';\nimport { Mat4 } from '../math/Mat4.js';\nimport { Texture } from '../core/Texture.js';\nimport { Animation } from './Animation.js';\n\nconst tempMat4 = /* @__PURE__ */ new Mat4();\n\nexport class Skin extends Mesh {\n    constructor(gl, { rig, geometry, program, mode = gl.TRIANGLES } = {}) {\n        super(gl, { geometry, program, mode });\n\n        this.createBones(rig);\n        this.createBoneTexture();\n        this.animations = [];\n\n        Object.assign(this.program.uniforms, {\n            boneTexture: { value: this.boneTexture },\n            boneTextureSize: { value: this.boneTextureSize },\n        });\n    }\n\n    createBones(rig) {\n        // Create root so that can simply update world matrix of whole skeleton\n        this.root = new Transform();\n\n        // Create bones\n        this.bones = [];\n        if (!rig.bones || !rig.bones.length) return;\n        for (let i = 0; i < rig.bones.length; i++) {\n            const bone = new Transform();\n\n            // Set initial values (bind pose)\n            bone.position.fromArray(rig.bindPose.position, i * 3);\n            bone.quaternion.fromArray(rig.bindPose.quaternion, i * 4);\n            bone.scale.fromArray(rig.bindPose.scale, i * 3);\n\n            this.bones.push(bone);\n        }\n\n        // Once created, set the hierarchy\n        rig.bones.forEach((data, i) => {\n            this.bones[i].name = data.name;\n            if (data.parent === -1) return this.bones[i].setParent(this.root);\n            this.bones[i].setParent(this.bones[data.parent]);\n        });\n\n        // Then update to calculate world matrices\n        this.root.updateMatrixWorld(true);\n\n        // Store inverse of bind pose to calculate differences\n        this.bones.forEach((bone) => {\n            bone.bindInverse = new Mat4(...bone.worldMatrix).inverse();\n        });\n    }\n\n    createBoneTexture() {\n        if (!this.bones.length) return;\n        const size = Math.max(4, Math.pow(2, Math.ceil(Math.log(Math.sqrt(this.bones.length * 4)) / Math.LN2)));\n        this.boneMatrices = new Float32Array(size * size * 4);\n        this.boneTextureSize = size;\n        this.boneTexture = new Texture(this.gl, {\n            image: this.boneMatrices,\n            generateMipmaps: false,\n            type: this.gl.FLOAT,\n            internalFormat: this.gl.renderer.isWebgl2 ? this.gl.RGBA32F : this.gl.RGBA,\n            minFilter: this.gl.NEAREST,\n            magFilter: this.gl.NEAREST,\n            flipY: false,\n            width: size,\n        });\n    }\n\n    addAnimation(data) {\n        const animation = new Animation({ objects: this.bones, data });\n        this.animations.push(animation);\n        return animation;\n    }\n\n    update() {\n        // Calculate combined animation weight\n        let total = 0;\n        this.animations.forEach((animation) => (total += animation.weight));\n\n        this.animations.forEach((animation, i) => {\n            // force first animation to set in order to reset frame\n            animation.update(total, i === 0);\n        });\n    }\n\n    draw({ camera } = {}) {\n        // Update world matrices manually, as not part of scene graph\n        this.root.updateMatrixWorld(true);\n\n        // Update bone texture\n        this.bones.forEach((bone, i) => {\n            // Find difference between current and bind pose\n            tempMat4.multiply(bone.worldMatrix, bone.bindInverse);\n            this.boneMatrices.set(tempMat4, i * 16);\n        });\n        if (this.boneTexture) this.boneTexture.needsUpdate = true;\n\n        super.draw({ camera });\n    }\n}\n","import { RenderTarget } from '../core/RenderTarget.js';\nimport { Program } from '../core/Program.js';\nimport { Mesh } from '../core/Mesh.js';\nimport { Vec2 } from '../math/Vec2.js';\nimport { Triangle } from './Triangle.js';\n\nexport class Flowmap {\n    constructor(\n        gl,\n        {\n            size = 128, // default size of the render targets\n            falloff = 0.3, // size of the stamp, percentage of the size\n            alpha = 1, // opacity of the stamp\n            dissipation = 0.98, // affects the speed that the stamp fades. Closer to 1 is slower\n            type, // Pass in gl.FLOAT to force it, defaults to gl.HALF_FLOAT\n        } = {}\n    ) {\n        const _this = this;\n        this.gl = gl;\n\n        // output uniform containing render target textures\n        this.uniform = { value: null };\n\n        this.mask = {\n            read: null,\n            write: null,\n\n            // Helper function to ping pong the render targets and update the uniform\n            swap: () => {\n                let temp = _this.mask.read;\n                _this.mask.read = _this.mask.write;\n                _this.mask.write = temp;\n                _this.uniform.value = _this.mask.read.texture;\n            },\n        };\n\n        {\n            createFBOs();\n\n            this.aspect = 1;\n            this.mouse = new Vec2();\n            this.velocity = new Vec2();\n\n            this.mesh = initProgram();\n        }\n\n        function createFBOs() {\n            // Requested type not supported, fall back to half float\n            if (!type) type = gl.HALF_FLOAT || gl.renderer.extensions['OES_texture_half_float'].HALF_FLOAT_OES;\n\n            let minFilter = (() => {\n                if (gl.renderer.isWebgl2) return gl.LINEAR;\n                if (gl.renderer.extensions[`OES_texture_${type === gl.FLOAT ? '' : 'half_'}float_linear`]) return gl.LINEAR;\n                return gl.NEAREST;\n            })();\n\n            const options = {\n                width: size,\n                height: size,\n                type,\n                format: gl.RGBA,\n                internalFormat: gl.renderer.isWebgl2 ? (type === gl.FLOAT ? gl.RGBA32F : gl.RGBA16F) : gl.RGBA,\n                minFilter,\n                depth: false,\n            };\n\n            _this.mask.read = new RenderTarget(gl, options);\n            _this.mask.write = new RenderTarget(gl, options);\n            _this.mask.swap();\n        }\n\n        function initProgram() {\n            return new Mesh(gl, {\n                // Triangle that includes -1 to 1 range for 'position', and 0 to 1 range for 'uv'.\n                geometry: new Triangle(gl),\n\n                program: new Program(gl, {\n                    vertex,\n                    fragment,\n                    uniforms: {\n                        tMap: _this.uniform,\n\n                        uFalloff: { value: falloff * 0.5 },\n                        uAlpha: { value: alpha },\n                        uDissipation: { value: dissipation },\n\n                        // User needs to update these\n                        uAspect: { value: 1 },\n                        uMouse: { value: _this.mouse },\n                        uVelocity: { value: _this.velocity },\n                    },\n                    depthTest: false,\n                }),\n            });\n        }\n    }\n\n    update() {\n        this.mesh.program.uniforms.uAspect.value = this.aspect;\n\n        this.gl.renderer.render({\n            scene: this.mesh,\n            target: this.mask.write,\n            clear: false,\n        });\n        this.mask.swap();\n    }\n}\n\nconst vertex = /* glsl */ `\n    attribute vec2 uv;\n    attribute vec2 position;\n\n    varying vec2 vUv;\n\n    void main() {\n        vUv = uv;\n        gl_Position = vec4(position, 0, 1);\n    }\n`;\n\nconst fragment = /* glsl */ `\n    precision highp float;\n\n    uniform sampler2D tMap;\n\n    uniform float uFalloff;\n    uniform float uAlpha;\n    uniform float uDissipation;\n    \n    uniform float uAspect;\n    uniform vec2 uMouse;\n    uniform vec2 uVelocity;\n\n    varying vec2 vUv;\n\n    void main() {\n        vec4 color = texture2D(tMap, vUv) * uDissipation;\n\n        vec2 cursor = vUv - uMouse;\n        cursor.x *= uAspect;\n\n        vec3 stamp = vec3(uVelocity * vec2(1, -1), 1.0 - pow(1.0 - min(1.0, length(uVelocity)), 3.0));\n        float falloff = smoothstep(uFalloff, 0.0, length(cursor)) * uAlpha;\n\n        color.rgb = mix(color.rgb, stamp, vec3(falloff));\n\n        gl_FragColor = color;\n    }\n`;\n","import { Program } from '../core/Program.js';\nimport { Mesh } from '../core/Mesh.js';\nimport { Texture } from '../core/Texture.js';\nimport { RenderTarget } from '../core/RenderTarget.js';\nimport { Triangle } from './Triangle.js';\n\nexport class GPGPU {\n    constructor(\n        gl,\n        {\n            // Always pass in array of vec4s (RGBA values within texture)\n            data = new Float32Array(16),\n            geometry = new Triangle(gl),\n            type, // Pass in gl.FLOAT to force it, defaults to gl.HALF_FLOAT\n        }\n    ) {\n        this.gl = gl;\n        const initialData = data;\n        this.passes = [];\n        this.geometry = geometry;\n        this.dataLength = initialData.length / 4;\n\n        // Windows and iOS only like power of 2 textures\n        // Find smallest PO2 that fits data\n        this.size = Math.pow(2, Math.ceil(Math.log(Math.ceil(Math.sqrt(this.dataLength))) / Math.LN2));\n\n        // Create coords for output texture\n        this.coords = new Float32Array(this.dataLength * 2);\n        for (let i = 0; i < this.dataLength; i++) {\n            const x = (i % this.size) / this.size; // to add 0.5 to be center pixel ?\n            const y = Math.floor(i / this.size) / this.size;\n            this.coords.set([x, y], i * 2);\n        }\n\n        // Use original data if already correct length of PO2 texture, else copy to new array of correct length\n        const floatArray = (() => {\n            if (initialData.length === this.size * this.size * 4) {\n                return initialData;\n            } else {\n                const a = new Float32Array(this.size * this.size * 4);\n                a.set(initialData);\n                return a;\n            }\n        })();\n\n        // Create output texture uniform using input float texture with initial data\n        this.uniform = {\n            value: new Texture(gl, {\n                image: floatArray,\n                target: gl.TEXTURE_2D,\n                type: gl.FLOAT,\n                format: gl.RGBA,\n                internalFormat: gl.renderer.isWebgl2 ? gl.RGBA32F : gl.RGBA,\n                wrapS: gl.CLAMP_TO_EDGE,\n                wrapT: gl.CLAMP_TO_EDGE,\n                generateMipmaps: false,\n                minFilter: gl.NEAREST,\n                magFilter: gl.NEAREST,\n                width: this.size,\n                flipY: false,\n            }),\n        };\n\n        // Create FBOs\n        const options = {\n            width: this.size,\n            height: this.size,\n            type: type || gl.HALF_FLOAT || gl.renderer.extensions['OES_texture_half_float'].HALF_FLOAT_OES,\n            format: gl.RGBA,\n            internalFormat: gl.renderer.isWebgl2 ? (type === gl.FLOAT ? gl.RGBA32F : gl.RGBA16F) : gl.RGBA,\n            minFilter: gl.NEAREST,\n            depth: false,\n            unpackAlignment: 1,\n        };\n\n        this.fbo = {\n            read: new RenderTarget(gl, options),\n            write: new RenderTarget(gl, options),\n            swap: () => {\n                let temp = this.fbo.read;\n                this.fbo.read = this.fbo.write;\n                this.fbo.write = temp;\n                this.uniform.value = this.fbo.read.texture;\n            },\n        };\n    }\n\n    addPass({ vertex = defaultVertex, fragment = defaultFragment, uniforms = {}, textureUniform = 'tMap', enabled = true } = {}) {\n        uniforms[textureUniform] = this.uniform;\n        const program = new Program(this.gl, { vertex, fragment, uniforms });\n        const mesh = new Mesh(this.gl, { geometry: this.geometry, program });\n\n        const pass = {\n            mesh,\n            program,\n            uniforms,\n            enabled,\n            textureUniform,\n        };\n\n        this.passes.push(pass);\n        return pass;\n    }\n\n    render() {\n        const enabledPasses = this.passes.filter((pass) => pass.enabled);\n\n        enabledPasses.forEach((pass, i) => {\n            this.gl.renderer.render({\n                scene: pass.mesh,\n                target: this.fbo.write,\n                clear: false,\n            });\n            this.fbo.swap();\n        });\n    }\n}\n\nconst defaultVertex = /* glsl */ `\n    attribute vec2 uv;\n    attribute vec2 position;\n\n    varying vec2 vUv;\n\n    void main() {\n        vUv = uv;\n        gl_Position = vec4(position, 0, 1);\n    }\n`;\n\nconst defaultFragment = /* glsl */ `\n    precision highp float;\n\n    uniform sampler2D tMap;\n    varying vec2 vUv;\n\n    void main() {\n        gl_FragColor = texture2D(tMap, vUv);\n    }\n`;\n","import { Geometry } from '../core/Geometry.js';\nimport { Program } from '../core/Program.js';\nimport { Mesh } from '../core/Mesh.js';\nimport { Vec2 } from '../math/Vec2.js';\nimport { Vec3 } from '../math/Vec3.js';\nimport { Color } from '../math/Color.js';\n\nconst tmp = /* @__PURE__ */ new Vec3();\n\nexport class Polyline {\n    constructor(\n        gl,\n        {\n            points, // Array of Vec3s\n            vertex = defaultVertex,\n            fragment = defaultFragment,\n            uniforms = {},\n            attributes = {}, // For passing in custom attribs\n        }\n    ) {\n        this.gl = gl;\n        this.points = points;\n        this.count = points.length;\n\n        // Create buffers\n        this.position = new Float32Array(this.count * 3 * 2);\n        this.prev = new Float32Array(this.count * 3 * 2);\n        this.next = new Float32Array(this.count * 3 * 2);\n        const side = new Float32Array(this.count * 1 * 2);\n        const uv = new Float32Array(this.count * 2 * 2);\n        const index = new Uint16Array((this.count - 1) * 3 * 2);\n\n        // Set static buffers\n        for (let i = 0; i < this.count; i++) {\n            side.set([-1, 1], i * 2);\n            const v = i / (this.count - 1);\n            uv.set([0, v, 1, v], i * 4);\n\n            if (i === this.count - 1) continue;\n            const ind = i * 2;\n            index.set([ind + 0, ind + 1, ind + 2], (ind + 0) * 3);\n            index.set([ind + 2, ind + 1, ind + 3], (ind + 1) * 3);\n        }\n\n        const geometry = (this.geometry = new Geometry(\n            gl,\n            Object.assign(attributes, {\n                position: { size: 3, data: this.position },\n                prev: { size: 3, data: this.prev },\n                next: { size: 3, data: this.next },\n                side: { size: 1, data: side },\n                uv: { size: 2, data: uv },\n                index: { size: 1, data: index },\n            })\n        ));\n\n        // Populate dynamic buffers\n        this.updateGeometry();\n\n        if (!uniforms.uResolution) this.resolution = uniforms.uResolution = { value: new Vec2() };\n        if (!uniforms.uDPR) this.dpr = uniforms.uDPR = { value: 1 };\n        if (!uniforms.uThickness) this.thickness = uniforms.uThickness = { value: 1 };\n        if (!uniforms.uColor) this.color = uniforms.uColor = { value: new Color('#000') };\n        if (!uniforms.uMiter) this.miter = uniforms.uMiter = { value: 1 };\n\n        // Set size uniforms' values\n        this.resize();\n\n        const program = (this.program = new Program(gl, {\n            vertex,\n            fragment,\n            uniforms,\n        }));\n\n        this.mesh = new Mesh(gl, { geometry, program });\n    }\n\n    updateGeometry() {\n        this.points.forEach((p, i) => {\n            p.toArray(this.position, i * 3 * 2);\n            p.toArray(this.position, i * 3 * 2 + 3);\n\n            if (!i) {\n                // If first point, calculate prev using the distance to 2nd point\n                tmp.copy(p)\n                    .sub(this.points[i + 1])\n                    .add(p);\n                tmp.toArray(this.prev, i * 3 * 2);\n                tmp.toArray(this.prev, i * 3 * 2 + 3);\n            } else {\n                p.toArray(this.next, (i - 1) * 3 * 2);\n                p.toArray(this.next, (i - 1) * 3 * 2 + 3);\n            }\n\n            if (i === this.points.length - 1) {\n                // If last point, calculate next using distance to 2nd last point\n                tmp.copy(p)\n                    .sub(this.points[i - 1])\n                    .add(p);\n                tmp.toArray(this.next, i * 3 * 2);\n                tmp.toArray(this.next, i * 3 * 2 + 3);\n            } else {\n                p.toArray(this.prev, (i + 1) * 3 * 2);\n                p.toArray(this.prev, (i + 1) * 3 * 2 + 3);\n            }\n        });\n\n        this.geometry.attributes.position.needsUpdate = true;\n        this.geometry.attributes.prev.needsUpdate = true;\n        this.geometry.attributes.next.needsUpdate = true;\n    }\n\n    // Only need to call if not handling resolution uniforms manually\n    resize() {\n        // Update automatic uniforms if not overridden\n        if (this.resolution) this.resolution.value.set(this.gl.canvas.width, this.gl.canvas.height);\n        if (this.dpr) this.dpr.value = this.gl.renderer.dpr;\n    }\n}\n\nconst defaultVertex = /* glsl */ `\n    precision highp float;\n\n    attribute vec3 position;\n    attribute vec3 next;\n    attribute vec3 prev;\n    attribute vec2 uv;\n    attribute float side;\n\n    uniform mat4 modelViewMatrix;\n    uniform mat4 projectionMatrix;\n    uniform vec2 uResolution;\n    uniform float uDPR;\n    uniform float uThickness;\n    uniform float uMiter;\n\n    varying vec2 vUv;\n\n    vec4 getPosition() {\n        mat4 mvp = projectionMatrix * modelViewMatrix;\n        vec4 current = mvp * vec4(position, 1);\n        vec4 nextPos = mvp * vec4(next, 1);\n        vec4 prevPos = mvp * vec4(prev, 1);\n\n        vec2 aspect = vec2(uResolution.x / uResolution.y, 1);    \n        vec2 currentScreen = current.xy / current.w * aspect;\n        vec2 nextScreen = nextPos.xy / nextPos.w * aspect;\n        vec2 prevScreen = prevPos.xy / prevPos.w * aspect;\n    \n        vec2 dir1 = normalize(currentScreen - prevScreen);\n        vec2 dir2 = normalize(nextScreen - currentScreen);\n        vec2 dir = normalize(dir1 + dir2);\n    \n        vec2 normal = vec2(-dir.y, dir.x);\n        normal /= mix(1.0, max(0.3, dot(normal, vec2(-dir1.y, dir1.x))), uMiter);\n        normal /= aspect;\n\n        float pixelWidthRatio = 1.0 / (uResolution.y / uDPR);\n        float pixelWidth = current.w * pixelWidthRatio;\n        normal *= pixelWidth * uThickness;\n        current.xy -= normal * side;\n    \n        return current;\n    }\n\n    void main() {\n        vUv = uv;\n        gl_Position = getPosition();\n    }\n`;\n\nconst defaultFragment = /* glsl */ `\n    precision highp float;\n\n    uniform vec3 uColor;\n    \n    varying vec2 vUv;\n\n    void main() {\n        gl_FragColor.rgb = uColor;\n        gl_FragColor.a = 1.0;\n    }\n`;\n","import { Camera } from '../core/Camera.js';\nimport { Program } from '../core/Program.js';\nimport { RenderTarget } from '../core/RenderTarget.js';\n\nexport class Shadow {\n    constructor(gl, { light = new Camera(gl), width = 1024, height = width }) {\n        this.gl = gl;\n\n        this.light = light;\n\n        this.target = new RenderTarget(gl, { width, height });\n        this.targetUniform = { value: this.target.texture };\n\n        this.depthProgram = new Program(gl, {\n            vertex: defaultVertex,\n            fragment: defaultFragment,\n            cullFace: false,\n        });\n\n        this.castMeshes = [];\n    }\n\n    add({\n        mesh,\n        receive = true,\n        cast = true,\n        vertex = defaultVertex,\n        fragment = defaultFragment,\n        uniformProjection = 'shadowProjectionMatrix',\n        uniformView = 'shadowViewMatrix',\n        uniformTexture = 'tShadow',\n    }) {\n        // Add uniforms to existing program\n        if (receive && !mesh.program.uniforms[uniformProjection]) {\n            mesh.program.uniforms[uniformProjection] = { value: this.light.projectionMatrix };\n            mesh.program.uniforms[uniformView] = { value: this.light.viewMatrix };\n            mesh.program.uniforms[uniformTexture] = this.targetUniform;\n        }\n\n        if (!cast) return;\n        this.castMeshes.push(mesh);\n\n        // Store program for when switching between depth override\n        mesh.colorProgram = mesh.program;\n\n        // Check if depth program already attached\n        if (mesh.depthProgram) return;\n\n        // Use global depth override if nothing custom passed in\n        if (vertex === defaultVertex && fragment === defaultFragment) {\n            mesh.depthProgram = this.depthProgram;\n            return;\n        }\n\n        // Create custom override program\n        mesh.depthProgram = new Program(this.gl, {\n            vertex,\n            fragment,\n            cullFace: false,\n        });\n    }\n\n    setSize({ width = 1024, height = width }) {\n        this.target = new RenderTarget(this.gl, { width, height });\n        this.targetUniform.value = this.target.texture;\n    }\n\n    render({ scene }) {\n        // For depth render, replace program with depth override.\n        // Hide meshes not casting shadows.\n        scene.traverse((node) => {\n            if (!node.draw) return;\n            if (!!~this.castMeshes.indexOf(node)) {\n                node.program = node.depthProgram;\n            } else {\n                node.isForceVisibility = node.visible;\n                node.visible = false;\n            }\n        });\n\n        // Render the depth shadow map using the light as the camera\n        this.gl.renderer.render({\n            scene,\n            camera: this.light,\n            target: this.target,\n        });\n\n        // Then switch the program back to the normal one\n        scene.traverse((node) => {\n            if (!node.draw) return;\n            if (!!~this.castMeshes.indexOf(node)) {\n                node.program = node.colorProgram;\n            } else {\n                node.visible = node.isForceVisibility;\n            }\n        });\n    }\n}\n\nconst defaultVertex = /* glsl */ `\n    attribute vec3 position;\n    attribute vec2 uv;\n\n    uniform mat4 modelViewMatrix;\n    uniform mat4 projectionMatrix;\n\n    void main() {\n        gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n    }\n`;\n\nconst defaultFragment = /* glsl */ `\n    precision highp float;\n\n    vec4 packRGBA (float v) {\n        vec4 pack = fract(vec4(1.0, 255.0, 65025.0, 16581375.0) * v);\n        pack -= pack.yzww * vec2(1.0 / 255.0, 0.0).xxxy;\n        return pack;\n    }\n\n    void main() {\n        gl_FragColor = packRGBA(gl_FragCoord.z);\n    }\n`;\n","import { Texture } from '../core/Texture.js';\n\n// TODO: Support cubemaps\n// Generate textures using https://github.com/TimvanScherpenzeel/texture-compressor\n\nexport class KTXTexture extends Texture {\n    constructor(gl, { buffer, wrapS = gl.CLAMP_TO_EDGE, wrapT = gl.CLAMP_TO_EDGE, anisotropy = 0, minFilter, magFilter } = {}) {\n        super(gl, {\n            generateMipmaps: false,\n            wrapS,\n            wrapT,\n            anisotropy,\n            minFilter,\n            magFilter,\n        });\n\n        if (buffer) return this.parseBuffer(buffer);\n    }\n\n    parseBuffer(buffer) {\n        const ktx = new KhronosTextureContainer(buffer);\n        ktx.mipmaps.isCompressedTexture = true;\n\n        // Update texture\n        this.image = ktx.mipmaps;\n        this.internalFormat = ktx.glInternalFormat;\n        if (ktx.numberOfMipmapLevels > 1) {\n            if (this.minFilter === this.gl.LINEAR) this.minFilter = this.gl.NEAREST_MIPMAP_LINEAR;\n        } else {\n            if (this.minFilter === this.gl.NEAREST_MIPMAP_LINEAR) this.minFilter = this.gl.LINEAR;\n        }\n\n        // TODO: support cube maps\n        // ktx.numberOfFaces\n    }\n}\n\nfunction KhronosTextureContainer(buffer) {\n    const idCheck = [0xab, 0x4b, 0x54, 0x58, 0x20, 0x31, 0x31, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a];\n    const id = new Uint8Array(buffer, 0, 12);\n    for (let i = 0; i < id.length; i++) if (id[i] !== idCheck[i]) return console.error('File missing KTX identifier');\n\n    // TODO: Is this always 4? Tested: [android, macos]\n    const size = Uint32Array.BYTES_PER_ELEMENT;\n    const head = new DataView(buffer, 12, 13 * size);\n    const littleEndian = head.getUint32(0, true) === 0x04030201;\n    const glType = head.getUint32(1 * size, littleEndian);\n    if (glType !== 0) return console.warn('only compressed formats currently supported');\n    this.glInternalFormat = head.getUint32(4 * size, littleEndian);\n    let width = head.getUint32(6 * size, littleEndian);\n    let height = head.getUint32(7 * size, littleEndian);\n    this.numberOfFaces = head.getUint32(10 * size, littleEndian);\n    this.numberOfMipmapLevels = Math.max(1, head.getUint32(11 * size, littleEndian));\n    const bytesOfKeyValueData = head.getUint32(12 * size, littleEndian);\n\n    this.mipmaps = [];\n    let offset = 12 + 13 * 4 + bytesOfKeyValueData;\n    for (let level = 0; level < this.numberOfMipmapLevels; level++) {\n        const levelSize = new Int32Array(buffer, offset, 1)[0]; // size per face, since not supporting array cubemaps\n        offset += 4; // levelSize field\n        for (let face = 0; face < this.numberOfFaces; face++) {\n            const data = new Uint8Array(buffer, offset, levelSize);\n            this.mipmaps.push({ data, width, height });\n            offset += levelSize;\n            offset += 3 - ((levelSize + 3) % 4); // add padding for odd sized image\n        }\n        width = width >> 1;\n        height = height >> 1;\n    }\n}\n","import { Texture } from '../core/Texture.js';\nimport { KTXTexture } from './KTXTexture.js';\n\n// For compressed textures, generate using https://github.com/TimvanScherpenzeel/texture-compressor\n\nlet cache = {};\nconst supportedExtensions = [];\n\nexport class TextureLoader {\n    static load(\n        gl,\n        {\n            src, // string or object of extension:src key-values\n            // {\n            //     pvrtc: '...ktx',\n            //     s3tc: '...ktx',\n            //     etc: '...ktx',\n            //     etc1: '...ktx',\n            //     astc: '...ktx',\n            //     webp: '...webp',\n            //     jpg: '...jpg',\n            //     png: '...png',\n            // }\n\n            // Only props relevant to KTXTexture\n            wrapS = gl.CLAMP_TO_EDGE,\n            wrapT = gl.CLAMP_TO_EDGE,\n            anisotropy = 0,\n\n            // For regular images\n            format = gl.RGBA,\n            internalFormat = format,\n            generateMipmaps = true,\n            minFilter = generateMipmaps ? gl.NEAREST_MIPMAP_LINEAR : gl.LINEAR,\n            magFilter = gl.LINEAR,\n            premultiplyAlpha = false,\n            unpackAlignment = 4,\n            flipY = true,\n        } = {}\n    ) {\n        const support = this.getSupportedExtensions(gl);\n        let ext = 'none';\n\n        // If src is string, determine which format from the extension\n        if (typeof src === 'string') {\n            ext = src.split('.').pop().split('?')[0].toLowerCase();\n        }\n\n        // If src is object, use supported extensions and provided list to choose best option\n        // Get first supported match, so put in order of preference\n        if (typeof src === 'object') {\n            for (const prop in src) {\n                if (support.includes(prop.toLowerCase())) {\n                    ext = prop.toLowerCase();\n                    src = src[prop];\n                    break;\n                }\n            }\n        }\n\n        // Stringify props\n        const cacheID = src + wrapS + wrapT + anisotropy + format + internalFormat + generateMipmaps + minFilter + magFilter + premultiplyAlpha + unpackAlignment + flipY + gl.renderer.id;\n\n        // Check cache for existing texture\n        if (cache[cacheID]) return cache[cacheID];\n\n        let texture;\n        switch (ext) {\n            case 'ktx':\n            case 'pvrtc':\n            case 's3tc':\n            case 'etc':\n            case 'etc1':\n            case 'astc':\n                // Load compressed texture using KTX format\n                texture = new KTXTexture(gl, {\n                    src,\n                    wrapS,\n                    wrapT,\n                    anisotropy,\n                    minFilter,\n                    magFilter,\n                });\n                texture.loaded = this.loadKTX(src, texture);\n                break;\n            case 'webp':\n            case 'jpg':\n            case 'jpeg':\n            case 'png':\n                texture = new Texture(gl, {\n                    wrapS,\n                    wrapT,\n                    anisotropy,\n                    format,\n                    internalFormat,\n                    generateMipmaps,\n                    minFilter,\n                    magFilter,\n                    premultiplyAlpha,\n                    unpackAlignment,\n                    flipY,\n                });\n                texture.loaded = this.loadImage(gl, src, texture, flipY);\n                break;\n            default:\n                console.warn('No supported format supplied');\n                texture = new Texture(gl);\n        }\n\n        texture.ext = ext;\n        cache[cacheID] = texture;\n        return texture;\n    }\n\n    static getSupportedExtensions(gl) {\n        if (supportedExtensions.length) return supportedExtensions;\n\n        const extensions = {\n            pvrtc: gl.renderer.getExtension('WEBGL_compressed_texture_pvrtc') || gl.renderer.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),\n            s3tc: gl.renderer.getExtension('WEBGL_compressed_texture_s3tc'),\n            // etc: gl.renderer.getExtension('WEBGL_compressed_texture_etc'),\n            etc1: gl.renderer.getExtension('WEBGL_compressed_texture_etc1'),\n            astc: gl.renderer.getExtension('WEBGL_compressed_texture_astc'),\n            bc7: gl.renderer.getExtension('EXT_texture_compression_bptc'),\n        };\n\n        for (const ext in extensions) if (extensions[ext]) supportedExtensions.push(ext);\n\n        // Formats supported by all\n        supportedExtensions.push('png', 'jpg', 'webp');\n\n        return supportedExtensions;\n    }\n\n    static loadKTX(src, texture) {\n        return fetch(src)\n            .then((res) => res.arrayBuffer())\n            .then((buffer) => texture.parseBuffer(buffer));\n    }\n\n    static loadImage(gl, src, texture, flipY) {\n        return decodeImage(src, flipY).then((imgBmp) => {\n            // Catch non POT textures for WebGL1 and update params to avoid errors\n            if (!gl.renderer.isWebgl2 && (!powerOfTwo(imgBmp.width) || !powerOfTwo(imgBmp.height))) {\n                if (texture.generateMipmaps) texture.generateMipmaps = false;\n                if (texture.minFilter === gl.NEAREST_MIPMAP_LINEAR) texture.minFilter = gl.LINEAR;\n                if (texture.wrapS === gl.REPEAT) texture.wrapS = texture.wrapT = gl.CLAMP_TO_EDGE;\n            }\n\n            texture.image = imgBmp;\n\n            // For createImageBitmap, close once uploaded\n            texture.onUpdate = () => {\n                if (imgBmp.close) imgBmp.close();\n                texture.onUpdate = null;\n            };\n\n            return imgBmp;\n        });\n    }\n\n    static clearCache() {\n        cache = {};\n    }\n}\n\nfunction powerOfTwo(value) {\n    // (width & (width - 1)) !== 0\n    return Math.log2(value) % 1 === 0;\n}\n\nfunction decodeImage(src, flipY) {\n    return new Promise((resolve, reject) => {\n        if (isCreateImageBitmap()) {\n            fetch(src, { mode: 'cors' })\n                .then((r) => r.blob())\n                .then((b) => createImageBitmap(b, { imageOrientation: flipY ? 'flipY' : 'none', premultiplyAlpha: 'none' }))\n                .then(resolve)\n                .catch((err) => reject(err));\n        } else {\n            const img = new Image();\n\n            img.crossOrigin = '';\n            img.src = src;\n            img.onerror = ({ type }) => reject(`${type}: Loading image`);\n            img.onload = () => resolve(img);\n        }\n    });\n}\n\nfunction isCreateImageBitmap() {\n    const isChrome = navigator.userAgent.toLowerCase().includes('chrome');\n    if (!isChrome) return false;\n    try {\n        createImageBitmap;\n    } catch (e) {\n        return false;\n    }\n    return true;\n}\n","import { Vec3 } from '../math/Vec3.js';\nimport { Quat } from '../math/Quat.js';\n\nconst tmpVec3A = /* @__PURE__ */ new Vec3();\nconst tmpVec3B = /* @__PURE__ */ new Vec3();\nconst tmpVec3C = /* @__PURE__ */ new Vec3();\nconst tmpVec3D = /* @__PURE__ */ new Vec3();\n\nconst tmpQuatA = /* @__PURE__ */ new Quat();\nconst tmpQuatB = /* @__PURE__ */ new Quat();\nconst tmpQuatC = /* @__PURE__ */ new Quat();\nconst tmpQuatD = /* @__PURE__ */ new Quat();\n\nexport class GLTFAnimation {\n    constructor(data, weight = 1) {\n        this.data = data;\n        this.elapsed = 0;\n        this.weight = weight;\n\n        // Set to false to not apply modulo to elapsed against duration\n        this.loop = true;\n\n        // Find starting time as exports from blender (perhaps others too) don't always start from 0\n        this.startTime = data.reduce((a, { times }) => Math.min(a, times[0]), Infinity);\n        // Get largest final time in all channels to calculate duration\n        this.endTime = data.reduce((a, { times }) => Math.max(a, times[times.length - 1]), 0);\n        this.duration = this.endTime - this.startTime;\n    }\n\n    update(totalWeight = 1, isSet) {\n        const weight = isSet ? 1 : this.weight / totalWeight;\n        const elapsed = !this.duration\n            ? 0\n            : (this.loop ? this.elapsed % this.duration : Math.min(this.elapsed, this.duration - 0.001)) + this.startTime;\n\n        this.data.forEach(({ node, transform, interpolation, times, values }) => {\n            if (!this.duration) {\n                let val = tmpVec3A;\n                let size = 3;\n                if (transform === 'quaternion') {\n                    val = tmpQuatA;\n                    size = 4;\n                }\n                val.fromArray(values, 0);\n                if (size === 4) node[transform].slerp(val, weight);\n                else node[transform].lerp(val, weight);\n                return;\n            }\n\n            // Get index of two time values elapsed is between\n            const prevIndex =\n                Math.max(\n                    1,\n                    times.findIndex((t) => t > elapsed)\n                ) - 1;\n            const nextIndex = prevIndex + 1;\n\n            // Get linear blend/alpha between the two\n            let alpha = (elapsed - times[prevIndex]) / (times[nextIndex] - times[prevIndex]);\n            if (interpolation === 'STEP') alpha = 0;\n\n            let prevVal = tmpVec3A;\n            let prevTan = tmpVec3B;\n            let nextTan = tmpVec3C;\n            let nextVal = tmpVec3D;\n            let size = 3;\n\n            if (transform === 'quaternion') {\n                prevVal = tmpQuatA;\n                prevTan = tmpQuatB;\n                nextTan = tmpQuatC;\n                nextVal = tmpQuatD;\n                size = 4;\n            }\n\n            if (interpolation === 'CUBICSPLINE') {\n                // Get the prev and next values from the indices\n                prevVal.fromArray(values, prevIndex * size * 3 + size * 1);\n                prevTan.fromArray(values, prevIndex * size * 3 + size * 2);\n                nextTan.fromArray(values, nextIndex * size * 3 + size * 0);\n                nextVal.fromArray(values, nextIndex * size * 3 + size * 1);\n\n                // interpolate for final value\n                prevVal = this.cubicSplineInterpolate(alpha, prevVal, prevTan, nextTan, nextVal);\n                if (size === 4) prevVal.normalize();\n            } else {\n                // Get the prev and next values from the indices\n                prevVal.fromArray(values, prevIndex * size);\n                nextVal.fromArray(values, nextIndex * size);\n\n                // interpolate for final value\n                if (size === 4) prevVal.slerp(nextVal, alpha);\n                else prevVal.lerp(nextVal, alpha);\n            }\n\n            // interpolate between multiple possible animations\n            if (size === 4) node[transform].slerp(prevVal, weight);\n            else node[transform].lerp(prevVal, weight);\n        });\n    }\n\n    cubicSplineInterpolate(t, prevVal, prevTan, nextTan, nextVal) {\n        const t2 = t * t;\n        const t3 = t2 * t;\n\n        const s2 = 3 * t2 - 2 * t3;\n        const s3 = t3 - t2;\n        const s0 = 1 - s2;\n        const s1 = s3 - t2 + t;\n\n        for (let i = 0; i < prevVal.length; i++) {\n            prevVal[i] = s0 * prevVal[i] + s1 * (1 - t) * prevTan[i] + s2 * nextVal[i] + s3 * t * nextTan[i];\n        }\n\n        return prevVal;\n    }\n}\n","import { Mesh } from '../core/Mesh.js';\nimport { Mat4 } from '../math/Mat4.js';\nimport { Texture } from '../core/Texture.js';\n\nconst tempMat4 = /* @__PURE__ */ new Mat4();\nconst identity = /* @__PURE__ */ new Mat4();\n\nexport class GLTFSkin extends Mesh {\n    constructor(gl, { skeleton, geometry, program, mode = gl.TRIANGLES } = {}) {\n        super(gl, { geometry, program, mode });\n        this.skeleton = skeleton;\n        this.program = program;\n        this.createBoneTexture();\n    }\n\n    createBoneTexture() {\n        if (!this.skeleton.joints.length) return;\n        const size = Math.max(4, Math.pow(2, Math.ceil(Math.log(Math.sqrt(this.skeleton.joints.length * 4)) / Math.LN2)));\n        this.boneMatrices = new Float32Array(size * size * 4);\n        this.boneTextureSize = size;\n        this.boneTexture = new Texture(this.gl, {\n            image: this.boneMatrices,\n            generateMipmaps: false,\n            type: this.gl.FLOAT,\n            internalFormat: this.gl.renderer.isWebgl2 ? this.gl.RGBA32F : this.gl.RGBA,\n            minFilter: this.gl.NEAREST,\n            magFilter: this.gl.NEAREST,\n            flipY: false,\n            width: size,\n        });\n    }\n\n    updateUniforms() {\n        // Update bone texture\n        this.skeleton.joints.forEach((bone, i) => {\n            // Find difference between current and bind pose\n            tempMat4.multiply(bone.worldMatrix, bone.bindInverse);\n            this.boneMatrices.set(tempMat4, i * 16);\n        });\n        this.boneTexture.needsUpdate = true;\n        // Reset for programs shared between multiple skins\n        this.program.uniforms.boneTexture.value = this.boneTexture;\n        this.program.uniforms.boneTextureSize.value = this.boneTextureSize;\n    }\n\n    draw({ camera } = {}) {\n        if (!this.program.uniforms.boneTexture) {\n            Object.assign(this.program.uniforms, {\n                boneTexture: { value: this.boneTexture },\n                boneTextureSize: { value: this.boneTextureSize },\n            });\n        }\n\n        this.updateUniforms();\n\n        // Switch the world matrix with identity to ignore any transforms\n        // on the mesh itself - only use skeleton's transforms\n        const _worldMatrix = this.worldMatrix;\n        this.worldMatrix = identity;\n\n        super.draw({ camera });\n\n        // Switch back to leave identity untouched\n        this.worldMatrix = _worldMatrix;\n    }\n}\n","import { Transform } from '../core/Transform.js';\nimport { Mesh } from '../core/Mesh.js';\nimport { Vec4 } from '../math/Vec4.js';\n\nexport class InstancedMesh extends Mesh {\n    constructor(...args) {\n        super(...args);\n\n        // Skip renderer frustum culling\n        this.frustumCulled = false;\n        this.isInstancedMesh = true;\n    }\n\n    addFrustumCull() {\n        this.instanceTransforms = null;\n        this.instanceLightmapScaleOffset = null;\n        this.totalInstanceCount = 0;\n        this.frustumCullFunction = null;\n        this.instanceRenderList = null;\n\n        // Get instanced mesh\n        if (!this.geometry.attributes.instanceMatrix)\n            console.error(`mesh ${this.name ? `\"${this.name}\" ` : ``}missing instanceMatrix attribute; unable to frustum cull`);\n\n        // Make list of transforms from instanceMatrix\n        const matrixData = this.geometry.attributes.instanceMatrix.data;\n        this.instanceTransforms = [];\n        for (let i = 0, j = 0; i < matrixData.length; i += 16, j++) {\n            const transform = new Transform();\n            transform.index = j;\n            transform.matrix.fromArray(matrixData, i);\n            transform.decompose();\n            this.instanceTransforms.push(transform);\n            // Add transforms to parent to update world matrices\n            transform.setParent(this.parent);\n        }\n        this.totalInstanceCount = this.instanceTransforms.length;\n\n        // Check for lightmap attributes - attach to transform\n        if (!!this.geometry.attributes.lightmapScaleOffset) {\n            const lightmapData = this.geometry.attributes.lightmapScaleOffset.data;\n            for (let i = 0, j = 0; i < lightmapData.length; i += 4, j++) {\n                this.instanceTransforms[j].lightmapData = new Vec4().fromArray(lightmapData, i);\n            }\n        }\n\n        this.frustumCullFunction = ({ camera }) => {\n            // frustum cull transforms each frame - pass world matrix\n            this.instanceRenderList = [];\n            this.instanceTransforms.forEach((transform) => {\n                if (!camera.frustumIntersectsMesh(this, transform.worldMatrix)) return;\n                this.instanceRenderList.push(transform);\n            });\n\n            // update instanceMatrix and instancedCount with visible\n            this.instanceRenderList.forEach((transform, i) => {\n                transform.matrix.toArray(this.geometry.attributes.instanceMatrix.data, i * 16);\n\n                // Update lightmap attr\n                if (transform.lightmapData) {\n                    transform.lightmapData.toArray(this.geometry.attributes.lightmapScaleOffset.data, i * 4);\n                    this.geometry.attributes.lightmapScaleOffset.needsUpdate = true;\n                }\n            });\n            this.geometry.instancedCount = this.instanceRenderList.length;\n            this.geometry.attributes.instanceMatrix.needsUpdate = true;\n        };\n\n        this.onBeforeRender(this.frustumCullFunction);\n    }\n\n    removeFrustumCull() {\n        this.offBeforeRender(this.frustumCullFunction);\n        this.geometry.instancedCount = this.totalInstanceCount;\n        this.instanceTransforms.forEach((transform, i) => {\n            transform.matrix.toArray(this.geometry.attributes.instanceMatrix.data, i * 16);\n\n            // Update lightmap attr\n            if (transform.lightmapData) {\n                transform.lightmapData.toArray(this.geometry.attributes.lightmapScaleOffset.data, i * 4);\n                this.geometry.attributes.lightmapScaleOffset.needsUpdate = true;\n            }\n        });\n        this.geometry.attributes.instanceMatrix.needsUpdate = true;\n    }\n}\n","import { Geometry } from '../core/Geometry.js';\nimport { Transform } from '../core/Transform.js';\nimport { Texture } from '../core/Texture.js';\nimport { Mesh } from '../core/Mesh.js';\nimport { Camera } from '../core/Camera.js';\nimport { GLTFAnimation } from './GLTFAnimation.js';\nimport { GLTFSkin } from './GLTFSkin.js';\nimport { Mat4 } from '../math/Mat4.js';\nimport { Vec3 } from '../math/Vec3.js';\nimport { NormalProgram } from './NormalProgram.js';\nimport { InstancedMesh } from './InstancedMesh.js';\n\n// TODO\n// [ ] Morph targets\n// [ ] Materials\n// [ ] Sparse accessor packing? For morph targets basically\n// [ ] Option to turn off GPU instancing?\n// [ ] Spot lights\n\nconst TYPE_ARRAY = {\n    5120: Int8Array,\n    5121: Uint8Array,\n    5122: Int16Array,\n    5123: Uint16Array,\n    5125: Uint32Array,\n    5126: Float32Array,\n    'image/jpeg': Uint8Array,\n    'image/png': Uint8Array,\n    'image/webp': Uint8Array,\n};\n\nconst TYPE_SIZE = {\n    SCALAR: 1,\n    VEC2: 2,\n    VEC3: 3,\n    VEC4: 4,\n    MAT2: 4,\n    MAT3: 9,\n    MAT4: 16,\n};\n\nconst ATTRIBUTES = {\n    POSITION: 'position',\n    NORMAL: 'normal',\n    TANGENT: 'tangent',\n    TEXCOORD_0: 'uv',\n    TEXCOORD_1: 'uv2',\n    COLOR_0: 'color',\n    WEIGHTS_0: 'skinWeight',\n    JOINTS_0: 'skinIndex',\n};\n\nconst TRANSFORMS = {\n    translation: 'position',\n    rotation: 'quaternion',\n    scale: 'scale',\n};\n\nexport class GLTFLoader {\n    static setDracoManager(manager) {\n        this.dracoManager = manager;\n    }\n\n    static setBasisManager(manager) {\n        this.basisManager = manager;\n    }\n\n    static async load(gl, src) {\n        const dir = src.split('/').slice(0, -1).join('/') + '/';\n\n        // Load main description json\n        const desc = await this.parseDesc(src);\n\n        return this.parse(gl, desc, dir);\n    }\n\n    static async parse(gl, desc, dir) {\n        if (desc.asset === undefined || desc.asset.version[0] < 2)\n            console.warn('Only GLTF >=2.0 supported. Attempting to parse.');\n\n        if (desc.extensionsRequired?.includes('KHR_draco_mesh_compression') && !this.dracoManager)\n            console.warn('KHR_draco_mesh_compression extension required but no manager supplied. Use .setDracoManager()');\n\n        if (desc.extensionsRequired?.includes('KHR_texture_basisu') && !this.basisManager)\n            console.warn('KHR_texture_basisu extension required but no manager supplied. Use .setBasisManager()');\n\n        // Load buffers async\n        const buffers = await this.loadBuffers(desc, dir);\n\n        // Unbind current VAO so that new buffers don't get added to active mesh\n        gl.renderer.bindVertexArray(null);\n\n        // Create gl buffers from bufferViews\n        const bufferViews = this.parseBufferViews(gl, desc, buffers);\n\n        // Create images from either bufferViews or separate image files\n        const images = await this.parseImages(gl, desc, dir, bufferViews);\n\n        const textures = this.parseTextures(gl, desc, images);\n\n        // Just pass through material data for now\n        const materials = this.parseMaterials(gl, desc, textures);\n\n        // Fetch the inverse bind matrices for skeleton joints\n        const skins = this.parseSkins(gl, desc, bufferViews);\n\n        // Create geometries for each mesh primitive\n        const meshes = await this.parseMeshes(gl, desc, bufferViews, materials, skins);\n\n        // Create transforms, meshes and hierarchy\n        const [nodes, cameras] = this.parseNodes(gl, desc, meshes, skins, images);\n\n        // Place nodes in skeletons\n        this.populateSkins(skins, nodes);\n\n        // Create animation handlers\n        const animations = this.parseAnimations(gl, desc, nodes, bufferViews);\n\n        // Get top level nodes for each scene\n        const scenes = this.parseScenes(desc, nodes);\n        const scene = scenes[desc.scene];\n\n        // Create uniforms for scene lights (TODO: light linking?)\n        const lights = this.parseLights(gl, desc, nodes, scenes);\n\n        // Remove null nodes (instanced transforms)\n        for (let i = nodes.length; i >= 0; i--) if (!nodes[i]) nodes.splice(i, 1);\n\n        return {\n            json: desc,\n            buffers,\n            bufferViews,\n            cameras,\n            images,\n            textures,\n            materials,\n            meshes,\n            nodes,\n            lights,\n            animations,\n            scenes,\n            scene,\n        };\n    }\n\n    static parseDesc(src) {\n        return fetch(src, { mode: 'cors' })\n            .then((res) => res.arrayBuffer())\n            .then((data) => {\n                const textDecoder = new TextDecoder();\n                if (textDecoder.decode(new Uint8Array(data, 0, 4)) === 'glTF') {\n                    return this.unpackGLB(data);\n                } else {\n                    return JSON.parse(textDecoder.decode(data));\n                }\n            });\n    }\n\n    // From https://github.com/donmccurdy/glTF-Transform/blob/e4108cc/packages/core/src/io/io.ts#L32\n    static unpackGLB(glb) {\n        // Decode and verify GLB header\n        const header = new Uint32Array(glb, 0, 3);\n        if (header[0] !== 0x46546c67) {\n            throw new Error('Invalid glTF asset.');\n        } else if (header[1] !== 2) {\n            throw new Error(`Unsupported glTF binary version, \"${header[1]}\".`);\n        }\n        // Decode and verify chunk headers\n        const jsonChunkHeader = new Uint32Array(glb, 12, 2);\n        const jsonByteOffset = 20;\n        const jsonByteLength = jsonChunkHeader[0];\n        if (jsonChunkHeader[1] !== 0x4e4f534a) {\n            throw new Error('Unexpected GLB layout.');\n        }\n\n        // Decode JSON\n        const jsonText = new TextDecoder().decode(glb.slice(jsonByteOffset, jsonByteOffset + jsonByteLength));\n        const json = JSON.parse(jsonText);\n        // JSON only\n        if (jsonByteOffset + jsonByteLength === glb.byteLength) return json;\n\n        const binaryChunkHeader = new Uint32Array(glb, jsonByteOffset + jsonByteLength, 2);\n        if (binaryChunkHeader[1] !== 0x004e4942) {\n            throw new Error('Unexpected GLB layout.');\n        }\n        // Decode content\n        const binaryByteOffset = jsonByteOffset + jsonByteLength + 8;\n        const binaryByteLength = binaryChunkHeader[0];\n        const binary = glb.slice(binaryByteOffset, binaryByteOffset + binaryByteLength);\n        // Attach binary to buffer\n        json.buffers[0].binary = binary;\n        return json;\n    }\n\n    // ThreeJS GLTF Loader https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/GLTFLoader.js#L1085\n    static resolveURI(uri, dir) {\n        // Invalid URI\n        if (typeof uri !== 'string' || uri === '') return '';\n\n        // Host Relative URI\n        if (/^https?:\\/\\//i.test(dir) && /^\\//.test(uri)) {\n            dir = dir.replace(/(^https?:\\/\\/[^\\/]+).*/i, '$1');\n        }\n\n        // Absolute URI http://, https://, //\n        if (/^(https?:)?\\/\\//i.test(uri)) return uri;\n\n        // Data URI\n        if (/^data:.*,.*$/i.test(uri)) return uri;\n\n        // Blob URI\n        if (/^blob:.*$/i.test(uri)) return uri;\n\n        // Relative URI\n        return dir + uri;\n    }\n\n    static loadBuffers(desc, dir) {\n        if (!desc.buffers) return null;\n        return Promise.all(\n            desc.buffers.map((buffer) => {\n                // For GLB, binary buffer ready to go\n                if (buffer.binary) return buffer.binary;\n                const uri = this.resolveURI(buffer.uri, dir);\n                return fetch(uri, { mode: 'cors' }).then((res) => res.arrayBuffer());\n            })\n        );\n    }\n\n    static parseBufferViews(gl, desc, buffers) {\n        if (!desc.bufferViews) return null;\n        const bufferViews = desc.bufferViews;\n\n        desc.meshes &&\n            desc.meshes.forEach(({ primitives }) => {\n                primitives.forEach(({ attributes, indices, extensions }) => {\n                    // Flag bufferView as an attribute, so it knows to create a gl buffer\n                    for (const attr in attributes) {\n                        const accessor = desc.accessors[attributes[attr]];\n                        if (accessor.bufferView === undefined && !!extensions) {\n                            // Draco extension buffer view\n                            if (extensions.KHR_draco_mesh_compression) {\n                                accessor.bufferView = extensions.KHR_draco_mesh_compression.bufferView;\n                                bufferViews[accessor.bufferView].isDraco = true;\n                            }\n                        }\n                        bufferViews[accessor.bufferView].isAttribute = true;\n                    }\n\n                    if (indices !== undefined) {\n                        const accessor = desc.accessors[indices];\n                        if (accessor.bufferView === undefined && !!extensions) {\n                            // Draco extension buffer view\n                            if (extensions.KHR_draco_mesh_compression) {\n                                accessor.bufferView = extensions.KHR_draco_mesh_compression.bufferView;\n                                bufferViews[accessor.bufferView].isDraco = true;\n                            }\n                        }\n                        bufferViews[accessor.bufferView].isAttribute = true;\n\n                        // Make sure indices bufferView have a target property for gl buffer binding\n                        bufferViews[accessor.bufferView].target = gl.ELEMENT_ARRAY_BUFFER;\n                    }\n                });\n            });\n\n        // Get componentType of each bufferView from the accessors\n        desc.accessors.forEach(({ bufferView: bufferViewIndex, componentType }) => {\n            if (bufferViewIndex === undefined) return;\n            bufferViews[bufferViewIndex].componentType = componentType;\n        });\n\n        // Get mimetype of bufferView from images\n        desc.images &&\n            desc.images.forEach(({ uri, bufferView: bufferViewIndex, mimeType }) => {\n                if (bufferViewIndex === undefined) return;\n                bufferViews[bufferViewIndex].mimeType = mimeType;\n            });\n\n        // Push each bufferView to the GPU as a separate buffer\n        bufferViews.forEach(\n            (\n                {\n                    buffer: bufferIndex, // required\n                    byteOffset = 0, // optional\n                    byteLength, // required\n                    byteStride, // optional\n                    target = gl.ARRAY_BUFFER, // optional, added above for elements\n                    name, // optional\n                    extensions, // optional\n                    extras, // optional\n\n                    componentType, // optional, added from accessor above\n                    mimeType, // optional, added from images above\n                    isAttribute,\n                    isDraco,\n                },\n                i\n            ) => {\n                bufferViews[i].data = buffers[bufferIndex].slice(byteOffset, byteOffset + byteLength);\n\n                if (!isAttribute || isDraco) return;\n                // Create gl buffers for the bufferView, pushing it to the GPU\n                const buffer = gl.createBuffer();\n                gl.bindBuffer(target, buffer);\n                gl.renderer.state.boundBuffer = buffer;\n                gl.bufferData(target, bufferViews[i].data, gl.STATIC_DRAW);\n                bufferViews[i].buffer = buffer;\n            }\n        );\n\n        return bufferViews;\n    }\n\n    static parseImages(gl, desc, dir, bufferViews) {\n        if (!desc.images) return null;\n        return Promise.all(\n            desc.images.map(async ({ uri, bufferView: bufferViewIndex, mimeType, name }) => {\n                if (mimeType === 'image/ktx2') {\n                    const { data } = bufferViews[bufferViewIndex];\n                    const image = await this.basisManager.parseTexture(data);\n                    return image;\n                }\n\n                // jpg / png / webp\n                const image = new Image();\n                image.name = name;\n                if (uri) {\n                    image.src = this.resolveURI(uri, dir);\n                } else if (bufferViewIndex !== undefined) {\n                    const { data } = bufferViews[bufferViewIndex];\n                    const blob = new Blob([data], { type: mimeType });\n                    image.src = URL.createObjectURL(blob);\n                }\n                image.ready = new Promise((res) => {\n                    image.onload = () => res();\n                });\n                return image;\n            })\n        );\n    }\n\n    static parseTextures(gl, desc, images) {\n        if (!desc.textures) return null;\n        return desc.textures.map((textureInfo) => this.createTexture(gl, desc, images, textureInfo));\n    }\n\n    static createTexture(gl, desc, images, { sampler: samplerIndex, source: sourceIndex, name, extensions, extras }) {\n        if (sourceIndex === undefined && !!extensions) {\n            // WebP extension source index\n            if (extensions.EXT_texture_webp) sourceIndex = extensions.EXT_texture_webp.source;\n\n            // Basis extension source index\n            if (extensions.KHR_texture_basisu) sourceIndex = extensions.KHR_texture_basisu.source;\n        }\n\n        const image = images[sourceIndex];\n        if (image.texture) return image.texture;\n\n        const options = {\n            flipY: false,\n            wrapS: gl.REPEAT, // Repeat by default, opposed to OGL's clamp by default\n            wrapT: gl.REPEAT,\n        };\n        const sampler = samplerIndex !== undefined ? desc.samplers[samplerIndex] : null;\n        if (sampler) {\n            ['magFilter', 'minFilter', 'wrapS', 'wrapT'].forEach((prop) => {\n                if (sampler[prop]) options[prop] = sampler[prop];\n            });\n        }\n\n        // For compressed textures\n        if (image.isBasis) {\n            options.image = image;\n            options.internalFormat = image.internalFormat;\n            if (image.isCompressedTexture) {\n                options.generateMipmaps = false;\n                if (image.length > 1) this.minFilter = gl.NEAREST_MIPMAP_LINEAR;\n            }\n            const texture = new Texture(gl, options);\n            texture.name = name;\n            image.texture = texture;\n            return texture;\n        }\n\n        const texture = new Texture(gl, options);\n        texture.name = name;\n        image.texture = texture;\n        image.ready.then(() => {\n            texture.image = image;\n        });\n\n        return texture;\n    }\n\n    static parseMaterials(gl, desc, textures) {\n        if (!desc.materials) return null;\n        return desc.materials.map(\n            ({\n                name,\n                extensions,\n                extras,\n                pbrMetallicRoughness = {},\n                normalTexture,\n                occlusionTexture,\n                emissiveTexture,\n                emissiveFactor = [0, 0, 0],\n                alphaMode = 'OPAQUE',\n                alphaCutoff = 0.5,\n                doubleSided = false,\n            }) => {\n                const {\n                    baseColorFactor = [1, 1, 1, 1],\n                    baseColorTexture,\n                    metallicFactor = 1,\n                    roughnessFactor = 1,\n                    metallicRoughnessTexture,\n                    //   extensions,\n                    //   extras,\n                } = pbrMetallicRoughness;\n\n                if (baseColorTexture) {\n                    baseColorTexture.texture = textures[baseColorTexture.index];\n                    // texCoord\n                }\n                if (normalTexture) {\n                    normalTexture.texture = textures[normalTexture.index];\n                    // scale: 1\n                    // texCoord\n                }\n                if (metallicRoughnessTexture) {\n                    metallicRoughnessTexture.texture = textures[metallicRoughnessTexture.index];\n                    // texCoord\n                }\n                if (occlusionTexture) {\n                    occlusionTexture.texture = textures[occlusionTexture.index];\n                    // strength 1\n                    // texCoord\n                }\n                if (emissiveTexture) {\n                    emissiveTexture.texture = textures[emissiveTexture.index];\n                    // texCoord\n                }\n\n                return {\n                    name,\n                    extensions,\n                    extras,\n                    baseColorFactor,\n                    baseColorTexture,\n                    metallicFactor,\n                    roughnessFactor,\n                    metallicRoughnessTexture,\n                    normalTexture,\n                    occlusionTexture,\n                    emissiveTexture,\n                    emissiveFactor,\n                    alphaMode,\n                    alphaCutoff,\n                    doubleSided,\n                };\n            }\n        );\n    }\n\n    static parseSkins(gl, desc, bufferViews) {\n        if (!desc.skins) return null;\n        return desc.skins.map(\n            ({\n                inverseBindMatrices, // optional\n                skeleton, // optional\n                joints, // required\n                // name,\n                // extensions,\n                // extras,\n            }) => {\n                return {\n                    inverseBindMatrices: this.parseAccessor(inverseBindMatrices, desc, bufferViews),\n                    skeleton,\n                    joints,\n                };\n            }\n        );\n    }\n\n    static parseMeshes(gl, desc, bufferViews, materials, skins) {\n        if (!desc.meshes) return null;\n        return Promise.all(\n            desc.meshes.map(\n                async (\n                    {\n                        primitives, // required\n                        weights, // optional\n                        name, // optional\n                        extensions, // optional\n                        extras = {}, // optional - will get merged with node extras\n                    },\n                    meshIndex\n                ) => {\n                    // TODO: weights stuff?\n                    // Parse through nodes to see how many instances there are and if there is a skin attached\n                    // If multiple instances of a skin, need to create each\n                    let numInstances = 0;\n                    let skinIndices = [];\n                    let isLightmap = false;\n                    desc.nodes &&\n                        desc.nodes.forEach(({ mesh, skin, extras }) => {\n                            if (mesh === meshIndex) {\n                                numInstances++;\n                                if (skin !== undefined) skinIndices.push(skin);\n                                if (extras && extras.lightmap_scale_offset) isLightmap = true;\n                            }\n                        });\n                    let isSkin = !!skinIndices.length;\n\n                    // For skins, return array of skin meshes to account for multiple instances\n                    if (isSkin) {\n                        primitives = await Promise.all(\n                            skinIndices.map(async (skinIndex) => {\n                                return (await this.parsePrimitives(gl, primitives, desc, bufferViews, materials, 1, isLightmap)).map(({ geometry, program, mode }) => {\n                                    const mesh = new GLTFSkin(gl, { skeleton: skins[skinIndex], geometry, program, mode });\n                                    mesh.name = name;\n                                    mesh.extras = extras;\n                                    if (extensions) mesh.extensions = extensions;\n                                    // TODO: support skin frustum culling\n                                    mesh.frustumCulled = false;\n                                    return mesh;\n                                });\n                            })\n                        );\n                        // For retrieval to add to node\n                        primitives.instanceCount = 0;\n                        primitives.numInstances = numInstances;\n                    } else {\n                        primitives = (await this.parsePrimitives(gl, primitives, desc, bufferViews, materials, numInstances, isLightmap)).map(({ geometry, program, mode }) => {\n                            // InstancedMesh class has custom frustum culling for instances\n                            const meshConstructor = geometry.attributes.instanceMatrix ? InstancedMesh : Mesh;\n                            const mesh = new meshConstructor(gl, { geometry, program, mode });\n                            mesh.name = name;\n                            mesh.extras = extras;\n                            if (extensions) mesh.extensions = extensions;\n                            // Tag mesh so that nodes can add their transforms to the instance attribute\n                            mesh.numInstances = numInstances;\n                            return mesh;\n                        });\n                    }\n\n                    return {\n                        primitives,\n                        weights,\n                        name,\n                    };\n                }\n            )\n        );\n    }\n\n    static parsePrimitives(gl, primitives, desc, bufferViews, materials, numInstances, isLightmap) {\n        return Promise.all(\n            primitives.map(\n                async ({\n                    attributes, // required\n                    indices, // optional\n                    material: materialIndex, // optional\n                    mode = 4, // optional\n                    targets, // optional\n                    extensions, // optional\n                    extras, // optional\n                }) => {\n                    // TODO: materials\n                    const program = new NormalProgram(gl);\n                    if (materialIndex !== undefined) {\n                        program.gltfMaterial = materials[materialIndex];\n                    }\n\n                    const geometry = new Geometry(gl);\n                    if (extras) geometry.extras = extras;\n                    if (extensions) geometry.extensions = extensions;\n\n                    // For compressed geometry data\n                    if (extensions && extensions.KHR_draco_mesh_compression) {\n                        const bufferViewIndex = extensions.KHR_draco_mesh_compression.bufferView;\n                        const gltfAttributeMap = extensions.KHR_draco_mesh_compression.attributes;\n                        const attributeMap = {};\n                        const attributeTypeMap = {};\n                        const attributeTypeNameMap = {};\n                        const attributeNormalizedMap = {};\n\n                        for (const attr in attributes) {\n                            const accessor = desc.accessors[attributes[attr]];\n                            const attributeName = ATTRIBUTES[attr];\n                            attributeMap[attributeName] = gltfAttributeMap[attr];\n                            attributeTypeMap[attributeName] = accessor.componentType;\n                            attributeTypeNameMap[attributeName] = TYPE_ARRAY[accessor.componentType].name;\n                            attributeNormalizedMap[attributeName] = accessor.normalized === true;\n                        }\n\n                        const { data } = bufferViews[bufferViewIndex];\n                        const geometryData = await this.dracoManager.decodeGeometry(data, {\n                            attributeIds: attributeMap,\n                            attributeTypes: attributeTypeNameMap,\n                        });\n\n                        // Add each attribute result\n                        for (let i = 0; i < geometryData.attributes.length; i++) {\n                            const result = geometryData.attributes[i];\n                            const name = result.name;\n                            const data = result.array;\n                            const size = result.itemSize;\n                            const type = attributeTypeMap[name];\n                            const normalized = attributeNormalizedMap[name];\n\n                            // Create gl buffers for the attribute data, pushing it to the GPU\n                            const buffer = gl.createBuffer();\n                            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n                            gl.renderer.state.boundBuffer = buffer;\n                            gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);\n\n                            geometry.addAttribute(name, {\n                                data,\n                                size,\n                                type,\n                                normalized,\n                                buffer,\n                            });\n                        }\n\n                        // Add index attribute if found\n                        if (geometryData.index) {\n                            const data = geometryData.index.array;\n                            const size = geometryData.index.itemSize;\n\n                            // Create gl buffers for the index attribute data, pushing it to the GPU\n                            const buffer = gl.createBuffer();\n                            gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);\n                            gl.renderer.state.boundBuffer = buffer;\n                            gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, gl.STATIC_DRAW);\n\n                            geometry.addAttribute('index', {\n                                data,\n                                size,\n                                type: 5125, // Uint32Array\n                                normalized: false,\n                                buffer,\n                            });\n                        }\n                    } else {\n                        // Add each attribute found in primitive\n                        for (const attr in attributes) {\n                            geometry.addAttribute(ATTRIBUTES[attr], this.parseAccessor(attributes[attr], desc, bufferViews));\n                        }\n\n                        // Add index attribute if found\n                        if (indices !== undefined) {\n                            geometry.addAttribute('index', this.parseAccessor(indices, desc, bufferViews));\n                        }\n                    }\n\n                    // Add instanced transform attribute if multiple instances\n                    // Ignore if skin as we don't support instanced skins out of the box\n                    if (numInstances > 1) {\n                        geometry.addAttribute('instanceMatrix', {\n                            instanced: 1,\n                            size: 16,\n                            data: new Float32Array(numInstances * 16),\n                        });\n                    }\n\n                    // Always supply lightmapScaleOffset as an instanced attribute\n                    // Instanced skin lightmaps not supported\n                    if (isLightmap) {\n                        geometry.addAttribute('lightmapScaleOffset', {\n                            instanced: 1,\n                            size: 4,\n                            data: new Float32Array(numInstances * 4),\n                        });\n                    }\n\n                    return {\n                        geometry,\n                        program,\n                        mode,\n                    };\n                }\n            )\n        );\n    }\n\n    static parseAccessor(index, desc, bufferViews) {\n        // TODO: init missing bufferView with 0s\n        // TODO: support sparse\n\n        const {\n            bufferView: bufferViewIndex, // optional\n            byteOffset = 0, // optional\n            componentType, // required\n            normalized = false, // optional\n            count, // required\n            type, // required\n            min, // optional\n            max, // optional\n            sparse, // optional\n            // name, // optional\n            // extensions, // optional\n            // extras, // optional\n        } = desc.accessors[index];\n\n        const {\n            data, // attached in parseBufferViews\n            buffer, // replaced to be the actual GL buffer\n            byteOffset: bufferByteOffset = 0,\n            // byteLength, // applied in parseBufferViews\n            byteStride = 0,\n            target,\n            // name,\n            // extensions,\n            // extras,\n        } = bufferViews[bufferViewIndex];\n\n        const size = TYPE_SIZE[type];\n\n        // Parse data from joined buffers\n        const TypeArray = TYPE_ARRAY[componentType];\n        const elementBytes = TypeArray.BYTES_PER_ELEMENT;\n        const componentStride = byteStride / elementBytes;\n        const isInterleaved = !!byteStride && componentStride !== size;\n\n        let filteredData;\n\n        // Convert data to typed array for various uses (bounding boxes, raycasting, animation, merging etc)\n        if (isInterleaved) {\n            // First convert entire buffer to type\n            const typedData = new TypeArray(data, byteOffset);\n            // TODO: add length to not copy entire buffer if can help it\n            // const typedData = new TypeArray(data, byteOffset, (count - 1) * componentStride)\n\n            // Create output with length\n            filteredData = new TypeArray(count * size);\n\n            // Add element by element\n            for (let i = 0; i < count; i++) {\n                const start = componentStride * i;\n                const end = start + size;\n                filteredData.set(typedData.slice(start, end), i * size);\n            }\n        } else {\n            // Simply a slice\n            filteredData = new TypeArray(data, byteOffset, count * size);\n        }\n\n        // Return attribute data\n        return {\n            data: filteredData,\n            size,\n            type: componentType,\n            normalized,\n            buffer,\n            stride: byteStride,\n            offset: byteOffset,\n            count,\n            min,\n            max,\n        };\n    }\n\n    static parseNodes(gl, desc, meshes, skins, images) {\n        if (!desc.nodes) return null;\n        const cameras = [];\n        const nodes = desc.nodes.map(\n            ({\n                camera, // optional\n                children, // optional\n                skin: skinIndex, // optional\n                matrix, // optional\n                mesh: meshIndex, // optional\n                rotation, // optional\n                scale, // optional\n                translation, // optional\n                weights, // optional\n                name, // optional\n                extensions, // optional\n                extras, // optional\n            }) => {\n                const isCamera = camera !== undefined;\n\n                const node = isCamera ? new Camera(gl) : new Transform();\n\n                if (isCamera) {\n                    // NOTE: chose to use node's name and extras/extensions over camera\n                    const cameraOpts = desc.cameras[camera];\n                    if (cameraOpts.type === 'perspective') {\n                        const { yfov: fov, znear: near, zfar: far } = cameraOpts.perspective;\n                        node.perspective({ fov: fov * (180 / Math.PI), near, far });\n                    } else {\n                        const { xmag, ymag, znear: near, zfar: far } = cameraOpts.orthographic;\n                        node.orthographic({ near, far, left: -xmag, right: xmag, top: -ymag, bottom: ymag });\n                    }\n                    cameras.push(node);\n                }\n\n                if (name) node.name = name;\n                if (extras) node.extras = extras;\n                if (extensions) node.extensions = extensions;\n\n                // Need to attach to node as may have same material but different lightmap\n                if (extras && extras.lightmapTexture !== undefined) {\n                    extras.lightmapTexture.texture = this.createTexture(gl, desc, images, { source: extras.lightmapTexture.index });\n                }\n\n                // Apply transformations\n                if (matrix) {\n                    node.matrix.copy(matrix);\n                    node.decompose();\n                } else {\n                    if (rotation) node.quaternion.copy(rotation);\n                    if (scale) node.scale.copy(scale);\n                    if (translation) node.position.copy(translation);\n                    node.updateMatrix();\n                }\n\n                // Flags for avoiding duplicate transforms and removing unused instance nodes\n                let isInstanced = false;\n                let isFirstInstance = true;\n                let isInstancedMatrix = false;\n                let isSkin = skinIndex !== undefined;\n\n                // Add mesh if included\n                if (meshIndex !== undefined) {\n                    if (isSkin) {\n                        meshes[meshIndex].primitives[meshes[meshIndex].primitives.instanceCount].forEach((mesh) => {\n                            if (extras) Object.assign(mesh.extras, extras);\n                            mesh.setParent(node);\n                        });\n                        meshes[meshIndex].primitives.instanceCount++;\n                        // Remove properties once all instances added\n                        if (meshes[meshIndex].primitives.instanceCount === meshes[meshIndex].primitives.numInstances) {\n                            delete meshes[meshIndex].primitives.numInstances;\n                            delete meshes[meshIndex].primitives.instanceCount;\n                        }\n                    } else {\n                        meshes[meshIndex].primitives.forEach((mesh) => {\n                            if (extras) Object.assign(mesh.extras, extras);\n\n                            // Instanced mesh might only have 1\n                            if (mesh.geometry.isInstanced) {\n                                isInstanced = true;\n                                if (!mesh.instanceCount) {\n                                    mesh.instanceCount = 0;\n                                } else {\n                                    isFirstInstance = false;\n                                }\n                                if (mesh.geometry.attributes.instanceMatrix) {\n                                    isInstancedMatrix = true;\n                                    node.matrix.toArray(mesh.geometry.attributes.instanceMatrix.data, mesh.instanceCount * 16);\n                                }\n\n                                if (mesh.geometry.attributes.lightmapScaleOffset) {\n                                    mesh.geometry.attributes.lightmapScaleOffset.data.set(extras.lightmap_scale_offset, mesh.instanceCount * 4);\n                                }\n\n                                mesh.instanceCount++;\n\n                                if (mesh.instanceCount === mesh.numInstances) {\n                                    // Remove properties once all instances added\n                                    delete mesh.numInstances;\n                                    delete mesh.instanceCount;\n                                    // Flag attribute as dirty\n                                    if (mesh.geometry.attributes.instanceMatrix) {\n                                        mesh.geometry.attributes.instanceMatrix.needsUpdate = true;\n                                    }\n                                    if (mesh.geometry.attributes.lightmapScaleOffset) {\n                                        mesh.geometry.attributes.lightmapScaleOffset.needsUpdate = true;\n                                    }\n                                }\n                            }\n\n                            // For instances, only the first node will actually have the mesh\n                            if (isInstanced) {\n                                if (isFirstInstance) mesh.setParent(node);\n                            } else {\n                                mesh.setParent(node);\n                            }\n                        });\n                    }\n                }\n\n                // Reset node if instanced to not duplicate transforms\n                if (isInstancedMatrix) {\n                    // Remove unused nodes just providing an instance transform\n                    if (!isFirstInstance) return null;\n                    // Avoid duplicate transform for node containing the instanced mesh\n                    node.matrix.identity();\n                    node.decompose();\n                }\n\n                return node;\n            }\n        );\n\n        desc.nodes.forEach(({ children = [] }, i) => {\n            // Set hierarchy now all nodes created\n            children.forEach((childIndex) => {\n                if (!nodes[childIndex]) return;\n                nodes[childIndex].setParent(nodes[i]);\n            });\n        });\n\n        // Add frustum culling for instances now that instanceMatrix attribute is populated\n        meshes.forEach(({ primitives }, i) => {\n            primitives.forEach((primitive, i) => {\n                if (primitive.isInstancedMesh) primitive.addFrustumCull();\n            });\n        });\n\n        return [nodes, cameras];\n    }\n\n    static populateSkins(skins, nodes) {\n        if (!skins) return;\n        skins.forEach((skin) => {\n            skin.joints = skin.joints.map((i, index) => {\n                const joint = nodes[i];\n                joint.skin = skin;\n                joint.bindInverse = new Mat4(...skin.inverseBindMatrices.data.slice(index * 16, (index + 1) * 16));\n                return joint;\n            });\n            if (skin.skeleton) skin.skeleton = nodes[skin.skeleton];\n        });\n    }\n\n    static parseAnimations(gl, desc, nodes, bufferViews) {\n        if (!desc.animations) return null;\n        return desc.animations.map(\n            (\n                {\n                    channels, // required\n                    samplers, // required\n                    name, // optional\n                    // extensions, // optional\n                    // extras,  // optional\n                },\n                animationIndex\n            ) => {\n                const data = channels.map(\n                    ({\n                        sampler: samplerIndex, // required\n                        target, // required\n                        // extensions, // optional\n                        // extras, // optional\n                    }) => {\n                        const {\n                            input: inputIndex, // required\n                            interpolation = 'LINEAR',\n                            output: outputIndex, // required\n                            // extensions, // optional\n                            // extras, // optional\n                        } = samplers[samplerIndex];\n\n                        const {\n                            node: nodeIndex, // optional - TODO: when is it not included?\n                            path, // required\n                            // extensions, // optional\n                            // extras, // optional\n                        } = target;\n\n                        const node = nodes[nodeIndex];\n                        const transform = TRANSFORMS[path];\n                        const times = this.parseAccessor(inputIndex, desc, bufferViews).data;\n                        const values = this.parseAccessor(outputIndex, desc, bufferViews).data;\n\n                        // Store reference on node for cyclical retrieval\n                        if (!node.animations) node.animations = [];\n                        if (!node.animations.includes(animationIndex)) node.animations.push(animationIndex);\n\n                        return {\n                            node,\n                            transform,\n                            interpolation,\n                            times,\n                            values,\n                        };\n                    }\n                );\n\n                return {\n                    name,\n                    animation: new GLTFAnimation(data),\n                };\n            }\n        );\n    }\n\n    static parseScenes(desc, nodes) {\n        if (!desc.scenes) return null;\n        return desc.scenes.map(\n            ({\n                nodes: nodesIndices = [],\n                name, // optional\n                extensions,\n                extras,\n            }) => {\n                const scene = nodesIndices.reduce((map, i) => {\n                    // Don't add null nodes (instanced transforms)\n                    if (nodes[i]) map.push(nodes[i]);\n                    return map;\n                }, []);\n                scene.extras = extras;\n                return scene;\n            }\n        );\n    }\n\n    static parseLights(gl, desc, nodes, scenes) {\n        const lights = {\n            directional: [],\n            point: [],\n            spot: [],\n        };\n\n        // Update matrices on root nodes\n        scenes.forEach((scene) => scene.forEach((node) => node.updateMatrixWorld()));\n\n        // Uses KHR_lights_punctual extension\n        const lightsDescArray = desc.extensions?.KHR_lights_punctual?.lights || [];\n\n        // Need nodes for transforms\n        nodes.forEach((node) => {\n            if (!node?.extensions?.KHR_lights_punctual) return;\n            const lightIndex = node.extensions.KHR_lights_punctual.light;\n            const lightDesc = lightsDescArray[lightIndex];\n            const light = {\n                name: lightDesc.name || '',\n                color: { value: new Vec3().set(lightDesc.color || 1) },\n            };\n            // Apply intensity directly to color\n            if (lightDesc.intensity !== undefined) light.color.value.multiply(lightDesc.intensity);\n\n            switch (lightDesc.type) {\n                case 'directional':\n                    light.direction = { value: new Vec3(0, 0, 1).transformDirection(node.worldMatrix) };\n                    break;\n                case 'point':\n                    light.position = { value: new Vec3().applyMatrix4(node.worldMatrix) };\n                    light.distance = { value: lightDesc.range };\n                    light.decay = { value: 2 };\n                    break;\n                case 'spot':\n                    // TODO: support spot uniforms\n                    Object.assign(light, lightDesc);\n                    break;\n            }\n\n            lights[lightDesc.type].push(light);\n        });\n\n        return lights;\n    }\n}\n","import { Mesh } from '../core/Mesh.js';\nimport { Program } from '../core/Program.js';\nimport { Geometry } from '../core/Geometry.js';\nimport { Color } from '../math/Color.js';\n\nexport class WireMesh extends Mesh {\n    constructor(gl, { geometry, wireColor = new Color(0, 0.75, 0.5), ...meshProps } = {}) {\n        const wireProgram = new Program(gl, {\n            vertex,\n            fragment,\n            uniforms: { wireColor: { value: wireColor } },\n        });\n\n        const positionArray = geometry.attributes.position.data;\n        const indices = [];\n        const hashSet = new Set();\n\n        function addUniqueIndices(idx) {\n            for (let i = 0; i < idx.length; i += 2) {\n                if (isUniqueEdgePosition(idx[i] * 3, idx[i + 1] * 3, positionArray, hashSet)) {\n                    indices.push(idx[i], idx[i + 1]);\n                }\n            }\n        }\n\n        if (geometry.attributes.index) {\n            const idata = geometry.attributes.index.data;\n\n            for (let i = 0; i < idata.length; i += 3) {\n                // For every triangle, make three line pairs (start, end)\n                // prettier-ignore\n                addUniqueIndices([\n                    idata[i], idata[i + 1],\n                    idata[i + 1], idata[i + 2],\n                    idata[i + 2], idata[i]\n                ]);\n            }\n        } else {\n            const numVertices = Math.floor(positionArray.length / 3);\n\n            for (let i = 0; i < numVertices; i += 3) {\n                addUniqueIndices([i, i + 1, i + 1, i + 2, i + 2, i]);\n            }\n        }\n\n        const indicesTyped = indices.length > 65536 ? new Uint32Array(indices) : new Uint16Array(indices);\n        const wireGeometry = new Geometry(gl, {\n            position: { ...geometry.attributes.position },\n            index: { data: indicesTyped },\n        });\n\n        super(gl, { ...meshProps, mode: gl.LINES, geometry: wireGeometry, program: wireProgram });\n    }\n}\n\n// from https://github.com/mrdoob/three.js/blob/0c26bb4bb8220126447c8373154ac045588441de/src/geometries/WireframeGeometry.js#L116\nfunction isUniqueEdgePosition(start, end, pos, hashSet) {\n    // prettier-ignore\n    const hash1 = [\n        pos[start], pos[start + 1], pos[start + 2],\n        pos[end], pos[end + 1], pos[end + 2]\n    ].join('#');\n\n    // coincident edge\n    // prettier-ignore\n    const hash2 = [\n        pos[end], pos[end + 1], pos[end + 2],\n        pos[start], pos[start + 1], pos[start + 2]\n    ].join('#');\n\n    const oldSize = hashSet.size;\n    hashSet.add(hash1);\n    hashSet.add(hash2);\n    return hashSet.size - oldSize === 2;\n}\n\nconst vertex = /* glsl */ `\nattribute vec3 position;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\n\nvoid main() {    \n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n`;\n\nconst fragment = /* glsl */ `\nprecision highp float;\nuniform vec3 wireColor;\n\nvoid main() {    \n    gl_FragColor = vec4(wireColor, 1.0);\n}\n`;\n","import { Mesh } from '../../core/Mesh.js';\nimport { Program } from '../../core/Program.js';\nimport { Geometry } from '../../core/Geometry.js';\nimport { Vec3 } from '../../math/Vec3.js';\n\nexport class AxesHelper extends Mesh {\n    constructor(\n        gl,\n        {\n            size = 1,\n            symmetric = false,\n            xColor = new Vec3(0.96, 0.21, 0.32),\n            yColor = new Vec3(0.44, 0.64, 0.11),\n            zColor = new Vec3(0.18, 0.52, 0.89),\n            ...meshProps\n        } = {}\n    ) {\n        const a = symmetric ? -size : 0;\n        const b = size;\n\n        // prettier-ignore\n        const vertices = new Float32Array([\n\t\t\ta, 0, 0,  b, 0, 0,\n\t\t\t0, a, 0,  0, b, 0,\n\t\t\t0, 0, a,  0, 0, b\n\t\t]);\n\n        // prettier-ignore\n        const colors = new Float32Array([\n\t\t\t...xColor,  ...xColor,\n\t\t\t...yColor,  ...yColor,\n\t\t\t...zColor,  ...zColor\n\t\t]);\n\n        const geometry = new Geometry(gl, {\n            position: { size: 3, data: vertices },\n            color: { size: 3, data: colors },\n        });\n\n        const program = new Program(gl, { vertex, fragment });\n\n        super(gl, { ...meshProps, mode: gl.LINES, geometry, program });\n    }\n}\n\nconst vertex = /* glsl */ `\nattribute vec3 position;\nattribute vec3 color;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\n\nvarying vec3 vColor;\n\nvoid main() {    \n    vColor = color;\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n`;\n\nconst fragment = /* glsl */ `\nprecision highp float;\nvarying vec3 vColor;\n\nvoid main() {    \n    gl_FragColor = vec4(vColor, 1.0);\n}\n`;\n","import { Mesh } from '../../core/Mesh.js';\nimport { Program } from '../../core/Program.js';\nimport { Geometry } from '../../core/Geometry.js';\nimport { Vec3 } from '../../math/Vec3.js';\n\nexport class GridHelper extends Mesh {\n    constructor(gl, { size = 10, divisions = 10, color = new Vec3(0.75, 0.75, 0.75), ...meshProps } = {}) {\n        const numVertices = (size + 1) * 2 * 2;\n        const vertices = new Float32Array(numVertices * 3);\n\n        const hs = size / 2;\n        for (let i = 0; i <= divisions; i++) {\n            const t = i / divisions;\n            const o = t * size - hs;\n\n            vertices.set([o, 0, -hs, o, 0, hs], i * 12);\n            vertices.set([-hs, 0, o, hs, 0, o], i * 12 + 6);\n        }\n\n        const geometry = new Geometry(gl, {\n            position: { size: 3, data: vertices },\n        });\n\n        const program = new Program(gl, {\n            vertex,\n            fragment,\n            uniforms: {\n                color: { value: color },\n            },\n        });\n        super(gl, { ...meshProps, mode: gl.LINES, geometry, program });\n    }\n}\n\nconst vertex = /* glsl */ `\nattribute vec3 position;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\n\nvoid main() {    \n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n`;\n\nconst fragment = /* glsl */ `\nprecision highp float;\nuniform vec3 color;\n\nvoid main() {    \n    gl_FragColor = vec4(color, 1.0);\n}\n`;\n","import { Mesh } from '../../core/Mesh.js';\nimport { Program } from '../../core/Program.js';\nimport { Geometry } from '../../core/Geometry.js';\nimport { Vec3 } from '../../math/Vec3.js';\nimport { Mat3 } from '../../math/Mat3.js';\n\nexport class VertexNormalsHelper extends Mesh {\n    constructor(object, { size = 0.1, color = new Vec3(0.86, 0.16, 0.86), ...meshProps } = {}) {\n        const gl = object.gl;\n        const nNormals = object.geometry.attributes.normal.count;\n        const positionsArray = new Float32Array(nNormals * 2 * 3);\n        const normalsArray = new Float32Array(nNormals * 2 * 3);\n        const sizeArray = new Float32Array(nNormals * 2);\n\n        const normalData = object.geometry.attributes.normal.data;\n        const positionData = object.geometry.attributes.position.data;\n        const sizeData = new Float32Array([0, size]);\n\n        for (let i = 0; i < nNormals; i++) {\n            const i6 = i * 6;\n            const i3 = i * 3;\n\n            // duplicate position and normal for line start and end point\n            const pSub = positionData.subarray(i3, i3 + 3);\n            positionsArray.set(pSub, i6);\n            positionsArray.set(pSub, i6 + 3);\n\n            const nSub = normalData.subarray(i3, i3 + 3);\n            normalsArray.set(nSub, i6);\n            normalsArray.set(nSub, i6 + 3);\n\n            sizeArray.set(sizeData, i * 2);\n        }\n\n        const geometry = new Geometry(gl, {\n            position: { size: 3, data: positionsArray },\n            normal: { size: 3, data: normalsArray },\n            size: { size: 1, data: sizeArray },\n        });\n\n        const program = new Program(gl, {\n            vertex,\n            fragment,\n            uniforms: {\n                color: { value: color },\n                worldNormalMatrix: { value: new Mat3() },\n                objectWorldMatrix: { value: object.worldMatrix },\n            },\n        });\n\n        super(gl, { ...meshProps, mode: gl.LINES, geometry, program });\n\n        this.object = object;\n    }\n\n    draw(arg) {\n        this.program.uniforms.worldNormalMatrix.value.getNormalMatrix(this.object.worldMatrix);\n        super.draw(arg);\n    }\n}\n\nconst vertex = /* glsl */ `\nattribute vec3 position;\nattribute vec3 normal;\nattribute float size;\n\nuniform mat4 viewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 objectWorldMatrix;\nuniform mat3 worldNormalMatrix;\n\nvoid main() {\n    vec3 n = normalize(worldNormalMatrix * normal) * size;\n    vec3 p = (objectWorldMatrix * vec4(position, 1.0)).xyz;\n    gl_Position = projectionMatrix * viewMatrix * vec4(p + n, 1.0);\n}\n`;\n\nconst fragment = /* glsl */ `\nprecision highp float;\nuniform vec3 color;\n\nvoid main() {    \n    gl_FragColor = vec4(color, 1.0);\n}\n`;\n","import { Mesh } from '../../core/Mesh.js';\nimport { Program } from '../../core/Program.js';\nimport { Geometry } from '../../core/Geometry.js';\nimport { Vec3 } from '../../math/Vec3.js';\nimport { Mat3 } from '../../math/Mat3.js';\n\nconst vA = /* @__PURE__ */ new Vec3();\nconst vB = /* @__PURE__ */ new Vec3();\nconst vC = /* @__PURE__ */ new Vec3();\nconst vCenter = /* @__PURE__ */ new Vec3();\nconst vNormal = /* @__PURE__ */ new Vec3();\n\nexport class FaceNormalsHelper extends Mesh {\n    constructor(object, { size = 0.1, color = new Vec3(0.15, 0.86, 0.86), ...meshProps } = {}) {\n        const gl = object.gl;\n\n        const positionData = object.geometry.attributes.position.data;\n        const sizeData = new Float32Array([0, size]);\n\n        const indexAttr = object.geometry.attributes.index;\n        const getIndex = indexAttr ? (i) => indexAttr.data[i] : (i) => i;\n        const numVertices = indexAttr ? indexAttr.data.length : Math.floor(positionData.length / 3);\n\n        const nNormals = Math.floor(numVertices / 3);\n        const positionsArray = new Float32Array(nNormals * 2 * 3);\n        const normalsArray = new Float32Array(nNormals * 2 * 3);\n        const sizeArray = new Float32Array(nNormals * 2);\n\n        for (let i = 0; i < numVertices; i += 3) {\n            vA.fromArray(positionData, getIndex(i + 0) * 3);\n            vB.fromArray(positionData, getIndex(i + 1) * 3);\n            vC.fromArray(positionData, getIndex(i + 2) * 3);\n\n            vCenter\n                .add(vA, vB)\n                .add(vC)\n                .multiply(1 / 3);\n\n            vA.sub(vA, vB);\n            vC.sub(vC, vB);\n            vNormal.cross(vC, vA).normalize();\n\n            // duplicate position and normal for line start and end point\n            const i2 = i * 2;\n            positionsArray.set(vCenter, i2);\n            positionsArray.set(vCenter, i2 + 3);\n\n            normalsArray.set(vNormal, i2);\n            normalsArray.set(vNormal, i2 + 3);\n            sizeArray.set(sizeData, (i / 3) * 2);\n        }\n\n        const geometry = new Geometry(gl, {\n            position: { size: 3, data: positionsArray },\n            normal: { size: 3, data: normalsArray },\n            size: { size: 1, data: sizeArray },\n        });\n\n        const program = new Program(gl, {\n            vertex,\n            fragment,\n            uniforms: {\n                color: { value: color },\n                worldNormalMatrix: { value: new Mat3() },\n                objectWorldMatrix: { value: object.worldMatrix },\n            },\n        });\n\n        super(gl, { ...meshProps, mode: gl.LINES, geometry, program });\n\n        this.object = object;\n    }\n\n    draw(arg) {\n        this.program.uniforms.worldNormalMatrix.value.getNormalMatrix(this.object.worldMatrix);\n        super.draw(arg);\n    }\n}\n\nconst vertex = /* glsl */ `\nattribute vec3 position;\nattribute vec3 normal;\nattribute float size;\n\nuniform mat4 viewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 objectWorldMatrix;\nuniform mat3 worldNormalMatrix;\n\nvoid main() {\n    vec3 n = normalize(worldNormalMatrix * normal) * size;\n    vec3 p = (objectWorldMatrix * vec4(position, 1.0)).xyz;\n    gl_Position = projectionMatrix * viewMatrix * vec4(p + n, 1.0);\n}\n`;\n\nconst fragment = /* glsl */ `\nprecision highp float;\nuniform vec3 color;\n\nvoid main() {    \n    gl_FragColor = vec4(color, 1.0);\n}\n`;\n","import { Texture } from '../core/Texture.js';\n\nexport class Texture3D extends Texture {\n    constructor(gl, args) {\n        super(gl, {\n            ...args,\n            target: gl.TEXTURE_3D,\n            width: args.width ? args.width : 2,\n            height: args.height ? args.height : 2,\n        });\n\n        const image = new Image();\n        image.crossOrigin = '*';\n        image.src = args.src;\n\n        image.onload = () => {\n            let canvas = document.createElement('canvas');\n            canvas.width = image.width;\n            canvas.height = image.height;\n\n            let ctx = canvas.getContext('2d');\n            ctx.scale(1, -1);\n            ctx.translate(0, -image.height);\n            ctx.drawImage(image, 0, 0);\n            const imageData = ctx.getImageData(0, 0, image.width, image.height).data;\n\n            canvas = null;\n            ctx = null;\n            let elementCount;\n\n            switch (this.format) {\n                case gl.RED:\n                    elementCount = 1;\n                    break;\n                case gl.RG:\n                    elementCount = 2;\n                    break;\n                case gl.RGB:\n                    elementCount = 3;\n                    break;\n                default:\n                    elementCount = 4;\n                    break;\n            }\n\n            const dataCount = this.width * this.height * this.length * elementCount;\n            const data = this.type === gl.UNSIGNED_BYTE ? new Uint8Array(dataCount) : new Float32Array(dataCount);\n\n            let dataIterator = 0;\n\n            for (let z = 0; z < this.length; z++) {\n                for (let y = 0; y < this.height; y++) {\n                    for (let x = 0; x < this.width; x++) {\n                        let zOffsetX = (z % args.tileCountX) * this.width;\n                        let zOffsetY = Math.floor(z / args.tileCountX) * (this.width * this.height * args.tileCountX);\n                        let index = x + zOffsetX + (y * image.width + zOffsetY);\n\n                        const r = imageData[index * 4];\n                        const g = imageData[index * 4 + 1];\n                        const b = imageData[index * 4 + 2];\n                        const a = imageData[index * 4 + 3];\n\n                        let texel = [r, g, b, a];\n\n                        for (let i = 0; i < elementCount; i++) {\n                            if (this.type === this.gl.UNSIGNED_BYTE) {\n                                data[dataIterator++] = texel[i];\n                            } else {\n                                data[dataIterator++] = texel[i] / 255;\n                            }\n                        }\n                    }\n                }\n            }\n\n            this.image = data;\n            this.needsUpdate = true;\n        };\n    }\n}\n","// Core\nexport { Geometry } from './core/Geometry.js';\nexport { Program } from './core/Program.js';\nexport { Renderer } from './core/Renderer.js';\nexport { Camera } from './core/Camera.js';\nexport { Transform } from './core/Transform.js';\nexport { Mesh } from './core/Mesh.js';\nexport { Texture } from './core/Texture.js';\nexport { RenderTarget } from './core/RenderTarget.js';\n\n// Maths\nexport { Color } from './math/Color.js';\nexport { Euler } from './math/Euler.js';\nexport { Mat3 } from './math/Mat3.js';\nexport { Mat4 } from './math/Mat4.js';\nexport { Quat } from './math/Quat.js';\nexport { Vec2 } from './math/Vec2.js';\nexport { Vec3 } from './math/Vec3.js';\nexport { Vec4 } from './math/Vec4.js';\n\n// Extras\nexport { Plane } from './extras/Plane.js';\nexport { Box } from './extras/Box.js';\nexport { Sphere } from './extras/Sphere.js';\nexport { Cylinder } from './extras/Cylinder.js';\nexport { Triangle } from './extras/Triangle.js';\nexport { Torus } from './extras/Torus.js';\nexport { Orbit } from './extras/Orbit.js';\nexport { Raycast } from './extras/Raycast.js';\nexport { Curve } from './extras/Curve.js';\nexport { Path } from './extras/path/Path.js';\nexport { Tube } from './extras/Tube.js';\nexport { Post } from './extras/Post.js';\nexport { Skin } from './extras/Skin.js';\nexport { Animation } from './extras/Animation.js';\nexport { Text } from './extras/Text.js';\nexport { NormalProgram } from './extras/NormalProgram.js';\nexport { Flowmap } from './extras/Flowmap.js';\nexport { GPGPU } from './extras/GPGPU.js';\nexport { Polyline } from './extras/Polyline.js';\nexport { Shadow } from './extras/Shadow.js';\nexport { KTXTexture } from './extras/KTXTexture.js';\nexport { TextureLoader } from './extras/TextureLoader.js';\nexport { GLTFLoader } from './extras/GLTFLoader.js';\nexport { GLTFSkin } from './extras/GLTFSkin.js';\nexport { GLTFAnimation } from './extras/GLTFAnimation.js';\nexport { DracoManager } from './extras/DracoManager.js';\nexport { BasisManager } from './extras/BasisManager.js';\nexport { WireMesh } from './extras/WireMesh.js';\nexport { AxesHelper } from './extras/helpers/AxesHelper.js';\nexport { GridHelper } from './extras/helpers/GridHelper.js';\nexport { VertexNormalsHelper } from './extras/helpers/VertexNormalsHelper.js';\nexport { FaceNormalsHelper } from './extras/helpers/FaceNormalsHelper.js';\nexport { InstancedMesh } from './extras/InstancedMesh.js';\nexport { Texture3D } from './extras/Texture3D.js';\n","import{jsx as _jsx}from\"react/jsx-runtime\";export default function OGLUtils(props){return /*#__PURE__*/_jsx(\"div\",{});}export const calculatePlaneSize=(mediaWidth,mediaHeight,containerWidth,containerHeight,fitMode)=>{const mediaAspect=mediaWidth/mediaHeight;const containerAspect=containerWidth/containerHeight;let planeWidth,planeHeight;if(fitMode===\"cover\"){if(mediaAspect>containerAspect){planeHeight=containerHeight;planeWidth=containerHeight*mediaAspect;}else{planeWidth=containerWidth;planeHeight=containerWidth/mediaAspect;}}else if(fitMode===\"contain\"){if(mediaAspect>containerAspect){planeWidth=containerWidth;planeHeight=containerWidth/mediaAspect;}else{planeHeight=containerHeight;planeWidth=containerHeight*mediaAspect;}}return{width:planeWidth,height:planeHeight};};export const defaultPostProcessVertexShader=`\n    attribute vec2 uv;\n    attribute vec3 position;\n\n    varying vec2 vUv;\n\n    void main() {\n        vUv = uv;\n        gl_Position = vec4(position, 1.0);\n    }\n`;export const defaultPostProcessFragmentShader=`\n    precision highp float;\n\n    uniform sampler2D uTexture;\n    uniform float uTime;\n    uniform vec2 uResolution;\n\n    varying vec2 vUv;\n\n    void main() {\n        vec4 color = texture2D(uTexture, vUv);\n        gl_FragColor = color;\n    }\n`;export const defaultVertexShader=`\n        attribute vec3 position;\n        attribute vec2 uv;\n        uniform mat4 modelViewMatrix;\n        uniform mat4 projectionMatrix;\n        varying vec2 vUv;\n        \n        void main() {\n            vUv = uv;\n            gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n        }\n    `;export const defaultFragmentShader=`\n        precision mediump float;\n        \n        uniform sampler2D uTexture;\n        varying vec2 vUv;\n        \n        void main() {\n            vec4 textureColor = texture2D(uTexture, vUv);\n            gl_FragColor = textureColor;\n        }\n    `;\nexport const __FramerMetadata__ = {\"exports\":{\"defaultVertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"OGLUtils\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultPostProcessVertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultFragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultPostProcessFragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatePlaneSize\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OGLUtils.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useCallback}from\"react\";import{Renderer,Camera,Transform,Plane,Program,Mesh,Texture}from\"https://unpkg.com/ogl\";import{defaultFragmentShader,defaultVertexShader}from\"https://framerusercontent.com/modules/MpdGPgep8CrmVuG8IclI/3flka5fkGcFUNVW00KRS/OGLUtils.js\";export default function OGLScene(props){return /*#__PURE__*/_jsx(\"div\",{});}export function useOGLScene(mountRef,media,dimensions,mediaType,options={}){const sceneRef=useRef({});const[containerSize,setContainerSize]=useState({width:0,height:0});const[isReady,setIsReady]=useState(false);const isInitializedRef=useRef(false);const initialUniformsRef=useRef(null);const resizeObserverRef=useRef(null);const{vertexShader,fragmentShader,objectFit=\"cover\",uniforms={},accessibilityOptions={}}=options;// 默认的 canvas 配置\nconst defaultAccessibilityOptions={ariaLabel:null,role:null,tabIndex:null,...accessibilityOptions};// 保存初始 uniforms，避免重复创建场景\nif(!initialUniformsRef.current){initialUniformsRef.current=JSON.parse(JSON.stringify(uniforms));}// 应用 canvas 属性的辅助函数\nconst applyCanvasAttributes=useCallback((canvas,options)=>{// 设置 aria 属性\nif(options.ariaLabel){canvas.setAttribute(\"aria-label\",options.ariaLabel);}if(options.role){canvas.setAttribute(\"role\",options.role);}if(options.tabIndex!==null&&options.tabIndex!==undefined){canvas.tabIndex=options.tabIndex;}},[]);// 手动渲染函数 - 提前定义避免循环依赖\nconst renderFrame=useCallback(()=>{const{renderer,camera,scene,texture}=sceneRef.current;texture.needsUpdate=true;renderer.render({scene,camera});},[mediaType]);// 计算平面尺寸\nconst calculatePlaneSize=useCallback((mediaWidth,mediaHeight,containerWidth,containerHeight,fitMode)=>{const mediaAspect=mediaWidth/mediaHeight;const containerAspect=containerWidth/containerHeight;let planeWidth,planeHeight;if(fitMode===\"cover\"){planeHeight=containerHeight;planeWidth=containerWidth;}else if(fitMode===\"contain\"){if(mediaAspect>containerAspect){planeWidth=containerWidth;planeHeight=containerWidth/mediaAspect;}else{planeHeight=containerHeight;planeWidth=containerHeight*mediaAspect;}}return{width:planeWidth,height:planeHeight};},[]);// 更新场景尺寸相关参数（优化：避免不必要的重建）\nconst updateSceneSize=useCallback((width,height,fitMode)=>{const{renderer,camera,mesh,program}=sceneRef.current;if(!renderer||!camera||!mesh||!program)return;// 检查尺寸是否真的发生了变化\nconst currentCanvas=renderer.gl.canvas;if(currentCanvas.width===width*renderer.dpr&&currentCanvas.height===height*renderer.dpr){return;// 尺寸没有变化，跳过更新\n}// 更新渲染器尺寸\nrenderer.setSize(width,height);// 更新相机参数\nconst distance=1e3;const fov=2*Math.atan(height/2/distance)*(180/Math.PI);camera.fov=fov;camera.aspect=width/height;camera.updateProjectionMatrix();// 更新默认 uniforms\nif(program.uniforms){if(program.uniforms.uMediaSize&&dimensions.width&&dimensions.height){program.uniforms.uMediaSize.value=[dimensions.width,dimensions.height];}if(program.uniforms.uPanelSize){program.uniforms.uPanelSize.value=[width,height];}if(program.uniforms.uFitMode){program.uniforms.uFitMode.value=fitMode===\"cover\"?1:0;console.log(program.uniforms.uFitMode.value);}}// 重新计算平面尺寸并更新几何体\nif(dimensions.width&&dimensions.height){const planeSize=calculatePlaneSize(dimensions.width,dimensions.height,width,height,objectFit);// 只有当尺寸真的不同时才更新几何体\nconst gl=renderer.gl;const newGeometry=new Plane(gl,{width:planeSize.width,height:planeSize.height});// 更新mesh的几何体\nconst oldGeometry=mesh.geometry;mesh.geometry=newGeometry;sceneRef.current.geometry=newGeometry;// 清理旧几何体（如果需要）\nif(oldGeometry&&oldGeometry!==newGeometry&&oldGeometry.dispose){oldGeometry.dispose();}}},[dimensions,calculatePlaneSize,objectFit]);// 获取容器尺寸 - 优化以避免不必要的更新\nconst updateContainerSize=useCallback(()=>{if(!mountRef.current)return;const newWidth=mountRef.current.clientWidth;const newHeight=mountRef.current.clientHeight;// 只有当尺寸真的发生变化时才更新状态\nsetContainerSize(prevSize=>{if(prevSize.width!==newWidth||prevSize.height!==newHeight){return{width:newWidth,height:newHeight};}return prevSize;});},[mountRef]);// 监听容器尺寸变化 - 优化ResizeObserver\nuseEffect(()=>{updateContainerSize();// 清理之前的观察器\nif(resizeObserverRef.current){resizeObserverRef.current.disconnect();}if(mountRef.current){resizeObserverRef.current=new ResizeObserver(entries=>{// 使用entries直接获取尺寸，避免重复测量\nfor(const entry of entries){const{width,height}=entry.contentRect;setContainerSize(prevSize=>{if(prevSize.width!==width||prevSize.height!==height){return{width,height};}return prevSize;});}});resizeObserverRef.current.observe(mountRef.current);}return()=>{if(resizeObserverRef.current){resizeObserverRef.current.disconnect();}};},[mountRef]);// 初始化场景（只执行一次）\nuseEffect(()=>{if(!mountRef.current||containerSize.width===0||containerSize.height===0||isInitializedRef.current)return;let renderer,camera,scene,program,mesh,texture,geometry;const init=async()=>{const{width,height}=containerSize;// 创建渲染器\nrenderer=new Renderer({width,height,dpr:Math.min(window.devicePixelRatio,2),alpha:true,premultipliedAlpha:false});const gl=renderer.gl;// 清空容器并添加canvas\nmountRef.current.innerHTML=\"\";mountRef.current.appendChild(gl.canvas);// 设置canvas样式\ngl.canvas.style.width=\"100%\";gl.canvas.style.height=\"100%\";gl.canvas.style.display=\"block\";applyCanvasAttributes(gl.canvas,defaultAccessibilityOptions);gl.clearColor(0,0,0,0);gl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);// 计算相机参数\nconst distance=1e3;const fov=2*Math.atan(height/2/distance)*(180/Math.PI);// 创建相机\ncamera=new Camera(gl,{fov:fov,aspect:width/height,near:1,far:2e3});camera.position.set(0,0,distance);// 创建场景\nscene=new Transform;// 创建纹理\nconst generateMipmaps=mediaType===\"video\"?false:true;texture=new Texture(gl,{minFilter:generateMipmaps?gl.LINEAR_MIPMAP_LINEAR:gl.LINEAR,magFilter:gl.LINEAR,generateMipmaps:generateMipmaps,premultiplyAlpha:false,unpackAlignment:1,wrapS:gl.CLAMP_TO_EDGE,wrapT:gl.CLAMP_TO_EDGE,format:gl.RGBA,internalFormat:gl.RGBA});// 如果有初始媒体，设置到纹理\nif(media){texture.image=media;}// 计算平面尺寸\nconst planeSize=calculatePlaneSize(dimensions.width||width,dimensions.height||height,width,height,objectFit);// 创建着色器程序\nprogram=new Program(gl,{vertex:vertexShader||defaultVertexShader,fragment:fragmentShader||defaultFragmentShader,uniforms:{uTexture:{value:texture},uMediaSize:{value:[dimensions.width||width,dimensions.height||height]},uPanelSize:{value:[width,height]},uFitMode:{value:objectFit===\"cover\"?1:0},...initialUniformsRef.current},transparent:true,cullFace:null});// 创建几何体\ngeometry=new Plane(gl,{width:planeSize.width,height:planeSize.height});// 创建网格\nmesh=new Mesh(gl,{geometry,program});mesh.setParent(scene);// 存储场景对象\nsceneRef.current={renderer,camera,scene,program,mesh,texture,geometry,gl,updateUniforms:newUniforms=>{Object.keys(newUniforms).forEach(key=>{if(program.uniforms[key]){program.uniforms[key].value=newUniforms[key];}});}};isInitializedRef.current=true;setIsReady(true);};init();// 清理函数\nreturn()=>{// 清理事件监听器\nif(renderer){const gl=renderer.gl;if(gl.canvas&&gl.canvas.parentNode){gl.canvas.parentNode.removeChild(gl.canvas);}const loseContext=gl.getExtension(\"WEBGL_lose_context\");if(loseContext){loseContext.loseContext();}}// 清理引用\nsceneRef.current={};isInitializedRef.current=false;setIsReady(false);};},[media,vertexShader,fragmentShader,objectFit]);// 处理容器尺寸变化\nuseEffect(()=>{if(isInitializedRef.current&&containerSize.width>0&&containerSize.height>0){updateSceneSize(containerSize.width,containerSize.height,objectFit);}},[containerSize,updateSceneSize]);return{sceneRef:sceneRef.current,containerSize,renderFrame,isReady};}\nexport const __FramerMetadata__ = {\"exports\":{\"useOGLScene\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"OGLScene\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{CompatibleMedia,degToRad,propertyControls,useDarkMode,useMediaSource}from\"https://framer.com/m/GLUtils-cYf4.js\";import{calculatePlaneSize,defaultFragmentShader,defaultVertexShader}from\"https://framer.com/m/OGLUtils-LEvG.js\";import{useVariantValues}from\"https://framer.com/m/UseVariantValue-mxjI.js\";import{useAnimatedProgress,useAnimatedValues}from\"https://framer.com/m/UseAnimatedValue-6Bkx.js\";import{useMedia}from\"https://framer.com/m/UseMedia-AW14.js\";import{useOGLScene}from\"https://framer.com/m/UseOGLScene-gg2G.js\";/**\n * GLUtils Tool\n *\n */export{CompatibleMedia,degToRad,propertyControls,useDarkMode,useMediaSource,};/**\n * OGLUtils Tools\n *\n */export{calculatePlaneSize,defaultFragmentShader,defaultVertexShader};/**\n * Variant Value Tools\n *\n */export{useVariantValues};/**\n * Animated Value Tools\n *\n */export{useAnimatedProgress,useAnimatedValues};/**\n * Media Tools\n *\n */export{useMedia};/**\n * Main OGLScene Setup\n *\n */export{useOGLScene};\nexport const __FramerMetadata__ = {\"exports\":{\"propertyControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"degToRad\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CompatibleMedia\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAnimatedValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMediaSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useDarkMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOGLScene\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMedia\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultFragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatePlaneSize\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useVariantValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultVertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAnimatedProgress\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseSetup.map","export const vertexShader=`\n    precision mediump float;\n    attribute vec3 position;\n    attribute vec2 uv;\n    uniform mat4 modelViewMatrix;\n    uniform mat4 projectionMatrix;\n    uniform vec2 uMediaSize;\n    uniform vec2 uPanelSize;\n    uniform int uFitMode; // 0: contain, 1: cover\n    varying vec2 vUv;\n    varying vec2 vTextureCoord; \n    \n    void main() {\n        vUv = uv;\n        \n        if (uFitMode == 1) {\n            vec2 ratio = vec2(\n                min((uPanelSize.x / uPanelSize.y) / (uMediaSize.x / uMediaSize.y), 1.0),\n                min((uPanelSize.y / uPanelSize.x) / (uMediaSize.y / uMediaSize.x), 1.0)\n            );\n            vTextureCoord = (uv - 0.5) * ratio + 0.5;\n        } else {\n            vTextureCoord = uv;\n        }\n        \n        gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n    }\n`;export const fragmentShader=`\n    precision mediump float;\n    uniform sampler2D uTexture;\n    uniform vec2 uMediaSize;\n    uniform vec2 uPanelSize;\n    uniform float uTime;\n    \n    uniform float uBlur;           // 模糊强度 (0.0 - 500.0+)\n    uniform float uFalloff;        // 模糊衰减强度 (0.0 - 5.0)\n    uniform float uFalloffType;    // 衰减类型 (0.0:smoothstep, 1.0:二次, 2.0:三次, 3.0:平方根)\n    uniform float uAngle;          // 模糊方向角度 (弧度)\n    uniform vec2 uCenter;          // 参考中心点 (0.0 - 1.0)\n    uniform float uDispersion;     // 色散强度 (0.0 - 5.0)\n    uniform float uNoise;          // 噪点强度 (0.0 - 1.0)\n    uniform float uNoiseBlend;     // 噪点混合模式 (0:无混合, 1:亮色混合, 2:暗色混合, 3:亮暗混合)\n    uniform float uScale;          // 纹理缩放 (0.5 = 凹陷, 1.0 = 无变化, 2.0 = 凸起)\n    uniform vec2 uOrigin;          // falloff起点偏移 (0.0 - 1.0)\n\n    varying vec2 vUv;\n    varying vec2 vTextureCoord;\n    \n    // 常量优化\n    const float PI2 = 6.28318530718;\n    const int SAMPLES = 24; // 从32减少到24，性能提升约25%\n    const float INV_SAMPLES = 1.0 / float(SAMPLES);\n    const vec3 LUMA_WEIGHTS = vec3(0.299, 0.587, 0.114);\n    const float MAX_DIST = 0.70710678118; // sqrt(0.5)\n    \n    // 快速伪随机函数（优化版）\n    float rand(vec2 co) {\n        return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453);\n    }\n    \n    // 优化的噪点函数\n    float noise(vec2 uv, float time) {\n        return rand(uv + time * 0.1) * 2.0 - 1.0;\n    }\n    \n    // 径向缩放变换（优化版）\n    vec2 applyRadialScale(vec2 uv, float scale) {\n        vec2 fromCenter = uv - 0.5;\n        float distance = length(fromCenter);\n        \n        if (distance < 0.001) return uv;\n        \n        float normalizedDistance = distance * 1.41421356237; // 1/MAX_DIST\n        float transformedDistance = pow(normalizedDistance, scale) * MAX_DIST;\n        \n        return 0.5 + normalize(fromCenter) * transformedDistance;\n    }\n    \n    // 噪点亮度因子计算（优化版）\n    float calculateNoiseLuminanceFactor(float luminance, int blendMode) {\n        if (blendMode == 0) return 1.0;\n        \n        float smoothLum = smoothstep(0.2, 0.8, luminance);\n        \n        if (blendMode == 1) {\n            return 1.0 - smoothLum * smoothLum;\n        } else if (blendMode == 2) {\n            return smoothLum * smoothLum;\n        } else if (blendMode == 3) {\n            float centerBias = 1.0 - abs(luminance - 0.5) * 2.0;\n            return max(pow(centerBias, 1.5), 0.1);\n        }\n        \n        return 1.0;\n    }\n    \n    // 衰减函数（优化版）\n    float applyFalloff(float t, int falloffType) {\n        if (falloffType == 1) return t * t;\n        if (falloffType == 2) return t * t * t;\n        if (falloffType == 3) return sqrt(t);\n        return smoothstep(0.0, 1.0, t);\n    }\n    \n    void main() {\n        // 早期退出检查\n        if (uBlur <= 0.0) {\n            gl_FragColor = texture2D(uTexture, vTextureCoord);\n            return;\n        }\n        \n        // 预计算常量\n        vec2 scaledTextureCoord = applyRadialScale(vTextureCoord, 1.0 + uScale * 0.2);\n        vec2 gradientDirection = vec2(cos(uAngle), sin(uAngle));\n        \n        // 衰减计算（优化版）\n        vec2 fromOrigin = vUv - uOrigin;\n        float projectionOnGradient = dot(fromOrigin, gradientDirection);\n        float falloffDistance = clamp(max(projectionOnGradient, 0.0) / 0.7, 0.0, 1.0);\n        \n        int falloffType = int(uFalloffType + 0.5);\n        float falloffCurve = applyFalloff(falloffDistance, falloffType);\n        float reversedFalloff = 1.0 - falloffCurve;\n        float blurStrength = mix(uBlur, reversedFalloff * uBlur, clamp(uFalloff, 0.0, 1.0));\n        \n        // 预计算采样参数\n        float dispersionFalloffStrength = mix(uDispersion, reversedFalloff * uDispersion, clamp(uFalloff, 0.0, 1.0));\n        float dispersionStrength = dispersionFalloffStrength * blurStrength * 0.5;\n        vec2 texelSize = 1.0 / uMediaSize;\n        vec2 panelTexelRatio = uPanelSize / uMediaSize;\n        float baseRadius = blurStrength * max(texelSize.x, texelSize.y) * max(panelTexelRatio.x, panelTexelRatio.y) * 0.5;\n        vec2 dispersionDirection = vec2(-sin(uAngle), cos(uAngle));\n        \n        // 预计算色散偏移\n        vec2 redOffset = dispersionDirection * dispersionStrength * texelSize * -0.7;\n        vec2 blueOffset = dispersionDirection * dispersionStrength * texelSize * 0.7;\n        \n        // 优化的采样循环\n        vec3 channelColors = vec3(0.0);\n        float totalWeight = 0.0;\n        \n        // 噪点参数预计算\n        bool hasNoise = uNoise > 0.0;\n        float noiseInfluence = uNoise * 0.3;\n        \n        for (int i = 0; i < SAMPLES; i++) {\n            float fi = float(i);\n            float angle = fi * INV_SAMPLES * PI2;\n            vec2 circleDir = vec2(cos(angle), sin(angle));\n            \n            // 随机偏移计算\n            float randomOffset = rand(vec2(fi, vUv.x + vUv.y)) * 0.5 + 0.5;\n            \n            if (hasNoise) {\n                float noiseValue = noise(vUv + vec2(fi * 0.1), uTime);\n                randomOffset += noiseValue * noiseInfluence;\n            }\n            randomOffset = clamp(randomOffset, 0.1, 1.0);\n            \n            vec2 baseSampleOffset = circleDir * baseRadius * randomOffset;\n            \n            // 权重计算\n            float baseWeight = 1.0 - smoothstep(0.0, 1.0, length(baseSampleOffset) / baseRadius);\n            \n            if (hasNoise) {\n                float weightNoise = noise(vUv + vec2(fi * 0.05), uTime * 0.5);\n                baseWeight *= (1.0 + weightNoise * uNoise * 0.2);\n            }\n            baseWeight = max(baseWeight, 0.0);\n            \n            // RGB通道采样（合并到单次计算）\n            vec2 sampleCoord = clamp(scaledTextureCoord + baseSampleOffset, 0.0, 1.0);\n            vec4 centerSample = texture2D(uTexture, sampleCoord);\n            vec4 redSample = texture2D(uTexture, clamp(sampleCoord + redOffset, 0.0, 1.0));\n            vec4 blueSample = texture2D(uTexture, clamp(sampleCoord + blueOffset, 0.0, 1.0));\n            \n            float weight = baseWeight;\n            channelColors.r += redSample.r * redSample.a * weight;\n            channelColors.g += centerSample.g * centerSample.a * weight;\n            channelColors.b += blueSample.b * blueSample.a * weight;\n            totalWeight += weight;\n        }\n        \n        // 归一化\n        vec4 fallbackColor = texture2D(uTexture, scaledTextureCoord);\n        channelColors = (totalWeight > 0.0) ? channelColors / totalWeight : fallbackColor.rgb * fallbackColor.a;\n        \n        // 噪点处理（优化版）\n        if (hasNoise) {\n            float finalNoise = noise(vUv * 10.0, uTime * 2.0);\n            float luminance = dot(channelColors, LUMA_WEIGHTS);\n            \n            float noiseStrength = uNoise;\n            int blendMode = int(uNoiseBlend + 0.5);\n            \n            if (blendMode > 0) {\n                float luminanceFactor = calculateNoiseLuminanceFactor(luminance, blendMode);\n                noiseStrength *= luminanceFactor;\n            }\n            \n            // 特殊处理亮暗混合模式\n            float adjustedNoise = finalNoise;\n            if (blendMode == 3) {\n                if (luminance > 0.8) {\n                    adjustedNoise = abs(finalNoise) * sign(finalNoise) * 0.3;\n                } else if (luminance < 0.2) {\n                    adjustedNoise *= 0.5;\n                }\n            }\n            \n            vec3 noiseContribution = vec3(adjustedNoise * noiseStrength * 0.1);\n            channelColors = clamp(channelColors + noiseContribution, 0.0, 1.0);\n        }\n        \n        float finalAlpha = max(fallbackColor.a, (blurStrength > 0.0) ? min(blurStrength * 0.01, 1.0) : 0.0);\n        gl_FragColor = vec4(channelColors, finalAlpha);\n    }\n`;\nexport const __FramerMetadata__ = {\"exports\":{\"vertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shaders.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useMemo}from\"react\";import{useIsStaticRenderer}from\"framer\";import{useAnimationFrame}from\"framer-motion\";import{vertexShader,fragmentShader}from\"https://framerusercontent.com/modules/jypow408LDgPDnL677k2/Dg0auyGnIrsdg2LBcXmt/Shaders.js\";import{degToRad,useAnimatedProgress,useAnimatedValues,useMedia,useOGLScene,useVariantValues}from\"https://framerusercontent.com/modules/mSJ52dBkVivlfYMsRpwj/z319KePspYG0E1KkmAJd/UseSetup.js\";export const OGLScene=({imageAlt,mediaSrc,mediaType,loop,fit,blur,angle,falloff,advance,animateProp,transitionProp,accessibility,ariaLabel,onLoad,onError,onVideoEnd,onAnimationComplete})=>{const mountRef=useRef(null);const isStaticRenderer=useIsStaticRenderer();const{media,dimensions,isLoaded,isError,isVideoPlaying,playVideo,pauseVideo}=useMedia(mediaSrc,mediaType,loop,!isStaticRenderer);const{sceneRef,renderFrame,containerSize,isReady}=useOGLScene(mountRef,media,dimensions,mediaType,{autoStart:false,vertexShader,fragmentShader,objectFit:fit,uniforms:{uBlur:{value:blur},uAngle:{value:degToRad(angle)},uFalloff:{value:falloff},uFalloffType:{value:advance.falloffType},uScale:{value:advance.scale},uDispersion:{value:advance.dispersion},uNoise:{value:advance.noise},uNoiseBlend:{value:advance.noiseBlend},uOrigin:{value:[advance.originX,advance.originY]}},accessibilityOptions:{ariaLabel:accessibility.enableAria?ariaLabel:mediaType===\"video\"?\"\":imageAlt,role:mediaType===\"video\"?\"video\":\"img\",tabIndex:null}});// 在属性变化时，在 Framer Canvas 上进行一次渲染\nuseEffect(()=>{if(!isStaticRenderer||!isLoaded||!isReady)return;if(sceneRef.renderer){sceneRef.updateUniforms({uBlur:blur,uAngle:degToRad(angle),uFalloff:falloff,uFalloffType:advance.falloffType,uScale:advance.scale,uDispersion:advance.dispersion,uNoise:advance.noise,uNoiseBlend:advance.noiseBlend,uOrigin:[advance.originX,advance.originY]});renderFrame();}},[isLoaded,isReady,sceneRef,fit,blur,angle,falloff,advance,containerSize,isStaticRenderer]);// 在媒体类型和来源变化时，在 Framer Canvas 上进行一次渲染\nuseEffect(()=>{if(!isStaticRenderer||!isLoaded)return;if(sceneRef.renderer){renderFrame();const timeoutId=setTimeout(()=>{renderFrame();},300);return()=>{clearTimeout(timeoutId);};}},[isLoaded,isStaticRenderer]);// 配置自定义动画参数，只有当 animateProp.custom.enable 启用时才生效\nconst animationConfig=useMemo(()=>({blur:{from:blur,to:animateProp.custom.blur},angle:{from:angle,to:animateProp.custom.angle},falloff:{from:falloff,to:animateProp.custom.falloff},scale:{from:advance.scale,to:animateProp.custom.scale},dispersion:{from:advance.dispersion,to:animateProp.custom.dispersion},noise:{from:advance.noise,to:animateProp.custom.noise}}),[blur,angle,falloff,advance,animateProp.custom]);const customEnable=animateProp.custom.enable;const transition=useMemo(()=>({...transitionProp}),[transitionProp]);// 进度动画，适用于 appear\\enter\\transform\nconst{progress,isUpdatingProgress}=useAnimatedProgress(animateProp,transition,mountRef,!customEnable);// 自定义动画，适用于 appear\\enter\\transform\nconst{values,isUpdating}=useAnimatedValues(animationConfig,animateProp,transition,mountRef,customEnable);// 自定义动画，适用于 variant\nconst variantConfig=useMemo(()=>({blur:blur,angle:angle,falloff:falloff,dispersion:advance.dispersion,scale:advance.scale,noise:advance.noise,originX:advance.originX,originY:advance.originY}),[blur,angle,falloff,advance]);const{variantValue,isVariantUpdating}=useVariantValues(variantConfig,transition,animateProp.type===\"variant\");// 为 uniforms 选择更新模式\nconst calculateCustomUniforms=useMemo(()=>{// variant 模式：使用固定的基础值，但仍然是动画值\nif(animateProp.type===\"variant\"){return values=>({uBlur:variantValue.blur.get(),uAngle:degToRad(variantValue.angle.get()),uFalloff:variantValue.falloff.get(),uDispersion:variantValue.dispersion.get(),uScale:variantValue.scale.get(),uNoise:variantValue.noise.get(),uOrigin:[variantValue.originX.get(),variantValue.originY.get()]});}// 非 variant 时，根据 customEnable 决定\nif(customEnable){// custom 模式：使用 values 中的动画值\nreturn values=>({uBlur:values.blur,uAngle:degToRad(values.angle),uNoise:values.noise,uFalloff:values.falloff,uScale:values.scale,uDispersion:values.dispersion,uOrigin:[values.originX,values.originY]});}else{// progress 模式：使用基础值乘以进度\nreturn(_,progress)=>({uBlur:blur*progress,uScale:advance.scale*progress});}},[animateProp.type,customEnable,blur,angle,falloff,advance]);// 在最终页面上尺寸变化时、媒体载入时进行一次渲染\nuseEffect(()=>{if(isStaticRenderer||!isLoaded||!isReady)return;if(sceneRef.renderer){renderFrame();}if(onLoad&&typeof onLoad===\"function\"){onLoad();}},[isLoaded,isReady,sceneRef,containerSize,isStaticRenderer,onLoad]);// 在最终页面上尺寸变化时进行渲染\nuseAnimationFrame(time=>{if(isStaticRenderer||!isLoaded||!isReady)return;if(sceneRef.renderer){const shouldUpdate=advance.render===\"always\"||animateProp.type===\"variant\"||isUpdating||isUpdatingProgress||isVideoPlaying;if(shouldUpdate){sceneRef.updateUniforms(calculateCustomUniforms(values,progress));renderFrame();}}});// 在最终页面上触发事件\nconst prevStateRef=useRef({isError,isVideoPlaying,isUpdating,isUpdatingProgress,isVariantUpdating});useEffect(()=>{if(isStaticRenderer)return;if(isError&&!prevStateRef.current.isError&&onError&&typeof onError===\"function\"){onError();}prevStateRef.current.isError=isError;},[isStaticRenderer,isError,onError]);useEffect(()=>{if(isStaticRenderer)return;if(!isVideoPlaying&&prevStateRef.current.isVideoPlaying&&onVideoEnd&&typeof onVideoEnd===\"function\"){onVideoEnd();}prevStateRef.current.isVideoPlaying=isVideoPlaying;},[isStaticRenderer,isVideoPlaying,onVideoEnd]);useEffect(()=>{if(isStaticRenderer)return;const allCurrentlyFalse=!isUpdating&&!isUpdatingProgress&&!isVariantUpdating;const prevHadTrueValue=prevStateRef.current.isUpdating||prevStateRef.current.isUpdatingProgress||prevStateRef.current.isVariantUpdating;if(allCurrentlyFalse&&prevHadTrueValue&&onAnimationComplete&&typeof onAnimationComplete===\"function\"){onAnimationComplete();}prevStateRef.current.isUpdating=isUpdating;prevStateRef.current.isUpdatingProgress=isUpdatingProgress;prevStateRef.current.isVariantUpdating=isVariantUpdating;},[isStaticRenderer,isUpdating,isUpdatingProgress,isVariantUpdating,onAnimationComplete]);return /*#__PURE__*/_jsx(\"div\",{ref:mountRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\"}});};\nexport const __FramerMetadata__ = {\"exports\":{\"OGLScene\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/*\n * Unfocused+ was created by Jayzhushi. Visit Reveals.cool to learn more.\n * For assistance, contact x.com/jayzhushi or email jayzhushi@gmail.com.\n * This component is licensed under the BSD License.\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{ControlType,addPropertyControls,useReducedMotion}from\"framer\";import{CompatibleMedia,propertyControls,useMediaSource}from\"https://framerusercontent.com/modules/mSJ52dBkVivlfYMsRpwj/z319KePspYG0E1KkmAJd/UseSetup.js\";import{OGLScene}from\"https://framerusercontent.com/modules/7zxjrN9X6oe3IFas7UpS/imR8plZxz6TwO8xlwuod/OGL.js\";/**\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 800\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n */function Unfocused({type,file,upImage,urlVideo,upVideo,defaultImage,dark,darkImage,loop,fit,blur,angle,falloff,advance,animateProp,transition,accessibility,ariaLabel,onLoad,onError,onVideoEnd,onAnimationComplete}){const{imageAlt,mediaSrc,mediaType}=useMediaSource(type,file,urlVideo,upVideo,defaultImage,darkImage,dark,\"arch_dark\");const shouldReduceMotion=useReducedMotion();if(accessibility.compatibility||accessibility.reduce&&shouldReduceMotion){return /*#__PURE__*/_jsx(CompatibleMedia,{mediaType:mediaType,mediaSrc:mediaSrc,imageAlt:imageAlt,fit:fit,loop:loop});}return /*#__PURE__*/_jsx(OGLScene,{mediaType:mediaType,mediaSrc:mediaSrc,imageAlt:imageAlt,loop:loop,fit:fit,blur:blur,angle:angle,falloff:falloff,advance:advance,animateProp:animateProp,transitionProp:transition,accessibility:accessibility,ariaLabel:ariaLabel,onLoad:onLoad,onError:onError,onVideoEnd:onVideoEnd,onAnimationComplete:onAnimationComplete});}export default Unfocused;Unfocused.displayName=\"Unfocused+\";addPropertyControls(Unfocused,{...propertyControls.media,...propertyControls.size,blur:{type:ControlType.Number,title:\"Blur\",displayStepper:false,step:1,max:1e3,min:0,defaultValue:200},angle:{type:ControlType.Number,title:\"Angle\",displayStepper:false,step:1,max:360,min:0,unit:\"\\xb0\",defaultValue:45},falloff:{type:ControlType.Number,title:\"Falloff\",displayStepper:false,step:.1,max:1,min:0,defaultValue:1},advance:{type:ControlType.Object,title:\"Advance\",buttonTitle:\"Advance\",icon:\"effect\",controls:{falloffType:{type:ControlType.Enum,title:\"Type\",options:[0,1,2,3],optionTitles:[\"Linear\",\"Quadratic\",\"Cubic\",\"Square\"],defaultValue:0},originX:{type:ControlType.Number,title:\"Origin X\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0},originY:{type:ControlType.Number,title:\"Origin Y\",displayStepper:true,step:.1,max:1,min:0,defaultValue:.5},scale:{type:ControlType.Number,title:\"Distortion\",displayStepper:true,step:.1,max:1,min:-1,defaultValue:0},dispersion:{type:ControlType.Number,title:\"Dispersion\",displayStepper:true,step:.1,max:1,min:0,defaultValue:.2,description:\"Affected by *Blur*.\"},noise:{type:ControlType.Number,title:\"Noise\",displayStepper:true,step:.1,max:1,min:0,defaultValue:1},noiseBlend:{type:ControlType.Enum,title:\"Blend\",options:[0,1,2,3],optionTitles:[\"None\",\"Lighter\",\"Darker\",\"Both\"],defaultValue:0,hidden(props){return props.noise===0;}}}},animateProp:{type:ControlType.Object,title:\"Animation\",buttonTitle:\"Animation\",icon:\"interaction\",controls:{...propertyControls.animateControls,custom:{type:ControlType.Object,title:\"Custom\",buttonTitle:\"Custom\",icon:\"effect\",hidden(props){return props.type===\"disable\"||props.type===\"variant\";},controls:{enable:{type:ControlType.Boolean,title:\"Enable\",defaultValue:false,description:\"Customize the animation target value for each property.\"},blur:{type:ControlType.Number,title:\"Blur\",displayStepper:false,step:1,max:1e3,min:0,defaultValue:40,hidden(props){return!props.enable;}},angle:{type:ControlType.Number,title:\"Angle\",displayStepper:false,step:1,max:360,min:0,unit:\"\\xb0\",defaultValue:0,hidden(props){return!props.enable;}},falloff:{type:ControlType.Number,title:\"Falloff\",displayStepper:false,step:.1,max:1,min:0,defaultValue:1,hidden(props){return!props.enable;}},scale:{type:ControlType.Number,title:\"Distortion\",displayStepper:true,step:.1,max:1,min:-1,defaultValue:0},dispersion:{type:ControlType.Number,title:\"Dispersion\",displayStepper:true,step:.1,max:1,min:0,defaultValue:.2,hidden(props){return!props.enable;}},noise:{type:ControlType.Number,title:\"Noise\",displayStepper:true,step:.1,max:1,min:0,defaultValue:1,hidden(props){return!props.enable;}}}}}},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{ease:\"linear\",duration:2}},...propertyControls.accessibility,...propertyControls.eventHandler});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Unfocused\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"600\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"800\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Unfocused.map","// Text component with first-line indent functionality and overflow protection\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useMemo}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function TextIndenter(props){const{text,indentSpaces,font,textColor}=props;const processedText=useMemo(()=>{// Handle empty or whitespace-only text\nif(!text||text.trim().length===0){return text||\"\";}// Apply indent\nconst spaces=\" \".repeat(Math.max(0,Math.min(indentSpaces,50)));return spaces+text;},[text,indentSpaces]);const isFixedWidth=props?.style&&props.style.width===\"100%\";return /*#__PURE__*/_jsx(\"div\",{style:{...props.style,position:\"relative\",...isFixedWidth?{...props?.style}:{minWidth:\"max-content\"}},children:/*#__PURE__*/_jsx(\"div\",{style:{...font,color:textColor,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",overflowWrap:\"break-word\",...isFixedWidth?{}:{width:\"max-content\"}},children:processedText||\"Enter your text here...\"})});}addPropertyControls(TextIndenter,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"This is a sample paragraph that will have its first line indented. The indent will only apply to the very beginning of this text, creating a traditional paragraph formatting style.\",displayTextArea:true},indentSpaces:{type:ControlType.Number,title:\"Indent Spaces\",defaultValue:4,min:0,max:50,step:1,displayStepper:true},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextIndenter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextIndenter.map","// Generated by Framer (e0ec254)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Geist-regular\",\"GF;Geist-700\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_RnOM4mJPby1QNtA.woff2\",weight:\"400\"},{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_Re-Q4mJPby1QNtA.woff2\",weight:\"700\"}]}];export const css=['.framer-VJNFP .framer-styles-preset-1gnfw3a:not(.rich-text-wrapper), .framer-VJNFP .framer-styles-preset-1gnfw3a.rich-text-wrapper p { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: 0em; --framer-line-height: 1.25em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-VJNFP\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (d800442)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Geist-regular\",\"GF;Geist-700\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Geist\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_RnOM4mJPby1QNtA.woff2\",weight:\"400\"},{cssFamilyName:\"Geist\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_Re-Q4mJPby1QNtA.woff2\",weight:\"700\"}]}];export const css=['.framer-7Ii6X .framer-styles-preset-1qudk9h:not(.rich-text-wrapper), .framer-7Ii6X .framer-styles-preset-1qudk9h.rich-text-wrapper p { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1.8); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-7Ii6X .framer-styles-preset-1qudk9h:not(.rich-text-wrapper), .framer-7Ii6X .framer-styles-preset-1qudk9h.rich-text-wrapper p { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1.6); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-7Ii6X .framer-styles-preset-1qudk9h:not(.rich-text-wrapper), .framer-7Ii6X .framer-styles-preset-1qudk9h.rich-text-wrapper p { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1.4); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-7Ii6X\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (e0ec254)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"wAZSVMngU\",\"wrYi9Tk8I\"];const serializationHash=\"framer-zIyqn\";const variantClassNames={wAZSVMngU:\"framer-v-8u2d9b\",wrYi9Tk8I:\"framer-v-1026mdh\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.8,ease:[.8,0,.2,1],type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 1\":\"wAZSVMngU\",\"Variant 2\":\"wrYi9Tk8I\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"wAZSVMngU\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"wAZSVMngU\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-8u2d9b\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"wAZSVMngU\",ref:refBinding,style:{...style},...addPropertyOverrides({wrYi9Tk8I:{\"data-framer-name\":\"Variant 2\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1m33n2l\",layoutDependency:layoutDependency,layoutId:\"WoVcHLbXz\",style:{backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",rotate:0},variants:{wrYi9Tk8I:{rotate:90}}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1pvvg6h\",layoutDependency:layoutDependency,layoutId:\"k0EUU3L_a\",style:{backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",rotate:90},variants:{wrYi9Tk8I:{rotate:270}}})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-zIyqn.framer-ncsygp, .framer-zIyqn .framer-ncsygp { display: block; }\",\".framer-zIyqn.framer-8u2d9b { height: 40px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 40px; }\",\".framer-zIyqn .framer-1m33n2l, .framer-zIyqn .framer-1pvvg6h { flex: none; height: 24px; left: calc(50.00000000000002% - 1px / 2); overflow: var(--overflow-clip-fallback, clip); position: absolute; top: calc(50.00000000000002% - 24px / 2); width: 1px; }\",\".framer-zIyqn.framer-v-1026mdh.framer-8u2d9b { aspect-ratio: 1 / 1; height: var(--framer-aspect-ratio-supported, 40px); }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 40\n * @framerIntrinsicWidth 40\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"wrYi9Tk8I\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerAawnurm_t=withCSS(Component,css,\"framer-zIyqn\");export default FramerAawnurm_t;FramerAawnurm_t.displayName=\"PlusFAQ\";FramerAawnurm_t.defaultProps={height:40,width:40};addPropertyControls(FramerAawnurm_t,{variant:{options:[\"wAZSVMngU\",\"wrYi9Tk8I\"],optionTitles:[\"Variant 1\",\"Variant 2\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerAawnurm_t,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerAawnurm_t\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"40\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"wrYi9Tk8I\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"40\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Aawnurm_t.map","// Generated by Framer (62e4d63)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/NUxh1C07gxD3baGlkrGS/TkxOJjFeBNgInrog0mu7/d_QjpE7Ez.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/mWpE452hJfoab3lrgpgF/KAW1wuOqq6IQwIVDh9fl/xtYIxMhsp.js\";import PlusFAQ from\"https://framerusercontent.com/modules/jg4OHn3foPiVl0CYOWa4/VCC25QCpGASP5R8FIJ0I/Aawnurm_t.js\";const PlusFAQFonts=getFonts(PlusFAQ);const enabledGestures={fKidL4ku1:{hover:true},s61wuKYWC:{hover:true}};const cycleOrder=[\"fKidL4ku1\",\"s61wuKYWC\"];const serializationHash=\"framer-T4Rav\";const variantClassNames={fKidL4ku1:\"framer-v-reqgnd\",s61wuKYWC:\"framer-v-1hegxk5\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Closed:\"fKidL4ku1\",Open:\"s61wuKYWC\"};const getProps=({height,id,sp_rsm_l,svar,width,...props})=>{return{...props,uUJwqL4W8:svar??props.uUJwqL4W8??\"Nei, absolutt ikke. Jeg tilpasser programmet etter det du har tilgjengelig – enten det er et fullverdig treningssenter, noen manualer hjemme, eller bare kroppsvekt. Det viktigste er at treningen passer inn i hverdagen din og f\\xf8les overkommelig.\",variant:humanReadableVariantMap[props.variant]??props.variant??\"fKidL4ku1\",vVK64It18:sp_rsm_l??props.vVK64It18??\"M\\xe5 jeg ha tilgang til treningssenter for \\xe5 trene med deg online?\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,vVK64It18,uUJwqL4W8,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"fKidL4ku1\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1xbxa0t=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(\"s61wuKYWC\");});const onTap1mgu137=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(\"fKidL4ku1\");});const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"s61wuKYWC-hover\")return true;if(baseVariant===\"s61wuKYWC\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-reqgnd\",className,classNames),\"data-framer-name\":\"Closed\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"fKidL4ku1\",onTap:onTap1xbxa0t,ref:refBinding,style:{...style},...addPropertyOverrides({\"fKidL4ku1-hover\":{\"data-framer-name\":undefined},\"s61wuKYWC-hover\":{\"data-framer-name\":undefined},s61wuKYWC:{\"data-framer-name\":\"Open\",onTap:onTap1mgu137}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-yifoeq\",layoutDependency:layoutDependency,layoutId:\"r8mgAsGNE\",style:{backgroundColor:\"var(--token-7e789b53-bbba-4f7a-96ef-8161022a5a89, rgb(42, 42, 42))\"},variants:{\"fKidL4ku1-hover\":{backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},\"s61wuKYWC-hover\":{backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"}}}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-13zmqnn\",layoutDependency:layoutDependency,layoutId:\"TXXA1sTO1\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-1qudk9h\",\"data-styles-preset\":\"xtYIxMhsp\",style:{\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"M\\xe5 jeg ha tilgang til treningssenter for \\xe5 trene med deg online?\"})}),className:\"framer-1uo35l4\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"oObyyHXtu\",style:{\"--extracted-a0htzi\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:vVK64It18,variants:{\"fKidL4ku1-hover\":{\"--extracted-a0htzi\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"},\"s61wuKYWC-hover\":{\"--extracted-a0htzi\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"fKidL4ku1-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-1qudk9h\",\"data-styles-preset\":\"xtYIxMhsp\",style:{\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)))\"},children:\"M\\xe5 jeg ha tilgang til treningssenter for \\xe5 trene med deg online?\"})})},\"s61wuKYWC-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-1qudk9h\",\"data-styles-preset\":\"xtYIxMhsp\",style:{\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)))\"},children:\"M\\xe5 jeg ha tilgang til treningssenter for \\xe5 trene med deg online?\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:40,width:\"40px\",y:(componentViewport?.y||0)+0+(((componentViewport?.height||72.5)-0-57)/2+1+16)+0,...addPropertyOverrides({s61wuKYWC:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||168.5)-0-173)/2+1+16)+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-18fkoy4-container\",layoutDependency:layoutDependency,layoutId:\"UDpmWsLR1-container\",nodeId:\"UDpmWsLR1\",rendersWithMotion:true,scopeId:\"a0d8ITKLO\",children:/*#__PURE__*/_jsx(PlusFAQ,{height:\"100%\",id:\"UDpmWsLR1\",layoutId:\"UDpmWsLR1\",style:{height:\"100%\",width:\"100%\"},variant:\"wAZSVMngU\",width:\"100%\",...addPropertyOverrides({s61wuKYWC:{variant:\"wrYi9Tk8I\"}},baseVariant,gestureVariant)})})})]}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-5ytdrj\",layoutDependency:layoutDependency,layoutId:\"KxfxC5rGi\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, rgb(173, 173, 173)))\"},children:\"Nei, absolutt ikke. Jeg tilpasser programmet etter det du har tilgjengelig – enten det er et fullverdig treningssenter, noen manualer hjemme, eller bare kroppsvekt. Det viktigste er at treningen passer inn i hverdagen din og f\\xf8les overkommelig.\"})}),className:\"framer-s4ms8\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"WUQmP2dZp\",style:{\"--extracted-r6o4lv\":\"var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, rgb(173, 173, 173))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:uUJwqL4W8,verticalAlignment:\"top\",withExternalLayout:true})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-T4Rav.framer-ylmlut, .framer-T4Rav .framer-ylmlut { display: block; }\",\".framer-T4Rav.framer-reqgnd { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 568px; }\",\".framer-T4Rav .framer-yifoeq { flex: none; height: 1px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 100%; }\",\".framer-T4Rav .framer-13zmqnn { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-T4Rav .framer-1uo35l4 { flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-T4Rav .framer-18fkoy4-container { flex: none; height: 40px; position: relative; width: 40px; }\",\".framer-T4Rav .framer-5ytdrj { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-T4Rav .framer-s4ms8 { flex: 1 0 0px; height: auto; max-width: 480px; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 72.5\n * @framerIntrinsicWidth 568\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"s61wuKYWC\":{\"layout\":[\"fixed\",\"auto\"]},\"ZZZx3pV0j\":{\"layout\":[\"fixed\",\"auto\"]},\"ta5rDrj7W\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"vVK64It18\":\"sp_rsm_l\",\"uUJwqL4W8\":\"svar\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framera0d8ITKLO=withCSS(Component,css,\"framer-T4Rav\");export default Framera0d8ITKLO;Framera0d8ITKLO.displayName=\"Question\";Framera0d8ITKLO.defaultProps={height:72.5,width:568};addPropertyControls(Framera0d8ITKLO,{variant:{options:[\"fKidL4ku1\",\"s61wuKYWC\"],optionTitles:[\"Closed\",\"Open\"],title:\"Variant\",type:ControlType.Enum},vVK64It18:{defaultValue:\"M\\xe5 jeg ha tilgang til treningssenter for \\xe5 trene med deg online?\",description:\"\",displayTextArea:false,title:\"Sp\\xf8rsm\\xe5l\",type:ControlType.String},uUJwqL4W8:{defaultValue:\"Nei, absolutt ikke. Jeg tilpasser programmet etter det du har tilgjengelig – enten det er et fullverdig treningssenter, noen manualer hjemme, eller bare kroppsvekt. Det viktigste er at treningen passer inn i hverdagen din og f\\xf8les overkommelig.\",description:\"\",displayTextArea:false,title:\"Svar\",type:ControlType.String}});addFonts(Framera0d8ITKLO,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PlusFAQFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framera0d8ITKLO\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"72.5\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"s61wuKYWC\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"ZZZx3pV0j\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"ta5rDrj7W\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"568\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"vVK64It18\\\":\\\"sp_rsm_l\\\",\\\"uUJwqL4W8\\\":\\\"svar\\\"}\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./a0d8ITKLO.map","// Generated by Framer (e0ec254)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Geist Mono-500\",\"GF;Geist Mono-700\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Geist Mono\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geistmono/v4/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeEPKJ5W7ihaO_CS.woff2\",weight:\"500\"},{family:\"Geist Mono\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geistmono/v4/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeHaL55W7ihaO_CS.woff2\",weight:\"700\"}]}];export const css=[\".framer-8rvHw .framer-styles-preset-2nn9r2:not(.rich-text-wrapper), .framer-8rvHw .framer-styles-preset-2nn9r2.rich-text-wrapper p { --framer-font-family: \\\"Geist Mono\\\", monospace; --framer-font-family-bold: \\\"Geist Mono\\\", monospace; --framer-font-open-type-features: 'ss02' on, 'ss03' on, 'cpsp' on; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 0.8); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-letter-spacing: 0.02em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }\",\"@media (max-width: 1199px) and (min-width: 810px) { .framer-8rvHw .framer-styles-preset-2nn9r2:not(.rich-text-wrapper), .framer-8rvHw .framer-styles-preset-2nn9r2.rich-text-wrapper p { --framer-font-family: \\\"Geist Mono\\\", monospace; --framer-font-family-bold: \\\"Geist Mono\\\", monospace; --framer-font-open-type-features: 'ss02' on, 'ss03' on, 'cpsp' on; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 0.64); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-letter-spacing: 0.02em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; } }\",\"@media (max-width: 809px) and (min-width: 0px) { .framer-8rvHw .framer-styles-preset-2nn9r2:not(.rich-text-wrapper), .framer-8rvHw .framer-styles-preset-2nn9r2.rich-text-wrapper p { --framer-font-family: \\\"Geist Mono\\\", monospace; --framer-font-family-bold: \\\"Geist Mono\\\", monospace; --framer-font-open-type-features: 'ss02' on, 'ss03' on, 'cpsp' on; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 0.6); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-letter-spacing: 0.02em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; } }\"];export const className=\"framer-8rvHw\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/U5UtW5urp9J5v6ENPQtq/kkGFEGyInBO0KtyNmhNI/FFSoAwgVo.js\";const serializationHash=\"framer-5kyN2\";const variantClassNames={eRRxOeTuq:\"framer-v-1seb58g\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const animation={opacity:.001,rotate:0,scale:1,skewX:0,skewY:0,x:0,y:0};const transition2={bounce:0,delay:.1,duration:0,type:\"spring\"};const textEffect={effect:animation,tokenization:\"character\",transition:transition2,trigger:\"onInView\",type:\"appear\"};const transition3={bounce:0,delay:.025,duration:0,type:\"spring\"};const textEffect1={effect:animation,repeat:false,startDelay:0,threshold:0,tokenization:\"character\",transition:transition3,trigger:\"onInView\",type:\"appear\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,number,uSP,width,...props})=>{return{...props,G0cEuaM7f:number??props.G0cEuaM7f??\"[01]\",qYB8W2mx7:uSP??props.qYB8W2mx7??\"Individuelt tilpasset treningsprogram\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,G0cEuaM7f,qYB8W2mx7,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"eRRxOeTuq\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.ul,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1seb58g\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"eRRxOeTuq\",ref:refBinding,style:{backgroundColor:\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\",...style},children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,as:\"li\",children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"[01]\"})})}),className:\"framer-1d8kkjg\",effect:textEffect,fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"zt97fLOAN\",style:{\"--extracted-zrz4ul\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:G0cEuaM7f,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,as:\"li\",children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13)))\"},children:\"Individuelt tilpasset treningsprogram\"})})}),className:\"framer-twr64g\",effect:textEffect1,fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"liYE3cSZU\",style:{\"--extracted-zrz4ul\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:qYB8W2mx7,verticalAlignment:\"top\",withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-5kyN2.framer-1n51c55, .framer-5kyN2 .framer-1n51c55 { display: block; }\",\".framer-5kyN2.framer-1seb58g { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; height: min-content; justify-content: space-between; list-style: none; margin: 0px; overflow: var(--overflow-clip-fallback, clip); padding: 16px; position: relative; width: 400px; }\",\".framer-5kyN2 .framer-1d8kkjg, .framer-5kyN2 .framer-twr64g { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 70.5\n * @framerIntrinsicWidth 400\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"G0cEuaM7f\":\"number\",\"qYB8W2mx7\":\"uSP\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramergyaIeUHyR=withCSS(Component,css,\"framer-5kyN2\");export default FramergyaIeUHyR;FramergyaIeUHyR.displayName=\"OnlineUSP\";FramergyaIeUHyR.defaultProps={height:70.5,width:400};addPropertyControls(FramergyaIeUHyR,{G0cEuaM7f:{defaultValue:\"[01]\",displayTextArea:false,title:\"Number\",type:ControlType.String},qYB8W2mx7:{defaultValue:\"Individuelt tilpasset treningsprogram\",description:\"\",displayTextArea:false,title:\"USP\",type:ControlType.String}});addFonts(FramergyaIeUHyR,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramergyaIeUHyR\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"G0cEuaM7f\\\":\\\"number\\\",\\\"qYB8W2mx7\\\":\\\"uSP\\\"}\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"70.5\",\"framerIntrinsicWidth\":\"400\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./gyaIeUHyR.map","// Generated by Framer (e0ec254)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Geist-regular\",\"GF;Geist-700\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_RnOM4mJPby1QNtA.woff2\",weight:\"400\"},{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_Re-Q4mJPby1QNtA.woff2\",weight:\"700\"}]}];export const css=['.framer-FgOLn .framer-styles-preset-fmzcqb:not(.rich-text-wrapper), .framer-FgOLn .framer-styles-preset-fmzcqb.rich-text-wrapper h3 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 2.4); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-FgOLn .framer-styles-preset-fmzcqb:not(.rich-text-wrapper), .framer-FgOLn .framer-styles-preset-fmzcqb.rich-text-wrapper h3 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1.8); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-FgOLn .framer-styles-preset-fmzcqb:not(.rich-text-wrapper), .framer-FgOLn .framer-styles-preset-fmzcqb.rich-text-wrapper h3 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1.8); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-FgOLn\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (8c7c84e)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,FormPlainTextInput,getFontsFromSharedStyle,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/U5UtW5urp9J5v6ENPQtq/kkGFEGyInBO0KtyNmhNI/FFSoAwgVo.js\";const enabledGestures={d2MtejAC3:{hover:true}};const cycleOrder=[\"d2MtejAC3\",\"ZaMohgWSK\",\"S7PcCrB6T\",\"K4nzxRJLV\"];const serializationHash=\"framer-X0Ois\";const variantClassNames={d2MtejAC3:\"framer-v-6n81s1\",K4nzxRJLV:\"framer-v-1m4tv5i\",S7PcCrB6T:\"framer-v-sugqit\",ZaMohgWSK:\"framer-v-ns9chy\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={duration:0,type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Blur:\"S7PcCrB6T\",Default:\"d2MtejAC3\",Focus:\"ZaMohgWSK\",Invalid:\"K4nzxRJLV\"};const getProps=({formName,height,id,label,placeholderText,required,width,...props})=>{return{...props,Hor0nCnnH:label??props.Hor0nCnnH??\"Name\",Ke5kUsQh3:required??props.Ke5kUsQh3,mpUZCyDvp:formName??props.mpUZCyDvp??\"Name\",U69gSnSvK:placeholderText??props.U69gSnSvK??\"Jane Smith\",variant:humanReadableVariantMap[props.variant]??props.variant??\"d2MtejAC3\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,mpUZCyDvp,Hor0nCnnH,U69gSnSvK,Ke5kUsQh3,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"d2MtejAC3\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onFocus1ywr5t5=activeVariantCallback(async(...args)=>{setVariant(\"ZaMohgWSK\");});const onBlur1sgii9s=activeVariantCallback(async(...args)=>{const inputValue=args[0]?.target?.value?.trim();if(inputValue?.length>0){setVariant(\"S7PcCrB6T\");}if(!inputValue){setVariant(\"d2MtejAC3\");}});const onInvalidtcslyg=activeVariantCallback(async(...args)=>{setVariant(\"K4nzxRJLV\");});const onValid1ywr5t5=activeVariantCallback(async(...args)=>{setVariant(\"ZaMohgWSK\");});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.label,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-6n81s1\",className,classNames),\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"d2MtejAC3\",ref:refBinding,style:{...style},...addPropertyOverrides({\"d2MtejAC3-hover\":{\"data-framer-name\":undefined},K4nzxRJLV:{\"data-framer-name\":\"Invalid\"},S7PcCrB6T:{\"data-framer-name\":\"Blur\"},ZaMohgWSK:{\"data-framer-name\":\"Focus\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"Name\"})}),className:\"framer-68wuk4\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ht9Ebv4E1\",style:{\"--extracted-r6o4lv\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},text:Hor0nCnnH,variants:{K4nzxRJLV:{\"--extracted-r6o4lv\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({K4nzxRJLV:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)))\"},children:\"Name\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(FormPlainTextInput,{className:\"framer-1t6ult7\",inputName:mpUZCyDvp,layoutDependency:layoutDependency,layoutId:\"KtBPYpujK\",onBlur:onBlur1sgii9s,onFocus:onFocus1ywr5t5,onInvalid:onInvalidtcslyg,placeholder:U69gSnSvK,required:Ke5kUsQh3,style:{\"--framer-input-background\":\"rgba(173, 173, 173, 0)\",\"--framer-input-border-bottom-width\":\"1px\",\"--framer-input-border-color\":\"var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, rgb(173, 173, 173))\",\"--framer-input-border-left-width\":\"1px\",\"--framer-input-border-right-width\":\"1px\",\"--framer-input-border-style\":\"solid\",\"--framer-input-border-top-width\":\"1px\",\"--framer-input-font-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",\"--framer-input-icon-color\":\"rgb(153, 153, 153)\",\"--framer-input-placeholder-color\":\"rgba(255, 255, 255, 0.5)\"},type:\"textarea\",variants:{\"d2MtejAC3-hover\":{\"--framer-input-border-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},K4nzxRJLV:{\"--framer-input-border-color\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"},S7PcCrB6T:{\"--framer-input-border-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},ZaMohgWSK:{\"--framer-input-border-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"}},...addPropertyOverrides({K4nzxRJLV:{onValid:onValid1ywr5t5}},baseVariant,gestureVariant)})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-X0Ois.framer-gcck1b, .framer-X0Ois .framer-gcck1b { display: block; }\",\".framer-X0Ois.framer-6n81s1 { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 568px; }\",\".framer-X0Ois .framer-68wuk4 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",'.framer-X0Ois .framer-1t6ult7 { --framer-input-font-family: \"Geist\"; --framer-input-font-letter-spacing: 0em; --framer-input-font-line-height: 1.2em; --framer-input-font-size: 1.2rem; --framer-input-font-weight: 400; --framer-input-padding: 12px; --framer-input-wrapper-height: auto; --framer-textarea-resize: vertical; flex: none; height: auto; max-height: 800px; min-height: 100px; position: relative; width: 100%; }',\".framer-X0Ois.framer-v-ns9chy.framer-6n81s1, .framer-X0Ois.framer-v-sugqit.framer-6n81s1, .framer-X0Ois.framer-v-1m4tv5i.framer-6n81s1 { cursor: unset; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 127\n * @framerIntrinsicWidth 568\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"ZaMohgWSK\":{\"layout\":[\"fixed\",\"auto\"]},\"S7PcCrB6T\":{\"layout\":[\"fixed\",\"auto\"]},\"K4nzxRJLV\":{\"layout\":[\"fixed\",\"auto\"]},\"jZO7QY1i2\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"mpUZCyDvp\":\"formName\",\"Hor0nCnnH\":\"label\",\"U69gSnSvK\":\"placeholderText\",\"Ke5kUsQh3\":\"required\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerdNuW1Hh6g=withCSS(Component,css,\"framer-X0Ois\");export default FramerdNuW1Hh6g;FramerdNuW1Hh6g.displayName=\"InputField Message\";FramerdNuW1Hh6g.defaultProps={height:127,width:568};addPropertyControls(FramerdNuW1Hh6g,{variant:{options:[\"d2MtejAC3\",\"ZaMohgWSK\",\"S7PcCrB6T\",\"K4nzxRJLV\"],optionTitles:[\"Default\",\"Focus\",\"Blur\",\"Invalid\"],title:\"Variant\",type:ControlType.Enum},mpUZCyDvp:{defaultValue:\"Name\",description:\"\",title:\"Form Name\",type:ControlType.String},Hor0nCnnH:{defaultValue:\"Name\",description:\"\",displayTextArea:false,title:\"Label\",type:ControlType.String},U69gSnSvK:{defaultValue:\"Jane Smith\",description:\"\",title:\"Placeholder text\",type:ControlType.String},Ke5kUsQh3:{defaultValue:false,title:\"Required\",type:ControlType.Boolean}});addFonts(FramerdNuW1Hh6g,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Geist\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_RnOM4mJPby1QNtA.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerdNuW1Hh6g\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"568\",\"framerIntrinsicHeight\":\"127\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"mpUZCyDvp\\\":\\\"formName\\\",\\\"Hor0nCnnH\\\":\\\"label\\\",\\\"U69gSnSvK\\\":\\\"placeholderText\\\",\\\"Ke5kUsQh3\\\":\\\"required\\\"}\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"ZaMohgWSK\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"S7PcCrB6T\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"K4nzxRJLV\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"jZO7QY1i2\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./dNuW1Hh6g.map","// Generated by Framer (8c7c84e)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/U5UtW5urp9J5v6ENPQtq/kkGFEGyInBO0KtyNmhNI/FFSoAwgVo.js\";const MotionDivWithFX=withFX(motion.div);const enabledGestures={wI_jVqhtQ:{hover:true,pressed:true}};const cycleOrder=[\"wI_jVqhtQ\",\"gxyCIGaBN\",\"uYzsQ83rI\",\"ySk8lsVmg\",\"JCI7gaGeo\"];const serializationHash=\"framer-8Quan\";const variantClassNames={gxyCIGaBN:\"framer-v-1v14qkz\",JCI7gaGeo:\"framer-v-ppo1sy\",uYzsQ83rI:\"framer-v-s34b4g\",wI_jVqhtQ:\"framer-v-1bvhlls\",ySk8lsVmg:\"framer-v-tc8da8\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={duration:0,type:\"tween\"};const transition2={delay:0,duration:1,ease:[0,0,1,1],type:\"tween\"};const animation={opacity:1,rotate:360,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0};const transformTemplate1=(_,t)=>`translateX(-50%) ${t}`;const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Default:\"wI_jVqhtQ\",Disabled:\"uYzsQ83rI\",Error:\"JCI7gaGeo\",Loading:\"gxyCIGaBN\",Success:\"ySk8lsVmg\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"wI_jVqhtQ\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"wI_jVqhtQ\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"gxyCIGaBN\")return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"gxyCIGaBN\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.button,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1bvhlls\",className,classNames),\"data-framer-name\":\"Default\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"wI_jVqhtQ\",ref:refBinding,style:{backgroundColor:\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\",borderBottomLeftRadius:72,borderBottomRightRadius:72,borderTopLeftRadius:72,borderTopRightRadius:72,opacity:1,...style},variants:{\"wI_jVqhtQ-hover\":{backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",opacity:1},\"wI_jVqhtQ-pressed\":{backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",opacity:1},JCI7gaGeo:{backgroundColor:\"rgba(255, 81, 0, 0.15)\",opacity:1},uYzsQ83rI:{opacity:.5},ySk8lsVmg:{opacity:1}},...addPropertyOverrides({\"wI_jVqhtQ-hover\":{\"data-framer-name\":undefined},\"wI_jVqhtQ-pressed\":{\"data-framer-name\":undefined},gxyCIGaBN:{\"data-framer-name\":\"Loading\"},JCI7gaGeo:{\"data-framer-name\":\"Error\"},uYzsQ83rI:{\"data-framer-name\":\"Disabled\"},ySk8lsVmg:{\"data-framer-name\":\"Success\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13)))\"},children:\"Send inn\"})}),className:\"framer-2zwcu8\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"F0cJosDsd\",style:{\"--extracted-r6o4lv\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},variants:{\"wI_jVqhtQ-pressed\":{\"--extracted-r6o4lv\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"},JCI7gaGeo:{\"--extracted-r6o4lv\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"wI_jVqhtQ-pressed\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)))\"},children:\"Send inn\"})})},JCI7gaGeo:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)))\"},children:\"Something went wrong\"})})},ySk8lsVmg:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",children:\"Takk!\"})})}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1xlwfjd\",\"data-framer-name\":\"Spinner\",layoutDependency:layoutDependency,layoutId:\"hwo3Mi9fY\",style:{mask:\"url('https://framerusercontent.com/images/pGiXYozQ3mE4cilNOItfe2L2fUA.svg?width=20&height=20') alpha no-repeat center / cover add\",WebkitMask:\"url('https://framerusercontent.com/images/pGiXYozQ3mE4cilNOItfe2L2fUA.svg?width=20&height=20') alpha no-repeat center / cover add\"},children:/*#__PURE__*/_jsx(MotionDivWithFX,{__framer__loop:animation,__framer__loopEffectEnabled:true,__framer__loopRepeatDelay:0,__framer__loopRepeatType:\"loop\",__framer__loopTransition:transition2,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:\"framer-1r9h5s9\",\"data-framer-name\":\"Conic\",layoutDependency:layoutDependency,layoutId:\"y4YAMfuLC\",style:{background:\"conic-gradient(from 180deg at 50% 50%, rgb(68, 204, 255) 0deg, rgb(68, 204, 255) 360deg)\",backgroundColor:\"rgb(68, 204, 255)\",mask:\"none\",WebkitMask:\"none\"},variants:{gxyCIGaBN:{background:\"conic-gradient(from 0deg at 50% 50%, rgba(255, 255, 255, 0) 7.208614864864882deg, rgb(255, 255, 255) 342deg)\",backgroundColor:\"rgba(0, 0, 0, 0)\",mask:\"url('https://framerusercontent.com/images/pGiXYozQ3mE4cilNOItfe2L2fUA.svg?width=20&height=20') alpha no-repeat center / cover add\",WebkitMask:\"url('https://framerusercontent.com/images/pGiXYozQ3mE4cilNOItfe2L2fUA.svg?width=20&height=20') alpha no-repeat center / cover add\"}},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-hnkeq4\",\"data-framer-name\":\"Rounding\",layoutDependency:layoutDependency,layoutId:\"X0D9Gq2TA\",style:{backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:1,borderBottomRightRadius:1,borderTopLeftRadius:1,borderTopRightRadius:1},transformTemplate:transformTemplate1})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-8Quan.framer-1supoz4, .framer-8Quan .framer-1supoz4 { display: block; }\",\".framer-8Quan.framer-1bvhlls { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: 58px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 240px; }\",\".framer-8Quan .framer-2zwcu8 { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-8Quan .framer-1xlwfjd { aspect-ratio: 1 / 1; flex: none; gap: 10px; height: var(--framer-aspect-ratio-supported, 20px); overflow: hidden; position: relative; width: 20px; }\",\".framer-8Quan .framer-1r9h5s9 { bottom: 0px; flex: none; left: 0px; overflow: visible; position: absolute; right: 0px; top: 0px; }\",\".framer-8Quan .framer-hnkeq4 { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 2px); left: 50%; overflow: visible; position: absolute; top: 0px; width: 2px; }\",\".framer-8Quan.framer-v-1v14qkz.framer-1bvhlls, .framer-8Quan.framer-v-s34b4g.framer-1bvhlls, .framer-8Quan.framer-v-tc8da8.framer-1bvhlls, .framer-8Quan.framer-v-ppo1sy.framer-1bvhlls { cursor: unset; }\",\".framer-8Quan.framer-v-1v14qkz .framer-1r9h5s9 { overflow: hidden; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 58\n * @framerIntrinsicWidth 240\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"gxyCIGaBN\":{\"layout\":[\"fixed\",\"fixed\"]},\"uYzsQ83rI\":{\"layout\":[\"fixed\",\"fixed\"]},\"ySk8lsVmg\":{\"layout\":[\"fixed\",\"fixed\"]},\"JCI7gaGeo\":{\"layout\":[\"fixed\",\"fixed\"]},\"j5C2zhd7F\":{\"layout\":[\"fixed\",\"fixed\"]},\"KggVJvFXL\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerJVnOYnWhx=withCSS(Component,css,\"framer-8Quan\");export default FramerJVnOYnWhx;FramerJVnOYnWhx.displayName=\"Button 2\";FramerJVnOYnWhx.defaultProps={height:58,width:240};addPropertyControls(FramerJVnOYnWhx,{variant:{options:[\"wI_jVqhtQ\",\"gxyCIGaBN\",\"uYzsQ83rI\",\"ySk8lsVmg\",\"JCI7gaGeo\"],optionTitles:[\"Default\",\"Loading\",\"Disabled\",\"Success\",\"Error\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerJVnOYnWhx,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerJVnOYnWhx\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"58\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"gxyCIGaBN\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"uYzsQ83rI\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"ySk8lsVmg\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"JCI7gaGeo\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"j5C2zhd7F\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"KggVJvFXL\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"240\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./JVnOYnWhx.map","// Generated by Framer (8c7c84e)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,FormPlainTextInput,getFontsFromSharedStyle,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/U5UtW5urp9J5v6ENPQtq/kkGFEGyInBO0KtyNmhNI/FFSoAwgVo.js\";const enabledGestures={VigKdv0pa:{hover:true}};const cycleOrder=[\"VigKdv0pa\",\"firiw_v5l\",\"W2RkYGFlO\",\"RsoBvuSLO\"];const serializationHash=\"framer-X4jNE\";const variantClassNames={firiw_v5l:\"framer-v-1ytg791\",RsoBvuSLO:\"framer-v-1byi1oh\",VigKdv0pa:\"framer-v-1c8mpy7\",W2RkYGFlO:\"framer-v-rllt15\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={duration:0,type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableEnumMap={\"Phone Number\":\"tel\",\"Text Area\":\"textarea\",Date:\"date\",Email:\"email\",Number:\"number\",Text:\"text\",Time:\"time\",URL:\"url\"};const humanReadableVariantMap={Blur:\"W2RkYGFlO\",Default:\"VigKdv0pa\",Focus:\"firiw_v5l\",Invalid:\"RsoBvuSLO\"};const getProps=({formName,height,id,label,placeholderText,required,type,width,...props})=>{return{...props,Hor0nCnnH:label??props.Hor0nCnnH??\"Name\",Ke5kUsQh3:required??props.Ke5kUsQh3,mpUZCyDvp:formName??props.mpUZCyDvp??\"Name\",U69gSnSvK:placeholderText??props.U69gSnSvK??\"Jane Smith\",variant:humanReadableVariantMap[props.variant]??props.variant??\"VigKdv0pa\",WSbhitfu6:humanReadableEnumMap[type]??type??props.WSbhitfu6??\"text\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,WSbhitfu6,mpUZCyDvp,Hor0nCnnH,U69gSnSvK,Ke5kUsQh3,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"VigKdv0pa\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onFocus6bgff0=activeVariantCallback(async(...args)=>{setVariant(\"firiw_v5l\");});const onBlurm3fl58=activeVariantCallback(async(...args)=>{const inputValue=args[0]?.target?.value?.trim();if(inputValue?.length>0){setVariant(\"W2RkYGFlO\");}if(!inputValue){setVariant(\"VigKdv0pa\");}});const onInvalid1bsy5yp=activeVariantCallback(async(...args)=>{setVariant(\"RsoBvuSLO\");});const onValid6bgff0=activeVariantCallback(async(...args)=>{setVariant(\"firiw_v5l\");});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.label,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1c8mpy7\",className,classNames),\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"VigKdv0pa\",ref:refBinding,style:{...style},...addPropertyOverrides({\"VigKdv0pa-hover\":{\"data-framer-name\":undefined},firiw_v5l:{\"data-framer-name\":\"Focus\"},RsoBvuSLO:{\"data-framer-name\":\"Invalid\"},W2RkYGFlO:{\"data-framer-name\":\"Blur\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"Name\"})}),className:\"framer-mouq9y\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Q9nmLVUyJ\",style:{\"--extracted-r6o4lv\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},text:Hor0nCnnH,variants:{RsoBvuSLO:{\"--extracted-r6o4lv\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({RsoBvuSLO:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)))\"},children:\"Name\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(FormPlainTextInput,{className:\"framer-uyq12y\",inputName:mpUZCyDvp,layoutDependency:layoutDependency,layoutId:\"cBhaUBhy4\",onBlur:onBlurm3fl58,onFocus:onFocus6bgff0,onInvalid:onInvalid1bsy5yp,placeholder:U69gSnSvK,required:Ke5kUsQh3,style:{\"--framer-input-background\":\"rgba(173, 173, 173, 0)\",\"--framer-input-border-bottom-width\":\"1px\",\"--framer-input-border-color\":\"var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, rgb(173, 173, 173))\",\"--framer-input-border-left-width\":\"0px\",\"--framer-input-border-right-width\":\"0px\",\"--framer-input-border-style\":\"solid\",\"--framer-input-border-top-width\":\"0px\",\"--framer-input-font-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",\"--framer-input-icon-color\":\"rgb(153, 153, 153)\",\"--framer-input-placeholder-color\":\"rgba(255, 255, 255, 0.5)\"},type:WSbhitfu6,variants:{\"VigKdv0pa-hover\":{\"--framer-input-border-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},firiw_v5l:{\"--framer-input-border-bottom-width\":\"2px\",\"--framer-input-border-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},RsoBvuSLO:{\"--framer-input-border-bottom-width\":\"2px\",\"--framer-input-border-color\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"},W2RkYGFlO:{\"--framer-input-border-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"}},...addPropertyOverrides({RsoBvuSLO:{onValid:onValid6bgff0}},baseVariant,gestureVariant)})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-X4jNE.framer-1ierpd7, .framer-X4jNE .framer-1ierpd7 { display: block; }\",\".framer-X4jNE.framer-1c8mpy7 { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 568px; }\",\".framer-X4jNE .framer-mouq9y { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",'.framer-X4jNE .framer-uyq12y { --framer-input-font-family: \"Geist\"; --framer-input-font-letter-spacing: 0em; --framer-input-font-line-height: 1.2em; --framer-input-font-size: 1.2rem; --framer-input-font-weight: 400; --framer-input-padding: 0px; flex: none; height: 64px; position: relative; width: 100%; }',\".framer-X4jNE.framer-v-1ytg791.framer-1c8mpy7, .framer-X4jNE.framer-v-rllt15.framer-1c8mpy7, .framer-X4jNE.framer-v-1byi1oh.framer-1c8mpy7 { cursor: unset; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 83\n * @framerIntrinsicWidth 568\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"firiw_v5l\":{\"layout\":[\"fixed\",\"auto\"]},\"W2RkYGFlO\":{\"layout\":[\"fixed\",\"auto\"]},\"RsoBvuSLO\":{\"layout\":[\"fixed\",\"auto\"]},\"giZ681Mh0\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"WSbhitfu6\":\"type\",\"mpUZCyDvp\":\"formName\",\"Hor0nCnnH\":\"label\",\"U69gSnSvK\":\"placeholderText\",\"Ke5kUsQh3\":\"required\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerkrQ7Y9i_9=withCSS(Component,css,\"framer-X4jNE\");export default FramerkrQ7Y9i_9;FramerkrQ7Y9i_9.displayName=\"InputField\";FramerkrQ7Y9i_9.defaultProps={height:83,width:568};addPropertyControls(FramerkrQ7Y9i_9,{variant:{options:[\"VigKdv0pa\",\"firiw_v5l\",\"W2RkYGFlO\",\"RsoBvuSLO\"],optionTitles:[\"Default\",\"Focus\",\"Blur\",\"Invalid\"],title:\"Variant\",type:ControlType.Enum},WSbhitfu6:{defaultValue:\"text\",options:[\"text\",\"textarea\",\"email\",\"number\",\"tel\",\"url\",\"date\",\"time\"],optionTitles:[\"Text\",\"Text Area\",\"Email\",\"Number\",\"Phone Number\",\"URL\",\"Date\",\"Time\"],title:\"Type\",type:ControlType.Enum},mpUZCyDvp:{defaultValue:\"Name\",description:\"\",title:\"Form Name\",type:ControlType.String},Hor0nCnnH:{defaultValue:\"Name\",description:\"\",displayTextArea:false,title:\"Label\",type:ControlType.String},U69gSnSvK:{defaultValue:\"Jane Smith\",description:\"\",title:\"Placeholder text\",type:ControlType.String},Ke5kUsQh3:{defaultValue:false,title:\"Required\",type:ControlType.Boolean}});addFonts(FramerkrQ7Y9i_9,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Geist\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_RnOM4mJPby1QNtA.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerkrQ7Y9i_9\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerVariables\":\"{\\\"WSbhitfu6\\\":\\\"type\\\",\\\"mpUZCyDvp\\\":\\\"formName\\\",\\\"Hor0nCnnH\\\":\\\"label\\\",\\\"U69gSnSvK\\\":\\\"placeholderText\\\",\\\"Ke5kUsQh3\\\":\\\"required\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"firiw_v5l\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"W2RkYGFlO\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"RsoBvuSLO\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"giZ681Mh0\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"568\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"83\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./krQ7Y9i_9.map","// Generated by Framer (62e4d63)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,FormContainer,getFonts,getFontsFromSharedStyle,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/mWpE452hJfoab3lrgpgF/KAW1wuOqq6IQwIVDh9fl/xtYIxMhsp.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/Sck014nMHYdZJwyve77Q/plsXsv0x37BIgPjf2j0p/ZyG89nXsG.js\";import InputFieldMessage from\"https://framerusercontent.com/modules/sObrNtjNQr043Ob6z6S1/Toe3xzK6X7iu42xncZ4n/dNuW1Hh6g.js\";import Button2 from\"https://framerusercontent.com/modules/as9yw9BXqjDe4iwgg5H2/LLtfuGEGhp0oAl5OO4vO/JVnOYnWhx.js\";import InputField from\"https://framerusercontent.com/modules/0IJvsUqjUlOsymFHhWkU/yAfTNRZxBzPW0eZzdZyk/krQ7Y9i_9.js\";const InputFieldFonts=getFonts(InputField);const InputFieldMessageFonts=getFonts(InputFieldMessage);const Button2Fonts=getFonts(Button2);const cycleOrder=[\"PF1BW0Ioi\",\"CYpZ_gQBx\",\"fAJnl8Yt_\"];const serializationHash=\"framer-CBfVZ\";const variantClassNames={CYpZ_gQBx:\"framer-v-8gwd0e\",fAJnl8Yt_:\"framer-v-d1vne3\",PF1BW0Ioi:\"framer-v-1rdstj2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const formVariants=(form,variants,currentVariant)=>{switch(form.state){case\"success\":return variants.success??currentVariant;case\"pending\":return variants.pending??currentVariant;case\"error\":return variants.error??currentVariant;case\"incomplete\":return variants.incomplete??currentVariant;}};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 1\":\"PF1BW0Ioi\",Mobile:\"fAJnl8Yt_\",Success:\"CYpZ_gQBx\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"PF1BW0Ioi\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"PF1BW0Ioi\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onSuccess1nt43y4=activeVariantCallback(async(...args)=>{setVariant(\"CYpZ_gQBx\");});const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"CYpZ_gQBx\")return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"CYpZ_gQBx\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(FormContainer,{...restProps,...gestureHandlers,action:\"https://api.framer.com/forms/v1/forms/f0d372d1-d2c4-4cdd-899d-a3f59b3e7809/submit\",className:cx(scopingClassNames,\"framer-1rdstj2\",className,classNames),\"data-framer-name\":\"Variant 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"PF1BW0Ioi\",nodeId:\"PF1BW0Ioi\",onSuccess:onSuccess1nt43y4,ref:refBinding,style:{...style},...addPropertyOverrides({CYpZ_gQBx:{\"data-framer-name\":\"Success\"},fAJnl8Yt_:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:formState=>/*#__PURE__*/_jsxs(_Fragment,{children:[isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:83,width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+0+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-12yz6gq-container\",layoutDependency:layoutDependency,layoutId:\"R_7waRHlf-container\",nodeId:\"R_7waRHlf\",rendersWithMotion:true,scopeId:\"hdYUftzHp\",children:/*#__PURE__*/_jsx(InputField,{height:\"100%\",Hor0nCnnH:\"Navn*\",id:\"R_7waRHlf\",Ke5kUsQh3:true,layoutId:\"R_7waRHlf\",mpUZCyDvp:\"Navn\",style:{width:\"100%\"},U69gSnSvK:\"Ditt navn\",variant:\"VigKdv0pa\",width:\"100%\",WSbhitfu6:\"text\"})})}),isDisplayed1()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1qudk9h\",\"data-styles-preset\":\"xtYIxMhsp\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, rgb(173, 173, 173)))\"},children:\"Jeg gleder meg til \\xe5 ta kontakt og h\\xf8re mer om hva du \\xf8nsker \\xe5 oppn\\xe5.\"})}),className:\"framer-fwp35f\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"JoO7kQYsj\",style:{\"--extracted-r6o4lv\":\"var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, rgb(173, 173, 173))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:83,width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+0+123,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-l5zykn-container\",layoutDependency:layoutDependency,layoutId:\"P9LyiTNQ5-container\",nodeId:\"P9LyiTNQ5\",rendersWithMotion:true,scopeId:\"hdYUftzHp\",children:/*#__PURE__*/_jsx(InputField,{height:\"100%\",Hor0nCnnH:\"E-post*\",id:\"P9LyiTNQ5\",Ke5kUsQh3:true,layoutId:\"P9LyiTNQ5\",mpUZCyDvp:\"E-post\",style:{width:\"100%\"},U69gSnSvK:\"Din e-postadresse\",variant:\"VigKdv0pa\",width:\"100%\",WSbhitfu6:\"email\"})})}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:83,width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+0+246,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-kwx6ol-container\",layoutDependency:layoutDependency,layoutId:\"U4c38DEjV-container\",nodeId:\"U4c38DEjV\",rendersWithMotion:true,scopeId:\"hdYUftzHp\",children:/*#__PURE__*/_jsx(InputField,{height:\"100%\",Hor0nCnnH:\"Telefonnummer\",id:\"U4c38DEjV\",Ke5kUsQh3:false,layoutId:\"U4c38DEjV\",mpUZCyDvp:\"Telefonnummer\",style:{width:\"100%\"},U69gSnSvK:\"Ditt telefonnummer\",variant:\"VigKdv0pa\",width:\"100%\",WSbhitfu6:\"tel\"})})}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:127,width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+0+369,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1yg678y-container\",layoutDependency:layoutDependency,layoutId:\"uq00adQc2-container\",nodeId:\"uq00adQc2\",rendersWithMotion:true,scopeId:\"hdYUftzHp\",children:/*#__PURE__*/_jsx(InputFieldMessage,{height:\"100%\",Hor0nCnnH:\"Melding\",id:\"uq00adQc2\",Ke5kUsQh3:false,layoutId:\"uq00adQc2\",mpUZCyDvp:\"Melding\",style:{width:\"100%\"},U69gSnSvK:\"Din melding\",variant:\"d2MtejAC3\",width:\"100%\"})})}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,y:(componentViewport?.y||0)+0+536,...addPropertyOverrides({fAJnl8Yt_:{width:componentViewport?.width||\"100vw\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-5p2m5g-container\",layoutDependency:layoutDependency,layoutId:\"GInWx8qjO-container\",nodeId:\"GInWx8qjO\",rendersWithMotion:true,scopeId:\"hdYUftzHp\",children:/*#__PURE__*/_jsx(Button2,{height:\"100%\",id:\"GInWx8qjO\",layoutId:\"GInWx8qjO\",style:{height:\"100%\"},type:\"submit\",variant:formVariants(formState,{pending:\"gxyCIGaBN\",success:\"ySk8lsVmg\"},\"wI_jVqhtQ\"),width:\"100%\",...addPropertyOverrides({fAJnl8Yt_:{style:{height:\"100%\",width:\"100%\"}}},baseVariant,gestureVariant)})})}),isDisplayed1()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-fmzcqb\",\"data-styles-preset\":\"ZyG89nXsG\",style:{\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"Tusen takk for interessen!\"})}),className:\"framer-1dj7fok\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"q6OQozBSs\",style:{\"--extracted-a0htzi\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-CBfVZ.framer-13jt7kf, .framer-CBfVZ .framer-13jt7kf { display: block; }\",\".framer-CBfVZ.framer-1rdstj2 { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 40px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 568px; }\",\".framer-CBfVZ .framer-12yz6gq-container, .framer-CBfVZ .framer-l5zykn-container, .framer-CBfVZ .framer-kwx6ol-container, .framer-CBfVZ .framer-1yg678y-container { flex: none; height: auto; position: relative; width: 100%; }\",\".framer-CBfVZ .framer-fwp35f, .framer-CBfVZ .framer-1dj7fok { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-CBfVZ .framer-5p2m5g-container { flex: none; height: 56px; position: relative; width: auto; }\",\".framer-CBfVZ.framer-v-8gwd0e .framer-fwp35f { order: 1; }\",\".framer-CBfVZ.framer-v-8gwd0e .framer-1dj7fok { order: 0; }\",\".framer-CBfVZ.framer-v-d1vne3 .framer-5p2m5g-container { width: 100%; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 593\n * @framerIntrinsicWidth 568\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"CYpZ_gQBx\":{\"layout\":[\"fixed\",\"auto\"]},\"fAJnl8Yt_\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerhdYUftzHp=withCSS(Component,css,\"framer-CBfVZ\");export default FramerhdYUftzHp;FramerhdYUftzHp.displayName=\"ContactForm\";FramerhdYUftzHp.defaultProps={height:593,width:568};addPropertyControls(FramerhdYUftzHp,{variant:{options:[\"PF1BW0Ioi\",\"CYpZ_gQBx\",\"fAJnl8Yt_\"],optionTitles:[\"Variant 1\",\"Success\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerhdYUftzHp,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...InputFieldFonts,...InputFieldMessageFonts,...Button2Fonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerhdYUftzHp\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"593\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"568\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"CYpZ_gQBx\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"fAJnl8Yt_\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./hdYUftzHp.map","// Generated by Framer (d800442)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-BFLl6\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 665 234\" xmlns=\"http://www.w3.org/2000/svg\"><g d=\"M 0 131.625 L 58.462 131.625 L 58.462 87.75 C 58.462 71.596 71.549 58.5 87.692 58.5 L 314.231 58.5 L 314.231 0 L 96.776 0 C 90.959 -0.001 85.381 2.312 81.269 6.428 L 6.431 81.315 C 2.313 85.431 -0.001 91.016 0 96.839 Z M 350.769 0 L 409.231 0 L 409.231 146.25 C 409.231 162.404 422.318 175.5 438.462 175.5 L 665 175.5 L 665 234 L 447.545 234 C 441.729 234.001 436.15 231.688 432.038 227.572 L 357.2 152.685 C 353.082 148.569 350.769 142.984 350.769 137.161 Z M 0 234 L 58.462 234 L 58.462 190.125 C 58.462 173.971 71.549 160.875 87.692 160.875 L 314.231 160.875 L 314.231 102.375 L 96.776 102.375 C 90.959 102.374 85.381 104.687 81.269 108.803 L 6.431 183.69 C 2.313 187.806 -0.001 193.391 0 199.214 Z\" fill=\"transparent\" height=\"234.00000031519383px\" id=\"kqRhmbSyr\" transform=\"translate(0 0)\" width=\"664.9999957944143px\"><path d=\"M 0 131.625 L 58.462 131.625 L 58.462 87.75 C 58.462 71.596 71.549 58.5 87.692 58.5 L 314.231 58.5 L 314.231 0 L 96.776 0 C 90.959 -0.001 85.381 2.312 81.269 6.428 L 6.431 81.315 C 2.313 85.431 -0.001 91.016 0 96.839 Z M 350.769 0 L 409.231 0 L 409.231 146.25 C 409.231 162.404 422.318 175.5 438.462 175.5 L 665 175.5 L 665 234 L 447.545 234 C 441.729 234.001 436.15 231.688 432.038 227.572 L 357.2 152.685 C 353.082 148.569 350.769 142.984 350.769 137.161 Z\" fill=\"rgb(255, 255, 255)\" height=\"234.00000031519383px\" id=\"GdTCVU5Kz\" transform=\"translate(0 0)\" width=\"664.9999954631628px\"/><path d=\"M 0 131.625 L 58.462 131.625 L 58.462 87.75 C 58.462 71.596 71.549 58.5 87.692 58.5 L 314.231 58.5 L 314.231 0 L 96.776 0 C 90.959 -0.001 85.381 2.312 81.269 6.428 L 6.431 81.315 C 2.313 85.431 -0.001 91.016 0 96.839 Z\" fill=\"rgb(255, 255, 255)\" height=\"131.62500015759954px\" id=\"F_t6ZM_tv\" transform=\"translate(0 102.375)\" width=\"314.230769388944px\"/></g></svg>',style:{...style}});});const css=[`.framer-BFLl6 { -webkit-mask: ${mask}; aspect-ratio: 2.841880341880342; display: block; mask: ${mask}; user-select: none; width: 665px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 665\n * @framerIntrinsicHeight 234\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Vector\",\"color\":{\"type\":\"static\",\"value\":\"rgb(255, 255, 255)\"},\"set\":{\"localId\":\"vectorSet/Nhred624g\",\"id\":\"Nhred624g\",\"moduleId\":\"6O5tFvFKxdbcjMJ83nZU\"}}\n */const Icon=withCSS(Component,css,\"framer-BFLl6\");Icon.displayName=\"Vector\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"Vector\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"rgb(255, 255, 255)\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/Nhred624g\\\",\\\"id\\\":\\\"Nhred624g\\\",\\\"moduleId\\\":\\\"6O5tFvFKxdbcjMJ83nZU\\\"}}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"234\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"665\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFonts,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Vector from\"https://framerusercontent.com/modules/FDW670RnBQAVNoKNil5Y/re1yE3Gw6fSFSy3ZXAbC/xIl5YmF8C.js\";const VectorFonts=getFonts(Vector);const cycleOrder=[\"vCokF9kPs\",\"SuQziHXW5\",\"mzxyAjpZu\"];const serializationHash=\"framer-YsOl5\";const variantClassNames={mzxyAjpZu:\"framer-v-k1ypdw\",SuQziHXW5:\"framer-v-t56004\",vCokF9kPs:\"framer-v-1vstccz\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:100,delay:0,mass:1,stiffness:540,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Closed:\"vCokF9kPs\",Large:\"SuQziHXW5\",Mobile:\"mzxyAjpZu\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"vCokF9kPs\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"vCokF9kPs\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.nav,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1vstccz\",className,classNames),\"data-framer-name\":\"Closed\",layoutDependency:layoutDependency,layoutId:\"vCokF9kPs\",ref:refBinding,style:{...style},...addPropertyOverrides({mzxyAjpZu:{\"data-framer-name\":\"Mobile\"},SuQziHXW5:{\"data-framer-name\":\"Large\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.figure,{className:\"framer-1lrzz6a\",layoutDependency:layoutDependency,layoutId:\"BezMcHXnJ\",children:/*#__PURE__*/_jsx(Vector,{animated:true,className:\"framer-if4iys\",layoutDependency:layoutDependency,layoutId:\"v5p0sa7H3\"})}),/*#__PURE__*/_jsx(motion.figure,{className:\"framer-bizp9\",layoutDependency:layoutDependency,layoutId:\"lBfFL6ntl\",children:/*#__PURE__*/_jsxs(SVG,{className:\"framer-dbk2s9\",layoutDependency:layoutDependency,layoutId:\"oC_HKDRVS\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 164.73 42.797\" overflow=\"visible\"><g><path d=\"M 164.73 24.035 L 164.73 42.529 L 159.986 42.529 L 152.562 24.142 L 152.562 42.529 L 150.257 42.529 L 150.257 24.035 L 155.002 24.035 L 162.426 42.422 L 162.426 24.035 Z M 135.363 42.529 L 135.363 24.035 L 146.005 24.035 L 146.005 25.965 L 137.668 25.965 L 137.668 32.076 L 145.763 32.076 L 145.763 34.006 L 137.668 34.006 L 137.668 40.599 L 146.219 40.599 L 146.219 42.529 Z M 126.391 32.102 C 129.821 32.908 131.671 34.514 131.671 37.731 C 131.671 40.518 129.017 42.797 124.622 42.797 C 119.771 42.797 117.278 39.527 117.036 36.016 L 119.422 36.016 C 119.582 38.67 121.7 40.867 124.515 40.867 C 127.248 40.867 129.152 39.661 129.152 37.704 C 129.152 35.988 128.052 34.998 125.667 34.434 L 123.174 33.845 C 119.314 32.934 117.492 31.298 117.492 28.725 C 117.492 25.697 120.466 23.767 123.951 23.767 C 128.535 23.767 130.841 26.34 131.161 29.529 L 128.775 29.529 C 128.562 27.332 126.899 25.697 124.059 25.697 C 121.647 25.697 119.984 26.741 119.984 28.618 C 119.984 30.012 120.843 30.79 123.898 31.513 Z M 101.466 42.529 L 101.466 24.035 L 107.202 24.035 C 111.678 24.035 114.306 25.937 114.306 29.369 C 114.306 31.996 112.778 33.738 110.043 34.407 L 114.654 42.529 L 112 42.529 L 107.577 34.73 L 103.773 34.73 L 103.773 42.529 Z M 107.47 25.965 L 103.772 25.965 L 103.772 32.799 L 107.47 32.799 C 110.338 32.799 111.813 31.594 111.813 29.369 C 111.813 27.144 110.338 25.965 107.47 25.965 Z M 81.443 42.529 L 87.688 24.035 L 92.459 24.035 L 98.704 42.529 L 96.264 42.529 L 94.388 36.954 L 85.757 36.954 L 83.882 42.529 Z M 90.073 24.142 L 86.402 35.024 L 93.745 35.024 L 90.074 24.142 Z M 80.83 40.599 L 80.83 42.529 L 70.082 42.529 L 70.082 24.035 L 72.388 24.035 L 72.388 40.599 Z M 58.673 42.529 L 49.668 33.041 L 49.668 42.529 L 47.362 42.529 L 47.362 24.035 L 49.667 24.035 L 49.667 32.719 L 57.761 24.035 L 60.817 24.035 L 52.563 32.88 L 61.729 42.529 Z M 44.525 40.599 L 44.525 42.529 L 33.778 42.529 L 33.778 24.035 L 36.082 24.035 L 36.082 40.599 Z M 13.754 42.529 L 20 24.035 L 24.77 24.035 L 31.015 42.529 L 28.575 42.529 L 26.7 36.954 L 18.069 36.954 L 16.193 42.529 L 13.753 42.529 Z M 22.384 24.142 L 18.712 35.024 L 26.056 35.024 Z M 1.32 42.529 L 1.32 24.035 L 12.953 24.035 L 12.953 25.965 L 3.624 25.965 L 3.624 32.237 L 12.792 32.237 L 12.792 34.166 L 3.624 34.166 L 3.624 42.529 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 87.502 0.268 L 89.807 0.268 L 89.807 18.762 L 87.502 18.762 L 87.502 10.292 L 78.711 10.292 L 78.711 18.762 L 76.406 18.762 L 76.406 0.268 L 78.711 0.268 L 78.711 8.362 L 87.502 8.362 Z M 56.225 9.515 C 56.225 4.234 59.656 0 64.641 0 C 68.876 0 71.931 2.733 72.682 6.862 L 70.296 6.862 C 69.68 3.752 67.642 1.93 64.748 1.93 C 61.13 1.93 58.717 5.093 58.717 9.515 C 58.717 14.099 61.237 17.1 64.962 17.1 C 67.749 17.1 69.841 15.331 70.457 12.223 L 72.842 12.223 C 72.092 16.35 68.983 19.03 64.748 19.03 C 59.763 19.03 56.225 15.117 56.225 9.515 Z M 37.615 18.762 L 43.86 0.268 L 48.63 0.268 L 54.876 18.762 L 52.437 18.762 L 50.561 13.188 L 41.93 13.188 L 40.053 18.762 Z M 46.245 0.375 L 42.574 11.257 L 49.917 11.257 L 46.246 0.375 Z M 27.659 19.03 C 22.54 19.03 19.029 14.796 19.029 9.515 C 19.029 4.234 22.54 0 27.659 0 C 32.779 0 36.29 4.234 36.29 9.515 C 36.29 14.796 32.778 19.03 27.659 19.03 Z M 27.659 17.1 C 31.331 17.1 33.797 13.938 33.797 9.515 C 33.797 5.093 31.331 1.93 27.659 1.93 C 23.988 1.93 21.522 5.093 21.522 9.515 C 21.522 13.938 23.987 17.1 27.659 17.1 Z M 0 9.515 C 0 4.234 3.43 0 8.416 0 C 12.652 0 15.707 2.733 16.457 6.862 L 14.072 6.862 C 13.456 3.752 11.419 1.93 8.523 1.93 C 4.905 1.93 2.493 5.093 2.493 9.515 C 2.493 14.099 5.012 17.1 8.738 17.1 C 11.525 17.1 13.616 15.331 14.232 12.223 L 16.618 12.223 C 15.868 16.35 12.759 19.03 8.524 19.03 C 3.539 19.03 0 15.117 0 9.515 Z\" fill=\"rgb(122,122,122)\"></path></g></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 84.281 21.896\" overflow=\"visible\"><g><path d=\"M 84.281 12.297 L 84.281 21.759 L 81.853 21.759 L 78.055 12.352 L 78.055 21.759 L 76.875 21.759 L 76.875 12.297 L 79.303 12.297 L 83.102 21.704 L 83.102 12.297 Z M 69.255 21.759 L 69.255 12.297 L 74.7 12.297 L 74.7 13.284 L 70.435 13.284 L 70.435 16.411 L 74.577 16.411 L 74.577 17.398 L 70.435 17.398 L 70.435 20.771 L 74.81 20.771 L 74.81 21.759 Z M 64.665 16.424 C 66.42 16.836 67.367 17.659 67.367 19.304 C 67.367 20.73 66.009 21.896 63.76 21.896 C 61.278 21.896 60.003 20.223 59.879 18.427 L 61.1 18.427 C 61.181 19.784 62.265 20.909 63.705 20.909 C 65.104 20.909 66.078 20.292 66.078 19.291 C 66.078 18.412 65.515 17.906 64.295 17.617 L 63.02 17.316 C 61.044 16.85 60.112 16.013 60.112 14.696 C 60.112 13.147 61.634 12.16 63.417 12.16 C 65.762 12.16 66.942 13.476 67.106 15.108 L 65.885 15.108 C 65.776 13.984 64.925 13.147 63.472 13.147 C 62.238 13.147 61.387 13.682 61.387 14.642 C 61.387 15.355 61.827 15.753 63.39 16.123 Z M 51.913 21.759 L 51.913 12.297 L 54.848 12.297 C 57.138 12.297 58.482 13.27 58.482 15.026 C 58.482 16.37 57.7 17.261 56.301 17.604 L 58.66 21.759 L 57.302 21.759 L 55.039 17.769 L 53.093 17.769 L 53.093 21.759 Z M 54.985 13.284 L 53.092 13.284 L 53.092 16.781 L 54.985 16.781 C 56.452 16.781 57.207 16.164 57.207 15.026 C 57.207 13.888 56.452 13.284 54.985 13.284 Z M 41.668 21.759 L 44.864 12.297 L 47.304 12.297 L 50.5 21.759 L 49.251 21.759 L 48.291 18.907 L 43.875 18.907 L 42.916 21.759 Z M 46.084 12.352 L 44.206 17.919 L 47.962 17.919 L 46.084 12.352 Z M 41.355 20.771 L 41.355 21.759 L 35.856 21.759 L 35.856 12.297 L 37.036 12.297 L 37.036 20.771 Z M 30.019 21.759 L 25.412 16.905 L 25.412 21.759 L 24.232 21.759 L 24.232 12.297 L 25.411 12.297 L 25.411 16.74 L 29.552 12.297 L 31.116 12.297 L 26.892 16.822 L 31.582 21.759 Z M 22.78 20.771 L 22.78 21.759 L 17.282 21.759 L 17.282 12.297 L 18.46 12.297 L 18.46 20.771 Z M 7.037 21.759 L 10.232 12.297 L 12.673 12.297 L 15.868 21.759 L 14.62 21.759 L 13.661 18.907 L 9.245 18.907 L 8.285 21.759 L 7.036 21.759 Z M 11.452 12.352 L 9.574 17.919 L 13.331 17.919 Z M 0.676 21.759 L 0.676 12.297 L 6.627 12.297 L 6.627 13.284 L 1.854 13.284 L 1.854 16.493 L 6.545 16.493 L 6.545 17.48 L 1.854 17.48 L 1.854 21.759 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 44.769 0.137 L 45.948 0.137 L 45.948 9.599 L 44.769 9.599 L 44.769 5.266 L 40.271 5.266 L 40.271 9.599 L 39.091 9.599 L 39.091 0.137 L 40.271 0.137 L 40.271 4.278 L 44.769 4.278 Z M 28.766 4.868 C 28.766 2.166 30.521 0 33.072 0 C 35.239 0 36.802 1.398 37.186 3.511 L 35.966 3.511 C 35.65 1.92 34.608 0.988 33.127 0.988 C 31.276 0.988 30.041 2.606 30.041 4.868 C 30.041 7.213 31.331 8.749 33.236 8.749 C 34.662 8.749 35.733 7.844 36.048 6.253 L 37.268 6.253 C 36.884 8.365 35.293 9.737 33.127 9.737 C 30.576 9.737 28.766 7.734 28.766 4.868 Z M 19.245 9.599 L 22.44 0.137 L 24.881 0.137 L 28.076 9.599 L 26.828 9.599 L 25.868 6.747 L 21.452 6.747 L 20.492 9.599 Z M 23.66 0.192 L 21.782 5.76 L 25.539 5.76 L 23.661 0.192 Z M 14.151 9.737 C 11.532 9.737 9.736 7.57 9.736 4.868 C 9.736 2.166 11.532 0 14.151 0 C 16.771 0 18.567 2.166 18.567 4.868 C 18.567 7.57 16.77 9.737 14.151 9.737 Z M 14.151 8.749 C 16.03 8.749 17.292 7.131 17.292 4.868 C 17.292 2.606 16.03 0.988 14.151 0.988 C 12.273 0.988 11.011 2.606 11.011 4.868 C 11.011 7.131 12.272 8.749 14.151 8.749 Z M 0 4.868 C 0 2.166 1.755 0 4.306 0 C 6.473 0 8.036 1.398 8.42 3.511 L 7.2 3.511 C 6.884 1.92 5.842 0.988 4.361 0.988 C 2.51 0.988 1.275 2.606 1.275 4.868 C 1.275 7.213 2.564 8.749 4.471 8.749 C 5.897 8.749 6.966 7.844 7.282 6.253 L 8.502 6.253 C 8.119 8.365 6.528 9.737 4.361 9.737 C 1.81 9.737 0 7.734 0 4.868 Z\" fill=\"rgb(122,122,122)\"></path></g></svg>'}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(SVG,{className:\"framer-1pk71n4\",layoutDependency:layoutDependency,layoutId:\"oHzFftCsd\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 163.41 19.03\" overflow=\"visible\"><path d=\"M 163.41 0.268 L 163.41 18.762 L 158.666 18.762 L 151.242 0.375 L 151.242 18.762 L 148.936 18.762 L 148.936 0.268 L 153.682 0.268 L 161.106 18.655 L 161.106 0.268 Z M 134.042 18.762 L 134.042 0.268 L 144.685 0.268 L 144.685 2.198 L 136.348 2.198 L 136.348 8.309 L 144.443 8.309 L 144.443 10.239 L 136.348 10.239 L 136.348 16.832 L 144.899 16.832 L 144.899 18.762 Z M 125.071 8.335 C 128.501 9.141 130.351 10.748 130.351 13.964 C 130.351 16.752 127.697 19.03 123.301 19.03 C 118.45 19.03 115.957 15.76 115.716 12.249 L 118.102 12.249 C 118.261 14.903 120.379 17.1 123.194 17.1 C 125.927 17.1 127.831 15.895 127.831 13.938 C 127.831 12.221 126.732 11.231 124.347 10.667 L 121.854 10.078 C 117.993 9.167 116.171 7.531 116.171 4.958 C 116.171 1.93 119.146 0 122.631 0 C 127.215 0 129.52 2.573 129.841 5.762 L 127.455 5.762 C 127.241 3.565 125.579 1.93 122.739 1.93 C 120.326 1.93 118.664 2.975 118.664 4.851 C 118.664 6.245 119.522 7.023 122.578 7.747 Z M 100.146 18.762 L 100.146 0.268 L 105.882 0.268 C 110.358 0.268 112.985 2.171 112.985 5.602 C 112.985 8.23 111.458 9.971 108.723 10.641 L 113.334 18.762 L 110.68 18.762 L 106.257 10.963 L 102.453 10.963 L 102.453 18.762 Z M 106.15 2.198 L 102.451 2.198 L 102.451 9.033 L 106.15 9.033 C 109.018 9.033 110.492 7.827 110.492 5.602 C 110.492 3.378 109.018 2.198 106.15 2.198 Z M 80.123 18.762 L 86.368 0.268 L 91.138 0.268 L 97.384 18.762 L 94.944 18.762 L 93.067 13.188 L 84.436 13.188 L 82.561 18.762 Z M 88.753 0.375 L 85.082 11.257 L 92.424 11.257 L 88.754 0.375 Z M 79.51 16.832 L 79.51 18.762 L 68.762 18.762 L 68.762 0.268 L 71.067 0.268 L 71.067 16.832 Z M 57.353 18.762 L 48.348 9.274 L 48.348 18.762 L 46.041 18.762 L 46.041 0.268 L 48.347 0.268 L 48.347 8.952 L 56.44 0.268 L 59.497 0.268 L 51.242 9.113 L 60.408 18.762 Z M 43.205 16.832 L 43.205 18.762 L 32.457 18.762 L 32.457 0.268 L 34.761 0.268 L 34.761 16.832 Z M 12.434 18.762 L 18.679 0.268 L 23.45 0.268 L 29.695 18.762 L 27.255 18.762 L 25.38 13.188 L 16.749 13.188 L 14.873 18.762 L 12.433 18.762 Z M 21.064 0.375 L 17.392 11.257 L 24.736 11.257 Z M 0 18.762 L 0 0.268 L 11.632 0.268 L 11.632 2.198 L 2.304 2.198 L 2.304 8.47 L 11.471 8.47 L 11.471 10.399 L 2.304 10.399 L 2.304 18.762 Z\" fill=\"rgb(255,255,255)\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 83.605 9.737\" overflow=\"visible\"><path d=\"M 83.605 0.137 L 83.605 9.599 L 81.178 9.599 L 77.379 0.192 L 77.379 9.599 L 76.2 9.599 L 76.2 0.137 L 78.628 0.137 L 82.426 9.545 L 82.426 0.137 Z M 68.58 9.599 L 68.58 0.137 L 74.025 0.137 L 74.025 1.125 L 69.759 1.125 L 69.759 4.251 L 73.901 4.251 L 73.901 5.239 L 69.759 5.239 L 69.759 8.612 L 74.134 8.612 L 74.134 9.599 Z M 63.99 4.265 C 65.745 4.677 66.691 5.499 66.691 7.144 C 66.691 8.571 65.333 9.737 63.084 9.737 C 60.602 9.737 59.327 8.063 59.203 6.267 L 60.424 6.267 C 60.506 7.625 61.589 8.749 63.03 8.749 C 64.428 8.749 65.402 8.132 65.402 7.131 C 65.402 6.253 64.839 5.746 63.619 5.458 L 62.344 5.156 C 60.369 4.69 59.436 3.853 59.436 2.537 C 59.436 0.988 60.958 0 62.741 0 C 65.087 0 66.266 1.317 66.43 2.948 L 65.21 2.948 C 65.1 1.824 64.25 0.988 62.797 0.988 C 61.562 0.988 60.712 1.522 60.712 2.482 C 60.712 3.195 61.151 3.593 62.714 3.963 Z M 51.237 9.599 L 51.237 0.137 L 54.172 0.137 C 56.462 0.137 57.806 1.111 57.806 2.866 C 57.806 4.211 57.025 5.102 55.626 5.444 L 57.985 9.599 L 56.627 9.599 L 54.364 5.609 L 52.418 5.609 L 52.418 9.599 Z M 54.309 1.125 L 52.417 1.125 L 52.417 4.621 L 54.309 4.621 C 55.776 4.621 56.531 4.005 56.531 2.866 C 56.531 1.728 55.776 1.125 54.309 1.125 Z M 40.993 9.599 L 44.188 0.137 L 46.629 0.137 L 49.824 9.599 L 48.576 9.599 L 47.616 6.747 L 43.2 6.747 L 42.241 9.599 Z M 45.408 0.192 L 43.53 5.76 L 47.287 5.76 L 45.409 0.192 Z M 40.679 8.612 L 40.679 9.599 L 35.181 9.599 L 35.181 0.137 L 36.36 0.137 L 36.36 8.612 Z M 29.343 9.599 L 24.736 4.745 L 24.736 9.599 L 23.556 9.599 L 23.556 0.137 L 24.735 0.137 L 24.735 4.58 L 28.877 0.137 L 30.44 0.137 L 26.217 4.663 L 30.907 9.599 Z M 22.105 8.612 L 22.105 9.599 L 16.606 9.599 L 16.606 0.137 L 17.785 0.137 L 17.785 8.612 Z M 6.362 9.599 L 9.557 0.137 L 11.998 0.137 L 15.193 9.599 L 13.944 9.599 L 12.985 6.747 L 8.569 6.747 L 7.609 9.599 L 6.361 9.599 Z M 10.777 0.192 L 8.898 5.76 L 12.656 5.76 Z M 0 9.599 L 0 0.137 L 5.951 0.137 L 5.951 1.125 L 1.179 1.125 L 1.179 4.334 L 5.869 4.334 L 5.869 5.321 L 1.179 5.321 L 1.179 9.599 Z\" fill=\"rgb(255,255,255)\"></path></svg>'}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-pfhm3s\",layoutDependency:layoutDependency,layoutId:\"Yy4imlDKG\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 14.474 18.494\" overflow=\"visible\"><path d=\"M 14.474 0 L 14.474 18.494 L 9.73 18.494 L 2.305 0.107 L 2.305 18.494 L 0 18.494 L 0 0 L 4.745 0 L 12.17 18.387 L 12.17 0 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 7.405 9.462\" overflow=\"visible\"><path d=\"M 7.405 0 L 7.405 9.462 L 4.978 9.462 L 1.179 0.055 L 1.179 9.462 L 0 9.462 L 0 0 L 2.428 0 L 6.226 9.408 L 6.226 0 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1y8v8uv\",layoutDependency:layoutDependency,layoutId:\"bFW5YHlIT\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10.856 18.494\" overflow=\"visible\"><path d=\"M 0 18.494 L 0 0 L 10.642 0 L 10.642 1.93 L 2.305 1.93 L 2.305 8.041 L 10.401 8.041 L 10.401 9.971 L 2.305 9.971 L 2.305 16.564 L 10.856 16.564 L 10.856 18.494 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 5.554 9.462\" overflow=\"visible\"><path d=\"M 0 9.462 L 0 0 L 5.445 0 L 5.445 0.988 L 1.179 0.988 L 1.179 4.114 L 5.321 4.114 L 5.321 5.102 L 1.179 5.102 L 1.179 8.475 L 5.554 8.475 L 5.554 9.462 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1d4ja6p\",layoutDependency:layoutDependency,layoutId:\"mMNVy32As\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 14.635 19.03\" overflow=\"visible\"><path d=\"M 9.355 8.335 C 12.785 9.141 14.635 10.748 14.635 13.964 C 14.635 16.752 11.981 19.03 7.586 19.03 C 2.734 19.03 0.242 15.76 0 12.249 L 2.386 12.249 C 2.546 14.903 4.664 17.1 7.479 17.1 C 10.212 17.1 12.116 15.895 12.116 13.938 C 12.116 12.221 11.016 11.231 8.631 10.667 L 6.138 10.078 C 2.278 9.167 0.456 7.531 0.456 4.958 C 0.456 1.93 3.43 0 6.915 0 C 11.499 0 13.804 2.573 14.125 5.762 L 11.739 5.762 C 11.525 3.565 9.863 1.93 7.023 1.93 C 4.611 1.93 2.948 2.975 2.948 4.851 C 2.948 6.245 3.807 7.023 6.862 7.747 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 7.488 9.737\" overflow=\"visible\"><path d=\"M 4.786 4.265 C 6.541 4.677 7.488 5.499 7.488 7.144 C 7.488 8.571 6.13 9.737 3.881 9.737 C 1.399 9.737 0.124 8.063 0 6.267 L 1.221 6.267 C 1.302 7.625 2.386 8.749 3.826 8.749 C 5.225 8.749 6.199 8.132 6.199 7.131 C 6.199 6.253 5.636 5.746 4.416 5.458 L 3.141 5.156 C 1.165 4.69 0.233 3.853 0.233 2.537 C 0.233 0.988 1.755 0 3.538 0 C 5.883 0 7.063 1.317 7.227 2.948 L 6.006 2.948 C 5.897 1.824 5.046 0.988 3.593 0.988 C 2.359 0.988 1.508 1.522 1.508 2.482 C 1.508 3.195 1.948 3.593 3.511 3.963 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-16ff5x\",layoutDependency:layoutDependency,layoutId:\"xQCjGo3Fe\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 13.188 18.494\" overflow=\"visible\"><path d=\"M 0 18.494 L 0 0 L 5.736 0 C 10.212 0 12.839 1.903 12.839 5.334 C 12.839 7.962 11.312 9.703 8.577 10.373 L 13.188 18.494 L 10.534 18.494 L 6.111 10.695 L 2.307 10.695 L 2.307 18.494 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 6.747 9.462\" overflow=\"visible\"><path d=\"M 0 9.462 L 0 0 L 2.935 0 C 5.225 0 6.569 0.973 6.569 2.729 C 6.569 4.073 5.787 4.965 4.388 5.307 L 6.747 9.462 L 5.389 9.462 L 3.126 5.472 L 1.18 5.472 L 1.18 9.462 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-mab4np\",layoutDependency:layoutDependency,layoutId:\"JR7Hu_le7\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.041 6.834\" overflow=\"visible\"><path d=\"M 3.698 0 L 0 0 L 0 6.834 L 3.698 6.834 C 6.566 6.834 8.041 5.629 8.041 3.404 C 8.041 1.179 6.566 0 3.698 0 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 4.114 3.497\" overflow=\"visible\"><path d=\"M 1.892 0 L 0 0 L 0 3.497 L 1.892 3.497 C 3.359 3.497 4.114 2.88 4.114 1.742 C 4.114 0.603 3.359 0 1.892 0 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-ymsoon\",layoutDependency:layoutDependency,layoutId:\"HFuzBStHj\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 17.261 18.494\" overflow=\"visible\"><path d=\"M 0 18.494 L 6.245 0 L 11.016 0 L 17.261 18.494 L 14.821 18.494 L 12.945 12.92 L 4.314 12.92 L 2.439 18.494 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.831 9.462\" overflow=\"visible\"><path d=\"M 0 9.462 L 3.195 0 L 5.636 0 L 8.831 9.462 L 7.583 9.462 L 6.623 6.61 L 2.207 6.61 L 1.248 9.462 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-2u69el\",layoutDependency:layoutDependency,layoutId:\"tQlka25cC\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 7.343 10.882\" overflow=\"visible\"><path d=\"M 3.671 0 L 0 10.882 L 7.343 10.882 L 3.672 0 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 3.757 5.568\" overflow=\"visible\"><path d=\"M 1.878 0 L 0 5.568 L 3.757 5.568 L 1.879 0 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-p63tqz\",layoutDependency:layoutDependency,layoutId:\"ndB02AXbU\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10.748 18.494\" overflow=\"visible\"><path d=\"M 10.748 16.564 L 10.748 18.494 L 0 18.494 L 0 0 L 2.305 0 L 2.305 16.564 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 5.499 9.462\" overflow=\"visible\"><path d=\"M 5.499 8.475 L 5.499 9.462 L 0 9.462 L 0 0 L 1.179 0 L 1.179 8.475 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1j32qqj\",layoutDependency:layoutDependency,layoutId:\"rVhlxxskK\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 14.367 18.494\" overflow=\"visible\"><path d=\"M 11.312 18.494 L 2.307 9.006 L 2.307 18.494 L 0 18.494 L 0 0 L 2.305 0 L 2.305 8.684 L 10.399 0 L 13.456 0 L 5.201 8.845 L 14.367 18.494 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 7.351 9.462\" overflow=\"visible\"><path d=\"M 5.787 9.462 L 1.18 4.608 L 1.18 9.462 L 0 9.462 L 0 0 L 1.179 0 L 1.179 4.443 L 5.321 0 L 6.884 0 L 2.661 4.525 L 7.351 9.462 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-12xzkha\",layoutDependency:layoutDependency,layoutId:\"PcNU60nDC\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10.748 18.494\" overflow=\"visible\"><path d=\"M 10.748 16.564 L 10.748 18.494 L 0 18.494 L 0 0 L 2.304 0 L 2.304 16.564 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 5.499 9.462\" overflow=\"visible\"><path d=\"M 5.499 8.475 L 5.499 9.462 L 0 9.462 L 0 0 L 1.179 0 L 1.179 8.475 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1gwfpnw\",layoutDependency:layoutDependency,layoutId:\"pAo3YspOF\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 17.262 18.494\" overflow=\"visible\"><path d=\"M 0.001 18.494 L 6.247 0 L 11.017 0 L 17.262 18.494 L 14.822 18.494 L 12.948 12.92 L 4.316 12.92 L 2.44 18.494 L 0 18.494 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.832 9.462\" overflow=\"visible\"><path d=\"M 0.001 9.462 L 3.196 0 L 5.637 0 L 8.832 9.462 L 7.584 9.462 L 6.624 6.61 L 2.208 6.61 L 1.248 9.462 L 0 9.462 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-3yddxe\",layoutDependency:layoutDependency,layoutId:\"CamU8Ya5x\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 7.344 10.882\" overflow=\"visible\"><path d=\"M 3.672 0 L 0 10.882 L 7.344 10.882 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 3.757 5.568\" overflow=\"visible\"><path d=\"M 1.879 0 L 0 5.568 L 3.757 5.568 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1sh0103\",layoutDependency:layoutDependency,layoutId:\"sTuf2Tec7\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 11.632 18.494\" overflow=\"visible\"><path d=\"M 0 18.494 L 0 0 L 11.632 0 L 11.632 1.93 L 2.304 1.93 L 2.304 8.202 L 11.471 8.202 L 11.471 10.131 L 2.304 10.131 L 2.304 18.494 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 5.951 9.462\" overflow=\"visible\"><path d=\"M 0 9.462 L 0 0 L 5.951 0 L 5.951 0.988 L 1.179 0.988 L 1.179 4.196 L 5.869 4.196 L 5.869 5.183 L 1.179 5.183 L 1.179 9.462 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)})]}),/*#__PURE__*/_jsxs(SVG,{className:\"framer-9lxpc3\",layoutDependency:layoutDependency,layoutId:\"yzrRXvIBC\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 89.807 19.03\" overflow=\"visible\"><path d=\"M 87.502 0.268 L 89.807 0.268 L 89.807 18.762 L 87.502 18.762 L 87.502 10.292 L 78.711 10.292 L 78.711 18.762 L 76.406 18.762 L 76.406 0.268 L 78.711 0.268 L 78.711 8.362 L 87.502 8.362 Z M 56.225 9.515 C 56.225 4.234 59.656 0 64.641 0 C 68.876 0 71.931 2.733 72.682 6.862 L 70.296 6.862 C 69.68 3.752 67.642 1.93 64.748 1.93 C 61.13 1.93 58.717 5.093 58.717 9.515 C 58.717 14.099 61.237 17.1 64.962 17.1 C 67.749 17.1 69.841 15.331 70.457 12.223 L 72.842 12.223 C 72.092 16.35 68.983 19.03 64.748 19.03 C 59.763 19.03 56.225 15.117 56.225 9.515 Z M 37.615 18.762 L 43.86 0.268 L 48.63 0.268 L 54.876 18.762 L 52.437 18.762 L 50.561 13.188 L 41.93 13.188 L 40.053 18.762 Z M 46.245 0.375 L 42.574 11.257 L 49.917 11.257 L 46.246 0.375 Z M 27.659 19.03 C 22.54 19.03 19.029 14.796 19.029 9.515 C 19.029 4.234 22.54 0 27.659 0 C 32.779 0 36.29 4.234 36.29 9.515 C 36.29 14.796 32.778 19.03 27.659 19.03 Z M 27.659 17.1 C 31.331 17.1 33.797 13.938 33.797 9.515 C 33.797 5.093 31.331 1.93 27.659 1.93 C 23.988 1.93 21.522 5.093 21.522 9.515 C 21.522 13.938 23.987 17.1 27.659 17.1 Z M 0 9.515 C 0 4.234 3.43 0 8.416 0 C 12.652 0 15.707 2.733 16.457 6.862 L 14.072 6.862 C 13.456 3.752 11.419 1.93 8.523 1.93 C 4.905 1.93 2.493 5.093 2.493 9.515 C 2.493 14.099 5.012 17.1 8.738 17.1 C 11.525 17.1 13.616 15.331 14.232 12.223 L 16.618 12.223 C 15.868 16.35 12.759 19.03 8.524 19.03 C 3.539 19.03 0 15.117 0 9.515 Z\" fill=\"rgb(122,122,122)\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 45.948 9.737\" overflow=\"visible\"><path d=\"M 44.769 0.137 L 45.948 0.137 L 45.948 9.599 L 44.769 9.599 L 44.769 5.266 L 40.271 5.266 L 40.271 9.599 L 39.091 9.599 L 39.091 0.137 L 40.271 0.137 L 40.271 4.278 L 44.769 4.278 Z M 28.766 4.868 C 28.766 2.166 30.521 0 33.072 0 C 35.239 0 36.802 1.398 37.186 3.511 L 35.966 3.511 C 35.65 1.92 34.608 0.988 33.127 0.988 C 31.276 0.988 30.041 2.606 30.041 4.868 C 30.041 7.213 31.331 8.749 33.236 8.749 C 34.662 8.749 35.733 7.844 36.048 6.253 L 37.268 6.253 C 36.884 8.365 35.293 9.737 33.127 9.737 C 30.576 9.737 28.766 7.734 28.766 4.868 Z M 19.245 9.599 L 22.44 0.137 L 24.881 0.137 L 28.076 9.599 L 26.828 9.599 L 25.868 6.747 L 21.452 6.747 L 20.492 9.599 Z M 23.66 0.192 L 21.782 5.76 L 25.539 5.76 L 23.661 0.192 Z M 14.151 9.737 C 11.532 9.737 9.736 7.57 9.736 4.868 C 9.736 2.166 11.532 0 14.151 0 C 16.771 0 18.567 2.166 18.567 4.868 C 18.567 7.57 16.77 9.737 14.151 9.737 Z M 14.151 8.749 C 16.03 8.749 17.292 7.131 17.292 4.868 C 17.292 2.606 16.03 0.988 14.151 0.988 C 12.273 0.988 11.011 2.606 11.011 4.868 C 11.011 7.131 12.272 8.749 14.151 8.749 Z M 0 4.868 C 0 2.166 1.755 0 4.306 0 C 6.473 0 8.036 1.398 8.42 3.511 L 7.2 3.511 C 6.884 1.92 5.842 0.988 4.361 0.988 C 2.51 0.988 1.275 2.606 1.275 4.868 C 1.275 7.213 2.564 8.749 4.471 8.749 C 5.897 8.749 6.966 7.844 7.282 6.253 L 8.502 6.253 C 8.119 8.365 6.528 9.737 4.361 9.737 C 1.81 9.737 0 7.734 0 4.868 Z\" fill=\"rgb(122,122,122)\"></path></svg>'}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-sdhbge\",layoutDependency:layoutDependency,layoutId:\"wADQhyFKX\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 13.402 18.494\" overflow=\"visible\"><path d=\"M 11.096 0 L 13.402 0 L 13.402 18.494 L 11.096 18.494 L 11.096 10.024 L 2.305 10.024 L 2.305 18.494 L 0 18.494 L 0 0 L 2.305 0 L 2.305 8.094 L 11.096 8.094 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 6.857 9.462\" overflow=\"visible\"><path d=\"M 5.677 0 L 6.857 0 L 6.857 9.462 L 5.677 9.462 L 5.677 5.129 L 1.179 5.129 L 1.179 9.462 L 0 9.462 L 0 0 L 1.179 0 L 1.179 4.141 L 5.677 4.141 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-10stons\",layoutDependency:layoutDependency,layoutId:\"o9gZKuJOG\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 16.617 19.03\" overflow=\"visible\"><path d=\"M 0 9.515 C 0 4.234 3.43 0 8.416 0 C 12.65 0 15.706 2.733 16.457 6.862 L 14.071 6.862 C 13.455 3.752 11.417 1.93 8.523 1.93 C 4.905 1.93 2.492 5.093 2.492 9.515 C 2.492 14.099 5.012 17.1 8.737 17.1 C 11.524 17.1 13.616 15.331 14.232 12.223 L 16.617 12.223 C 15.867 16.35 12.757 19.03 8.523 19.03 C 3.537 19.03 0 15.117 0 9.515 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.502 9.737\" overflow=\"visible\"><path d=\"M 0 4.868 C 0 2.166 1.755 0 4.306 0 C 6.472 0 8.036 1.398 8.42 3.511 L 7.199 3.511 C 6.884 1.92 5.841 0.988 4.361 0.988 C 2.51 0.988 1.275 2.606 1.275 4.868 C 1.275 7.213 2.564 8.749 4.47 8.749 C 5.896 8.749 6.966 7.844 7.282 6.253 L 8.502 6.253 C 8.118 8.365 6.527 9.737 4.361 9.737 C 1.81 9.737 0 7.734 0 4.868 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-rve56c\",layoutDependency:layoutDependency,layoutId:\"EqaGhbsnl\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 17.261 18.494\" overflow=\"visible\"><path d=\"M 0 18.494 L 6.245 0 L 11.016 0 L 17.261 18.494 L 14.822 18.494 L 12.946 12.92 L 4.315 12.92 L 2.439 18.494 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.831 9.462\" overflow=\"visible\"><path d=\"M 0 9.462 L 3.195 0 L 5.636 0 L 8.831 9.462 L 7.584 9.462 L 6.624 6.61 L 2.208 6.61 L 1.248 9.462 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-kueedv\",layoutDependency:layoutDependency,layoutId:\"P8fOvTUYT\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 7.343 10.882\" overflow=\"visible\"><path d=\"M 3.671 0 L 0 10.882 L 7.343 10.882 L 3.672 0 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 3.757 5.568\" overflow=\"visible\"><path d=\"M 1.878 0 L 0 5.568 L 3.757 5.568 L 1.879 0 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-gwqiwo\",layoutDependency:layoutDependency,layoutId:\"gBnN6qHUd\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 17.261 19.03\" overflow=\"visible\"><path d=\"M 8.63 19.03 C 3.511 19.03 0 14.796 0 9.515 C 0 4.234 3.511 0 8.63 0 C 13.75 0 17.261 4.234 17.261 9.515 C 17.261 14.796 13.749 19.03 8.63 19.03 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.831 9.737\" overflow=\"visible\"><path d=\"M 4.415 9.737 C 1.796 9.737 0 7.57 0 4.868 C 0 2.166 1.796 0 4.415 0 C 7.035 0 8.831 2.166 8.831 4.868 C 8.831 7.57 7.034 9.737 4.415 9.737 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-j1bolz\",layoutDependency:layoutDependency,layoutId:\"g7G28J21S\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 12.275 15.17\" overflow=\"visible\"><path d=\"M 6.137 15.17 C 9.809 15.17 12.275 12.007 12.275 7.584 C 12.275 3.162 9.809 0 6.137 0 C 2.466 0 0 3.162 0 7.584 C 0 12.007 2.465 15.17 6.137 15.17 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 6.28 7.761\" overflow=\"visible\"><path d=\"M 3.14 7.761 C 5.019 7.761 6.28 6.143 6.28 3.88 C 6.28 1.618 5.019 0 3.14 0 C 1.262 0 0 1.618 0 3.88 C 0 6.143 1.261 7.761 3.14 7.761 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1h5t9er\",layoutDependency:layoutDependency,layoutId:\"M1DHFzW5o\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 16.618 19.03\" overflow=\"visible\"><path d=\"M 0 9.515 C 0 4.234 3.43 0 8.416 0 C 12.652 0 15.707 2.733 16.457 6.862 L 14.072 6.862 C 13.456 3.752 11.419 1.93 8.523 1.93 C 4.905 1.93 2.493 5.093 2.493 9.515 C 2.493 14.099 5.012 17.1 8.738 17.1 C 11.525 17.1 13.616 15.331 14.232 12.223 L 16.618 12.223 C 15.868 16.35 12.759 19.03 8.524 19.03 C 3.539 19.03 0 15.117 0 9.515 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true,...addPropertyOverrides({mzxyAjpZu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 8.502 9.737\" overflow=\"visible\"><path d=\"M 0 4.868 C 0 2.166 1.755 0 4.306 0 C 6.473 0 8.036 1.398 8.42 3.511 L 7.2 3.511 C 6.884 1.92 5.842 0.988 4.361 0.988 C 2.51 0.988 1.275 2.606 1.275 4.868 C 1.275 7.213 2.564 8.749 4.471 8.749 C 5.897 8.749 6.966 7.844 7.282 6.253 L 8.502 6.253 C 8.119 8.365 6.528 9.737 4.361 9.737 C 1.81 9.737 0 7.734 0 4.868 Z\" fill=\"transparent\"></path></svg>'}},baseVariant,gestureVariant)})]})]})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-YsOl5.framer-1a5718z, .framer-YsOl5 .framer-1a5718z { display: block; }\",\".framer-YsOl5.framer-1vstccz { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1200px; }\",\".framer-YsOl5 .framer-1lrzz6a { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1px; }\",\".framer-YsOl5 .framer-if4iys { flex: none; height: var(--framer-aspect-ratio-supported, 50px); position: relative; width: 142px; z-index: 1; }\",\".framer-YsOl5 .framer-bizp9 { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 44px; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1px; }\",\".framer-YsOl5 .framer-dbk2s9 { height: 43px; position: relative; width: 165px; }\",\".framer-YsOl5 .framer-1pk71n4 { height: 19px; left: 2px; position: absolute; top: 24px; width: 164px; }\",\".framer-YsOl5 .framer-pfhm3s { height: 19px; left: 149px; position: absolute; top: 1px; width: 15px; }\",\".framer-YsOl5 .framer-1y8v8uv { height: 19px; left: 134px; position: absolute; top: 1px; width: 11px; }\",\".framer-YsOl5 .framer-1d4ja6p { height: 19px; left: 116px; position: absolute; top: 0px; width: 15px; }\",\".framer-YsOl5 .framer-16ff5x { height: 19px; left: 100px; position: absolute; top: 1px; width: 13px; }\",\".framer-YsOl5 .framer-mab4np { height: 7px; left: 103px; position: absolute; top: 2px; width: 8px; }\",\".framer-YsOl5 .framer-ymsoon { height: 19px; left: 80px; position: absolute; top: 1px; width: 18px; }\",\".framer-YsOl5 .framer-2u69el { height: 11px; left: 85px; position: absolute; top: 1px; width: 8px; }\",\".framer-YsOl5 .framer-p63tqz { height: 19px; left: 69px; position: absolute; top: 1px; width: 11px; }\",\".framer-YsOl5 .framer-1j32qqj { height: 19px; left: 46px; position: absolute; top: 1px; width: 15px; }\",\".framer-YsOl5 .framer-12xzkha { height: 19px; left: 33px; position: absolute; top: 1px; width: 11px; }\",\".framer-YsOl5 .framer-1gwfpnw { height: 19px; left: 13px; position: absolute; top: 1px; width: 18px; }\",\".framer-YsOl5 .framer-3yddxe { height: 11px; left: 18px; position: absolute; top: 1px; width: 8px; }\",\".framer-YsOl5 .framer-1sh0103 { height: 19px; left: 0px; position: absolute; top: 1px; width: 12px; }\",\".framer-YsOl5 .framer-9lxpc3 { height: 19px; left: 0px; position: absolute; top: 0px; width: 90px; }\",\".framer-YsOl5 .framer-sdhbge { height: 19px; left: 77px; position: absolute; top: 1px; width: 14px; }\",\".framer-YsOl5 .framer-10stons { height: 19px; left: 56px; position: absolute; top: 0px; width: 17px; }\",\".framer-YsOl5 .framer-rve56c { height: 19px; left: 38px; position: absolute; top: 1px; width: 18px; }\",\".framer-YsOl5 .framer-kueedv { height: 11px; left: 43px; position: absolute; top: 1px; width: 8px; }\",\".framer-YsOl5 .framer-gwqiwo { height: 19px; left: 19px; position: absolute; top: 0px; width: 18px; }\",\".framer-YsOl5 .framer-j1bolz { height: 15px; left: 22px; position: absolute; top: 2px; width: 13px; }\",\".framer-YsOl5 .framer-1h5t9er { height: 19px; left: 0px; position: absolute; top: 0px; width: 17px; }\",\".framer-YsOl5.framer-v-t56004 .framer-if4iys { flex: 1 0 0px; height: var(--framer-aspect-ratio-supported, 209px); width: 1px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-if4iys { height: var(--framer-aspect-ratio-supported, 22px); width: 62px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-bizp9 { height: min-content; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-dbk2s9 { height: 22px; width: 85px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-1pk71n4 { height: 10px; left: 1px; top: 12px; width: 84px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-pfhm3s { height: 10px; left: 76px; top: 0px; width: 8px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-1y8v8uv { height: 10px; left: 69px; top: 0px; width: 6px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-1d4ja6p { height: 10px; left: 59px; width: 8px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-16ff5x { height: 10px; left: 51px; top: 0px; width: 7px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-mab4np { height: 4px; left: 53px; top: 1px; width: 4px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-ymsoon { height: 10px; left: 41px; top: 0px; width: 9px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-2u69el { height: 6px; left: 44px; top: 0px; width: 4px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-p63tqz { height: 10px; left: 35px; top: 0px; width: 6px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-1j32qqj { height: 10px; left: 24px; top: 0px; width: 8px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-12xzkha { height: 10px; left: 17px; top: 0px; width: 6px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-1gwfpnw { height: 10px; left: 7px; top: 0px; width: 9px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-3yddxe { height: 6px; left: 9px; top: 0px; width: 4px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-1sh0103 { height: 10px; top: 0px; width: 6px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-9lxpc3 { height: 10px; width: 46px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-sdhbge { height: 10px; left: 39px; top: 0px; width: 7px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-10stons { height: 10px; left: 29px; width: 9px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-rve56c { height: 10px; left: 19px; top: 0px; width: 9px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-kueedv { height: 6px; left: 22px; top: 0px; width: 4px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-gwqiwo { height: 10px; left: 10px; width: 9px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-j1bolz { height: 8px; left: 11px; top: 1px; width: 7px; }\",\".framer-YsOl5.framer-v-k1ypdw .framer-1h5t9er { height: 10px; width: 9px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 50\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"SuQziHXW5\":{\"layout\":[\"fixed\",\"auto\"]},\"mzxyAjpZu\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerinDjm55_B=withCSS(Component,css,\"framer-YsOl5\");export default FramerinDjm55_B;FramerinDjm55_B.displayName=\"NavBar\";FramerinDjm55_B.defaultProps={height:50,width:1200};addPropertyControls(FramerinDjm55_B,{variant:{options:[\"vCokF9kPs\",\"SuQziHXW5\",\"mzxyAjpZu\"],optionTitles:[\"Closed\",\"Large\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerinDjm55_B,[{explicitInter:true,fonts:[]},...VectorFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerinDjm55_B\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"SuQziHXW5\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"mzxyAjpZu\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"50\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"1200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./inDjm55_B.map","// Generated by Framer (e0ec254)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-ChsXY .framer-styles-preset-17qih6t:not(.rich-text-wrapper), .framer-ChsXY .framer-styles-preset-17qih6t.rich-text-wrapper a { --framer-link-hover-text-background-color: var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, #ffffff); --framer-link-hover-text-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); --framer-link-text-background-color: var(--token-7e789b53-bbba-4f7a-96ef-8161022a5a89, #2a2a2a); --framer-link-text-background-padding: 4px 8px 4px 8px; --framer-link-text-background-radius: 48px; --framer-link-text-color: var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, #adadad); }\"];export const className=\"framer-ChsXY\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/U5UtW5urp9J5v6ENPQtq/kkGFEGyInBO0KtyNmhNI/FFSoAwgVo.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/TxW2Ajo3onQdSNQlW7hv/wKGv9eB6O1dnXsDCYBen/T9UzstXVN.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/Sck014nMHYdZJwyve77Q/plsXsv0x37BIgPjf2j0p/ZyG89nXsG.js\";const cycleOrder=[\"yClDKpx6v\",\"McB9i7L1I\"];const serializationHash=\"framer-DBzy1\";const variantClassNames={McB9i7L1I:\"framer-v-7d1jc\",yClDKpx6v:\"framer-v-4gcke1\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 1\":\"yClDKpx6v\",Mobile:\"McB9i7L1I\"};const getProps=({height,id,link,navnSted,sitat,soMekonto,soMeKontoP_,width,...props})=>{return{...props,E9mXP2ckk:soMekonto??props.E9mXP2ckk??\"@navn\",JrRfKl0qu:navnSted??props.JrRfKl0qu??\"Ingrid, Oslo\",OM2D8cQkb:sitat??props.OM2D8cQkb??\"Etter 12 uker med Coach Falk Larsen gikk jeg fra \\xe5 miste motivasjonen til \\xe5 elske treningen igjen.\",U4kVdvLeu:link??props.U4kVdvLeu,UUot9lpUV:soMeKontoP_??props.UUot9lpUV??true,variant:humanReadableVariantMap[props.variant]??props.variant??\"yClDKpx6v\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,OM2D8cQkb,JrRfKl0qu,UUot9lpUV,E9mXP2ckk,U4kVdvLeu,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"yClDKpx6v\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-4gcke1\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"yClDKpx6v\",ref:refBinding,style:{backgroundColor:\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\",...style},...addPropertyOverrides({McB9i7L1I:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1t8dib0\",layoutDependency:layoutDependency,layoutId:\"N0Xqqqv0m\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-fmzcqb\",\"data-styles-preset\":\"ZyG89nXsG\",style:{\"--framer-text-color\":\"var(--extracted-356vmc, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"Etter 12 uker med Coach Falk Larsen gikk jeg fra \\xe5 miste motivasjonen til \\xe5 elske treningen igjen.\"})})}),className:\"framer-1ljsiph\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ePWvbuXkM\",style:{\"--extracted-356vmc\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},text:OM2D8cQkb,verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1sz9a62\",layoutDependency:layoutDependency,layoutId:\"xIkViOysk\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"Ingrid, Oslo\"})})}),className:\"framer-ow0pqu\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"YnWrxGLHC\",style:{\"--extracted-zrz4ul\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},text:JrRfKl0qu,verticalAlignment:\"top\",withExternalLayout:true}),UUot9lpUV&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:/*#__PURE__*/_jsx(Link,{href:U4kVdvLeu,motionChild:true,nodeId:\"oDJiPiGTg\",openInNewTab:true,relValues:[],scopeId:\"OALUZz2dH\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-17qih6t\",\"data-styles-preset\":\"T9UzstXVN\",children:\"@navn\"})})})})}),className:\"framer-1r1xjwk\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"oDJiPiGTg\",style:{\"--extracted-zrz4ul\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},text:E9mXP2ckk,verticalAlignment:\"top\",withExternalLayout:true})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-DBzy1.framer-1z1237y, .framer-DBzy1 .framer-1z1237y { display: block; }\",\".framer-DBzy1.framer-4gcke1 { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; height: 400px; justify-content: space-between; overflow: visible; padding: 24px; position: relative; width: 399px; }\",\".framer-DBzy1 .framer-1t8dib0 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-DBzy1 .framer-1ljsiph { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-DBzy1 .framer-1sz9a62 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 6px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-DBzy1 .framer-ow0pqu { flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-DBzy1 .framer-1r1xjwk { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 400\n * @framerIntrinsicWidth 399\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"McB9i7L1I\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"OM2D8cQkb\":\"sitat\",\"JrRfKl0qu\":\"navnSted\",\"UUot9lpUV\":\"soMeKontoP_\",\"E9mXP2ckk\":\"soMekonto\",\"U4kVdvLeu\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerOALUZz2dH=withCSS(Component,css,\"framer-DBzy1\");export default FramerOALUZz2dH;FramerOALUZz2dH.displayName=\"TestimonialCard\";FramerOALUZz2dH.defaultProps={height:400,width:399};addPropertyControls(FramerOALUZz2dH,{variant:{options:[\"yClDKpx6v\",\"McB9i7L1I\"],optionTitles:[\"Variant 1\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum},OM2D8cQkb:{defaultValue:\"Etter 12 uker med Coach Falk Larsen gikk jeg fra \\xe5 miste motivasjonen til \\xe5 elske treningen igjen.\",displayTextArea:false,title:\"Sitat\",type:ControlType.String},JrRfKl0qu:{defaultValue:\"Ingrid, Oslo\",displayTextArea:false,title:\"Navn, Sted\",type:ControlType.String},UUot9lpUV:{defaultValue:true,title:\"SoMe konto p\\xe5?\",type:ControlType.Boolean},E9mXP2ckk:{defaultValue:\"@navn\",displayTextArea:false,placeholder:\"\",title:\"SoMekonto\",type:ControlType.String},U4kVdvLeu:{title:\"Link\",type:ControlType.Link}});addFonts(FramerOALUZz2dH,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerOALUZz2dH\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"399\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"McB9i7L1I\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"OM2D8cQkb\\\":\\\"sitat\\\",\\\"JrRfKl0qu\\\":\\\"navnSted\\\",\\\"UUot9lpUV\\\":\\\"soMeKontoP_\\\",\\\"E9mXP2ckk\\\":\\\"soMekonto\\\",\\\"U4kVdvLeu\\\":\\\"link\\\"}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OALUZz2dH.map","// Generated by Framer (62e4d63)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-GzqVq\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 0 C 4.971 0 9 4.029 9 9 C 9 13.971 4.971 18 0 18 Z\" fill=\"rgb(0, 0, 0)\" height=\"18px\" id=\"BMaHqZkhv\" transform=\"translate(12 3) rotate(180 4.5 9)\" width=\"9px\"/><path d=\"M 0 0 C 4.971 0 9 4.029 9 9 C 9 13.971 4.971 18 0 18 Z\" fill=\"rgb(0, 0, 0)\" height=\"18px\" id=\"vpkQkuPYD\" transform=\"translate(3 3)\" width=\"9px\"/></svg>',style:{...style}});});const css=[`.framer-GzqVq { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; user-select: none; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Kombi\",\"color\":{\"type\":\"static\",\"value\":\"rgb(0, 0, 0)\"},\"set\":{\"localId\":\"vectorSet/hvzwpyclL\",\"id\":\"hvzwpyclL\",\"moduleId\":\"yGEgFxd8HRCxhm9khzwu\"}}\n */const Icon=withCSS(Component,css,\"framer-GzqVq\");Icon.displayName=\"Kombi\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Kombi\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"rgb(0, 0, 0)\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/hvzwpyclL\\\",\\\"id\\\":\\\"hvzwpyclL\\\",\\\"moduleId\\\":\\\"yGEgFxd8HRCxhm9khzwu\\\"}}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerIntrinsicWidth\":\"24\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/U5UtW5urp9J5v6ENPQtq/kkGFEGyInBO0KtyNmhNI/FFSoAwgVo.js\";const enabledGestures={E3r4Cq99d:{hover:true},p9_6qQapm:{hover:true},rbXyURBiJ:{hover:true},Z2rJ8Vr3d:{hover:true}};const cycleOrder=[\"rbXyURBiJ\",\"E3r4Cq99d\",\"scQOqAHS4\",\"p9_6qQapm\",\"Z2rJ8Vr3d\"];const serializationHash=\"framer-QoyML\";const variantClassNames={E3r4Cq99d:\"framer-v-w3o9qv\",p9_6qQapm:\"framer-v-1bt0ldf\",rbXyURBiJ:\"framer-v-1vwcsv1\",scQOqAHS4:\"framer-v-1e2q47u\",Z2rJ8Vr3d:\"framer-v-10n4zpm\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Primary Blue\":\"scQOqAHS4\",\"Primary Orange\":\"rbXyURBiJ\",Fertiary:\"Z2rJ8Vr3d\",Secondary:\"E3r4Cq99d\",Tertiary:\"p9_6qQapm\"};const getProps=({height,id,knappetekst,link,width,...props})=>{return{...props,I7NgF8PAg:link??props.I7NgF8PAg,mC2xiwfhw:knappetekst??props.mC2xiwfhw??\"Button\",variant:humanReadableVariantMap[props.variant]??props.variant??\"rbXyURBiJ\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,mC2xiwfhw,I7NgF8PAg,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"rbXyURBiJ\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:I7NgF8PAg,motionChild:true,nodeId:\"rbXyURBiJ\",openInNewTab:false,scopeId:\"TsUh8QSTD\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1vwcsv1\",className,classNames)} framer-1s541gf`,\"data-framer-name\":\"Primary Orange\",layoutDependency:layoutDependency,layoutId:\"rbXyURBiJ\",ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backgroundColor:\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\",borderBottomLeftRadius:48,borderBottomRightRadius:48,borderTopLeftRadius:48,borderTopRightRadius:48,...style},variants:{\"E3r4Cq99d-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},\"p9_6qQapm-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},\"rbXyURBiJ-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},\"Z2rJ8Vr3d-hover\":{\"--border-color\":\"rgb(255, 255, 255)\"},E3r4Cq99d:{backgroundColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},p9_6qQapm:{backgroundColor:\"rgba(255, 255, 255, 0.1)\"},scQOqAHS4:{backgroundColor:\"var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255))\"},Z2rJ8Vr3d:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(255, 255, 255, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"rgba(0, 0, 0, 0)\"}},...addPropertyOverrides({\"E3r4Cq99d-hover\":{\"data-framer-name\":undefined},\"p9_6qQapm-hover\":{\"data-framer-name\":undefined},\"rbXyURBiJ-hover\":{\"data-framer-name\":undefined},\"Z2rJ8Vr3d-hover\":{\"data-framer-name\":undefined},E3r4Cq99d:{\"data-framer-name\":\"Secondary\"},p9_6qQapm:{\"data-framer-name\":\"Tertiary\"},scQOqAHS4:{\"data-framer-name\":\"Primary Blue\"},Z2rJ8Vr3d:{\"data-border\":true,\"data-framer-name\":\"Fertiary\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13)))\"},children:\"Button\"})})}),className:\"framer-1wugnn8\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Hgm8TNLzm\",style:{\"--extracted-zrz4ul\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:mC2xiwfhw,variants:{\"E3r4Cq99d-hover\":{\"--extracted-zrz4ul\":\"var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255))\"},\"p9_6qQapm-hover\":{\"--extracted-zrz4ul\":\"var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255))\"},\"rbXyURBiJ-hover\":{\"--extracted-zrz4ul\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"},\"Z2rJ8Vr3d-hover\":{\"--extracted-zrz4ul\":\"rgba(255, 255, 255, 0.8)\"},p9_6qQapm:{\"--extracted-zrz4ul\":\"rgb(255, 255, 255)\"},scQOqAHS4:{\"--extracted-zrz4ul\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},Z2rJ8Vr3d:{\"--extracted-zrz4ul\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"E3r4Cq99d-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255)))\"},children:\"Button\"})})})},\"p9_6qQapm-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255)))\"},children:\"Button\"})})})},\"rbXyURBiJ-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)))\"},children:\"Button\"})})})},\"Z2rJ8Vr3d-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, rgba(255, 255, 255, 0.8))\"},children:\"Button\"})})})},p9_6qQapm:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, rgb(255, 255, 255))\"},children:\"Button\"})})})},scQOqAHS4:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"Button\"})})})},Z2rJ8Vr3d:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.blockquote,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--extracted-zrz4ul, rgb(255, 255, 255))\"},children:\"Button\"})})})}},baseVariant,gestureVariant)})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-QoyML.framer-1s541gf, .framer-QoyML .framer-1s541gf { display: block; }\",\".framer-QoyML.framer-1vwcsv1 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 15px 24px 15px 24px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-QoyML .framer-1wugnn8 { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-QoyML.framer-v-1e2q47u.framer-1vwcsv1 { cursor: unset; }\",...sharedStyle.css,'.framer-QoyML[data-border=\"true\"]::after, .framer-QoyML [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 49\n * @framerIntrinsicWidth 95.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"E3r4Cq99d\":{\"layout\":[\"auto\",\"auto\"]},\"scQOqAHS4\":{\"layout\":[\"auto\",\"auto\"]},\"p9_6qQapm\":{\"layout\":[\"auto\",\"auto\"]},\"Z2rJ8Vr3d\":{\"layout\":[\"auto\",\"auto\"]},\"FHQZC4pt0\":{\"layout\":[\"auto\",\"auto\"]},\"cSmA0VYDG\":{\"layout\":[\"auto\",\"auto\"]},\"ifAU9xc7I\":{\"layout\":[\"auto\",\"auto\"]},\"Pv2B6qrLo\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"mC2xiwfhw\":\"knappetekst\",\"I7NgF8PAg\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerTsUh8QSTD=withCSS(Component,css,\"framer-QoyML\");export default FramerTsUh8QSTD;FramerTsUh8QSTD.displayName=\"Button\";FramerTsUh8QSTD.defaultProps={height:49,width:95.5};addPropertyControls(FramerTsUh8QSTD,{variant:{options:[\"rbXyURBiJ\",\"E3r4Cq99d\",\"scQOqAHS4\",\"p9_6qQapm\",\"Z2rJ8Vr3d\"],optionTitles:[\"Primary Orange\",\"Secondary\",\"Primary Blue\",\"Tertiary\",\"Fertiary\"],title:\"Variant\",type:ControlType.Enum},mC2xiwfhw:{defaultValue:\"Button\",description:\"\",displayTextArea:false,title:\"Knappetekst\",type:ControlType.String},I7NgF8PAg:{title:\"Link\",type:ControlType.Link}});addFonts(FramerTsUh8QSTD,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerTsUh8QSTD\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"E3r4Cq99d\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"scQOqAHS4\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"p9_6qQapm\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Z2rJ8Vr3d\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"FHQZC4pt0\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"cSmA0VYDG\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ifAU9xc7I\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Pv2B6qrLo\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"49\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"95.5\",\"framerVariables\":\"{\\\"mC2xiwfhw\\\":\\\"knappetekst\\\",\\\"I7NgF8PAg\\\":\\\"link\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerColorSyntax\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TsUh8QSTD.map","// Generated by Framer (62e4d63)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Instance,ResolveLinks,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/NUxh1C07gxD3baGlkrGS/TkxOJjFeBNgInrog0mu7/d_QjpE7Ez.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/Sck014nMHYdZJwyve77Q/plsXsv0x37BIgPjf2j0p/ZyG89nXsG.js\";import PT from\"https://framerusercontent.com/modules/KRU8fg1XHXjT2oDDfBhH/75q0jM94zspdlJklVIPZ/ks83DUqUw.js\";import Button from\"https://framerusercontent.com/modules/a6sNpWo0rhGvgvqmyZZR/gJfogxI28RSO8xpKxMrV/TsUh8QSTD.js\";const ButtonFonts=getFonts(Button);const enabledGestures={niQSu8JXN:{hover:true}};const serializationHash=\"framer-KUT4Z\";const variantClassNames={niQSu8JXN:\"framer-v-kymbi6\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({beskrivelse,dobbelknapp,dobbelknapplenke,height,icon,iconColor,id,overskrift,width,...props})=>{return{...props,IHAqCrmDG:overskrift??props.IHAqCrmDG??\"PT-timer (1-til-1)\",nVDg4_hG5:iconColor??props.nVDg4_hG5??\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\",OOwaE8LHw:icon??props.OOwaE8LHw??PT,rbs2Ts3aS:beskrivelse??props.rbs2Ts3aS??\"Skreddersydd oppf\\xf8lging, teknikkanalyse, progresjon og justering\",SCsn4_rTc:dobbelknapp??props.SCsn4_rTc??true,u3ifg2kic:dobbelknapplenke??props.u3ifg2kic};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,nVDg4_hG5,OOwaE8LHw,IHAqCrmDG,rbs2Ts3aS,SCsn4_rTc,u3ifg2kic,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"niQSu8JXN\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.article,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-kymbi6\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"niQSu8JXN\",ref:refBinding,style:{backgroundColor:\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\",...style},variants:{\"niQSu8JXN-hover\":{backgroundColor:\"var(--token-7e789b53-bbba-4f7a-96ef-8161022a5a89, rgb(42, 42, 42))\"}},...addPropertyOverrides({\"niQSu8JXN-hover\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-173jp7n\",layoutDependency:layoutDependency,layoutId:\"Tt8uBsq3m\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-156vukx\",\"data-framer-name\":\"Icon\",layoutDependency:layoutDependency,layoutId:\"H5wX55yc1\",style:{backgroundColor:nVDg4_hG5,borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8},children:/*#__PURE__*/_jsx(Instance,{animated:true,className:\"framer-hlm2d8\",Component:OOwaE8LHw,layoutDependency:layoutDependency,layoutId:\"SdSo1WdIO\"})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-136cow5\",layoutDependency:layoutDependency,layoutId:\"vf2I8bKYN\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-fmzcqb\",\"data-styles-preset\":\"ZyG89nXsG\",style:{\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)))\"},children:\"PT-timer (1-til-1)\"})}),className:\"framer-1lnwqcl\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"pbgraTwgb\",style:{\"--extracted-a0htzi\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},text:IHAqCrmDG,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, rgb(173, 173, 173)))\"},children:\"Skreddersydd oppf\\xf8lging, teknikkanalyse, progresjon og justering\"})}),className:\"framer-yd5yzh\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"FDdcvUNIL\",style:{\"--extracted-r6o4lv\":\"var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, rgb(173, 173, 173))\"},text:rbs2Ts3aS,verticalAlignment:\"top\",withExternalLayout:true})]})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ne0msk\",layoutDependency:layoutDependency,layoutId:\"XS3MQ87o2\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":D9MyDUIZG\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":D9MyDUIZG\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:49,y:(componentViewport?.y||0)+24+(0+232.48+((componentViewport?.height||340)-48-281.48)/1*1)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1ikf8k8-container\",layoutDependency:layoutDependency,layoutId:\"Q1e7zqgxr-container\",nodeId:\"Q1e7zqgxr\",rendersWithMotion:true,scopeId:\"q3fr6J17L\",children:/*#__PURE__*/_jsx(Button,{height:\"100%\",I7NgF8PAg:resolvedLinks[0],id:\"Q1e7zqgxr\",layoutId:\"Q1e7zqgxr\",mC2xiwfhw:\"Meld interesse\",variant:\"p9_6qQapm\",width:\"100%\",...addPropertyOverrides({\"niQSu8JXN-hover\":{I7NgF8PAg:resolvedLinks[1]}},baseVariant,gestureVariant)})})})}),SCsn4_rTc&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:49,y:(componentViewport?.y||0)+24+(0+232.48+((componentViewport?.height||340)-48-281.48)/1*1)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1em080-container\",layoutDependency:layoutDependency,layoutId:\"IHSAQhqPC-container\",nodeId:\"IHSAQhqPC\",rendersWithMotion:true,scopeId:\"q3fr6J17L\",children:/*#__PURE__*/_jsx(Button,{height:\"100%\",I7NgF8PAg:u3ifg2kic,id:\"IHSAQhqPC\",layoutId:\"IHSAQhqPC\",mC2xiwfhw:\"Les mer\",variant:\"Z2rJ8Vr3d\",width:\"100%\"})})})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-KUT4Z.framer-2qg75a, .framer-KUT4Z .framer-2qg75a { display: block; }\",\".framer-KUT4Z.framer-kymbi6 { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; height: 340px; justify-content: space-between; overflow: visible; padding: 24px; position: relative; width: 1152px; }\",\".framer-KUT4Z .framer-173jp7n { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-KUT4Z .framer-156vukx { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 48px; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 24px; position: relative; width: 48px; will-change: var(--framer-will-change-override, transform); }\",\".framer-KUT4Z .framer-hlm2d8 { flex: none; height: var(--framer-aspect-ratio-supported, 24px); position: relative; width: 24px; }\",\".framer-KUT4Z .framer-136cow5 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-KUT4Z .framer-1lnwqcl, .framer-KUT4Z .framer-yd5yzh { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-KUT4Z .framer-1ne0msk { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-KUT4Z .framer-1ikf8k8-container, .framer-KUT4Z .framer-1em080-container { flex: none; height: auto; position: relative; width: auto; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 340\n * @framerIntrinsicWidth 1152\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"ZBw4KJ8tO\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"nVDg4_hG5\":\"iconColor\",\"OOwaE8LHw\":\"icon\",\"IHAqCrmDG\":\"overskrift\",\"rbs2Ts3aS\":\"beskrivelse\",\"SCsn4_rTc\":\"dobbelknapp\",\"u3ifg2kic\":\"dobbelknapplenke\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerVectorSets [\"yGEgFxd8HRCxhm9khzwu\"]\n */const Framerq3fr6J17L=withCSS(Component,css,\"framer-KUT4Z\");export default Framerq3fr6J17L;Framerq3fr6J17L.displayName=\"TilbudCard\";Framerq3fr6J17L.defaultProps={height:340,width:1152};addPropertyControls(Framerq3fr6J17L,{nVDg4_hG5:{defaultValue:'var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)) /* {\"name\":\"Orange\"} */',title:\"Icon Color\",type:ControlType.Color},OOwaE8LHw:{defaultValue:{identifier:\"local-module:vector/ks83DUqUw:default\",moduleId:\"KRU8fg1XHXjT2oDDfBhH\"},setModuleId:\"yGEgFxd8HRCxhm9khzwu\",title:\"Icon\",type:ControlType.VectorSetItem},IHAqCrmDG:{defaultValue:\"PT-timer (1-til-1)\",displayTextArea:false,title:\"Overskrift\",type:ControlType.String},rbs2Ts3aS:{defaultValue:\"Skreddersydd oppf\\xf8lging, teknikkanalyse, progresjon og justering\",displayTextArea:false,title:\"Beskrivelse\",type:ControlType.String},SCsn4_rTc:{defaultValue:true,description:\"\",title:\"Dobbelknapp?\",type:ControlType.Boolean},u3ifg2kic:{description:\"\",title:\"Dobbelknapplenke\",type:ControlType.Link}});addFonts(Framerq3fr6J17L,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...ButtonFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerq3fr6J17L\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1152\",\"framerVariables\":\"{\\\"nVDg4_hG5\\\":\\\"iconColor\\\",\\\"OOwaE8LHw\\\":\\\"icon\\\",\\\"IHAqCrmDG\\\":\\\"overskrift\\\",\\\"rbs2Ts3aS\\\":\\\"beskrivelse\\\",\\\"SCsn4_rTc\\\":\\\"dobbelknapp\\\",\\\"u3ifg2kic\\\":\\\"dobbelknapplenke\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"ZBw4KJ8tO\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"340\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerVectorSets\":\"[\\\"yGEgFxd8HRCxhm9khzwu\\\"]\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Text component with first-line indent functionality and overflow protection\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useMemo}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function TextIndenter(props){const{text,indentSpaces,font,textColor}=props;const processedText=useMemo(()=>{// Handle empty or whitespace-only text\nif(!text||text.trim().length===0){return text||\"\";}// Apply indent\nconst spaces=\" \".repeat(Math.max(0,Math.min(indentSpaces,50)));return spaces+text;},[text,indentSpaces]);const isFixedWidth=props?.style&&props.style.width===\"100%\";return /*#__PURE__*/_jsx(\"div\",{style:{...props.style,position:\"relative\",...isFixedWidth?{...props?.style}:{minWidth:\"max-content\"}},children:/*#__PURE__*/_jsx(\"div\",{style:{...font,color:textColor,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",overflowWrap:\"break-word\",...isFixedWidth?{}:{width:\"max-content\"}},children:processedText||\"Enter your text here...\"})});}addPropertyControls(TextIndenter,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"This is a sample paragraph that will have its first line indented. The indent will only apply to the very beginning of this text, creating a traditional paragraph formatting style.\",displayTextArea:true},indentSpaces:{type:ControlType.Number,title:\"Indent Spaces\",defaultValue:4,min:0,max:50,step:1,displayStepper:true},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextIndenter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextIndenter.map","// Generated by Framer (e0ec254)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Geist-regular\",\"GF;Geist-700\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_RnOM4mJPby1QNtA.woff2\",weight:\"400\"},{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_Re-Q4mJPby1QNtA.woff2\",weight:\"700\"}]}];export const css=['.framer-TTDfm .framer-styles-preset-14dgh8q:not(.rich-text-wrapper), .framer-TTDfm .framer-styles-preset-14dgh8q.rich-text-wrapper h2 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 3.6); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-TTDfm .framer-styles-preset-14dgh8q:not(.rich-text-wrapper), .framer-TTDfm .framer-styles-preset-14dgh8q.rich-text-wrapper h2 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 2.8); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-TTDfm .framer-styles-preset-14dgh8q:not(.rich-text-wrapper), .framer-TTDfm .framer-styles-preset-14dgh8q.rich-text-wrapper h2 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 2.3); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-TTDfm\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (d800442)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-jTWtQ .framer-styles-preset-4ymt41:not(.rich-text-wrapper), .framer-jTWtQ .framer-styles-preset-4ymt41.rich-text-wrapper a { --framer-link-hover-text-color: var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, #ff5100); --framer-link-text-color: var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, #adadad); }\"];export const className=\"framer-jTWtQ\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (e0ec254)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Geist-regular\",\"GF;Geist-700\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_RnOM4mJPby1QNtA.woff2\",weight:\"400\"},{family:\"Geist\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_Re-Q4mJPby1QNtA.woff2\",weight:\"700\"}]}];export const css=['.framer-kWILk .framer-styles-preset-1nq6b63:not(.rich-text-wrapper), .framer-kWILk .framer-styles-preset-1nq6b63.rich-text-wrapper h1 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 5); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: #101c10; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-kWILk .framer-styles-preset-1nq6b63:not(.rich-text-wrapper), .framer-kWILk .framer-styles-preset-1nq6b63.rich-text-wrapper h1 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 4); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: #101c10; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-kWILk .framer-styles-preset-1nq6b63:not(.rich-text-wrapper), .framer-kWILk .framer-styles-preset-1nq6b63.rich-text-wrapper h1 { --framer-font-family: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-family-bold: \"Geist\", \"Geist Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 2.8); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 0.96em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: #101c10; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-kWILk\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (e0ec254)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-nWh8u\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 9 0 C 13.971 0 18 4.029 18 9 C 18 13.971 13.971 18 9 18 L 9 9 L 0 9 C 0 4.029 4.029 0 9 0 Z\" fill=\"rgb(0, 0, 0)\" height=\"18px\" id=\"zb6qiF82W\" transform=\"translate(3 3)\" width=\"18px\"/><path d=\"M 9 0 L 9 9 L 0 9 C 0 4.029 4.029 0 9 0 Z\" fill=\"rgb(0, 0, 0)\" height=\"9px\" id=\"YSwXKycay\" transform=\"translate(3 12) rotate(90 4.5 4.5)\" width=\"9px\"/></svg>',style:{...style}});});const css=[`.framer-nWh8u { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; user-select: none; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Kostholdsveiledning\",\"color\":{\"type\":\"static\",\"value\":\"rgb(0, 0, 0)\"},\"set\":{\"localId\":\"vectorSet/hvzwpyclL\",\"id\":\"hvzwpyclL\",\"moduleId\":\"yGEgFxd8HRCxhm9khzwu\"}}\n */const Icon=withCSS(Component,css,\"framer-nWh8u\");Icon.displayName=\"Kostholdsveiledning\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Kostholdsveiledning\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"rgb(0, 0, 0)\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/hvzwpyclL\\\",\\\"id\\\":\\\"hvzwpyclL\\\",\\\"moduleId\\\":\\\"yGEgFxd8HRCxhm9khzwu\\\"}}\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 0 L 12 0 L 12 12\" fill=\"transparent\" height=\"12px\" id=\"ipEzIPgKh\" stroke-dasharray=\"0\" stroke-linecap=\"butt\" stroke-linejoin=\"miter\" stroke-miterlimit=\"4\" stroke-width=\"3\" stroke=\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\" transform=\"translate(10 2)\" width=\"12px\"/><path d=\"M 19 0 L 0 19\" fill=\"transparent\" height=\"19px\" id=\"xS_TpN5kb\" stroke-dasharray=\"0\" stroke-linecap=\"butt\" stroke-linejoin=\"miter\" stroke-miterlimit=\"4\" stroke-width=\"3\" stroke=\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\" transform=\"translate(3 2)\" width=\"19px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-6wjzv\",className),layoutId:layoutId,ref:ref,style:{...style}});});const css=[`.framer-6wjzv { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, #ffffff); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Arrow External\",\"color\":{\"type\":\"static\",\"value\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},\"set\":{\"localId\":\"vectorSet/hvzwpyclL\",\"id\":\"hvzwpyclL\",\"moduleId\":\"yGEgFxd8HRCxhm9khzwu\"}}\n */const Icon=withCSS(Component,css,\"framer-6wjzv\");Icon.displayName=\"Arrow External\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"24\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"Arrow External\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/hvzwpyclL\\\",\\\"id\\\":\\\"hvzwpyclL\\\",\\\"moduleId\\\":\\\"yGEgFxd8HRCxhm9khzwu\\\"}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 0 C 4.418 0 8 3.582 8 8 C 8 12.418 4.418 16 0 16 Z\" fill=\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\" height=\"16px\" id=\"FEk0m0JDU\" transform=\"translate(8 9) rotate(270 4 8)\" width=\"8px\"/><path d=\"M 0 0 C 5.523 0 10 4.477 10 10 C 10 15.523 5.523 20 0 20 Z\" fill=\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\" height=\"20px\" id=\"hyfA6WJFz\" transform=\"translate(7 -2) rotate(270 5 10)\" width=\"10px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-PdKwu\",className),layoutId:layoutId,ref:ref,style:{...style}});});const css=[`.framer-PdKwu { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Online Coaching\",\"color\":{\"type\":\"static\",\"value\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},\"set\":{\"localId\":\"vectorSet/hvzwpyclL\",\"id\":\"hvzwpyclL\",\"moduleId\":\"yGEgFxd8HRCxhm9khzwu\"}}\n */const Icon=withCSS(Component,css,\"framer-PdKwu\");Icon.displayName=\"Online Coaching\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Online Coaching\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/hvzwpyclL\\\",\\\"id\\\":\\\"hvzwpyclL\\\",\\\"moduleId\\\":\\\"yGEgFxd8HRCxhm9khzwu\\\"}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 9 0 C 13.971 0 18 4.029 18 9 C 18 13.971 13.971 18 9 18 C 4.029 18 0 13.971 0 9 C 0 4.029 4.029 0 9 0 Z\" fill=\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\" height=\"18px\" id=\"nve2nsHTK\" transform=\"translate(3 3)\" width=\"18px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-2gvGK\",className),layoutId:layoutId,ref:ref,style:{...style}});});const css=[`.framer-2gvGK { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"PT\",\"color\":{\"type\":\"static\",\"value\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},\"set\":{\"localId\":\"vectorSet/hvzwpyclL\",\"id\":\"hvzwpyclL\",\"moduleId\":\"yGEgFxd8HRCxhm9khzwu\"}}\n */const Icon=withCSS(Component,css,\"framer-2gvGK\");Icon.displayName=\"PT\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"PT\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/hvzwpyclL\\\",\\\"id\\\":\\\"hvzwpyclL\\\",\\\"moduleId\\\":\\\"yGEgFxd8HRCxhm9khzwu\\\"}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 4.5 0 C 6.985 0 9 2.015 9 4.5 C 9 6.985 6.985 9 4.5 9 C 2.015 9 0 6.985 0 4.5 C 0 2.015 2.015 0 4.5 0 Z\" fill=\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\" height=\"9px\" id=\"CFsZlj5z7\" transform=\"translate(3 12)\" width=\"9px\"/><path d=\"M 4.5 0 C 6.985 0 9 2.015 9 4.5 C 9 6.985 6.985 9 4.5 9 C 2.015 9 0 6.985 0 4.5 C 0 2.015 2.015 0 4.5 0 Z\" fill=\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\" height=\"9px\" id=\"pO8xGlljn\" transform=\"translate(12 12)\" width=\"9px\"/><path d=\"M 4.5 0 C 6.985 0 9 2.015 9 4.5 C 9 6.985 6.985 9 4.5 9 C 2.015 9 0 6.985 0 4.5 C 0 2.015 2.015 0 4.5 0 Z\" fill=\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\" height=\"9px\" id=\"LONrGkqxj\" transform=\"translate(3 3)\" width=\"9px\"/><path d=\"M 4.5 0 C 6.985 0 9 2.015 9 4.5 C 9 6.985 6.985 9 4.5 9 C 2.015 9 0 6.985 0 4.5 C 0 2.015 2.015 0 4.5 0 Z\" fill=\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\" height=\"9px\" id=\"hzYzTt4rM\" transform=\"translate(12 3)\" width=\"9px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-ZxzOI\",className),layoutId:layoutId,ref:ref,style:{...style}});});const css=[`.framer-ZxzOI { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Bedriftspakke\",\"color\":{\"type\":\"static\",\"value\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},\"set\":{\"localId\":\"vectorSet/hvzwpyclL\",\"id\":\"hvzwpyclL\",\"moduleId\":\"yGEgFxd8HRCxhm9khzwu\"}}\n */const Icon=withCSS(Component,css,\"framer-ZxzOI\");Icon.displayName=\"Bedriftspakke\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerVector\":\"{\\\"name\\\":\\\"Bedriftspakke\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/hvzwpyclL\\\",\\\"id\\\":\\\"hvzwpyclL\\\",\\\"moduleId\\\":\\\"yGEgFxd8HRCxhm9khzwu\\\"}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nexport default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"d7cgmv\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"1dzyumj\",mediaQuery:\"(max-width: 809.98px)\"}],description:\"Din personlig trener Rino Falk Larsen med informasjon om PT-timer, online coaching, bedriftsavtaler, referanser og kontaktmulighet.\",elements:{D9MyDUIZG:\"meld-interesse\",dIP5LrI6D:\"logo-trigger\",FTsqKcHcb:\"mitt-tilbud\",tLSCd8lEN:\"online-coaching\",X7NTa316i:\"bedriftstrening\",XMhbNIEzI:\"top\"},framerSearch:{index:true},robots:\"max-image-preview:large\",serializationId:\"framer-VtjSu\",socialImage:\"https://framerusercontent.com/assets/C2KPrmfg35y4xMi4wmG9npzfJBw.png\",title:\"Coach Falk Larsen\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62e4d63)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,getFontsFromSharedStyle,getLoadingLazyAtYPosition,Image,Link,PropertyOverrides,ResolveLinks,RichText,SVG,useComponentViewport,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,useMetadata,useRouteElementId,useRouter,withCSS,withOptimizedAppearEffect,withVariantAppearEffect}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import TextEffectOnScroll from\"https://framerusercontent.com/modules/al7tHO15Oyq9AxBfST8y/uoWcA11u5SdzqY0Oz7hQ/TextEffectOnScroll_Prod.js\";import Ticker from\"https://framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/6yBrflQSNZ1yENMohj0e/Ticker.js\";import Lenis from\"https://framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/ewEgVFDJmU5IWGjRz6lM/Lenis.js\";import Unfocused from\"https://framerusercontent.com/modules/oaA9N1sWyc1tB57T7xaj/YxlTLBSLBUyLyALkWkvh/Unfocused.js\";import TextIndenter1 from\"https://framerusercontent.com/modules/XBLQKNP4H4SunjkAGBSw/VJkxmkFVML31c5bBRko6/TextIndenter.js\";import Question from\"#framer/local/canvasComponent/a0d8ITKLO/a0d8ITKLO.js\";import OnlineUSP from\"#framer/local/canvasComponent/gyaIeUHyR/gyaIeUHyR.js\";import ContactForm from\"#framer/local/canvasComponent/hdYUftzHp/hdYUftzHp.js\";import NavBar from\"#framer/local/canvasComponent/inDjm55_B/inDjm55_B.js\";import TestimonialCard from\"#framer/local/canvasComponent/OALUZz2dH/OALUZz2dH.js\";import TilbudCard from\"#framer/local/canvasComponent/q3fr6J17L/q3fr6J17L.js\";import Button from\"#framer/local/canvasComponent/TsUh8QSTD/TsUh8QSTD.js\";import TextIndenter from\"#framer/local/codeFile/A7ESQ48/TextIndenter.js\";import*as sharedStyle2 from\"#framer/local/css/d_QjpE7Ez/d_QjpE7Ez.js\";import*as sharedStyle4 from\"#framer/local/css/E0GN6lZMD/E0GN6lZMD.js\";import*as sharedStyle from\"#framer/local/css/FFSoAwgVo/FFSoAwgVo.js\";import*as sharedStyle5 from\"#framer/local/css/g3HTaB2MD/g3HTaB2MD.js\";import*as sharedStyle1 from\"#framer/local/css/Lf4g0edG9/Lf4g0edG9.js\";import*as sharedStyle6 from\"#framer/local/css/T9UzstXVN/T9UzstXVN.js\";import*as sharedStyle3 from\"#framer/local/css/ZyG89nXsG/ZyG89nXsG.js\";import Kombi from\"#framer/local/vector/ks83DUqUw/ks83DUqUw.js\";import Kostholdsveiledning from\"#framer/local/vector/pYCZMbMHT/pYCZMbMHT.js\";import ArrowExternal from\"#framer/local/vector/qcNllDVg5/qcNllDVg5.js\";import OnlineCoaching from\"#framer/local/vector/rnGG9DEhq/rnGG9DEhq.js\";import PT from\"#framer/local/vector/UFTPVxSTR/UFTPVxSTR.js\";import Vector from\"#framer/local/vector/xIl5YmF8C/xIl5YmF8C.js\";import Bedriftspakke from\"#framer/local/vector/xkT5gp6HD/xkT5gp6HD.js\";import metadataProvider from\"#framer/local/webPageMetadata/augiA20Il/augiA20Il.js\";const LenisFonts=getFonts(Lenis);const NavBarFonts=getFonts(NavBar);const NavBarWithVariantAppearEffect=withVariantAppearEffect(NavBar);const ButtonFonts=getFonts(Button);const UnfocusedFonts=getFonts(Unfocused);const ContainerWithOptimizedAppearEffect=withOptimizedAppearEffect(Container);const TextIndenterFonts=getFonts(TextIndenter);const TilbudCardFonts=getFonts(TilbudCard);const TextIndenter1Fonts=getFonts(TextIndenter1);const TextEffectOnScrollFonts=getFonts(TextEffectOnScroll);const OnlineUSPFonts=getFonts(OnlineUSP);const TestimonialCardFonts=getFonts(TestimonialCard);const TickerFonts=getFonts(Ticker);const QuestionFonts=getFonts(Question);const ArrowExternalFonts=getFonts(ArrowExternal);const ContactFormFonts=getFonts(ContactForm);const VectorFonts=getFonts(Vector);const breakpoints={hysrKxp35:\"(max-width: 809.98px)\",QsJ92m8qV:\"(min-width: 810px) and (max-width: 1199.98px)\",WQLkyLRf1:\"(min-width: 1200px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-VtjSu\";const variantClassNames={hysrKxp35:\"framer-v-1dzyumj\",QsJ92m8qV:\"framer-v-d7cgmv\",WQLkyLRf1:\"framer-v-72rtr7\"};const animation={opacity:.001,rotate:0,scale:1,skewX:0,skewY:0,x:0,y:10};const transition1={damping:120,delay:.05,mass:1,stiffness:400,type:\"spring\"};const textEffect={effect:animation,tokenization:\"word\",transition:transition1,trigger:\"onMount\",type:\"appear\"};const animation1={opacity:.001,rotate:0,scale:1,skewX:0,skewY:0,x:0,y:2};const textEffect1={effect:animation1,startDelay:.1,tokenization:\"line\",transition:transition1,trigger:\"onMount\",type:\"appear\"};const transition2={damping:140,delay:0,mass:1,stiffness:400,type:\"spring\"};const animation2={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation3={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1.1,skewX:0,skewY:0,x:0,y:0};const addImageAlt=(image,alt)=>{if(!image||typeof image!==\"object\"){return;}return{...image,alt};};const animation4={opacity:.001,rotate:0,scale:1,skewX:0,skewY:0,x:0,y:0};const transition3={bounce:0,delay:.05,duration:0,type:\"spring\"};const textEffect2={effect:animation4,tokenization:\"character\",transition:transition3,trigger:\"onInView\",type:\"appear\"};const textEffect3={effect:animation4,repeat:false,startDelay:0,threshold:0,tokenization:\"character\",transition:transition3,trigger:\"onInView\",type:\"appear\"};const transition4={bounce:0,delay:.025,duration:0,type:\"spring\"};const textEffect4={effect:animation4,repeat:false,startDelay:0,threshold:0,tokenization:\"character\",transition:transition4,trigger:\"onInView\",type:\"appear\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const humanReadableVariantMap={Desktop:\"WQLkyLRf1\",Phone:\"hysrKxp35\",Tablet:\"QsJ92m8qV\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"WQLkyLRf1\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const metadata=React.useMemo(()=>metadataProvider({},activeLocale),[activeLocale]);useMetadata(metadata);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className,sharedStyle4.className,sharedStyle5.className,sharedStyle6.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const ref1=React.useRef(null);const elementId=useRouteElementId(\"XMhbNIEzI\");const ref2=React.useRef(null);const elementId1=useRouteElementId(\"dIP5LrI6D\");const router=useRouter();const elementId2=useRouteElementId(\"FTsqKcHcb\");const ref3=React.useRef(null);const elementId3=useRouteElementId(\"tLSCd8lEN\");const ref4=React.useRef(null);const elementId4=useRouteElementId(\"X7NTa316i\");const ref5=React.useRef(null);const elementId5=useRouteElementId(\"D9MyDUIZG\");const ref6=React.useRef(null);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{primaryVariantId:\"WQLkyLRf1\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\"html body { background: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13)); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-72rtr7\",className),\"data-selection\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-aaid0x-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"yBV5S86R2\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Lenis,{height:\"100%\",id:\"yBV5S86R2\",infinite:false,intensity:12,layoutId:\"yBV5S86R2\",orientation:\"vertical\",smooth:true,width:\"100%\"})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`calc(${componentViewport?.width||\"100vw\"} - 32px)`}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,width:`calc(${componentViewport?.width||\"100vw\"} - 48px)`,y:16,children:/*#__PURE__*/_jsx(Container,{className:\"framer-ili7zz-container\",layoutScroll:true,nodeId:\"mExCUVdsR\",rendersWithMotion:true,scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{__framer__variantAppearEffectEnabled:undefined,variant:\"mzxyAjpZu\"}},children:/*#__PURE__*/_jsx(NavBarWithVariantAppearEffect,{__framer__animateOnce:false,__framer__targets:[{offset:20,ref:ref1,target:\"vCokF9kPs\"}],__framer__threshold:.5,__framer__variantAppearEffectEnabled:true,height:\"100%\",id:\"mExCUVdsR\",layoutId:\"mExCUVdsR\",style:{width:\"100%\"},variant:\"SuQziHXW5\",width:\"100%\"})})})})}),/*#__PURE__*/_jsxs(\"header\",{className:\"framer-u2396q\",\"data-framer-name\":\"Hero\",id:elementId,ref:ref2,children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-slllro\",\"data-framer-name\":\"Section\",children:/*#__PURE__*/_jsxs(\"header\",{className:\"framer-di834y\",\"data-framer-name\":\"Content\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1jnzet5\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-1a3ixhs\",\"data-border\":true,id:elementId1,ref:ref1,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",children:\"Personlig trener i Oslo – og online i hele Norge\"})})}),className:\"framer-1df987g\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h1\",{className:\"framer-styles-preset-1nq6b63\",\"data-styles-preset\":\"Lf4g0edG9\",style:{\"--framer-text-color\":\"rgb(255, 255, 255)\"},children:\"Personlig oppf\\xf8lging som faktisk gir resultater\"})})}),className:\"framer-1wg07az\",effect:textEffect,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-qem305\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",children:\"Med erfaring fra toppfotball og flere \\xe5r som personlig trener i SATS, hjelper jeg deg \\xe5 bygge vaner som varer – enten du trener i studio, hjemme eller p\\xe5 farten.\"})})}),className:\"framer-1r3jv68\",effect:textEffect1,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-cjukf0\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":D9MyDUIZG\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":D9MyDUIZG\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":D9MyDUIZG\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{y:(componentViewport?.y||0)+0+200+0+0+200+382.7+0+136.3+0+116+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+200+0+0+280+0+-165+0+116+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:49,y:(componentViewport?.y||0)+0+200+0+0+24+0+787+0+116+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-iaf0k5-container\",nodeId:\"S8oxYUKYz\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{I7NgF8PAg:resolvedLinks[2]},QsJ92m8qV:{I7NgF8PAg:resolvedLinks[1]}},children:/*#__PURE__*/_jsx(Button,{height:\"100%\",I7NgF8PAg:resolvedLinks[0],id:\"S8oxYUKYz\",layoutId:\"S8oxYUKYz\",mC2xiwfhw:\"Meld interesse\",variant:\"rbXyURBiJ\",width:\"100%\"})})})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":FTsqKcHcb\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":FTsqKcHcb\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":FTsqKcHcb\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{y:(componentViewport?.y||0)+0+200+0+0+200+382.7+0+136.3+0+116+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+200+0+0+280+0+-165+0+116+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:49,y:(componentViewport?.y||0)+0+200+0+0+24+0+787+0+116+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-187mahm-container\",nodeId:\"L7Bc20TCo\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{I7NgF8PAg:resolvedLinks1[2]},QsJ92m8qV:{I7NgF8PAg:resolvedLinks1[1]}},children:/*#__PURE__*/_jsx(Button,{height:\"100%\",I7NgF8PAg:resolvedLinks1[0],id:\"L7Bc20TCo\",layoutId:\"L7Bc20TCo\",mC2xiwfhw:\"Hva jeg kan tilby\",variant:\"E3r4Cq99d\",width:\"100%\"})})})})})})]})]})]})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(ContainerWithOptimizedAppearEffect,{animate:animation2,className:\"framer-1b3d2tr-container\",\"data-framer-appear-id\":\"1b3d2tr\",initial:animation3,isAuthoredByUser:true,isModuleExternal:true,nodeId:\"GecEW8u71\",optimized:true,rendersWithMotion:true,scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Unfocused,{accessibility:{compatibility:false,enableAria:false,reduce:false,renderer:\"auto\"},advance:{dispersion:1,falloffType:0,noise:1,noiseBlend:3,originX:0,originY:1,scale:.2},angle:45,animateProp:{amount:0,custom:{angle:0,blur:40,dispersion:.2,enable:false,falloff:1,noise:1,scale:0},replay:true,trigger:\"layer\",type:\"appear\",viewport:\"center\"},ariaLabel:\"\",blur:25,defaultImage:addImageAlt({pixelHeight:1856,pixelWidth:2464,src:\"https://framerusercontent.com/images/wmlF34h5WCcx0DDQOy7Slv8lc.png?scale-down-to=1024&width=2464&height=1856\"},\"Mann som l\\xf8per\"),falloff:1,file:\"url\",fit:\"cover\",height:\"100%\",id:\"GecEW8u71\",layoutId:\"GecEW8u71\",loop:true,style:{height:\"100%\",width:\"100%\"},transition:{delay:0,duration:2,ease:[.44,0,.56,1],type:\"tween\"},type:\"image\",urlVideo:\"https://framerusercontent.com/assets/Jhocnrz23GM4PK1CT7mBiwAu5U.mp4\",width:\"100%\"})})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1jzvk0k\",\"data-framer-name\":\"Tilby\",id:elementId2,ref:ref3,children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-1d60w79\",\"data-framer-name\":\"Section\",children:/*#__PURE__*/_jsx(\"section\",{className:\"framer-1xy7gwh\",\"data-framer-name\":\"Content\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-15m8tzt\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-150h4yk\",\"data-framer-name\":\"Subheader\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-hor9iy\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10 10\" overflow=\"visible\"><path d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\" fill=\"var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255)) /* {&quot;name&quot;:&quot;Blue&quot;} */\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h2\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:\"Hva jeg kan tilby\"})})}),className:\"framer-1bjthtm\",effect:textEffect2,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-hpwl4r-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,nodeId:\"ZGOPtoE0q\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.4)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"}},QsJ92m8qV:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.3)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"}}},children:/*#__PURE__*/_jsx(TextIndenter,{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 3.2)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"},height:\"100%\",id:\"ZGOPtoE0q\",indentSpaces:4,layoutId:\"ZGOPtoE0q\",style:{width:\"100%\"},text:\"Jeg tilbyr fleksible l\\xf8sninger som passer b\\xe5de deg som vil trene \\xe9n-til-\\xe9n, kombinere kostholdsveiledning, eller f\\xf8lge et online program.\",textColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",width:\"100%\"})})})})]})})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-14xp9p4\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1ppbprs\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{height:360,width:`calc(min(${componentViewport?.width||\"100vw\"}, 2000px) - 2px)`,y:(componentViewport?.y||0)+0+1100+0+331.5+1+0+0+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+504+0+347.5+1+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:400,width:`max((min(${componentViewport?.width||\"100vw\"}, 2000px) - 4px) / 3, 1px)`,y:(componentViewport?.y||0)+0+1200+0+347.5+1+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-4t9wpr-container\",nodeId:\"dKSbzHHtm\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(TilbudCard,{height:\"100%\",id:\"dKSbzHHtm\",IHAqCrmDG:\"PT-timer (1-til-1)\",layoutId:\"dKSbzHHtm\",nVDg4_hG5:\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\",OOwaE8LHw:PT,rbs2Ts3aS:\"Skreddersydd oppf\\xf8lging, teknikkanalyse, progresjon og justering\",SCsn4_rTc:false,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{height:360,width:`calc(min(${componentViewport?.width||\"100vw\"}, 2000px) - 2px)`,y:(componentViewport?.y||0)+0+1100+0+331.5+1+0+0+361},QsJ92m8qV:{y:(componentViewport?.y||0)+0+504+0+347.5+1+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:400,width:`max((min(${componentViewport?.width||\"100vw\"}, 2000px) - 4px) / 3, 1px)`,y:(componentViewport?.y||0)+0+1200+0+347.5+1+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-nywiq6-container\",nodeId:\"YCprzihvQ\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(TilbudCard,{height:\"100%\",id:\"YCprzihvQ\",IHAqCrmDG:\"Kostholdsveiledning\",layoutId:\"YCprzihvQ\",nVDg4_hG5:\"var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255))\",OOwaE8LHw:Kostholdsveiledning,rbs2Ts3aS:\"Individuell ern\\xe6ringsplan, ukentlige justeringer, oppf\\xf8lging.\",SCsn4_rTc:false,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{height:360,width:`calc(min(${componentViewport?.width||\"100vw\"}, 2000px) - 2px)`,y:(componentViewport?.y||0)+0+1100+0+331.5+1+0+0+722},QsJ92m8qV:{y:(componentViewport?.y||0)+0+504+0+347.5+1+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:400,width:`max((min(${componentViewport?.width||\"100vw\"}, 2000px) - 4px) / 3, 1px)`,y:(componentViewport?.y||0)+0+1200+0+347.5+1+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-5767ci-container\",nodeId:\"Ky4Rhwwiq\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(TilbudCard,{height:\"100%\",id:\"Ky4Rhwwiq\",IHAqCrmDG:\"Kombinasjonspakke\",layoutId:\"Ky4Rhwwiq\",nVDg4_hG5:\"rgb(255, 166, 0)\",OOwaE8LHw:Kombi,rbs2Ts3aS:\"PT + kostholdsveiledning samlet\",SCsn4_rTc:false,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-yua719\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":tLSCd8lEN\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":tLSCd8lEN\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":tLSCd8lEN\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{height:360,width:`calc(min(${componentViewport?.width||\"100vw\"}, 2000px) - 2px)`,y:(componentViewport?.y||0)+0+1100+0+331.5+1+1083+0+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+504+0+347.5+1+401+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:320,width:`max((min(${componentViewport?.width||\"100vw\"}, 2000px) - 3px) / 2, 1px)`,y:(componentViewport?.y||0)+0+1200+0+347.5+1+401+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1sek4z7-container\",nodeId:\"GxhE4Blyt\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{u3ifg2kic:resolvedLinks2[2]},QsJ92m8qV:{u3ifg2kic:resolvedLinks2[1]}},children:/*#__PURE__*/_jsx(TilbudCard,{height:\"100%\",id:\"GxhE4Blyt\",IHAqCrmDG:\"Online Coaching\",layoutId:\"GxhE4Blyt\",nVDg4_hG5:\"rgb(255, 0, 0)\",OOwaE8LHw:OnlineCoaching,rbs2Ts3aS:\"Full trening og kostplan digitalt, med support og videoanalyse.\",SCsn4_rTc:true,style:{height:\"100%\",width:\"100%\"},u3ifg2kic:resolvedLinks2[0],width:\"100%\"})})})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":X7NTa316i\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":X7NTa316i\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":X7NTa316i\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{height:360,width:`calc(min(${componentViewport?.width||\"100vw\"}, 2000px) - 2px)`,y:(componentViewport?.y||0)+0+1100+0+331.5+1+1083+0+361},QsJ92m8qV:{y:(componentViewport?.y||0)+0+504+0+347.5+1+401+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:320,width:`max((min(${componentViewport?.width||\"100vw\"}, 2000px) - 3px) / 2, 1px)`,y:(componentViewport?.y||0)+0+1200+0+347.5+1+401+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-97r7jt-container\",nodeId:\"jdkNQZDjT\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{u3ifg2kic:resolvedLinks3[2]},QsJ92m8qV:{u3ifg2kic:resolvedLinks3[1]}},children:/*#__PURE__*/_jsx(TilbudCard,{height:\"100%\",id:\"jdkNQZDjT\",IHAqCrmDG:\"Bedriftspakke\",layoutId:\"jdkNQZDjT\",nVDg4_hG5:\"rgb(181, 181, 181)\",OOwaE8LHw:Bedriftspakke,rbs2Ts3aS:\"For bedrifter som \\xf8nsker helseprogram for ansatte\",SCsn4_rTc:true,style:{height:\"100%\",width:\"100%\"},u3ifg2kic:resolvedLinks3[0],width:\"100%\"})})})})})})]})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1lm5vg8\",\"data-framer-name\":\"Section\",children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-17vkwrf\",\"data-framer-name\":\"Content\",children:/*#__PURE__*/_jsxs(\"section\",{className:\"framer-1p7689a\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1iyu9sx\",\"data-framer-name\":\"Subheader\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-aeze7s\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10 10\" overflow=\"visible\"><path d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\" fill=\"var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255)) /* {&quot;name&quot;:&quot;Blue&quot;} */\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h2\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:\"Hvorfor velge meg som trener\"})})}),className:\"framer-1rr19pp\",effect:textEffect3,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-126b23t-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"lrLYYGhT4\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.4)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"}},QsJ92m8qV:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.3)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"}}},children:/*#__PURE__*/_jsx(TextIndenter1,{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 3.2)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"},height:\"100%\",id:\"lrLYYGhT4\",indentSpaces:4,layoutId:\"lrLYYGhT4\",style:{width:\"100%\"},text:\"Jeg tror trening handler om langt mer enn muskler og vekter. Det handler om mestring, energi – og f\\xf8lelsen av \\xe5 f\\xe5 kroppen og hodet til \\xe5 jobbe sammen.\",textColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",width:\"100%\"})})})})]})})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-11egq3f\",\"data-framer-name\":\"Main\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1tds14t-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"l_VrKDADV\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Unfocused,{accessibility:{compatibility:false,enableAria:false,reduce:false,renderer:\"auto\"},advance:{dispersion:1,falloffType:0,noise:1,noiseBlend:3,originX:0,originY:.9,scale:0},angle:45,animateProp:{amount:.5,custom:{angle:0,blur:40,dispersion:.2,enable:false,falloff:1,noise:1,scale:0},replay:true,trigger:\"layer\",type:\"enter\",viewport:\"center\"},ariaLabel:\"\",blur:20,defaultImage:addImageAlt({pixelHeight:1856,pixelWidth:2464,src:\"https://framerusercontent.com/images/XjVRRPaEYjKTJS51HwVTER8ZIo.png?scale-down-to=1024&width=2464&height=1856\"},\"Kvinne som l\\xf8fter vekter\"),falloff:1,file:\"url\",fit:\"cover\",height:\"100%\",id:\"l_VrKDADV\",layoutId:\"l_VrKDADV\",loop:true,style:{height:\"100%\",width:\"100%\"},transition:{delay:0,duration:2,ease:[.44,0,.56,1],type:\"tween\"},type:\"image\",urlVideo:\"https://framerusercontent.com/assets/Jhocnrz23GM4PK1CT7mBiwAu5U.mp4\",width:\"100%\"})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-uehrxj\",\"data-framer-name\":\"Section\",children:/*#__PURE__*/_jsxs(\"section\",{className:\"framer-1fftq5n\",\"data-framer-name\":\"Content\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-cckwow\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1unrcii-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"sX7VjH5hc\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(TextEffectOnScroll,{animation:\"inAndOutSlow\",color:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",effect:{blur:15,offset:{x:0,y:-15},opacity:.5,origin:{x:50,y:50},scale:1},font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.4)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.06em\",lineHeight:\"0.96em\"},height:\"100%\",id:\"sX7VjH5hc\",layoutId:\"sX7VjH5hc\",lineGap:2,offset:5,per:\"word\",style:{maxWidth:\"100%\",width:\"100%\"},tag:\"p\",text:\"Jeg har jobbet med alt fra toppidrettsut\\xf8vere til helt vanlige folk som bare \\xf8nsker \\xe5 f\\xf8le seg bedre i egen kropp.\",userSelect:false,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-ksjue1-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"mLgdZwfb7\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{font:{fontFamily:'\"Geist Mono\", monospace',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 0.6)\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0.02em\",lineHeight:\"0.96em\"}},QsJ92m8qV:{font:{fontFamily:'\"Geist Mono\", monospace',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 0.64)\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0.02em\",lineHeight:\"0.96em\"}}},children:/*#__PURE__*/_jsx(TextEffectOnScroll,{animation:\"inAndOutSlow\",color:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",effect:{blur:0,offset:{x:0,y:0},opacity:0,origin:{x:50,y:100},scale:1},font:{fontFamily:'\"Geist Mono\", monospace',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 0.8)\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0.02em\",lineHeight:\"0.96em\"},height:\"100%\",id:\"mLgdZwfb7\",layoutId:\"mLgdZwfb7\",lineGap:2,offset:5,per:\"character\",style:{maxWidth:\"100%\",width:\"100%\"},tag:\"p\",text:\"DET VIKTIGSTE JEG HAR L\\xc6RT?\",userSelect:false,width:\"100%\"})})})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1xl5w02\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1csrbiw-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"E987fEdWk\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.8)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.06em\",lineHeight:\"0.96em\"}}},children:/*#__PURE__*/_jsx(TextEffectOnScroll,{animation:\"inAndOutSlow\",color:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",effect:{blur:15,offset:{x:0,y:-15},opacity:.5,origin:{x:50,y:50},scale:1},font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 5)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.06em\",lineHeight:\"0.96em\"},height:\"100%\",id:\"E987fEdWk\",layoutId:\"E987fEdWk\",lineGap:2,offset:5,per:\"character\",style:{maxWidth:\"100%\",width:\"100%\"},tag:\"p\",text:\"Det handler ikke om \\xe5 trene mest mulig – men om \\xe5 trene p\\xe5 en m\\xe5te som passer deg, din hverdag og dine m\\xe5l.\",userSelect:false,width:\"100%\"})})})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-7gltsn\"})]})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-glkjrx\",\"data-framer-name\":\"Section\",children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-19oaajz\",\"data-framer-name\":\"Content\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-h4lp5t\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-yxe87r\",\"data-framer-name\":\"Subheader\",children:/*#__PURE__*/_jsx(SVG,{className:\"framer-1h3un3v\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10 10\" overflow=\"visible\"><path d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\" fill=\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)) /* {&quot;name&quot;:&quot;White&quot;} */\"></path></svg>',withExternalLayout:true})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-4xsj31-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"NH0hrdQSW\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.4)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"}},QsJ92m8qV:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.3)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"}}},children:/*#__PURE__*/_jsx(TextIndenter1,{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 3.2)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"},height:\"100%\",id:\"NH0hrdQSW\",indentSpaces:4,layoutId:\"NH0hrdQSW\",style:{width:\"100%\"},text:\"Jeg vil hjelpe deg \\xe5 finne balansen mellom struktur og frihet. Mellom \\xe5 pushe deg – og \\xe5 lytte til kroppen din.\",textColor:\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h3\",{className:\"framer-styles-preset-fmzcqb\",\"data-styles-preset\":\"ZyG89nXsG\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"For meg er det ekte trening: n\\xe5r du g\\xe5r ut av timen med mer energi enn da du kom inn.\"})})}),className:\"framer-435nt7\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1tjqcdj\",\"data-framer-name\":\"Divider\"}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-hh22hp\",\"data-framer-name\":\"Online Coaching\",id:elementId3,ref:ref4,children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1ehl5tb\",\"data-framer-name\":\"Content\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-19cbosx\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{background:{alt:\"N\\xe6rbilde av svett smilende kvinne\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+6464.48+16+0+0+0+0+0),pixelHeight:2400,pixelWidth:1984,sizes:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,src:\"https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?width=1984&height=2400\",srcSet:\"https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?scale-down-to=1024&width=1984&height=2400 846w,https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?scale-down-to=2048&width=1984&height=2400 1693w,https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?width=1984&height=2400 1984w\"}},QsJ92m8qV:{background:{alt:\"N\\xe6rbilde av svett smilende kvinne\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+5171.48+24+0+0+0+0),pixelHeight:2400,pixelWidth:1984,sizes:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 16px) / 2, 1px)`,src:\"https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?width=1984&height=2400\",srcSet:\"https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?scale-down-to=1024&width=1984&height=2400 846w,https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?scale-down-to=2048&width=1984&height=2400 1693w,https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?width=1984&height=2400 1984w\"}}},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"N\\xe6rbilde av svett smilende kvinne\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+5867.48+24+0+0+0+0),pixelHeight:2400,pixelWidth:1984,sizes:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 16px) / 2, 1px)`,src:\"https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?width=1984&height=2400\",srcSet:\"https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?scale-down-to=1024&width=1984&height=2400 846w,https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?scale-down-to=2048&width=1984&height=2400 1693w,https://framerusercontent.com/images/Vkwm3USi1UuQ7oUsgclphdt5pIM.png?width=1984&height=2400 1984w\"},className:\"framer-16uajum\"})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1r5roxl\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-18yi3g7\",\"data-border\":true,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h2\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Online coaching\"})})}),className:\"framer-ls5smm\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1s0lgvb\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h3\",{className:\"framer-styles-preset-14dgh8q\",\"data-styles-preset\":\"E0GN6lZMD\",children:\"Personlig oppf\\xf8lging, uansett hvor du er\"})})}),className:\"framer-nijzd9\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Med online coaching f\\xe5r du tett og personlig oppf\\xf8lging, direkte fra meg – uansett hvor du bor. Jeg hjelper deg \\xe5 bygge rutiner som passer livet ditt, ikke omvendt.\"})}),/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",children:/*#__PURE__*/_jsx(\"br\",{className:\"trailing-break\"})})}),/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Sammen setter vi realistiske m\\xe5l og f\\xf8lger opp progresjonen din steg for steg. Du f\\xe5r alt du trenger for \\xe5 lykkes – uten \\xe5 miste fleksibiliteten.\"})})]}),className:\"framer-1mp4l1k\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1t9hf5h\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-jnptkk\",\"data-framer-name\":\"Subheader\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-1me56tb\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10 10\" overflow=\"visible\"><path d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\" fill=\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)) /* {&quot;name&quot;:&quot;White&quot;} */\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h3\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Dette f\\xe5r du som velger online coaching\"})})}),className:\"framer-1oy7296\",effect:textEffect3,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-gmeyn1\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1t0ni78\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+6464.48+16+0+0+1277.18+0+29.5+1+0+0+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+5171.48+24+0+604+0+29.5+1+0+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+5867.48+24+0+744+0+29.5+1+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1o9emat-container\",nodeId:\"PQy96zaEt\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[01]\",height:\"100%\",id:\"PQy96zaEt\",layoutId:\"PQy96zaEt\",qYB8W2mx7:\"Individuelt tilpasset treningsprogram\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+6464.48+16+0+0+1277.18+0+29.5+1+0+0+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+5171.48+24+0+604+0+29.5+1+0+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+5867.48+24+0+744+0+29.5+1+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-d7fcd6-container\",nodeId:\"iM6W3ru1y\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[02]\",height:\"100%\",id:\"iM6W3ru1y\",layoutId:\"iM6W3ru1y\",qYB8W2mx7:\"Kostholdsveiledning basert p\\xe5 dine m\\xe5l og vaner\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+6464.48+16+0+0+1277.18+0+29.5+1+0+0+181},QsJ92m8qV:{y:(componentViewport?.y||0)+0+5171.48+24+0+604+0+29.5+1+0+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+5867.48+24+0+744+0+29.5+1+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-6oxouc-container\",nodeId:\"KU_zfahVd\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[03]\",height:\"100%\",id:\"KU_zfahVd\",layoutId:\"KU_zfahVd\",qYB8W2mx7:\"Ukentlige eller m\\xe5nedlige oppf\\xf8lgings\\xf8kter\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+6464.48+16+0+0+1277.18+0+29.5+1+0+0+181},QsJ92m8qV:{y:(componentViewport?.y||0)+0+5171.48+24+0+604+0+29.5+1+0+0+181}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+5867.48+24+0+744+0+29.5+1+0+0+181,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1ofb1o5-container\",nodeId:\"g2FYGQ_gB\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[04]\",height:\"100%\",id:\"g2FYGQ_gB\",layoutId:\"g2FYGQ_gB\",qYB8W2mx7:\"Mulighet for videoanalyse og teknikkveiledning\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+6464.48+16+0+0+1277.18+0+29.5+1+0+0+362},QsJ92m8qV:{y:(componentViewport?.y||0)+0+5171.48+24+0+604+0+29.5+1+0+0+181}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+5867.48+24+0+744+0+29.5+1+0+0+181,children:/*#__PURE__*/_jsx(Container,{className:\"framer-f0feqq-container\",nodeId:\"mJYlTpSHp\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[05]\",height:\"100%\",id:\"mJYlTpSHp\",layoutId:\"mJYlTpSHp\",qYB8W2mx7:\"Direkte kontakt via melding eller video\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+6464.48+16+0+0+1277.18+0+29.5+1+0+0+362},QsJ92m8qV:{y:(componentViewport?.y||0)+0+5171.48+24+0+604+0+29.5+1+0+0+181}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+5867.48+24+0+744+0+29.5+1+0+0+181,children:/*#__PURE__*/_jsx(Container,{className:\"framer-c84agh-container\",nodeId:\"GpzqFsfCA\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[06]\",height:\"100%\",id:\"GpzqFsfCA\",layoutId:\"GpzqFsfCA\",qYB8W2mx7:\"Justeringer underveis – fordi livet skjer\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})]})})]})]})}),/*#__PURE__*/_jsx(\"section\",{className:\"framer-9kmo6a\",\"data-framer-name\":\"Bedriftstrening\",id:elementId4,ref:ref5,children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-2rthdk\",\"data-framer-name\":\"Content\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-19xce3j\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1o2p6qy\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-tuyuuu\",\"data-border\":true,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h2\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Bedriftstrening\"})})}),className:\"framer-1waghxi\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-dizkv5\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h3\",{className:\"framer-styles-preset-14dgh8q\",\"data-styles-preset\":\"E0GN6lZMD\",children:\"En sterk bedrift starter med mennesker som trives – b\\xe5de fysisk og mentalt.\"})})}),className:\"framer-bndqve\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Jeg hjelper bedrifter \\xe5 bygge en kultur hvor helse, energi og trivsel st\\xe5r i sentrum.\"})}),/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Gjennom regelmessig trening, inspirasjon og oppf\\xf8lging f\\xe5r ansatte mer overskudd – og arbeidsmilj\\xf8et styrkes.\"})}),/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",children:/*#__PURE__*/_jsx(\"br\",{className:\"trailing-break\"})})}),/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1gnfw3a\",\"data-styles-preset\":\"d_QjpE7Ez\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Det handler ikke om \\xe5 presse folk til \\xe5 trene, men om \\xe5 skape en felles arena for mestring og glede.\"})})]}),className:\"framer-ye9m0e\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{background:{alt:\"Tre kvinner som ler sammen p\\xe5 trening\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+8347.16+16+0+0+0+0+0),pixelHeight:2400,pixelWidth:1984,sizes:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,src:\"https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?width=1984&height=2400\",srcSet:\"https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?scale-down-to=1024&width=1984&height=2400 846w,https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?scale-down-to=2048&width=1984&height=2400 1693w,https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?width=1984&height=2400 1984w\"}},QsJ92m8qV:{background:{alt:\"Tre kvinner som ler sammen p\\xe5 trening\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+6215.98+24+0+0+0+0),pixelHeight:2400,pixelWidth:1984,sizes:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 16px) / 2, 1px)`,src:\"https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?width=1984&height=2400\",srcSet:\"https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?scale-down-to=1024&width=1984&height=2400 846w,https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?scale-down-to=2048&width=1984&height=2400 1693w,https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?width=1984&height=2400 1984w\"}}},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"Tre kvinner som ler sammen p\\xe5 trening\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+7051.98+24+0+0+0+0),pixelHeight:2400,pixelWidth:1984,sizes:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 16px) / 2, 1px)`,src:\"https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?width=1984&height=2400\",srcSet:\"https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?scale-down-to=1024&width=1984&height=2400 846w,https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?scale-down-to=2048&width=1984&height=2400 1693w,https://framerusercontent.com/images/LujynJwu95fMsbu6TF3kUDUE1s.png?width=1984&height=2400 1984w\"},className:\"framer-1vatjnf\"})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-16gdu4f\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-jk30ov\",\"data-framer-name\":\"Subheader\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-18f8dur\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10 10\" overflow=\"visible\"><path d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\" fill=\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255)) /* {&quot;name&quot;:&quot;White&quot;} */\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h3\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, rgb(13, 13, 13))\"},children:\"Dette f\\xe5r du som bedriftskunde\"})})}),className:\"framer-18znrcp\",effect:textEffect3,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1cxpj85\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1ujlb1j\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+8347.16+16+0+0+1397.18+0+29.5+1+0+0+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+6215.98+24+0+604+0+29.5+1+0+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+7051.98+24+0+744+0+29.5+1+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1mil8y8-container\",nodeId:\"zjjTBM609\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[01]\",height:\"100%\",id:\"zjjTBM609\",layoutId:\"zjjTBM609\",qYB8W2mx7:\"Felles trenings\\xf8kter p\\xe5 jobb eller utend\\xf8rs\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+8347.16+16+0+0+1397.18+0+29.5+1+0+0+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+6215.98+24+0+604+0+29.5+1+0+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+7051.98+24+0+744+0+29.5+1+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-s5dlio-container\",nodeId:\"tDnV_vl7N\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[02]\",height:\"100%\",id:\"tDnV_vl7N\",layoutId:\"tDnV_vl7N\",qYB8W2mx7:\"Individuell PT eller kostholdsveiledning for ansatte\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+8347.16+16+0+0+1397.18+0+29.5+1+0+0+181},QsJ92m8qV:{y:(componentViewport?.y||0)+0+6215.98+24+0+604+0+29.5+1+0+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+7051.98+24+0+744+0+29.5+1+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1bqaw8w-container\",nodeId:\"KV8WxQ07F\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[03]\",height:\"100%\",id:\"KV8WxQ07F\",layoutId:\"KV8WxQ07F\",qYB8W2mx7:\"Foredrag om helse, motivasjon og vaner\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+8347.16+16+0+0+1397.18+0+29.5+1+0+0+181},QsJ92m8qV:{y:(componentViewport?.y||0)+0+6215.98+24+0+604+0+29.5+1+0+0+181}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+7051.98+24+0+744+0+29.5+1+0+0+181,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1yggsy7-container\",nodeId:\"mJ_yrtHwb\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[04]\",height:\"100%\",id:\"mJ_yrtHwb\",layoutId:\"mJ_yrtHwb\",qYB8W2mx7:\"Digitale l\\xf8sninger for hybrid- og fjernteam\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`max((min(${componentViewport?.width||\"100vw\"} - 32px, 2000px) - 3px) / 2, 50px)`,y:(componentViewport?.y||0)+0+8347.16+16+0+0+1397.18+0+29.5+1+0+0+362},QsJ92m8qV:{y:(componentViewport?.y||0)+0+6215.98+24+0+604+0+29.5+1+0+0+181}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:`max((min(max(${componentViewport?.width||\"100vw\"} - 48px, 1px), 2000px) - 4px) / 3, 50px)`,y:(componentViewport?.y||0)+0+7051.98+24+0+744+0+29.5+1+0+0+181,children:/*#__PURE__*/_jsx(Container,{className:\"framer-179yxm0-container\",nodeId:\"pMDPIHTfE\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(OnlineUSP,{G0cEuaM7f:\"[05]\",height:\"100%\",id:\"pMDPIHTfE\",layoutId:\"pMDPIHTfE\",qYB8W2mx7:\"Skreddersydde kampanjer (f.eks. “Aktiv m\\xe5ned” eller “Bedriftschallenge”)\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1a0mwto\",\"data-framer-name\":\"OnlineUSP\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0))\"},children:\"H\\xf8res dette interessant ut?\"})}),className:\"framer-1yutfed\",effect:textEffect4,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":D9MyDUIZG\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":D9MyDUIZG\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":D9MyDUIZG\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks4=>/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{y:(componentViewport?.y||0)+0+8347.16+16+0+0+1397.18+0+29.5+1+0+0+362+16+99},QsJ92m8qV:{y:(componentViewport?.y||0)+0+6215.98+24+0+604+0+29.5+1+0+0+181+16+99}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:49,y:(componentViewport?.y||0)+0+7051.98+24+0+744+0+29.5+1+0+0+181+16+99,children:/*#__PURE__*/_jsx(Container,{className:\"framer-13mo9p3-container\",nodeId:\"F6nUp0BQT\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{I7NgF8PAg:resolvedLinks4[2]},QsJ92m8qV:{I7NgF8PAg:resolvedLinks4[1]}},children:/*#__PURE__*/_jsx(Button,{height:\"100%\",I7NgF8PAg:resolvedLinks4[0],id:\"F6nUp0BQT\",layoutId:\"F6nUp0BQT\",mC2xiwfhw:\"Meld interesse\",variant:\"rbXyURBiJ\",width:\"100%\"})})})})})})]})]})})]})]})}),/*#__PURE__*/_jsxs(\"section\",{className:\"framer-ulp9q8\",\"data-framer-name\":\"Testimonials\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-731lf9\",\"data-framer-name\":\"Section\",children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-1mele3k\",\"data-framer-name\":\"Content\",children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-1g515pd\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-193mefm\",\"data-framer-name\":\"Subheader\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-1n282rl\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10 10\" overflow=\"visible\"><path d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\" fill=\"var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255)) /* {&quot;name&quot;:&quot;Blue&quot;} */\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h2\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:\"Hva mine kunder sier\"})})}),className:\"framer-6vr506\",effect:textEffect3,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1tklb1q\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-c9izfi-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"lKoMQH6M1\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Ticker,{alignment:\"center\",direction:\"left\",fadeOptions:{fadeAlpha:0,fadeContent:true,fadeInset:0,fadeWidth:25,overflow:false},gap:1,height:\"100%\",hoverFactor:.4,id:\"lKoMQH6M1\",layoutId:\"lKoMQH6M1\",padding:10,paddingBottom:10,paddingLeft:10,paddingPerSide:false,paddingRight:10,paddingTop:10,sizingOptions:{heightType:true,widthType:true},slots:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:400,width:\"399px\",children:/*#__PURE__*/_jsx(Container,{className:\"framer-stuysx-container\",inComponentSlot:true,nodeId:\"fsDKNbpKl\",rendersWithMotion:true,scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(TestimonialCard,{E9mXP2ckk:\"@ingrid430\",height:\"100%\",id:\"fsDKNbpKl\",JrRfKl0qu:\"Ingrid, Oslo\",layoutId:\"yPdfhTVHT-fsDKNbpKl-0\",OM2D8cQkb:\"Etter 12 uker med Coach Falk Larsen gikk jeg fra \\xe5 miste motivasjonen til \\xe5 elske treningen igjen.\",style:{height:\"100%\",width:\"100%\"},UUot9lpUV:true,variant:\"yClDKpx6v\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:400,width:\"399px\",children:/*#__PURE__*/_jsx(Container,{className:\"framer-r8vho2-container\",inComponentSlot:true,nodeId:\"clPvM_b_i\",rendersWithMotion:true,scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(TestimonialCard,{E9mXP2ckk:\"@navn\",height:\"100%\",id:\"clPvM_b_i\",JrRfKl0qu:\"Thomas, Bergen\",layoutId:\"kUXhlOD9a-clPvM_b_i-1\",OM2D8cQkb:\"–7 kg og +10 % styrke p\\xe5 3 m\\xe5neder – utrolig tilpasning og st\\xf8tte underveis.\",style:{height:\"100%\",width:\"100%\"},UUot9lpUV:false,variant:\"yClDKpx6v\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:400,width:\"399px\",children:/*#__PURE__*/_jsx(Container,{className:\"framer-1yywbgo-container\",inComponentSlot:true,nodeId:\"dRi0gcoFf\",rendersWithMotion:true,scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(TestimonialCard,{E9mXP2ckk:\"@mariam4ria\",height:\"100%\",id:\"dRi0gcoFf\",JrRfKl0qu:\"Maria, Trondheim\",layoutId:\"BIGQ8E18v-dRi0gcoFf-2\",OM2D8cQkb:\"Online coaching fungerte perfekt da jeg bodde i utlandet — topp fleksibilitet og st\\xf8tte.\",style:{height:\"100%\",width:\"100%\"},UUot9lpUV:true,variant:\"yClDKpx6v\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:400,width:\"399px\",children:/*#__PURE__*/_jsx(Container,{className:\"framer-j3hxrf-container\",inComponentSlot:true,nodeId:\"DZbS_u1d3\",rendersWithMotion:true,scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(TestimonialCard,{E9mXP2ckk:\"\",height:\"100%\",id:\"DZbS_u1d3\",JrRfKl0qu:\"HR-leder, Elkem\",layoutId:\"rin14wzVO-DZbS_u1d3-3\",OM2D8cQkb:\"V\\xe5r bedriftsavtale ga ansatte mer energi og f\\xe6rre sykedager.\",style:{height:\"100%\",width:\"100%\"},UUot9lpUV:false,variant:\"yClDKpx6v\",width:\"100%\"})})})],speed:80,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})]}),/*#__PURE__*/_jsx(\"section\",{className:\"framer-zol4zf\",\"data-framer-name\":\"FAQ\",children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-1i4gg8f\",\"data-framer-name\":\"Section\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-217yx3\",\"data-framer-name\":\"Content\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-1br7i41\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-11cndmu\",\"data-framer-name\":\"Subheader\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-cvjzlv\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10 10\" overflow=\"visible\"><path d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\" fill=\"var(--token-93642563-f55c-4ab8-989a-8d9660f14142, rgb(0, 85, 255)) /* {&quot;name&quot;:&quot;Blue&quot;} */\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"h2\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:\"Sp\\xf8rsm\\xe5l og svar\"})})}),className:\"framer-86918q\",effect:textEffect3,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1j0kqwh\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-prhk5m\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"h3\",{className:\"framer-styles-preset-fmzcqb\",\"data-styles-preset\":\"ZyG89nXsG\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:\"Ofte stilte sp\\xf8rsm\\xe5l\"})}),className:\"framer-vc39lb\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-5902os\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+10887.34+0+0+16+0+0+43.5+0+80.48+0+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+7885.98+0+0+24+0+0+43.5+0+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:72,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+8861.98+0+0+24+0+0+43.5+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1xxsois-container\",nodeId:\"ZbzA1ttDz\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Question,{height:\"100%\",id:\"ZbzA1ttDz\",layoutId:\"ZbzA1ttDz\",style:{width:\"100%\"},uUJwqL4W8:\"Nei, absolutt ikke. Jeg tilpasser programmet etter det du har tilgjengelig – enten det er et fullverdig treningssenter, noen manualer hjemme, eller bare kroppsvekt. Det viktigste er at treningen passer inn i hverdagen din og f\\xf8les overkommelig.\",variant:\"fKidL4ku1\",vVK64It18:\"M\\xe5 jeg ha tilgang til treningssenter for \\xe5 trene med deg online?\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+10887.34+0+0+16+0+0+43.5+0+80.48+0+120},QsJ92m8qV:{y:(componentViewport?.y||0)+0+7885.98+0+0+24+0+0+43.5+0+0+120}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:72,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+8861.98+0+0+24+0+0+43.5+0+0+120,children:/*#__PURE__*/_jsx(Container,{className:\"framer-pqwcus-container\",nodeId:\"G7UeYzI2H\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Question,{height:\"100%\",id:\"G7UeYzI2H\",layoutId:\"G7UeYzI2H\",style:{width:\"100%\"},uUJwqL4W8:\"Det avhenger av m\\xe5let ditt, men for de fleste holder det med 2–4 \\xf8kter i uka. Kvalitet og kontinuitet betyr mer enn antall \\xf8kter – og jeg hjelper deg \\xe5 finne en rytme du faktisk klarer \\xe5 opprettholde over tid.\",variant:\"fKidL4ku1\",vVK64It18:\"Hvor ofte m\\xe5 jeg trene for \\xe5 f\\xe5 resultater?\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+10887.34+0+0+16+0+0+43.5+0+80.48+0+240},QsJ92m8qV:{y:(componentViewport?.y||0)+0+7885.98+0+0+24+0+0+43.5+0+0+240}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:72,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+8861.98+0+0+24+0+0+43.5+0+0+240,children:/*#__PURE__*/_jsx(Container,{className:\"framer-oqaid4-container\",nodeId:\"GzfufogmG\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Question,{height:\"100%\",id:\"GzfufogmG\",layoutId:\"GzfufogmG\",style:{width:\"100%\"},uUJwqL4W8:\"Prisene varierer ut fra hvor tett oppf\\xf8lging du \\xf8nsker – fysisk, digitalt eller som bedriftsl\\xf8sning. Det beste er \\xe5 sende inn en uforpliktende foresp\\xf8rsel, s\\xe5 finner vi en l\\xf8sning som passer b\\xe5de budsjett og behov.\",variant:\"fKidL4ku1\",vVK64It18:\"Hva koster det \\xe5 trene med deg?\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+10887.34+0+0+16+0+0+43.5+0+80.48+0+360},QsJ92m8qV:{y:(componentViewport?.y||0)+0+7885.98+0+0+24+0+0+43.5+0+0+360}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:72,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+8861.98+0+0+24+0+0+43.5+0+0+360,children:/*#__PURE__*/_jsx(Container,{className:\"framer-3ta9q6-container\",nodeId:\"yjH2z8LfE\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Question,{height:\"100%\",id:\"yjH2z8LfE\",layoutId:\"yjH2z8LfE\",style:{width:\"100%\"},uUJwqL4W8:\"Du f\\xe5r et eget trenings- og kostholdsopplegg som vi justerer fortl\\xf8pende. Vi holder kontakten via melding, video eller e-post – og du f\\xe5r tilbakemelding p\\xe5 progresjon, teknikk og justeringer. Du trener der du er, men du st\\xe5r aldri alene.\",variant:\"fKidL4ku1\",vVK64It18:\"Hvordan fungerer online coaching i praksis?\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+10887.34+0+0+16+0+0+43.5+0+80.48+0+480},QsJ92m8qV:{y:(componentViewport?.y||0)+0+7885.98+0+0+24+0+0+43.5+0+0+480}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:72,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+8861.98+0+0+24+0+0+43.5+0+0+480,children:/*#__PURE__*/_jsx(Container,{className:\"framer-16ht30b-container\",nodeId:\"LxDK9ZPE4\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Question,{height:\"100%\",id:\"LxDK9ZPE4\",layoutId:\"LxDK9ZPE4\",style:{width:\"100%\"},uUJwqL4W8:\"Det skjer med alle – og det er nettopp derfor oppf\\xf8lgingen er s\\xe5 viktig. Vi tar tak i det sammen, justerer m\\xe5l og finner ny drivkraft. Trening skal gi energi, ikke d\\xe5rlig samvittighet.\",variant:\"fKidL4ku1\",vVK64It18:\"Hva hvis jeg mister motivasjonen underveis?\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+10887.34+0+0+16+0+0+43.5+0+80.48+0+600},QsJ92m8qV:{y:(componentViewport?.y||0)+0+7885.98+0+0+24+0+0+43.5+0+0+600}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:72,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+8861.98+0+0+24+0+0+43.5+0+0+600,children:/*#__PURE__*/_jsx(Container,{className:\"framer-kj1owg-container\",nodeId:\"NwCJzanQi\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Question,{height:\"100%\",id:\"NwCJzanQi\",layoutId:\"NwCJzanQi\",style:{width:\"100%\"},uUJwqL4W8:\"Ja! Jeg jobber med alt fra sm\\xe5 bedrifter til st\\xf8rre organisasjoner. Bedriftspakken kan best\\xe5 av felles\\xf8kter, foredrag, eller individuelle programmer for ansatte. M\\xe5let er \\xe5 bygge helse, energi og samhold – p\\xe5 en m\\xe5te som faktisk passer arbeidshverdagen deres.\",variant:\"fKidL4ku1\",vVK64It18:\" Tilbyr du opplegg for bedrifter eller team?\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+10887.34+0+0+16+0+0+43.5+0+80.48+0+720},QsJ92m8qV:{y:(componentViewport?.y||0)+0+7885.98+0+0+24+0+0+43.5+0+0+720}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:72,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+8861.98+0+0+24+0+0+43.5+0+0+720,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1rcljsq-container\",nodeId:\"NNYGVHGzW\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Question,{height:\"100%\",id:\"NNYGVHGzW\",layoutId:\"NNYGVHGzW\",style:{width:\"100%\"},uUJwqL4W8:\"Nei, du velger selv. Noen \\xf8nsker kortere opplegg, andre trives best med et lengre samarbeid. Vi finner den modellen som gir deg mest motivasjon og trygghet.\",variant:\"fKidL4ku1\",vVK64It18:\" M\\xe5 jeg binde meg for en bestemt periode?\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+10887.34+0+0+16+0+0+43.5+0+80.48+0+840},QsJ92m8qV:{y:(componentViewport?.y||0)+0+7885.98+0+0+24+0+0+43.5+0+0+840}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:72,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+8861.98+0+0+24+0+0+43.5+0+0+840,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1qa0nj0-container\",nodeId:\"GvyvX1riN\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Question,{height:\"100%\",id:\"GvyvX1riN\",layoutId:\"GvyvX1riN\",style:{width:\"100%\"},uUJwqL4W8:\"Alle som \\xf8nsker mer overskudd, bedre vaner og en sterkere kropp – uansett utgangspunkt. Jeg har jobbet med b\\xe5de nybegynnere, erfarne mosjonister og tidligere idrettsut\\xf8vere. Det viktigste er at du har lyst til \\xe5 starte – resten fikser vi sammen.\",variant:\"fKidL4ku1\",vVK64It18:\"Hvem passer coaching for?\",width:\"100%\"})})})})]})]})]})})}),/*#__PURE__*/_jsx(\"section\",{className:\"framer-1u40ecu\",\"data-framer-name\":\"Meld interesse\",id:elementId5,ref:ref6,children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-1iiylhr\",\"data-framer-name\":\"Section\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-qi5mre\",\"data-framer-name\":\"Content\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1q11uxe\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1i97dqz\",\"data-framer-name\":\"Subheader\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-ca0vql\",opacity:1,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 10 10\" overflow=\"visible\"><path d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\" fill=\"var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, rgb(255, 81, 0)) /* {&quot;name&quot;:&quot;Orange&quot;} */\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"blockquote\",{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:\"Meld interesse\"})})}),className:\"framer-1ohw8wm\",effect:textEffect3,fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-11nfqwn-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"ZwGu_IWUH\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.4)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"}},QsJ92m8qV:{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 2.3)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"}}},children:/*#__PURE__*/_jsx(TextIndenter1,{font:{fontFamily:'\"Geist\", \"Geist Placeholder\", sans-serif',fontSize:\"calc(var(--framer-root-font-size, 1rem) * 3.2)\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.04em\",lineHeight:\"0.96em\"},height:\"100%\",id:\"ZwGu_IWUH\",indentSpaces:4,layoutId:\"ZwGu_IWUH\",style:{width:\"100%\"},text:\" La oss komme i gang – p\\xe5 dine premisser. Kanskje du allerede vet hva du vil, kanskje du bare vurderer \\xe5 starte – uansett er det et perfekt sted \\xe5 begynne her.\",textColor:\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\",width:\"100%\"})})})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1sa448p\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-v7a9jm\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:\"Kontakt\"})}),className:\"framer-1mfrn7e\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1n92v7h\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-rz1rr1\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"h3\",{className:\"framer-styles-preset-fmzcqb\",\"data-styles-preset\":\"ZyG89nXsG\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(Link,{href:\"mailto:rino@coachfalklarsen.no\",motionChild:true,nodeId:\"lbiZauGDi\",openInNewTab:true,relValues:[],scopeId:\"augiA20Il\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-4ymt41\",\"data-styles-preset\":\"g3HTaB2MD\",children:\"coach@falklarsen.no\"})})})}),className:\"framer-1trujg9\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ArrowExternal,{animated:false,className:\"framer-1ce90mq\",layoutId:\"vcLoGCEDB\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1fffogs\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"h3\",{className:\"framer-styles-preset-fmzcqb\",\"data-styles-preset\":\"ZyG89nXsG\",style:{\"--framer-text-color\":\"var(--token-a4a532a9-2fea-44e3-aeed-3df0ad759e7c, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(Link,{href:\"https://www.instagram.com/coach.falklarsen/\",motionChild:true,nodeId:\"yydKO_sRf\",openInNewTab:true,relValues:[],scopeId:\"augiA20Il\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-4ymt41\",\"data-styles-preset\":\"g3HTaB2MD\",children:\"@coach.falklarsen\"})})})}),className:\"framer-2fjhek\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ArrowExternal,{animated:false,className:\"framer-1wmq0u1\",layoutId:\"IhbAnY8AT\"})]})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-kh11u2\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{width:`min(${componentViewport?.width||\"100vw\"} - 32px, 2000px)`,y:(componentViewport?.y||0)+0+12039.32+0+0+16+0+0+401.5+0+298.46+0+0},QsJ92m8qV:{y:(componentViewport?.y||0)+0+9045.48+0+0+24+0+0+401.5+0+0+0}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:593,width:`max((min(${componentViewport?.width||\"100vw\"} - 48px, 2000px) - 16px) / 2, 1px)`,y:(componentViewport?.y||0)+0+10021.48+0+0+24+0+0+401.5+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1agb8pr-container\",nodeId:\"u9JwHHyV8\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{variant:\"fAJnl8Yt_\"}},children:/*#__PURE__*/_jsx(ContactForm,{height:\"100%\",id:\"u9JwHHyV8\",layoutId:\"u9JwHHyV8\",style:{width:\"100%\"},variant:\"PF1BW0Ioi\",width:\"100%\"})})})})})})]})]})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-580pqo\",\"data-framer-name\":\"Divider\"}),/*#__PURE__*/_jsxs(\"footer\",{className:\"framer-1fmi92l\",\"data-framer-name\":\"Footer\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1fsgsue\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1vn2tz0\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",children:/*#__PURE__*/_jsx(Link,{href:{hash:\":XMhbNIEzI\",webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"qzGHRQVml\",openInNewTab:false,relValues:[],scopeId:\"augiA20Il\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-4ymt41\",\"data-styles-preset\":\"g3HTaB2MD\",children:\"Til toppen ↑\"})})})})}},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",children:/*#__PURE__*/_jsx(Link,{href:{hash:\":XMhbNIEzI\",webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"qzGHRQVml\",openInNewTab:false,relValues:[],scopeId:\"augiA20Il\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-17qih6t\",\"data-styles-preset\":\"T9UzstXVN\",children:\"Til toppen ↑\"})})})}),className:\"framer-ft5xng\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hysrKxp35:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",children:/*#__PURE__*/_jsx(Link,{href:\"https://www.instagram.com/coach.falklarsen/\",motionChild:true,nodeId:\"cwJx72nxk\",openInNewTab:true,relValues:[],scopeId:\"augiA20Il\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-4ymt41\",\"data-styles-preset\":\"g3HTaB2MD\",children:\"@coach.falklarsen ↗\"})})})})}},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",children:/*#__PURE__*/_jsx(Link,{href:\"https://www.instagram.com/coach.falklarsen/\",motionChild:true,nodeId:\"cwJx72nxk\",openInNewTab:true,relValues:[],scopeId:\"augiA20Il\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-17qih6t\",\"data-styles-preset\":\"T9UzstXVN\",children:\"@coach.falklarsen ↗\"})})})}),className:\"framer-5yosap\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-t6o58h\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-2nn9r2\",\"data-styles-preset\":\"FFSoAwgVo\",children:\"\\xa9 2025 Coach Falk Larsen\"})}),className:\"framer-cts84f\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-13zz0g\",children:/*#__PURE__*/_jsx(Vector,{animated:false,className:\"framer-xceoul\",layoutId:\"NfRjRL7IV\"})})]})]}),/*#__PURE__*/_jsx(\"div\",{id:\"overlay\"})]})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-VtjSu.framer-lux5qc, .framer-VtjSu .framer-lux5qc { display: block; }\",'.framer-VtjSu.framer-72rtr7 { --selection-background-color: rgba(255, 81, 0, 0.8); --selection-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d) /* {\"name\":\"Black\"} */; align-content: center; align-items: center; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1200px; }',\".framer-VtjSu .framer-aaid0x-container, .framer-VtjSu .framer-iaf0k5-container, .framer-VtjSu .framer-187mahm-container, .framer-VtjSu .framer-13mo9p3-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-VtjSu .framer-ili7zz-container { flex: none; height: auto; left: 24px; mix-blend-mode: difference; position: fixed; right: 24px; top: 16px; z-index: 10; }\",\".framer-VtjSu .framer-u2396q, .framer-VtjSu .framer-11egq3f, .framer-VtjSu .framer-ulp9q8, .framer-VtjSu .framer-zol4zf { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-slllro { align-content: center; align-items: center; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 48px; height: 100vh; justify-content: center; overflow: hidden; padding: 24px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-di834y { align-content: flex-end; align-items: flex-end; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: 100%; justify-content: flex-start; max-width: 2000px; overflow: visible; padding: 0px; position: relative; width: 1px; z-index: 2; }\",\".framer-VtjSu .framer-1jnzet5, .framer-VtjSu .framer-qem305 { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-1a3ixhs { --border-bottom-width: 1px; --border-color: #ffffff; --border-left-width: 1px; --border-right-width: 1px; --border-style: solid; --border-top-width: 1px; align-content: center; align-items: center; border-bottom-left-radius: 26px; border-bottom-right-radius: 26px; border-top-left-radius: 26px; border-top-right-radius: 26px; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 4px 12px 4px 12px; position: relative; scroll-margin-top: 20px; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-VtjSu .framer-1df987g, .framer-VtjSu .framer-ls5smm, .framer-VtjSu .framer-1waghxi { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-VtjSu .framer-1wg07az { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; max-width: 680px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-1r3jv68 { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; max-width: 480px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-cjukf0, .framer-VtjSu .framer-rz1rr1, .framer-VtjSu .framer-1fffogs { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1b3d2tr-container { bottom: 0px; flex: none; left: 0px; position: absolute; right: 0px; top: 0px; will-change: var(--framer-will-change-effect-override, transform); z-index: 1; }\",\".framer-VtjSu .framer-1jzvk0k, .framer-VtjSu .framer-1u40ecu { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; scroll-margin-top: 80px; width: 100%; }\",\".framer-VtjSu .framer-1d60w79 { align-content: center; align-items: center; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: hidden; padding: 24px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1xy7gwh, .framer-VtjSu .framer-17vkwrf, .framer-VtjSu .framer-19oaajz, .framer-VtjSu .framer-1mele3k { align-content: flex-end; align-items: flex-end; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: flex-start; max-width: 2000px; overflow: visible; padding: 0px; position: relative; width: 1px; z-index: 2; }\",\".framer-VtjSu .framer-15m8tzt, .framer-VtjSu .framer-1p7689a, .framer-VtjSu .framer-h4lp5t, .framer-VtjSu .framer-1g515pd, .framer-VtjSu .framer-1br7i41, .framer-VtjSu .framer-1q11uxe { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 80px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-150h4yk, .framer-VtjSu .framer-1iyu9sx, .framer-VtjSu .framer-jnptkk, .framer-VtjSu .framer-jk30ov, .framer-VtjSu .framer-193mefm, .framer-VtjSu .framer-11cndmu, .framer-VtjSu .framer-1i97dqz { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 6px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-hor9iy, .framer-VtjSu .framer-aeze7s, .framer-VtjSu .framer-1h3un3v, .framer-VtjSu .framer-1me56tb, .framer-VtjSu .framer-18f8dur, .framer-VtjSu .framer-1n282rl, .framer-VtjSu .framer-cvjzlv, .framer-VtjSu .framer-ca0vql { height: 10px; position: relative; width: 10px; }\",\".framer-VtjSu .framer-1bjthtm, .framer-VtjSu .framer-1rr19pp, .framer-VtjSu .framer-1oy7296, .framer-VtjSu .framer-18znrcp, .framer-VtjSu .framer-6vr506, .framer-VtjSu .framer-86918q, .framer-VtjSu .framer-1ohw8wm { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-hpwl4r-container, .framer-VtjSu .framer-126b23t-container, .framer-VtjSu .framer-4xsj31-container, .framer-VtjSu .framer-1xxsois-container, .framer-VtjSu .framer-pqwcus-container, .framer-VtjSu .framer-oqaid4-container, .framer-VtjSu .framer-3ta9q6-container, .framer-VtjSu .framer-16ht30b-container, .framer-VtjSu .framer-kj1owg-container, .framer-VtjSu .framer-1rcljsq-container, .framer-VtjSu .framer-1qa0nj0-container, .framer-VtjSu .framer-11nfqwn-container, .framer-VtjSu .framer-1agb8pr-container { flex: none; height: auto; position: relative; width: 100%; }\",\".framer-VtjSu .framer-14xp9p4, .framer-VtjSu .framer-1tklb1q { align-content: center; align-items: center; background-color: var(--token-7e789b53-bbba-4f7a-96ef-8161022a5a89, #2a2a2a); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 1px; height: min-content; justify-content: center; max-width: 2000px; overflow: var(--overflow-clip-fallback, clip); padding: 1px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1ppbprs, .framer-VtjSu .framer-yua719 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 1px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-4t9wpr-container, .framer-VtjSu .framer-nywiq6-container, .framer-VtjSu .framer-5767ci-container { flex: 1 0 0px; height: 400px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-1sek4z7-container, .framer-VtjSu .framer-97r7jt-container { flex: 1 0 0px; height: 320px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-1lm5vg8 { align-content: center; align-items: center; background-color: var(--token-7e789b53-bbba-4f7a-96ef-8161022a5a89, #2a2a2a); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: hidden; padding: 24px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1tds14t-container { flex: none; height: 100vh; position: sticky; top: 0px; width: 100%; z-index: 1; }\",\".framer-VtjSu .framer-uehrxj { align-content: center; align-items: center; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: visible; padding: 24px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1fftq5n { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 160px; height: min-content; justify-content: flex-start; max-width: 2000px; overflow: visible; padding: 0px; position: relative; width: 100%; z-index: 2; }\",\".framer-VtjSu .framer-cckwow { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 160px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 50%; }\",\".framer-VtjSu .framer-1unrcii-container, .framer-VtjSu .framer-ksjue1-container { flex: none; height: auto; max-width: 680px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1xl5w02 { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 56px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1csrbiw-container { flex: none; height: auto; max-width: 680px; position: relative; width: 50%; }\",\".framer-VtjSu .framer-7gltsn { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 56px; height: 50vh; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-glkjrx { align-content: center; align-items: center; background-color: var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, #ff5100); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: hidden; padding: 24px 24px 200px 24px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-yxe87r { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 6px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-435nt7 { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; position: relative; white-space: pre-wrap; width: 50%; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-1tjqcdj { background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); flex: none; height: 1px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 100%; }\",\".framer-VtjSu .framer-hh22hp, .framer-VtjSu .framer-9kmo6a { align-content: center; align-items: center; background-color: var(--token-b93ac0b6-addc-4d7c-817f-88b9b0c90c95, #ff5100); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: visible; padding: 24px; position: relative; scroll-margin-top: 80px; width: 100%; }\",\".framer-VtjSu .framer-1ehl5tb, .framer-VtjSu .framer-2rthdk { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: flex-start; max-width: 2000px; overflow: visible; padding: 0px; position: relative; width: 1px; z-index: 2; }\",\".framer-VtjSu .framer-19cbosx, .framer-VtjSu .framer-19xce3j { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-16uajum, .framer-VtjSu .framer-1vatjnf { aspect-ratio: 0.7930555555555555 / 1; flex: 1 0 0px; height: var(--framer-aspect-ratio-supported, 716px); overflow: var(--overflow-clip-fallback, clip); position: relative; width: 1px; }\",\".framer-VtjSu .framer-1r5roxl, .framer-VtjSu .framer-1o2p6qy { align-content: flex-start; align-items: flex-start; align-self: stretch; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; height: auto; justify-content: space-between; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-18yi3g7, .framer-VtjSu .framer-tuyuuu { --border-bottom-width: 1px; --border-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); --border-left-width: 1px; --border-right-width: 1px; --border-style: solid; --border-top-width: 1px; align-content: center; align-items: center; border-bottom-left-radius: 26px; border-bottom-right-radius: 26px; border-top-left-radius: 26px; border-top-right-radius: 26px; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 4px 12px 4px 12px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-VtjSu .framer-1s0lgvb, .framer-VtjSu .framer-dizkv5 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 70px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-nijzd9 { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; max-width: 500px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-1mp4l1k, .framer-VtjSu .framer-ye9m0e { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; max-width: 320px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-1t9hf5h, .framer-VtjSu .framer-16gdu4f { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-gmeyn1, .framer-VtjSu .framer-1cxpj85 { align-content: center; align-items: center; background-color: var(--token-7e789b53-bbba-4f7a-96ef-8161022a5a89, #2a2a2a); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 1px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 1px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1t0ni78, .framer-VtjSu .framer-1ujlb1j { display: grid; flex: none; gap: 1px; grid-auto-rows: minmax(0, 1fr); grid-template-columns: repeat(3, minmax(50px, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1o9emat-container, .framer-VtjSu .framer-d7fcd6-container, .framer-VtjSu .framer-6oxouc-container, .framer-VtjSu .framer-1ofb1o5-container, .framer-VtjSu .framer-f0feqq-container, .framer-VtjSu .framer-c84agh-container, .framer-VtjSu .framer-1mil8y8-container, .framer-VtjSu .framer-s5dlio-container, .framer-VtjSu .framer-1bqaw8w-container, .framer-VtjSu .framer-1yggsy7-container, .framer-VtjSu .framer-179yxm0-container { align-self: start; flex: none; height: 180px; justify-self: start; position: relative; width: 100%; }\",\".framer-VtjSu .framer-bndqve { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; max-width: 530px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-1a0mwto { align-content: flex-start; align-items: flex-start; align-self: start; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; height: 180px; justify-content: space-between; justify-self: start; overflow: var(--overflow-clip-fallback, clip); padding: 16px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1yutfed { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; position: relative; white-space: pre-wrap; width: 326px; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-731lf9 { align-content: center; align-items: center; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: hidden; padding: 24px 24px 180px 24px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-c9izfi-container { flex: none; height: 400px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-stuysx-container, .framer-VtjSu .framer-r8vho2-container, .framer-VtjSu .framer-1yywbgo-container, .framer-VtjSu .framer-j3hxrf-container { height: 400px; position: relative; width: 399px; }\",\".framer-VtjSu .framer-1i4gg8f { align-content: center; align-items: center; background-color: var(--token-cd8a6358-a43a-4271-945a-1e68fd525263, #0d0d0d); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 24px 24px 180px 24px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-217yx3, .framer-VtjSu .framer-qi5mre { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: flex-start; max-width: 2000px; overflow: visible; padding: 0px; position: relative; width: 100%; z-index: 2; }\",\".framer-VtjSu .framer-1j0kqwh, .framer-VtjSu .framer-1sa448p { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-prhk5m { align-content: flex-start; align-items: flex-start; align-self: stretch; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 80px; height: auto; justify-content: flex-start; overflow: visible; padding: 12px 0px 0px 0px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-vc39lb, .framer-VtjSu .framer-1mfrn7e { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; position: sticky; top: 80px; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; z-index: 1; }\",\".framer-VtjSu .framer-5902os, .framer-VtjSu .framer-kh11u2 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-1iiylhr { align-content: center; align-items: center; background-color: var(--token-7e789b53-bbba-4f7a-96ef-8161022a5a89, #2a2a2a); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 24px 24px 180px 24px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-v7a9jm { align-content: flex-start; align-items: flex-start; align-self: stretch; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 80px; height: auto; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-1n92v7h { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1trujg9, .framer-VtjSu .framer-2fjhek { flex: none; height: auto; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-VtjSu .framer-1ce90mq, .framer-VtjSu .framer-1wmq0u1 { flex: none; height: var(--framer-aspect-ratio-supported, 24px); position: relative; width: 24px; }\",\".framer-VtjSu .framer-580pqo { background-color: var(--token-ceacd764-9f93-46d4-afec-dfc3a0a41fc3, #adadad); flex: none; height: 1px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 100%; }\",\".framer-VtjSu .framer-1fmi92l { align-content: center; align-items: center; background-color: var(--token-7e789b53-bbba-4f7a-96ef-8161022a5a89, #2a2a2a); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; height: 100vh; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1fsgsue { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 16px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-1vn2tz0 { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-ft5xng, .framer-VtjSu .framer-5yosap { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-t6o58h { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1px; }\",\".framer-VtjSu .framer-cts84f { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-VtjSu .framer-13zz0g { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VtjSu .framer-xceoul { flex: none; height: var(--framer-aspect-ratio-supported, 423px); position: relative; width: 100%; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,...sharedStyle4.css,...sharedStyle5.css,...sharedStyle6.css,'.framer-VtjSu[data-selection=\"true\"] * ::selection, .framer-VtjSu [data-selection=\"true\"] * ::selection { color: var(--selection-color, none); background-color: var(--selection-background-color, none); }','.framer-VtjSu[data-border=\"true\"]::after, .framer-VtjSu [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }',\"@media (min-width: 810px) and (max-width: 1199.98px) { .framer-VtjSu.framer-72rtr7 { width: 810px; } .framer-VtjSu .framer-slllro { height: min-content; padding: 280px 24px 24px 24px; } .framer-VtjSu .framer-di834y { align-self: stretch; height: auto; } .framer-VtjSu .framer-1wg07az, .framer-VtjSu .framer-1r3jv68 { max-width: 400px; } .framer-VtjSu .framer-16uajum { aspect-ratio: 0.6482758620689655 / 1; height: var(--framer-aspect-ratio-supported, 575px); } .framer-VtjSu .framer-1oy7296, .framer-VtjSu .framer-18znrcp { flex: none; white-space: pre; width: auto; } .framer-VtjSu .framer-1vatjnf { aspect-ratio: 0.6482758620689655 / 1; height: var(--framer-aspect-ratio-supported, 576px); } .framer-VtjSu .framer-prhk5m, .framer-VtjSu .framer-v7a9jm { align-self: unset; height: min-content; } .framer-VtjSu .framer-xceoul { height: var(--framer-aspect-ratio-supported, 285px); }}\",\"@media (max-width: 809.98px) { .framer-VtjSu.framer-72rtr7 { width: 390px; } .framer-VtjSu .framer-ili7zz-container { left: 16px; right: 16px; } .framer-VtjSu .framer-slllro { flex-direction: column; height: 90vh; justify-content: flex-end; padding: 200px 16px 16px 16px; } .framer-VtjSu .framer-di834y { flex: none; flex-direction: column; height: min-content; width: 100%; } .framer-VtjSu .framer-1jnzet5, .framer-VtjSu .framer-qem305, .framer-VtjSu .framer-1xy7gwh, .framer-VtjSu .framer-17vkwrf, .framer-VtjSu .framer-19oaajz, .framer-VtjSu .framer-1ehl5tb, .framer-VtjSu .framer-2rthdk, .framer-VtjSu .framer-1mele3k, .framer-VtjSu .framer-5902os, .framer-VtjSu .framer-kh11u2 { flex: none; width: 100%; } .framer-VtjSu .framer-1wg07az, .framer-VtjSu .framer-1r3jv68 { max-width: unset; } .framer-VtjSu .framer-1d60w79, .framer-VtjSu .framer-1lm5vg8, .framer-VtjSu .framer-glkjrx, .framer-VtjSu .framer-hh22hp, .framer-VtjSu .framer-9kmo6a { flex-direction: column; padding: 16px; } .framer-VtjSu .framer-1ppbprs, .framer-VtjSu .framer-yua719, .framer-VtjSu .framer-19cbosx, .framer-VtjSu .framer-19xce3j { flex-direction: column; } .framer-VtjSu .framer-4t9wpr-container, .framer-VtjSu .framer-nywiq6-container, .framer-VtjSu .framer-5767ci-container, .framer-VtjSu .framer-1sek4z7-container, .framer-VtjSu .framer-97r7jt-container { flex: none; height: 360px; width: 100%; } .framer-VtjSu .framer-uehrxj { justify-content: flex-start; padding: 120px 16px 16px 16px; } .framer-VtjSu .framer-cckwow, .framer-VtjSu .framer-1csrbiw-container, .framer-VtjSu .framer-1yutfed { width: 100%; } .framer-VtjSu .framer-7gltsn { height: 25vh; } .framer-VtjSu .framer-16uajum { flex: none; height: var(--framer-aspect-ratio-supported, 452px); width: 100%; } .framer-VtjSu .framer-1r5roxl { align-self: unset; flex: none; gap: 24px; height: min-content; justify-content: flex-start; width: 100%; } .framer-VtjSu .framer-1t0ni78, .framer-VtjSu .framer-1ujlb1j { grid-template-columns: repeat(2, minmax(50px, 1fr)); } .framer-VtjSu .framer-1o2p6qy { align-self: unset; flex: none; gap: 24px; height: min-content; justify-content: center; order: 1; width: 100%; } .framer-VtjSu .framer-1vatjnf { flex: none; height: var(--framer-aspect-ratio-supported, 451px); order: 0; width: 100%; } .framer-VtjSu .framer-731lf9 { flex-direction: column; padding: 16px 16px 100px 16px; } .framer-VtjSu .framer-1i4gg8f, .framer-VtjSu .framer-1iiylhr { padding: 16px 16px 100px 16px; } .framer-VtjSu .framer-1j0kqwh, .framer-VtjSu .framer-1sa448p { flex-direction: column; gap: 32px; } .framer-VtjSu .framer-prhk5m, .framer-VtjSu .framer-v7a9jm { align-self: unset; flex: none; height: min-content; width: 100%; } .framer-VtjSu .framer-vc39lb, .framer-VtjSu .framer-1mfrn7e { position: relative; top: unset; } .framer-VtjSu .framer-1ce90mq, .framer-VtjSu .framer-1wmq0u1 { height: var(--framer-aspect-ratio-supported, 18px); width: 18px; } .framer-VtjSu .framer-1fmi92l { gap: 0px; height: min-content; justify-content: center; } .framer-VtjSu .framer-xceoul { height: var(--framer-aspect-ratio-supported, 138px); }}\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 11192\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"QsJ92m8qV\":{\"layout\":[\"fixed\",\"auto\"]},\"hysrKxp35\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerAcceptsLayoutTemplate true\n * @framerScrollSections {\"XMhbNIEzI\":{\"pattern\":\":XMhbNIEzI\",\"name\":\"top\"},\"dIP5LrI6D\":{\"pattern\":\":dIP5LrI6D\",\"name\":\"logo-trigger\"},\"FTsqKcHcb\":{\"pattern\":\":FTsqKcHcb\",\"name\":\"mitt-tilbud\"},\"tLSCd8lEN\":{\"pattern\":\":tLSCd8lEN\",\"name\":\"online-coaching\"},\"X7NTa316i\":{\"pattern\":\":X7NTa316i\",\"name\":\"bedriftstrening\"},\"D9MyDUIZG\":{\"pattern\":\":D9MyDUIZG\",\"name\":\"meld-interesse\"}}\n * @framerResponsiveScreen\n */const FrameraugiA20Il=withCSS(Component,css,\"framer-VtjSu\");export default FrameraugiA20Il;FrameraugiA20Il.displayName=\"Personlig Trening Hjemmeside\";FrameraugiA20Il.defaultProps={height:11192,width:1200};addFonts(FrameraugiA20Il,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Geist\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist\",url:\"https://fonts.gstatic.com/s/geist/v4/gyBhhwUxId8gMGYQMKR3pzfaWI_RnOM4mJPby1QNtA.woff2\",weight:\"400\"},{cssFamilyName:\"Geist Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist Mono\",url:\"https://fonts.gstatic.com/s/geistmono/v4/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeEPKJ5W7ihaO_CS.woff2\",weight:\"500\"}]},...LenisFonts,...NavBarFonts,...ButtonFonts,...UnfocusedFonts,...TextIndenterFonts,...TilbudCardFonts,...TextIndenter1Fonts,...TextEffectOnScrollFonts,...OnlineUSPFonts,...TestimonialCardFonts,...TickerFonts,...QuestionFonts,...ArrowExternalFonts,...ContactFormFonts,...VectorFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts),...getFontsFromSharedStyle(sharedStyle4.fonts),...getFontsFromSharedStyle(sharedStyle5.fonts),...getFontsFromSharedStyle(sharedStyle6.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FrameraugiA20Il\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerScrollSections\":\"{\\\"XMhbNIEzI\\\":{\\\"pattern\\\":\\\":XMhbNIEzI\\\",\\\"name\\\":\\\"top\\\"},\\\"dIP5LrI6D\\\":{\\\"pattern\\\":\\\":dIP5LrI6D\\\",\\\"name\\\":\\\"logo-trigger\\\"},\\\"FTsqKcHcb\\\":{\\\"pattern\\\":\\\":FTsqKcHcb\\\",\\\"name\\\":\\\"mitt-tilbud\\\"},\\\"tLSCd8lEN\\\":{\\\"pattern\\\":\\\":tLSCd8lEN\\\",\\\"name\\\":\\\"online-coaching\\\"},\\\"X7NTa316i\\\":{\\\"pattern\\\":\\\":X7NTa316i\\\",\\\"name\\\":\\\"bedriftstrening\\\"},\\\"D9MyDUIZG\\\":{\\\"pattern\\\":\\\":D9MyDUIZG\\\",\\\"name\\\":\\\"meld-interesse\\\"}}\",\"framerIntrinsicWidth\":\"1200\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"11192\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"QsJ92m8qV\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"hysrKxp35\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerResponsiveScreen\":\"\",\"framerAcceptsLayoutTemplate\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{withCSS}from\"framer\";const NotFoundPage=()=>{React.useEffect(()=>{let robotsTag=document.querySelector('meta[name=\"robots\"]');if(robotsTag){robotsTag.setAttribute(\"content\",\"noindex\");}else{robotsTag=document.createElement(\"meta\");robotsTag.setAttribute(\"name\",\"robots\");robotsTag.setAttribute(\"content\",\"noindex\");document.head.appendChild(robotsTag);}},[]);return /*#__PURE__*/_jsx(\"div\",{className:\"__framer-not-found-page\",style:{display:\"flex\",height:\"100vh\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:\"var(--color-primary)\",background:\"var(--color-background)\",fontSize:\"var(--font-size-body)\",boxSizing:\"border-box\",fontFeatureSettings:'\"liga\", \"clig\"',fontVariantLigatures:\"common-ligatures\",textRendering:\"optimizeLegibility\"},children:/*#__PURE__*/_jsxs(\"main\",{style:{boxSizing:\"border-box\",fontFamily:'\"Inter\", sans-serif',fontWeight:500,maxWidth:\"240px\",width:\"100%\",display:\"flex\",alignItems:\"center\",flexDirection:\"column\",padding:\"0 20px\",textWrap:\"balance\"},children:[/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"21\",style:{verticalAlign:\"middle\",color:\"var(--color-primary)\",marginBottom:\"20px\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M 14 0 L 14 7 L 7 7 L 0 0 Z M 14 14 L 7 14 L 7 21 L 0 14 L 0 7 L 7 7 Z\",fill:\"currentColor\"})}),/*#__PURE__*/_jsx(\"h1\",{style:{margin:\"0 0 10px 0\",fontSize:\"var(--font-size-title)\",color:\"var(--color-primary)\",textAlign:\"center\"},children:\"Page Not Found\"}),/*#__PURE__*/_jsx(\"div\",{style:{color:\"var(--color-secondary)\",marginBottom:\"20px\",lineHeight:\"1.5em\",textAlign:\"center\"},children:\"The page you are looking for does not exist or may have been moved.\"}),/*#__PURE__*/_jsx(\"a\",{href:\"/\",role:\"button\",style:{backgroundColor:\"var(--color-tint)\",color:\"#ffffff\",paddingLeft:\"8px\",paddingRight:\"8px\",borderRadius:\"8px\",lineHeight:\"30px\",height:\"30px\",textDecoration:\"none\",verticalAlign:\"baseline\"},children:\"Back to Home\"})]})});};const css=[`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F,\n        U+FE2E-FE2F;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+1F00-1FFF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0370-03FF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,\n        U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\n        U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,\n        U+2212, U+2215, U+FEFF, U+FFFD;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169,\n        U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F,\n        U+FE2E-FE2F;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+1F00-1FFF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0370-03FF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,\n        U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\n        U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,\n        U+2212, U+2215, U+FEFF, U+FFFD;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169,\n        U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n    }`,`@font-face {\n      font-family: Inter Placeholder;\n      src: local(\"Arial\");\n      ascent-override: 89.79%;\n      descent-override: 22.36%;\n      line-gap-override: 0%;\n      size-adjust: 107.89%;\n    }`,`.__framer-not-found-page {\n      --color-background: #ffffff;\n      --color-primary: #333;\n      --color-secondary: #888;\n      --color-tint: #0099ff;\n      --font-size-body: 12px;\n      --font-size-title: 12px;\n    }`,`@media (prefers-color-scheme: dark) {\n      .__framer-not-found-page {\n        --color-background: #000000;\n        --color-primary: #fff;\n        --color-secondary: #888;\n      }\n    }`];const component=withCSS(NotFoundPage,css);export default component;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"component\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NotFoundPage.map"],"mappings":"6+CAAyE,SAAS,EAAI,EAAE,CAAC,IAAI,IAAIwJ,EAAE,yDAAyDkB,EAAEoM,EAAE,EAAEA,EAAE,UAAU,OAAO,IAAI,GAAG,WAAW,mBAAmB,UAAUA,GAAG,CAAC,MAAM,yBAAyBpM,EAAE,WAAWlB,EAAE,iHAAigB,SAAS,GAAK,EAAE,CAAqF,OAAjFqL,GAAE,KAAK,GAAEnK,EAAE,CAAO,CAAC,EAAKmK,GAAE,KAAKY,GAAE/K,EAAE,CAAO,CAAC,EAAKmM,GAAE,KAAKnM,EAAE,CAAQ,GAAEA,GAAG,CAAC,GAAE,GAAEA,GAAG,CAAC,EAAQ,CAAC,GAAE,SAASlD,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,gBAAoBgC,IAAJ,GAAWA,IAAJ,GAAWA,IAAJ,EAAM,KAAK,cAAcmL,EAAE,KAAK,mBAAmBE,EAAE,KAAK,gBAAgBiC,EAAE,KAAK,aAAapM,EAAE,KAAK,KAAKlB,EAAE,KAAK,YAAYqN,EAAE,KAAK,kBAAkBpB,EAAozC,SAAS,GAAK,EAAE,CAAC,OAAO/K,EAAE,GAAG,aAAa,CAAwjF,SAAS,GAAE,EAAE,CAAC,GAAe,OAAOA,GAAnB,WAAiC,OAAOA,GAAlB,SAAoB,MAAM,GAAGA,EAAE,EAAE,GAAGA,EAAE,IAAIlB,EAAE,GAAE,KAAKkB,EAAE,CAAC,GAAGlB,EAAE,CAAC,IAAIsN,EAAEnC,EAAE,GAAGE,EAAE,EAAE,IAAI,EAAErL,EAAE,MAAMsN,EAAEpM,EAAE,OAAO,IAAI,CAAC,OAAOA,EAAE,WAAWoM,EAAE,CAAtB,CAAwB,IAAK,IAAG,EAAE,SAAS,MAAM,IAAK,IAAG,EAAE,QAAQ,MAAM,IAAK,IAAG,EAAE,SAAS,MAAM,IAAK,IAAG,EAAE,OAAO,MAAM,IAAK,IAAG,EAAE,OAAO,MAAM,QAAQ,SAAS,IAAIA,IAAI,GAAGpM,EAAE,UAAUmK,EAAEiC,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAGtN,EAAE,EAAEqL,IAAIiC,EAAqBnC,EAAnBA,EAAEjK,EAAE,UAAUmK,EAAEiC,EAAE,CAAG,OAAOpM,EAA4C,SAAS,GAAI,EAAE,EAAE,CAAC,MAAM,CAAC,cAAcA,EAAE,cAAclB,EAAE,CAAC,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,OAAOA,EAAP,CAAU,IAAI,SAAS,OAAO,GAAI,EAAQsN,EAAE,OAAR,KAAsBA,EAAE,aAAVA,EAAE,MAAqB,CAAC,IAAI,MAAM,OAAO,GAAI,EAAE,KAAK,CAAC,IAAI,OAAO,OAAO,GAAI,EAAE,KAAK,CAAC,IAAI,gBAAgB,OAAO,GAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,OAAO,GAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,OAAO,GAAI,EAAE,KAAK,CAAC,IAAI,WAAW,OAAO,GAAI,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,GAAI,EAAE,KAAK,CAAC,MAAO,IAAGpM,EAAE,eAAmBA,EAAE,gBAAN,EAAoB,GAAI,EAAE,KAAK,CAACA,EAAgB,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,GAAc,OAAOoM,GAAlB,SAAoB,MAAM,MAAM,EAAI,GAAG,CAAC,CAAM,IAAI,IAAInC,IAAb,GAAE,CAAC,EAAemC,EAAE,GAAGjC,GAAE,KAAKiC,EAAEnC,EAAE,CAAC,CAAC,IAAIkC,EAAEC,EAAEnC,GAAG,GAASkC,GAAN,MAAqB,OAAOA,GAAnB,WAA2BA,IAAL,GAAO,CAAC,GAAOlC,EAAE,QAAQ,KAAK,GAAnB,EAAoB,CAAC,IAAIc,EAAE,GAAEd,EAAE,CAAC,EAAE,IAAG,GAAGkC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAElC,EAAE,IAAIwC,EAAE,GAAE,IAAI1B,EAAE,CAAU0B,IAAT,IAAK,KAAQ,EAAE,GAAE1B,EAAE,QAAQ,GAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,GAAE,OAAO,CAAC,CAAC,GAAE,IAAIA,EAAE0B,EAAE,EAAE,EAAEA,EAAE,EAAa,OAAON,GAAlB,SAAwBA,IAAJ,GAAOhC,GAAE,KAAK,GAAEF,EAAE,CAAC,GAAGkC,EAAEA,EAAE,KAAK,IAAG,GAAGA,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAEnM,EAAE,KAAK,WAAW+K,EAAE,IAAIoB,EAAE,EAAEnM,EAAE,KAAK,IAAI+K,EAAE,IAAIoB,EAAE,EAAE,GAAGnM,EAAE,KAAK,IAAI,CAAC,SAAS,GAAI,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOoM,EAAP,CAAU,IAAI,QAAQ,GAAKpM,EAAElB,EAAEmL,EAAE,CAAC,OAAO,IAAI,eAAe,IAAI,iBAAiB,IAAI,YAAY,IAAI,iCAAiC,IAAI,2BAA2B,OAAO,GAAG,EAAE,EAAEmC,EAAE,SAAeA,EAAE,KAAR,KAAkBA,EAAE,KAAR,KAAkBA,EAAE,KAAR,KAAkBA,EAAE,KAAR,QAAc,EAAE,GAAE,eAAeA,EAAE,CAAC,GAAEA,GAAG,KAAYtN,IAAP,KAAS,CAAC,OAAO,OAAOmL,EAAd,CAAiB,IAAI,WAAW,IAAI,SAAS,OAAO,IAAI,UAAU,GAAG,CAACnL,EAAE,gBAAgB,OAAyB,OAAlB,EAAEA,EAAE,cAAqBA,EAAE,KAAT,CAAe,IAAK,GAAE,GAAGkB,EAAE,KAAK,IAAIoM,EAAE,MAAM,CAAC,MAAM,IAAK,GAAE,CAAC,IAAInC,EAAEjK,EAAE,KAAK,IAAIoM,EAAE,MAAM,CAAC,CAAC,IAAInC,GAAGjK,EAAE,KAAK,IAAIoM,EAAE,KAAK,GAAEnC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAK,GAAE,MAAMA,EAAE,EAAEjK,EAAE,KAAK,IAAIoM,EAAE,KAAK,GAAEnC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAK,GAAE,CAAC,MAAMA,EAAE,EAAE,GAAGA,GAAGjK,EAAE,KAAK,IAAIoM,EAAE,KAAK,GAAEnC,EAAE,CAAC,IAAI,CAAC,MAAM,QAAQ,EAAE,cAAc,EAAE,GAAGA,GAAGjK,EAAE,KAAK,IAAIoM,EAAE,KAAK,GAAEnC,EAAE,CAAC,IAAI,UAAU,GAAKmC,EAAE,CAAC,CAAC,OAAO,OAAOnC,EAAd,CAAiB,IAAI,WAAW,IAAI,SAAS,OAAO,IAAI,UAAU,GAAG,EAAEmC,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAWtN,IAAV,SAAuBA,IAAV,QAAY,OAAO,EAAE,KAAK,IAAIsN,EAAE,KAAK,GAAEnC,EAAE,CAAC,IAAI,GAAE,SAAS,GAAI,EAAE,EAAE,EAAE,CAAC,GAASnL,GAAN,KAAQ,CAAC,GAASsN,GAAN,KAAQ,MAAM,MAAM,EAAI,GAAG,CAAC,CAAC,GAAc,OAAOtN,GAAlB,UAAqB,EAAE,WAAWA,GAAG,MAAM,MAAM,EAAI,GAAG,CAAC,CAAC,EAAEA,EAAE,OAAcA,GAAP,MAAsBkB,EAAE,KAAK,GAAGlB,EAAE,EAAE,SAAS,GAAK,EAAE,CAAC,IAAIA,EAAE,GAAwD,OAArD,GAAE,SAAS,QAAQkB,GAAG,SAAS,EAAE,CAAOA,GAAN,OAAU,GAAGA,KAAK,CAAQlB,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,GAAEsN,EAAE,CAAC,CAAC,IAAID,EAAEpB,EAAE,EAAE,KAAK,IAAIoB,KAAKrN,EAAE,GAAGqL,GAAE,KAAKrL,EAAEqN,EAAE,CAAC,CAAC,IAAIM,EAAE3N,EAAEqN,GAAG,GAASM,GAAN,KAAQ,OAAON,EAAP,CAAU,IAAI,WAAW,EAAEM,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,QAAQ,GAAIzM,EAAEiK,EAAEkC,EAAEM,EAAE,EAAyB,OAAvB,EAAE,KAAK,IAAI,CAAC,GAAIzM,EAAE+K,EAAEqB,EAAE,CAAkB,OAAOA,GAAlB,UAAqBpM,EAAE,KAAK,GAAEoM,EAAE,CAAC,CAAC,MAAMA,EAAgD,SAAS,GAAE,EAAE,CAAC,IAAItN,EAAE/I,GAAE,IAAIiK,EAAE,CAAC,GAAYlB,IAAT,IAAK,GAAM,CAAC,GAAG,CAAC,GAAE,KAAKkB,EAAE,CAAC,MAAM,MAAM,EAAI,GAAGA,EAAE,CAAC,CAAC,EAAE,IAAIA,EAAE,GAAE,IAAIA,EAAElB,EAAE,CAAC,OAAOA,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOA,EAAP,CAAU,IAAI,SAAS,EAAE,KAAK,GAAE,SAAS,CAAC,CAAC,IAAIiM,EAAE,KAAK0B,EAAE,KAAK,IAAInP,KAAK8O,EAAE,GAAGjC,GAAE,KAAKiC,EAAE9O,EAAE,CAAC,CAAC,IAAI4O,EAAEE,EAAE9O,GAAG,GAAS4O,GAAN,KAAQ,OAAO5O,EAAP,CAAU,IAAI,WAAW,EAAE4O,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,IAAI,eAAe,IAAI,QAAQ,MAAM,QAAQ,GAAIlM,EAAEiK,EAAE3M,EAAE4O,EAAE,EAAyB,OAAvB,EAAE,KAAK,IAAI,CAAC,GAAIlM,EAAEyM,EAAE1B,EAAE,CAAQA,EAAE,IAAI,SAAS,EAAEoB,EAAE,cAAc,EAAE,KAAK,GAAE,SAAS,CAAC,CAAC,IAAId,EAAE,EAAE,KAAKvP,EAAE,KAASwB,EAAE,KAAK,IAAIyN,KAAKqB,EAAE,GAAGjC,GAAE,KAAKiC,EAAErB,EAAE,CAAC,CAAC,IAAIsB,EAAED,EAAErB,GAAG,GAASsB,GAAN,KAAQ,OAAOtB,EAAP,CAAU,IAAI,WAAW,EAAEsB,EAAE,MAAM,IAAI,WAAW,EAAEA,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,IAAI,QAAQ,EAAEA,EAAE,QAAQ,GAAIrM,EAAEiK,EAAEc,EAAEsB,EAAE,EAAE,GAASI,GAAN,KAAQ,GAAG,EAASpB,IAAP,KAAc,GAAKa,EAAE,CAAZ,GAAGb,EAAU,GAAEoB,EAAE,MAAM,EAAE,EAAExC,EAAEwC,EAAE,OAAO,IAAI,GAAG,GAAGA,EAAExC,KAAKmC,EAAE,CAAC,EAAE,KAAK,eAAe,CAAC,YAAW,GAAGK,IAAIL,GAAGpM,EAAE,KAAK,eAAe,MAAM,GAAGA,EAAE,KAAK,eAAe,CAAwB,OAAvB,EAAE,KAAK,IAAI,CAAC,GAAIA,EAAE1C,EAAE4O,EAAE,CAAQA,EAAE,IAAI,WAA4C,IAAIA,KAArC,EAAE,KAAK,GAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,KAAcE,EAAE,GAAGjC,GAAE,KAAKiC,EAAEF,EAAE,GAAG,EAAEE,EAAEF,GAASb,GAAN,MAAS,OAAOa,EAAP,CAAU,IAAI,WAAW,EAAEb,EAAE,MAAM,IAAI,QAAQ,EAAEA,EAAE,MAAM,IAAI,eAAe,EAAEA,EAAE,MAAM,IAAI,0BAA0B,MAAM,MAAM,EAAI,GAAG,CAAC,CAAC,QAAQ,GAAIrL,EAAEiK,EAAEiC,EAAEb,EAAE,CAAuC,GAA/BN,IAAP,MAAiB0B,IAAP,OAAW,EAAEA,GAAG,EAAE,KAAK,IAAI,CAAUnP,GAAN,KAAQ,CAAC,GAASyN,GAAN,KAAQ,MAAM,MAAM,EAAI,GAAG,CAAC,CAAC,GAAG,GAAEzN,EAAE,EAAE,EAAEA,EAAE,OAAO,MAAM,MAAM,EAAI,GAAG,CAAC,CAAC,EAAE,GAAGA,EAA2E,OAA9D,OAAOyN,GAAlB,UAA4BA,EAAE,KAAT;GAAa/K,EAAE,KAAK;EAAK,CAAQ+K,IAAP,MAAU/K,EAAE,KAAK,GAAE,GAAG+K,EAAE,CAAC,CAAQ,KAAK,IAAI,QAAwC,IAAI0B,KAApC,EAAE,KAAK,GAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAcL,EAAE,GAAGjC,GAAE,KAAKiC,EAAEK,EAAE,GAAG,EAAEL,EAAEK,GAAS3Q,GAAN,MAAS,OAAO2Q,EAAP,CAAU,IAAI,WAAW,IAAI,0BAA0B,MAAM,MAAM,EAAI,IAAI,QAAQ,CAAC,CAAC,IAAI,iBAAiB,EAAE3Q,EAAE,MAAM,IAAI,eAAe,EAAEA,EAAE,MAAM,IAAI,UAAU,EAAEA,EAAE,MAAM,IAAI,QAAQ,EAAEA,EAAE,MAAM,QAAQ,GAAIkE,EAAEiK,EAAEwC,EAAE3Q,EAAE,CAAoI,OAA5HwB,IAAP,KAAqC+N,IAAP,MAAU,GAAIrL,EAAEiK,EAAE,UAAUoB,EAAE,CAAnD,GAAIrL,EAAEiK,EAAE,UAAU3M,EAAE,CAAuCyN,IAAP,KAAmCmB,IAAP,MAAU,GAAIlM,EAAEiK,EAAE,QAAQiC,EAAE,CAA/C,GAAIlM,EAAEiK,EAAE,QAAQc,EAAE,CAA8B,EAAE,KAAK,KAAK,CAAQ,KAAK,IAAI,WAAiC,IAAI,IAAIE,KAA9B,EAAE,KAAK,GAAE,WAAW,CAAC,CAAcmB,EAAE,GAAGjC,GAAE,KAAKiC,EAAEnB,EAAE,GAAG,EAAEmB,EAAEnB,GAASF,GAAN,MAAS,OAAOE,EAAP,CAAU,IAAI,WAAW,IAAI,0BAA0B,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,QAAQ,GAAIjL,EAAEiK,EAAEgB,EAAEF,EAAE,CAAa,OAAZ,EAAE,KAAK,IAAI,CAAQ,KAAK,IAAI,QAAkC,IAAIsB,KAA9B,EAAE,KAAK,GAAE,QAAQ,CAAC,CAAC,EAAE,KAAcD,EAAE,GAAGjC,GAAE,KAAKiC,EAAEC,EAAE,GAAG,EAAED,EAAEC,GAASI,GAAN,MAAS,OAAOJ,EAAP,CAAU,IAAI,WAAW,EAAEI,EAAE,MAAM,IAAI,0BAA0B,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,QAAQ,GAAIzM,EAAEiK,EAAEoC,EAAEI,EAAE,CAAa,OAAZ,EAAE,KAAK,IAAI,CAAQ1B,EAAE,IAAI,UAAU,IAAI,MAA4B,IAAIM,KAA1B,EAAE,KAAK,GAAEvM,EAAE,CAAC,CAAC,EAAE,EAAE,KAAcsN,EAAE,GAAGjC,GAAE,KAAKiC,EAAEf,EAAE,GAAG,EAAEe,EAAEf,GAASa,GAAN,MAAS,OAAOb,EAAP,CAAU,IAAI,WAAW,EAAEa,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,QAAQ,GAAIlM,EAAEiK,EAAEoB,EAAEa,EAAE,CAAa,GAAZ,EAAE,KAAK,IAAI,CAAUO,GAAN,KAAQ,CAAC,GAAS1B,GAAN,KAAQ,MAAM,MAAM,EAAI,GAAG,CAAC,CAAC,GAAc,OAAO0B,GAAlB,UAAqB,EAAE,WAAWA,GAAG,MAAM,MAAM,EAAI,GAAG,CAAC,CAAC,EAAEA,EAAE,OAAcL,GAAP,OAAkC,OAAOA,GAAlB,UAAqB,EAAEA,EAAE,QAAeA,EAAE,KAAT;EAAYpM,EAAE,KAAK;EAAKoM,EAAE,CAACpM,EAAE,KAAK,GAAGoM,EAAE,EAAiD,OAApC,OAAOrB,GAAlB,UAA4BA,EAAE,KAAT;GAAa/K,EAAE,KAAK;EAAK,CAAQ+K,EAAE,IAAI,OAAO,IAAI,OAAO,IAAI,KAAK,IAAI,MAAM,IAAI,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAmB,IAAI,IAAI/B,KAArB,EAAE,KAAK,GAAElK,EAAE,CAAC,CAAcsN,EAAE,GAAGjC,GAAE,KAAKiC,EAAEpD,EAAE,GAAG,EAAEoD,EAAEpD,GAAS+B,GAAN,MAAS,OAAO/B,EAAP,CAAU,IAAI,WAAW,IAAI,0BAA0B,MAAM,MAAM,EAAI,IAAIlK,EAAE,CAAC,CAAC,QAAQ,GAAIkB,EAAEiK,EAAEjB,EAAE+B,EAAE,CAAc,OAAb,EAAE,KAAK,KAAK,CAAQ,KAAK,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,YAAY,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,iBAAiB,IAAI,gBAAgB,OAAO,GAAK/K,EAAEoM,EAAEtN,EAAEmL,EAAE,CAAC,IAAI,OAAO,OAAWkC,EAAE,gBAAN,GAAqBnM,EAAE,KAAK,kBAAkB,CAAC,GAAKA,EAAEoM,EAAEtN,EAAEmL,EAAE,CAAC,QAAQ,GAAQnL,EAAE,QAAQ,IAAI,GAAnB,IAAgC,OAAOsN,EAAE,IAApB,SAAuB,OAAO,GAAKpM,EAAEoM,EAAEtN,EAAEmL,EAAE,CAAuB,IAAInO,KAA1B,EAAE,KAAK,GAAEgD,EAAE,CAAC,CAAC,EAAE,EAAE,KAAcsN,EAAE,GAAGjC,GAAE,KAAKiC,EAAEtQ,EAAE,GAAG,EAAEsQ,EAAEtQ,GAASoQ,GAAN,MAAS,OAAOpQ,EAAP,CAAU,IAAI,WAAW,EAAEoQ,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,IAAI,QAAQ,GAAKlM,EAAEiK,EAAEiC,EAAE,CAAC,MAAM,IAAI,iCAAiC,IAAI,2BAA2B,MAAM,QAAQ,GAAKpQ,EAAE,EAAe,OAAOoQ,GAApB,YAAkC,OAAOA,GAAlB,UAAqBlM,EAAE,KAAK,IAAIlE,EAAE,KAAK,GAAEoQ,EAAE,CAAC,IAAI,CAAwB,OAAvB,EAAE,KAAK,IAAI,CAAC,GAAIlM,EAAEyM,EAAE1B,EAAE,CAAQA,GAAG,SAAS,GAAK,EAAE,EAAE,EAAE,CAAyC,GAAxC,EAAE,KAAK,0BAAgC,CAAWqB,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,CAAW,OAAV,EAAE,KAAKA,EAAE,CAAQpM,EAAE,KAAK,gBAAgB,CAAC,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOoM,EAAE,cAAT,CAAwB,IAAK,GAAE,IAAK,GAAE,OAAOpM,EAAE,KAAK,mBAAmB,CAACA,EAAE,KAAKlB,EAAE,cAAc,CAAC,EAAEmL,EAAE,SAAS,GAAG,CAACjK,EAAE,KAAKlB,EAAE,CAACkB,EAAE,KAAK,KAAK,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,oDAAoD,CAACA,EAAE,KAAKlB,EAAE,cAAc,CAAC,EAAEmL,EAAE,SAAS,GAAG,CAACjK,EAAE,KAAKlB,EAAE,CAACkB,EAAE,KAAK,KAAK,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,qDAAqD,CAACA,EAAE,KAAKlB,EAAE,cAAc,CAAC,EAAEmL,EAAE,SAAS,GAAG,CAACjK,EAAE,KAAKlB,EAAE,CAACkB,EAAE,KAAK,KAAK,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,qBAAqB,CAACA,EAAE,KAAKlB,EAAE,cAAc,CAAC,EAAEmL,EAAE,SAAS,GAAG,CAACjK,EAAE,KAAKlB,EAAE,CAACkB,EAAE,KAAK,KAAK,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,4BAA4B,CAACA,EAAE,KAAKlB,EAAE,cAAc,CAAC,EAAEmL,EAAE,SAAS,GAAG,CAACjK,EAAE,KAAKlB,EAAE,CAACkB,EAAE,KAAK,KAAK,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,yBAAyB,CAACA,EAAE,KAAKlB,EAAE,cAAc,CAAC,EAAEmL,EAAE,SAAS,GAAG,CAACjK,EAAE,KAAKlB,EAAE,CAACkB,EAAE,KAAK,KAAK,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,+BAA+B,CAACA,EAAE,KAAKlB,EAAE,cAAc,CAAC,EAAEmL,EAAE,SAAS,GAAG,CAACjK,EAAE,KAAKlB,EAAE,CAACkB,EAAE,KAAK,KAAK,CAAC,QAAQ,MAAM,MAAM,EAAI,IAAI,CAAC,EAAE,SAAS,GAAK,EAAE,EAAE,CAAC,OAAOlB,EAAE,cAAT,CAAwB,IAAK,GAAE,IAAK,GAAE,OAAOkB,EAAE,KAAK,SAAS,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,SAAS,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,UAAU,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,WAAW,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,mBAAmB,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,gBAAgB,CAAC,IAAK,GAAE,OAAOA,EAAE,KAAK,sBAAsB,CAAC,QAAQ,MAAM,MAAM,EAAI,IAAI,CAAC,EAA2B,SAAS,GAAK,EAAE,CAAC,OAAO,KAAK,UAAUA,EAAE,CAAC,QAAQzJ,IAAG,SAAS,EAAE,CAAC,OAAOyJ,EAAP,CAAU,IAAI,IAAI,MAAM,UAAU,IAAI,SAAS,MAAM,UAAU,IAAI,SAAS,MAAM,UAAU,QAAQ,MAAM,MAAM,oMAAoM,IAAI,CAAC,SAAS,GAAK,EAAE,EAAE,CAAmB,MAAlB,GAAWlB,IAAT,IAAK,GAAM,GAAGA,EAAQ,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,WAAW,kBAAkBA,EAAE,KAAK,cAAcA,EAAE,KAAK,eAAeA,EAAE,KAAK,SAASA,EAAE,eAAe,EAAE,4BAA4B,CAAC,EAAE,6BAA6B,CAAC,EAAE,yBAAyB,CAAC,EAAE,qBAAqBkB,EAAE,CAAC,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,CAA6G,OAAzGoM,EAAE,sBAA4BpM,EAAE,KAAK,GAAElB,EAAE,CAAC,CAAC,CAAC,IAAOA,IAAL,GAAO,EAAEmL,GAAGA,GAAGjK,EAAE,KAAK,WAAiB,CAACA,EAAE,KAAK,GAAElB,EAAE,CAAC,CAAC,EAAE,CAAC,GAAUkB,GAA6iB,SAAS,GAAK,EAAE,CAAC,GAASA,GAAN,KAAQ,OAAO,KAAK,GAAgB,OAAOA,GAApB,WAAsB,OAAOA,EAAE,aAAaA,EAAE,MAAM,KAAK,GAAc,OAAOA,GAAlB,SAAoB,OAAOA,EAAE,OAAOA,EAAP,CAAU,KAAK,GAAE,MAAM,WAAW,KAAKxJ,GAAE,MAAM,SAAS,KAAK,GAAE,MAAM,WAAW,KAAK,GAAE,MAAM,aAAa,KAAKC,GAAE,MAAM,WAAW,KAAKC,GAAE,MAAM,eAAe,GAAc,OAAOsJ,GAAlB,SAAoB,OAAOA,EAAE,SAAT,CAAmB,KAAK,GAAE,OAAOA,EAAE,aAAa,WAAW,YAAY,KAAK6F,GAAE,OAAO7F,EAAE,SAAS,aAAa,WAAW,YAAY,KAAKpJ,GAAE,IAAIkI,EAAEkB,EAAE,OAAkG,MAA3F,GAAEA,EAAE,YAAY,AAAgC,KAA5B,EAAElB,EAAE,aAAaA,EAAE,MAAM,GAAUkB,IAAL,GAA2B,aAApB,cAAcA,EAAE,KAAyBA,EAAE,KAAK,GAAG,MAAO,GAAEA,EAAE,aAAa,KAAYlB,IAAP,KAAW,GAAKkB,EAAE,KAAK,EAAE,OAAhBlB,EAAuB,KAAK4J,GAAG,EAAE1I,EAAE,SAAS,EAAEA,EAAE,MAAM,GAAG,CAAC,OAAO,GAAKA,EAAElB,EAAE,CAAC,MAAS,GAAG,OAAO,KAAe,SAAS,GAAK,EAAE,EAAE,CAAkB,GAAjB,EAAEkB,EAAE,aAAgB,CAACA,EAAE,OAAOjC,GAAG,IAAIqO,EAAEnC,EAAE,EAAE,CAAC,IAAImC,KAAKpM,EAAE,EAAEoM,GAAGtN,EAAEsN,GAAG,OAAOnC,EAAc,SAAS,GAAE,EAAE,EAAE,CAAC,GAAGjK,IAAIlB,EAAE,CAAC,EAAE,QAAQ,eAAekB,EAAE,YAAY,EAAEA,EAAE,OAAO,IAAIoM,EAAEtN,EAAE,OAAO,GAAUkB,IAAP,SAAoBoM,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,KAAK,CAAC,GAAUA,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,GAAEpM,EAAEoM,EAAE,CAAC,EAAE,QAAQ,eAAetN,EAAE,OAAO,SAAS,GAAK,EAAE,CAAC,EAAE,QAAQ,eAAekB,EAAE,YAAY,EAAEA,EAAE,OAAcA,IAAP,MAAU,GAAKA,EAAE,CAAC,SAAS,GAAK,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,OAAclB,IAAP,MAAU,GAAKA,EAAE,CAAC,EAAE,QAAQ,eAAekB,EAAE,MAAM,SAAS,GAAK,EAAE,EAAE,CAAmD,GAAlD,EAAE,QAAQ,eAAeA,EAAE,YAAY,EAAEA,EAAE,OAAiBA,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,EAAE,QAAQlB,EAAE,MAAM,GAAEkB,EAAElB,EAAE,CAAC,GAAKkB,EAAElB,EAAE,CAAC,SAAS,GAAK,EAAE,EAAE,CAAC,IAAIsN,EAAEtN,EAAE,OAAO,GAAUsN,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,EAAE,QAAQA,EAAE,MAAM,GAAEpM,EAAEoM,EAAE,CAAC,GAAKpM,EAAEoM,EAAE,CAAC,EAAE,QAAQ,eAAetN,EAAE,MAAM,SAAS/H,GAAE,EAAE,CAAC,IAAI+H,EAAE,GAAG,IAAIkB,IAAWlB,IAAP,KAAS,GAAKkB,EAAE,CAAQA,IAAP,KAAS,GAAKlB,EAAE,CAACA,EAAE,QAAQkB,EAAE,MAAM,GAAElB,EAAEkB,EAAE,CAAClB,EAAE,MAAMkB,EAAE,MAAM,GAAKlB,EAAEkB,EAAE,CAAC,GAAKlB,EAAEkB,EAAE,CAAC,GAAGA,GAA8O,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAImK,EAAWnK,EAAE,QAAX,IAAK,GAAoB,KAARA,EAAE,MAAW,EAAE,QAAQhJ,GAAG,EAAE,MAAMoV,EAAE,EAAE,MAAMjC,EAAE,IAAIgC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgBA,EAAE,IAAIpB,EAAEjM,EAAE,YAAmL,GAAvK,EAAE,QAAmB,OAAOiM,GAAlB,UAA4BA,EAAEA,EAAE,eAAed,EAAE,EAAEnL,EAAE,yBAAsC,OAAOiM,GAApB,aAAwB,EAAEA,EAAEqB,EAAEjC,EAAE,CAAC,EAASY,GAAP,KAAqBZ,EAAElT,GAAE,EAAE,CAACkT,EAAEY,EAAE,CAAC,EAAE,MAAMZ,GAAmB,OAAOrL,EAAE,0BAAtB,YAA6D,OAAOkB,EAAE,yBAAtB,aAA6D,OAAOA,EAAE,2BAAtB,YAA8D,OAAOA,EAAE,oBAAtB,YAA0C,GAAG,EAAEA,EAAE,MAAmB,OAAOA,EAAE,oBAAtB,YAA0CA,EAAE,oBAAoB,CAAc,OAAOA,EAAE,2BAAtB,YAAiDA,EAAE,2BAA2B,CAAClB,IAAIkB,EAAE,OAAOhJ,GAAG,oBAAoBgJ,EAAEA,EAAE,MAAM,KAAK,CAAQmM,EAAE,QAAT,MAAgB,EAAEA,EAAE,MAAM,OAAO,GAAG,EAAEA,EAAE,MAAM,EAAEA,EAAE,QAAQ,EAAE,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAEpB,GAAOjM,EAAE,SAAN,EAAa,EAAE,MAAMA,EAAE,OAAO,CAAuB,IAAtB,EAAEiM,EAAEjM,EAAE,GAAGkB,EAAE,MAAM,EAAE,CAAC,EAAM,EAAE+K,EAAE,EAAE,EAAEA,EAAEjM,EAAE,OAAO,IAAI,CAAC,IAAI2N,EAAE3N,EAAEiM,GAAG,EAAe,OAAO0B,GAApB,WAAsBA,EAAE,KAAKzM,EAAEmM,EAAEC,EAAEnC,EAAE,CAACwC,EAAQA,GAAN,OAAUtC,GAAG,EAAE,CAAC,EAAE,EAAElT,GAAE,EAAE,CAACkV,EAAEM,EAAE,EAAExV,GAAEkV,EAAEM,EAAE,EAAE,EAAE,MAAMN,OAAO,EAAE,MAAM,KAA+B,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,IAAIlC,EAAEjK,EAAE,GAAG,EAAEA,EAAE,SAAS,IAAImK,EAAE,GAAG,GAAGF,EAAE,CAAC,EAAE,GAAG,EAAE,GAAGE,GAAG,GAAG,EAAE,IAAIgC,EAAE,GAAG,GAAGrN,EAAE,CAACqL,EAAE,GAAG,GAAGgC,EAAE,CAAC,IAAIpB,EAAEZ,EAAEA,EAAE,EAAyC,MAAvC,IAAGF,GAAG,GAAGc,GAAG,GAAG,SAAS,GAAG,CAAC,IAAIA,EAAE,GAAGA,EAAQ,CAAC,GAAG,GAAG,GAAG,GAAGjM,EAAE,CAACqL,EAAEiC,GAAGjC,EAAEF,EAAE,SAASkC,EAAEnM,EAAE,CAAC,MAAM,CAAC,GAAG,GAAGmM,EAAEC,GAAGjC,EAAEF,EAAE,SAASjK,EAAE,CAA2D,SAAS,GAAK,EAAE,CAAQ,MAAP,MAAK,EAAaA,IAAJ,EAAM,GAAG,IAAIlC,GAAGkC,EAAE,CAAC7I,GAAG,GAAG,EAAE,SAAS,GAAK,EAAE,EAAE,CAAC,OAAO6I,IAAIlB,IAAQkB,IAAJ,GAAO,EAAEA,GAAI,EAAElB,IAAIkB,IAAIA,GAAGlB,IAAIA,EAAoH,SAAS,IAAK,CAAC,GAAU,KAAP,KAAU,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,OAAO,GAAG,SAAS,IAAM,CAAC,GAAG,EAAE,GAAG,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,KAAK,MAAM,KAAK,KAAK,KAAK,CAAC,SAAS,IAAM,CAAoH,OAA5G1H,IAAP,KAAiB,KAAP,MAAW,GAAG,CAAC,EAAE,GAAG,EAAG,IAAM,GAAG,GAAG,CAAC,EAAE,EAAG,IAAWA,EAAG,OAAV,MAAgB,GAAG,CAAC,EAAE,EAAG,EAAG,KAAK,IAAM,GAAG,GAAG,CAAC,EAAE,EAAGA,EAAG,MAAaA,EAAG,SAAS,IAAM,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,EAAG,GAAG,KAAK,SAAS,GAAK,EAAE,EAAE,CAAC,OAAmB,OAAO0H,GAApB,WAAsBA,EAAEkB,EAAE,CAAClB,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,CAAoB,GAAnB,GAAG,IAAK,CAAC,EAAG,IAAM,CAAI,GAAG,CAAC,IAAImL,EAAE7S,EAAG,MAAmB,GAAb,EAAE6S,EAAE,SAAmB,KAAP,OAAY,EAAE,GAAG,IAAIA,EAAE,CAAUmC,IAAT,IAAK,IAAO,CAAC,GAAG,OAAOnC,EAAE,CAAC,EAAE7S,EAAG,cAAc,EAAG,GAAE4I,EAAEiK,EAAEmC,EAAE,OAAO,CAAC,EAAEA,EAAE,WAAkBA,IAAP,MAA6B,MAAnB,GAAG,cAAcnC,EAAQ,CAACA,EAAEnL,EAAE,CAAC,MAAM,CAAC1H,EAAG,cAAc0H,EAAE,CAAoJ,MAAnJ,GAAEkB,IAAI,GAAkB,OAAOlB,GAApB,WAAsBA,GAAG,CAACA,EAAWsN,IAAT,IAAK,GAAWtN,EAALsN,EAAEtN,EAAE,CAAG,EAAG,cAAckB,EAAE,EAAE,EAAG,MAAM,CAAC,KAAK,KAAK,SAAS,KAAK,CAAC,EAAE,EAAE,SAAS,GAAK,KAAK,KAAK,GAAGA,EAAE,CAAO,CAAC5I,EAAG,cAAc4I,EAAE,CAAC,SAAS,GAAK,EAAE,EAAE,CAAwC,GAAvC,GAAG,IAAK,CAAC,EAAG,IAAM,CAAC,EAAWlB,IAAT,IAAK,GAAM,KAAKA,EAAY1H,IAAP,KAAU,CAAC,IAAIgV,EAAEhV,EAAG,cAAc,GAAUgV,IAAP,MAAiBtN,IAAP,KAAS,CAAC,IAAImL,EAAEmC,EAAE,GAAG,EAAE,GAAUnC,IAAP,KAAS,EAAE,CAAC,MAAM,CAAC,IAAI,IAAIE,EAAE,EAAEA,EAAEF,EAAE,QAAQE,EAAErL,EAAE,OAAO,IAAI,GAAG,CAAC,GAAGA,EAAEqL,GAAGF,EAAEE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAGF,EAAE,OAAOmC,EAAE,IAAiC,MAA7B,GAAEpM,GAAG,CAAC,EAAG,cAAc,CAACA,EAAElB,EAAE,CAAQkB,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,GAAGA,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,OAAOoM,EAAE,KAAK,KAAK,CAAQ,KAAP,OAAY,GAAG,IAAI,KAAK,EAAE,GAAG,IAAItN,EAAE,CAAUsN,IAAT,IAAK,GAAM,GAAG,IAAItN,EAAEkB,EAAE,KAAK,CAAC,IAAI,EAAEoM,EAAStN,EAAE,OAAT,MAAe,EAAEA,EAAE,KAAK,EAAE,KAAKkB,GAAG,SAAS,IAAM,CAAC,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,SAAS3I,IAAK,EAAo/B,SAAS,GAAK,EAAE,CAAkB,OAAjB,QAAQ,MAAM2I,EAAE,CAAQ,KAAK,SAAS1I,IAAK,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI+T,EAAE,EAAE,CAACvP,EAAE,IAAI,IAAqgB,MAAjgB,GAAE,CAAC,YAAY,KAAK,cAAcgD,EAAE,qBAA8BmL,IAAT,IAAK,GAAM,MAAMA,EAAE,OAAO,EAAE,WAAW,KAAK,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,KAAK,eAAenO,EAAE,YAAYuP,EAAE,yBAAyB,EAAE,CAAC,oBAAoB,EAAE,CAAC,kBAAkB,EAAE,CAAC,QAAiBlB,IAAT,IAAK,GAAM,GAAKA,EAAE,WAAoBgC,IAAT,IAAK,GAAM7U,GAAI6U,EAAE,aAAsBpB,IAAT,IAAK,GAAMzT,GAAIyT,EAAE,aAAsB0B,IAAT,IAAK,GAAMnV,GAAImV,EAAE,aAAsBP,IAAT,IAAK,GAAM5U,GAAI4U,EAAE,CAAC,EAAE3U,GAAIuH,EAAE,EAAE,KAAKsN,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,GAAKtN,EAAEkB,EAAE,KAAKoM,EAAEtQ,EAAEiC,GAAG,KAAKvG,GAAG,CAAC,EAAE,KAAKwI,EAAE,CAAQlB,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,kBAAyBsN,IAAP,KAAS,EAAE,mBAAmB,EAAE,eAAe,IAAIF,EAAE,CAAC,KAAKpN,EAAE,KAAK,UAAU,CAAC,IAAIA,EAAEkB,EAAE,YAAY,EAAE,KAAKkM,EAAE,CAAKpN,EAAE,SAAN,GAAc,GAAKkB,EAAE,EAAE,gBAAgBoM,EAAE,eAAenC,EAAE,SAASE,EAAE,cAAcgC,EAAE,QAAQpB,EAAE,YAAY0B,EAAE,CAAU,OAAT,EAAE,IAAIP,EAAE,CAAQA,EAAE,SAAS3U,GAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,MAAMuH,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,cAAcmL,EAAE,SAASmC,EAAE,eAAejC,EAAE,aAAagC,EAAE,CAAC,SAAS,GAAI,EAAE,EAAE,CAAgB,GAAf,EAAEnM,EAAE,QAAQlB,EAAE,CAAUkB,GAAN,MAAoB,OAAOA,GAAlB,SAAoB,MAAM,MAAM,iMAAiM,OAAOA,EAAE,YAAY,CAAC,OAAOA,EAAE,SAAS,GAAI,EAAE,EAAE,CAAC,IAAIoM,EAAEpM,EAAE,aAAa,EAAElB,EAAE,CAAC,EAAEkB,EAAE,aAAa,EAAElB,EAAE,CAAQkB,EAAE,cAAT,MAA4D,EAAE,OAAO,EAAE,EAAE,WAAWlB,IAA9D,EAAE,OAAO,EAAEkB,EAAE,YAAY,QAAQlB,EAAE,EAA8B,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAiB,IAAhB,GAAG,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAM,EAAEsN,EAAEnC,EAAEE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAG,KAAK,EAAEiC,EAAEnC,EAAEE,EAAE,CAAQ,OAAP,IAAM,CAAQnK,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAImK,EAAEiC,EAAE,QAAQ,CAACD,EAAElC,EAAE,kBAAkB,GAAUkC,GAAP,KAAqB,CAAC,IAAIpB,EAAEjM,EAAE,cAAc,GAAgB,OAAOsN,EAAE,iBAAtB,WAAsC,EAAErB,MAAM,CAAuB,IAAI,IAAI0B,IAA9B,GAAEL,EAAE,iBAAiB,CAAcA,EAAE,GAAG,EAAEK,KAAKN,GAAG,MAAM,MAAM,EAAI,IAAI,GAAKlC,EAAE,EAAE,UAAUwC,EAAE,CAAC,CAAC,EAAExV,GAAE,EAAE,CAAC8T,EAAEqB,EAAE,CAAC,EAAE,cAAcnC,EAAE,GAAIjK,EAAElB,EAAEqL,EAAE,CAAC,EAAE,cAAcY,OAAO,GAAI/K,EAAElB,EAAEqL,EAAE,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,GAAGnK,GAAGA,EAAE,aAAa,CAA4B,IAAI,IAAIoM,IAAnC,GAAEnV,GAAE,EAAE,CAAC6H,EAAE,CAAC,EAAEkB,EAAE,aAA0BA,EAAWlB,EAAEsN,KAAX,IAAK,KAAW,EAAEA,GAAGpM,EAAEoM,IAAI,OAAOtN,EAAE,OAAOA,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAgB,OAAOsN,GAApB,WAAsB,GAAGA,EAAE,WAAWA,EAAE,UAAU,iBAAiB,CAAC,EAAE,GAAKA,EAAEtN,EAAE,cAAc,CAAC,IAAIqN,EAAEC,EAAE,YAAY,EAAE,IAAIA,EAAEnC,EAAa,OAAOkC,GAAlB,UAA4BA,EAAEA,EAAE,eAAehC,EAAE,CAAC,GAAKgC,EAAEC,EAAEnC,EAAEE,EAAE,CAAC,GAAKnK,EAAElB,EAAEqN,EAAEC,EAAE,KAAK,CAAC,EAAE,GAAKA,EAAEtN,EAAE,cAAc,CAAC,EAAE,GAAKkB,EAAElB,EAAEsN,EAAEnC,EAAEkC,EAAE,CAAC,IAAIpB,EAAM,KAAJ,EAAO,GAAc,OAAOZ,GAAlB,UAA4BA,GAAgB,OAAOA,EAAE,QAAtB,YAAuCA,EAAE,WAAX,IAAK,GAAe,GAAKA,EAAEiC,EAAEnC,EAAEkC,EAAE,CAAC,GAAKnM,EAAElB,EAAEqL,EAAEiC,EAAE,SAASrB,EAAE,CAAC,EAAEjM,EAAE,YAAY,EAAE,YAAY,GAAKmL,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAIjK,EAAElB,EAAEqL,EAAE,QAAQ,CAAC,EAAE,YAAYF,QAAQ,GAAIjK,EAAElB,EAAEqL,EAAE,KAAK,CAAC,GAAc,OAAOiC,GAAlB,SAAoB,CAAC,OAAOA,EAAP,CAAU,KAAK3U,GAAG,KAAK,GAAG,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,GAAIuI,EAAElB,EAAEmL,EAAE,SAAS,CAAC,OAAO,KAAKvT,GAAE,GAAIsJ,EAAElB,EAAEmL,EAAE,SAAS,CAAC,OAAO,KAAK,GAAG,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,KAAKxT,GAAE,EAAE,CAAC,EAAEqI,EAAE,gBAAgB,EAAEA,EAAE,eAAe,EAAEmL,EAAE,SAAS,EAAEA,EAAE,SAAS,EAAE,IAAI,IAAI,IAAIwC,EAAE,CAAC,GAAG,KAAK,cAAc,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC,SAAS,EAAE,uBAAuB1B,EAAE,YAAY,KAAK,CAACmB,EAAE3U,GAAIyI,EAAEmK,EAAE,OAAO,OAAOsC,EAAEtC,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,KAAK+B,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,IAAIb,EAAE9T,GAAIyI,EAAE,EAAE,KAAKmK,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,gBAAgBsC,EAAE,EAAE,eAAepB,EAAE,GAAG,CAAC,GAAG,GAAKrL,EAAElB,EAAEmL,EAAE,CAACjK,EAAE,cAAc,sBAAsBqL,EAAE,gBAAgBA,EAAE,cAAcA,EAAE,OAAO,KAAK,WAAiB,CAAC,EAAE,OAAO,EAAE,GAAIoB,EAAEpB,EAAE,CAAKoB,EAAE,eAAN,EAAmB,MAAM,QAAQ3N,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAIkB,EAAElB,EAAE,QAAQ,CAAC,EAAE,gBAAgBsN,EAAE,EAAE,eAAejC,EAAE,EAAE,GAAKnK,EAAEmM,EAAEC,EAAEF,EAAEnB,EAAEjM,EAAE,cAAcA,EAAE,QAAQA,EAAE,YAAY,CAAC,EAAE,YAAY,KAAKA,EAAE,CAAC,OAAO,GAAc,OAAOsN,GAAlB,UAA4BA,EAAE,OAAOA,EAAE,SAAT,CAAmB,KAAKxV,GAA2B,GAAzB,EAAE,GAAKoJ,EAAElB,EAAEsN,EAAE,OAAOnC,EAAEE,EAAE,CAAQ,KAAJ,EAAO,CAAC,EAAErL,EAAE,YAAY,EAAE,YAAY,GAAKsN,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAIpM,EAAElB,EAAEmL,EAAE,QAAQ,CAAC,EAAE,YAAYmC,QAAQ,GAAIpM,EAAElB,EAAEmL,EAAE,CAAC,OAAO,KAAK,GAAG,EAAEmC,EAAE,KAAK,EAAE,GAAGA,EAAEnC,EAAE,CAAC,GAAKjK,EAAElB,EAAEsN,EAAEnC,EAAEE,EAAE,CAAC,OAAO,KAAKtE,GAAwL,GAAtL,EAAEoE,EAAE,SAAS,EAAEmC,EAAE,SAAS,EAAEnC,EAAE,MAAM,EAAEmC,EAAE,eAAe,EAAE,eAAenC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,OAAOc,EAAE,MAAaA,IAAP,KAAS,EAAEA,EAAE,MAAM,EAAE,QAAQqB,EAAE,YAAYD,EAAE,MAAMlC,EAAE,CAAC,EAAE,QAAQA,EAAE,GAAIjK,EAAElB,EAAEqL,EAAE,CAAC,EAAE,GAAanK,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,EAAEA,EAAE,YAAY,EAAE,QAAQ,eAAeiK,IAAI,GAAGjK,EAAE,QAAQ,cAAciK,EAAE,EAAE,GAAGjK,EAAE,OAAO,EAAE,QAAQA,EAAE,OAAO,KAAK,GAAE,EAAEiK,EAAE,SAAS,EAAEA,EAAEmC,EAAE,eAAe,CAAC,GAAIpM,EAAElB,EAAEmL,EAAE,CAAC,OAAO,KAAKvB,GAAG,EAAE0D,EAAE,MAAM,EAAEjC,EAAEiC,EAAE,SAAS,CAAC,EAAE,GAAGA,EAAEnC,EAAE,CAAC,GAAKjK,EAAElB,EAAEsN,EAAEnC,EAAE,IAAK,GAAE,CAAC,OAAO,MAAM,MAAM,EAAI,IAAUmC,GAAN,KAAQA,EAAE,OAAOA,EAAE,GAAG,CAAC,CAAyK,OAAxK,EAAEtN,EAAE,eAAe,EAAE,GAAKqL,EAAE,OAAOiC,EAAEnC,EAAEjK,EAAE,cAAcmK,EAAE,cAAc,CAAC,EAAE,eAAe,CAAC,EAAE,EAAEA,EAAE,cAAc,EAAE,cAAc,GAAKY,EAAEqB,EAAEnC,EAAE,CAAC,GAAKjK,EAAElB,EAAEqN,EAAE,CAAC,EAAE,cAAcpB,EAASqB,EAAP,CAAU,IAAI,OAAO,IAAI,OAAO,IAAI,KAAK,IAAI,MAAM,IAAI,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAM,MAAM,QAAQ,EAAE,OAAO,KAAK,KAAKA,EAAE,IAAI,CAAC,EAAE,eAAe,CAAC,GAAG,SAAS1U,GAAI,EAAE,EAAE,EAAE,CAAU,GAAT,EAAE,KAAK0U,EAAgB,OAAOA,GAAlB,UAA4BA,EAAE,CAAC,OAAOA,EAAE,SAAT,CAAmB,KAAK,GAAE,GAAKpM,EAAElB,EAAEsN,EAAE,KAAKA,EAAE,MAAMA,EAAE,IAAI,CAAC,OAAO,KAAK5V,GAAE,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,KAAKkS,GAAG,IAAIuB,EAAEmC,EAAE,MAAM,EAAEnC,EAAEmC,EAAE,SAAS,CAAC,GAAIpM,EAAElB,EAAEsN,EAAE,CAAC,OAAO,GAAG,GAAEA,EAAE,CAAC,CAAC,GAAKpM,EAAElB,EAAEsN,EAAE,CAAC,OAA0G,GAA9E,OAAOA,GAAlB,WAAHA,EAAuB,EAAE,MAAM,EAAE,IAAIA,EAAE,KAAKA,EAAE,cAAc,EAAe,OAAOnC,GAApB,WAAsBA,EAAE,MAASA,AAAI,IAAEA,EAAE,KAAKmC,EAAE,CAAE,CAAY,GAAX,EAAEnC,EAAE,MAAM,CAAI,CAACmC,EAAE,KAAK,CAAC,IAAIjC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAKiC,EAAE,MAAM,CAAC,EAAEnC,EAAE,MAAM,OAAO,CAACmC,EAAE,MAAM,GAAKpM,EAAElB,EAAEqL,EAAE,CAAC,OAA2C,KAApC,GAAE,OAAO,UAAU,SAAS,KAAKiC,EAAE,CAAO,MAAM,EAAI,GAAuBpM,IAApB,kBAAsB,qBAAqB,OAAO,KAAKoM,EAAE,CAAC,KAAK,KAAK,CAAC,IAAIpM,EAAE,CAAC,CAAY,OAAOoM,GAAlB,UAAqB,EAAEtN,EAAE,eAAe,EAAE,eAAe,GAAKA,EAAE,eAAe,OAAOsN,EAAEpM,EAAE,cAAciK,EAAE,eAAe,EAAa,OAAOmC,GAAlB,WAAsB,EAAEtN,EAAE,eAAe,EAAE,eAAe,GAAKA,EAAE,eAAe,OAAO,GAAGsN,EAAEpM,EAAE,cAAciK,EAAE,eAAe,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,IAAI,IAAIA,EAAEmC,EAAE,OAAOjC,EAAE,EAAEA,EAAEF,EAAE,IAAI,CAAC,IAAIkC,EAAErN,EAAE,YAAY,EAAE,YAAY,GAAKqN,EAAElC,EAAEE,EAAE,CAAC,GAAG,CAAC,GAAKnK,EAAElB,EAAEsN,EAAEjC,GAAG,QAAQ,CAAC,EAAE,YAAYgC,IAAI,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,IAAIlC,EAAEnL,EAAE,eAAe,cAAcqL,EAAErL,EAAE,cAAcqN,EAAErN,EAAE,QAAQ,GAAG,CAAC,OAAOpH,GAAIsI,EAAElB,EAAEsN,EAAE,OAAOF,EAAE,CAAC,GAAG,IAAM,CAAY,OAAOA,GAAlB,WAA4BA,GAAgB,OAAOA,EAAE,MAAtB,WAA2B,KAAM,GAAE,eAAe,cAAcjC,EAAE,EAAE,cAAcE,EAAE,EAAE,QAAQgC,EAAEpV,GAAEoV,EAAE,CAACD,EAAE,EAAEA,EAAE,IAAInB,EAAEjM,EAAE,eAAe2N,EAAElV,GAAIyI,EAAE+K,EAAE,OAAO,OAAO,KAAKA,EAAE,cAAcA,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,SAAS,KAAK0B,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,GAAKzM,EAAElB,EAAE,KAAKA,EAAE,gBAAgB2N,EAAE3N,EAAE,SAASA,EAAE,cAAcA,EAAE,QAAQA,EAAE,YAAY,CAAC,KAAK,EAAE,KAAKkB,EAAEA,EAAE,CAAC,EAAE,eAAe,cAAciK,EAAE,EAAE,cAAcE,EAAE,EAAE,QAAQgC,EAAE,GAAEA,EAAE,EAAE,SAAS,GAAK,EAAE,CAAC,IAAIrN,EAAEkB,EAAE,gBAAgB,EAAEA,EAAE,eAAe,EAAE,OAAO,EAAE,GAAK,KAAKlB,EAAEkB,EAAE,CAAC,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,IAAIiK,EAAEjK,EAAE,gBAAgB,EAAE,eAAe,OAAO,EAASiK,IAAP,MAAU,EAAE,kBAAsBnL,EAAE,SAAN,IAAe,EAAE,OAAO,EAASA,EAAE,cAAT,MAAsBA,EAAE,YAAY,KAAK,KAAK,IAAI,EAAE,eAAemL,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EAAE,EAAWmC,IAAT,IAAK,GAAM,MAAM,EAAI,IAAI,CAAC,CAACA,EAAE,EAAE,YAAYtN,EAAE,QAAQkB,EAAE,CAACiK,EAAE,eAAenL,EAAE,yBAAyB,KAAKmL,EAAE,EAAEA,EAAE,uBAAuB,SAAS,SAAS,EAAE,CAAC,OAAO,GAAKjK,EAAElB,EAAEsN,EAAE,GAAG,CAACnC,EAAE,uBAAuB,OAAO,CAAC,EAAE,kBAAsBnL,EAAE,kBAAN,IAAwB,EAAEA,EAAE,WAAWmL,GAAG,GAAG,SAAS,GAAI,EAAE,EAAE,CAAC,GAAOnL,EAAE,OAAO,SAAb,GAAyBA,EAAE,SAAS,SAAf,GAA8BA,EAAE,SAAS,GAAG,WAArB,KAA8B,CAAC,IAAIsN,EAAEtN,EAAE,SAAS,GAAG,EAAE,GAAGA,EAAE,GAAG,EAAE,cAAc,CAAC,EAAMsN,EAAE,SAAN,GAAc,GAAIpM,EAAEoM,EAAE,MAAM,EAAE,kBAAkB,KAAKtN,EAAE,CAAC,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,GAAUA,IAAP,KAAS,CAAC,GAAGsN,EAAE,cAAc,CAAC,GAAUpM,EAAE,uBAAT,KAA8B,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,EAAE,qBAAqBoM,EAAE,EAAE,mBAAuBpM,EAAE,mBAAN,IAAyB,EAAE,aAAa1I,GAAI,EAAE0I,EAAE,aAAalB,GAAG,OAAO,EAAE,eAAeA,EAAE,oBAAwBA,EAAE,eAAN,GAAoBsN,EAAE,eAAmBA,EAAE,SAAN,GAAc,GAAItN,EAAEsN,EAAE,CAACtN,EAAE,eAAekB,EAAE,oBAAoB,KAAKlB,EAAE,CAACA,EAAE,uBAAuB,QAAQ,GAAKkB,EAAE,CAAClB,EAAE,uBAAuB,OAAO,EAAEsN,EAAE,eAAmBA,EAAE,SAAN,IAAe,GAAItN,EAAEsN,EAAE,CAAKtN,EAAE,kBAAkB,SAAxB,GAAgCA,EAAE,eAAekB,EAAE,kBAAkB,KAAKlB,EAAE,GAAG,EAAE,kBAAsBkB,EAAE,kBAAN,IAAwB,EAAEA,EAAE,WAAWA,GAAG,EAAE,SAAS,GAAK,EAAE,CAAC,GAAOA,EAAE,SAAN,EAAa,CAAC,IAAIlB,EAAE,GAAGsN,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAInC,EAAE,GAAG,GAAGjK,EAAE,cAAc,GAAG,CAAC,IAAImK,EAAEgC,EAAEnM,EAAE,YAAY,IAAI,EAAE,EAAEmK,EAAEgC,EAAE,OAAO,IAAI,CAAC,IAAIpB,EAAEoB,EAAEhC,GAAOsC,EAAEzM,EAAEkM,EAAEnB,EAAE,eAAe,GAAOmB,EAAE,SAAN,EAAa,CAAC,GAAEnB,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAI0B,EAAE1B,EAAEA,EAAE,KAAK,CAAC0B,EAAE,cAAc,sBAAsBP,EAAE,gBAAgBA,EAAE,cAAcA,EAAE,OAAO,KAAK,WAAiB,CAACnB,EAAE,SAAS,OAAOA,EAAE,CAAC,EAAE,OAAO,EAAE,GAAK0B,EAAE1B,EAAE,gBAAgBmB,EAAE,OAAOlM,EAAE,CAAC,GAAG,IAAM,CAAY,OAAOA,GAAlB,UAA4BA,GAAgB,OAAOA,EAAE,MAAtB,WAA2B,CAAC,IAAIqL,EAAEN,EAAE,KAAK,EAAE,KAAKM,EAAEA,EAAE,KAAK,CAAC,EAAE,SAAS,OAAON,EAAE,CAAC,EAAE,OAAO,EAAE,IAAIjP,EAAEiP,EAAE,gBAAgBzN,EAAE0C,EAAEqM,EAAE,GAAII,EAAEnP,EAAE,CAA4K,GAApKxB,IAAP,KAAS,GAAI2Q,EAAEnP,EAAE,EAAE,EAAE,eAAexB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EAAE,EAAE,YAAYuQ,EAAEvQ,EAAE,eAAe2Q,EAAE,yBAAyB,KAAK3Q,EAAE,GAAG,EAAE,kBAAyB2Q,EAAE,kBAAN,EAAsB,CAAC,IAAIxB,EAAEwB,EAAE,WAAW,GAAG,KAAK,EAAE,OAAO,EAAEtC,EAAE,CAAQnK,EAAE,cAAT,MAAsB,GAAKA,EAAEA,EAAE,YAAY,OAAOlB,EAAE,CAAC,GAAIkB,EAAElB,EAAE,CAAC,GAAIkB,EAAElB,EAAE,QAAQ,CAAC,GAAGmL,EAAE,GAAG,QAAQmC,EAAEA,IAAI,IAAIrV,GAAE+H,EAAE,GAAG,SAASnH,GAAI,EAAE,EAAE,EAAE,CAAoB,OAAnB,EAAE,cAAc,CAAC,EAASyU,EAAE,OAAT,CAAiB,IAAK,GAAE,IAAInC,EAAE,EAAE,GAAG,EAAE,gBAAwJ,MAAxI,GAAE,eAAe,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAEjK,EAAE,cAAc,EAAE,KAAK,iBAAiB,CAAC,EAAE,KAAKA,EAAE,kBAAkB,CAAC,EAAEiK,EAAE,SAAS,GAAG,CAAC,EAAE,KAAKjK,EAAE,CAAQlB,EAAE,KAAK,gBAAgB,CAAC,IAAK,GAAE,EAAE,OAAO,EAAE,IAAIqL,EAAE,CAAC,EAAE,EAAEiC,EAAE,OAAO,IAAID,EAAE,EAAE,EAAEC,EAAE,SAAS,IAAI,IAAIrB,EAAE,EAAEA,EAAEqB,EAAE,OAAO,IAAI,CAAC,IAAI,EAAEA,EAAErB,GAAGoB,EAAEhC,EAAE,MAAM,IAAI,EAAE,KAAKF,EAAEkC,GAAG,CAAC,EAAE,GAAKnM,EAAElB,EAAEqL,EAAE,CAAC,KAAKgC,EAAElC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAKA,EAAEkC,GAAG,CAA8B,OAA7B,EAAElC,EAAE,SAAS,EAAEnL,EAAE,KAAKmL,EAAEkC,GAAG,EAAShC,EAAE,QAAQ,MAAM,MAAM,EAAI,IAAI,CAAC,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,IAAIF,EAAEmC,EAAE,SAAS,GAAUnC,IAAP,KAAS,OAAOtS,GAAIqI,EAAElB,EAAEsN,EAAE,CAAoB,GAAnB,EAAE,cAAc,CAAC,EAAKnC,EAAE,kBAAkB,OAAOjK,EAAE,cAAc,uBAAuB,EAAEiK,EAAE,YAAYnL,EAAE,KAAK,YAAkB,CAACA,EAAE,KAAK,YAAY,CAACmL,IAAInL,EAAE,KAAK,eAAe,CAAC,EAAE,GAAEmL,EAAE,CAACnL,EAAE,KAAKmL,EAAE,CAACnL,EAAE,KAAK,IAAI,EAAEA,EAAE,KAAK,eAAe,EAAEnH,GAAIqI,EAAElB,EAAEsN,EAAE,CAAC,EAAE,CAAC,CAACpM,EAAE,cAAc,sBAAsBlB,EAAE,KAAK,YAAkB,CAACkB,EAAE,GAAG,EAAEiK,EAAE,aAAa,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAEA,EAAE,kBAAkB,QAAQjK,EAAE,kBAAkB,KAAKiK,EAAE,CAAC,IAAIE,EAAEnK,EAAE,cAAkBmM,EAAE,EAAE,iBAAiG,MAAhF,GAAEhC,EAAE,eAAegC,EAAE,SAAS,GAAG,CAAC,EAAE,EAAE,GAAGhC,EAAE,GAAKrL,EAAEkB,EAAE,cAAciK,EAAE,CAAC,GAAIjK,EAAElB,EAAEsN,EAAE,CAAQtN,EAAE,KAAK,YAAkB,CAAC,GAAGmL,EAAE,SAASjK,EAAE,qBAAqB,MAAO,GAAE,cAAc,EAAE,gBAAgBA,EAAE,oBAAoB,KAAKiK,EAAE,CAAC,GAAKnL,EAAEkB,EAAE,cAAciK,EAAE,GAAG,CAACtS,GAAIqI,EAAElB,EAAEsN,EAAE,CAACtN,EAAE,KAAK,YAAkB,CAAsF,GAArF,EAAE,cAAc,sBAAsBA,EAAE,KAAK,WAAiB,CAAC,EAAEmL,EAAE,kBAAyBmC,EAAE,SAAN,EAAa,MAAM,MAAM,EAAI,IAAI,CAAC,CAAoF,OAAnF,GAAKpM,EAAElB,EAAEsN,EAAE,GAAG,CAAC,EAAE,CAAC,CAACpM,EAAE,cAAc,sBAAsBlB,EAAE,KAAK,YAAkB,CAAQkB,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,CAA0D,OAAzD,GAAKlB,EAAEkB,EAAE,cAAcoM,EAAE,cAAcA,EAAE,GAAG,CAAC,GAAKpM,EAAElB,EAAEsN,EAAE,CAAQ,GAAKtN,EAAEsN,EAAE,cAAc,CAAC,SAAS,GAAK,EAAE,EAAE,EAAE,CAAC,IAAI,IAAInC,EAAEmC,EAAE,kBAAkBjC,EAAE,EAAEA,EAAEF,EAAE,OAAO,IAAI,GAAKjK,EAAElB,EAAEsN,EAAEnC,EAAEE,GAAG,CAA0lB,GAAzlB,EAAE,OAAO,EAAE,EAAEnK,EAAE,cAAc,EAAEoM,EAAE,GAAG,EAAEA,EAAE,cAAc,EAAE,KAAKpM,EAAE,kBAAkB,CAAC,EAAE,6BAA6BlB,EAAE,KAAK,QAAQ,EAAE,EAAE,6BAA6B,CAAC,EAAEA,EAAE,KAAK,4aAA4a,EAAYmL,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,CAA4E,MAA3E,GAAEmC,EAAE,SAAS,GAAG,CAAC,EAAE,KAAKnC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,KAAKjK,EAAE,cAAc,CAAC,EAAE,KAAKoM,EAAE,CAAQtN,EAAE,KAAK,eAAe,CAAC,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,CAAC,GAAOmL,EAAE,SAAN,EAAa,MAAM,CAAC,EAAE,IAAIE,EAAEF,EAAE,GAAG,GAAQE,IAAL,GAAO,CAAC,IAAS,EAAE,GAAGiC,EAAE,iBAAb,GAA4B,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,OAAO,GAAKpM,EAAElB,EAAEmL,EAAE,CAAoc,OAAnc,GAAKjK,EAAElB,EAAEmL,EAAE,CAAC,EAAEjK,EAAE,cAAc,EAAE,KAAKA,EAAE,kBAAkB,CAAC,EAAE,4BAA4BlB,EAAE,KAAK,QAAQ,EAAE,EAAE,4BAA4B,CAAC,EAAEA,EAAE,KAAK,yMAAyM,EAAE,EAAE,KAAKkB,EAAE,cAAc,CAAC,EAAEmK,EAAE,SAAS,GAAG,CAAC,EAAE,KAAKA,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,KAAKnK,EAAE,kBAAkB,CAAC,EAAE,KAAKmK,EAAE,CAAQrL,EAAE,KAAK,eAAe,CAAC,SAAS,GAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAIsN,EAAEpM,EAAE,qBAAqB,GAAUoM,IAAP,MAAcpM,EAAE,mBAAN,EAAuB,CAAC,GAAKA,EAAElB,EAAEsN,EAAE,CAAC,EAAE,qBAAqB,KAAK,IAAInC,EAAEjK,EAAE,cAAc,gBAAgB,IAAI,EAAE,EAAEoM,EAAEnC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAKA,EAAEmC,GAAG,CAAC,EAAEnC,EAAE,QAAQnL,EAAE,KAAKmL,EAAEmC,GAAG,CAAC,IAAIjC,EAAEgC,EAAEnM,EAAE,yBAAyB,IAAI,EAAE,EAAEmK,EAAEgC,EAAE,OAAO,IAAI,CAAC,IAAIpB,EAAEoB,EAAEhC,GAAG,EAAErL,EAAE,IAAI2N,EAAEzM,EAAE,cAAckM,EAAEnB,EAAE,GAAGM,EAAEN,EAAE,YAAYjP,EAAEiP,EAAE,aAAazN,EAAEyN,EAAE,oBAA4T,GAAxS,EAAE,KAAK0B,EAAE,kBAAkB,CAAC,EAAE,yBAAyBxC,EAAE,KAAK,QAAQ,EAAE,EAAE,yBAAyB,CAAC,EAAEA,EAAE,KAAK,yLAAyL,EAAYiC,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,CAAuB,GAAtB,EAAE,KAAKA,EAAE,CAAC,EAAE,KAAK,IAAI,CAAIb,GAAGvP,GAAGwB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI+O,EAAE,GAAKhB,GAAG,GAAG,CAAC,EAAE,KAAKgB,EAAE,CAAC,GAAGvQ,GAAGwB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI2N,EAAE,GAAKnP,GAAG,GAAG,CAAC,EAAE,KAAKmP,EAAE,CAAC,GAAG3N,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI0L,EAAE,GAAK1L,EAAE,CAAC,EAAE,KAAK0L,EAAE,CAAC,GAAG,CAACiB,EAAE,KAAK,cAAc,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,EAAEE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAEA,EAAE,CAAC,IAAIwB,EAAE3L,EAAE,oBAAoB,IAAI,EAAE,EAAEmK,EAAEwB,EAAE,OAAO,IAAI,GAAG,CAAC,GAAK3L,EAAElB,EAAE6M,EAAExB,GAAG,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,EAAEA,EAAE,CAAC,OAAO,EAAE,OAAO,EAAEA,EAAE,CAAC,IAAItS,EAAEmI,EAAE,kBAAkB,IAAI,EAAE,EAAEmK,EAAEtS,EAAE,OAAO,IAAI,CAAC,IAAIC,EAAED,EAAEsS,GAAG,EAAE,CAAC,EAAEnK,EAAE,EAAElB,EAAE,IAAI/I,EAAE+B,EAAE,kBAAkB,IAAI,EAAE,EAAE2U,EAAE1W,EAAE,OAAO,IAAI,GAAG,CAAC,GAAKoW,EAAEpB,EAAEjT,EAAE/B,EAAE0W,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAEA,EAAE,CAAC,IAAIlW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAEkW,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAClW,EAAE,CAAC,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,EAAE4T,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAEA,EAAE,CAAC,IAAIlT,EAAE+I,EAAE,oBAAoB,IAAI,EAAE,EAAEmK,EAAElT,EAAE,OAAO,IAAI,GAAG,CAAC,GAAK+I,EAAElB,EAAE7H,EAAEkT,GAAG,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,EAAEA,EAAE,CAAC,OAAO,EAAE,OAAO,EAAEA,EAAE,QAAQ,CAAKnK,EAAE,kBAAN,GAA2BA,EAAE,YAAY,SAAlB,GAA8BA,EAAE,yBAAyB,SAA/B,GAA2CA,EAAE,oBAAoB,SAA1B,GAAkClB,EAAE,KAAK,KAAK,EAAE,SAAS,GAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAIsN,EAAEpM,EAAE,eAAe,EAAE,SAAS,SAAS,EAAE,CAAC,OAAO,GAAKoM,EAAEpM,EAAElB,EAAE,GAAG,CAAC,EAAE,OAAO,CAAQkB,EAAE,cAAT,MAAsB,GAAKA,EAAEA,EAAE,YAAY,OAAOlB,EAAE,CAAC,GAAIkB,EAAElB,EAAE,CAAC,GAAIkB,EAAElB,EAAE,EAAE,SAAS,IAAM,EAAE,SAAS,GAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAIqL,EAAE,CAAC,EAAEgC,EAAE,KAAKpB,EAAE,GAAG0B,EAAE,CAAC,KAAK,SAAS,EAAE,CAAkB,OAAVzM,IAAP,OAAW,GAAGA,GAAS,CAAC,GAAG,QAAQ,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEA,GAAG,CAACkM,EAAE,CAAC,EAA6J,GAA3J,EAAE,GAAKlM,EAAE,GAAKoM,EAAEtN,EAAEA,EAAE,iBAAiB,IAAK,GAAE,CAAC,CAAC,cAAc,EAAE,cAAc,KAAK,CAAC,IAAS,GAAK,IAAK,IAAG,UAAU,CAAC,EAAE,CAAC,IAAI,IAAK,GAAE,IAAK,GAAE,CAAC,GAAKkB,EAAE,CAAC,GAAKA,EAAEiK,EAAE,CAAQjK,EAAE,SAAN,EAAa,EAAE,OAAO,EAAEyM,EAAE,QAAQzM,EAAE,WAAW,SAAaA,EAAE,SAAN,GAAqBA,EAAE,cAAT,KAAqB,CAAC,EAAE,YAAYyM,EAAE,GAAG,CAAC,GAAKzM,EAAEyM,EAAE,OAAO3N,EAAE,CAAC,GAAIkB,EAAElB,EAAE,CAAC,GAAIkB,EAAElB,EAAE,EAAE,GAAGqL,EAAE,MAAMgC,EAAE,GAAG,CAACD,EAAE,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,OAAOnB,EAA63B,SAASuB,EAAE,EAAE,CAAC,IAAI,IAAIxN,EAAE,yDAAyDkB,EAAEoM,EAAE,EAAEA,EAAE,UAAU,OAAO,IAAI,GAAG,WAAW,mBAAmB,UAAUA,GAAG,CAAC,MAAM,yBAAyBpM,EAAE,WAAWlB,EAAE,iHAAkI,SAAS0N,EAAE,EAAE,EAAE,CAAC,GAAO1N,EAAE,SAAN,EAAa,GAAG,IAAIA,EAAE,OAAO,EAAE,KAAKkB,EAAE,QAAQ,IAAI,WAAW,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,WAAW,IAAI,CAAC,GAAG,GAAGA,EAAE,QAAQlB,EAAE,KAAK,CAAC,IAAIsN,EAAE,GAAG,OAAO,GAAG,EAAEtN,EAAE,SAAasN,IAAJ,EAAMpM,EAAE,QAAQ,GAAG,EAAE,GAAG,IAAIlB,EAAE,SAAS,EAAEsN,EAAE,CAAC,GAAG,CAACpM,EAAE,QAAQ,GAAG,CAAC,EAAElB,EAAE,SAASsN,EAAE,EAAE,GAAG,IAAI,WAAW,IAAI,CAAC,GAAG,GAAG,GAAG,IAAItN,EAAE,GAAG,CAAC,IAAIA,EAAE,QAAQ,SAASwV,EAAE,EAAE,EAAE,CAAQ,OAAP,EAAEtU,EAAElB,EAAE,CAAO,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,KAAKkB,EAAE,QAAQ,IAAI,WAAW,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAA0B,SAAS4L,EAAE,EAAE,CAAC,OAAO,GAAG,OAAO5L,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,GAAG,OAAOA,EAAE,CAAC,SAAS,GAAG,EAAE,EAAE,CAAc,OAAOA,EAAE,OAAtB,WAA4BA,EAAE,MAAMlB,EAAE,CAACkB,EAAE,OAAO,CAAqZ,SAAS,GAAG,EAAE,CAA4F,OAAxF,GAAG,KAAK,GAAGA,EAAE,CAAO,CAAC,EAAK,GAAG,KAAK,GAAGA,EAAE,CAAO,CAAC,EAAK,GAAG,KAAKA,EAAE,CAAQ,GAAGA,GAAG,CAAC,GAAE,GAAGA,GAAG,CAAC,EAAQ,CAAC,GAAE,SAAS,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,gBAAoBlB,IAAJ,GAAWA,IAAJ,GAAWA,IAAJ,EAAM,KAAK,cAAcmL,EAAE,KAAK,mBAAmBE,EAAE,KAAK,gBAAgBiC,EAAE,KAAK,aAAapM,EAAE,KAAK,KAAKlB,EAAE,KAAK,YAAYqN,EAAE,KAAK,kBAAkBpB,EAA+zC,SAAS,GAAG,EAAE,CAAC,OAAO/K,EAAE,GAAG,aAAa,CAAkkF,SAAS7H,GAAE,EAAE,CAAC,GAAe,OAAO6H,GAAnB,WAAiC,OAAOA,GAAlB,SAAoB,MAAM,GAAGA,EAAE,EAAE,GAAGA,EAAE,IAAIlB,EAAE,GAAG,KAAKkB,EAAE,CAAC,GAAGlB,EAAE,CAAC,IAAIsN,EAAEnC,EAAE,GAAGE,EAAE,EAAE,IAAI,EAAErL,EAAE,MAAMsN,EAAEpM,EAAE,OAAO,IAAI,CAAC,OAAOA,EAAE,WAAWoM,EAAE,CAAtB,CAAwB,IAAK,IAAG,EAAE,SAAS,MAAM,IAAK,IAAG,EAAE,QAAQ,MAAM,IAAK,IAAG,EAAE,SAAS,MAAM,IAAK,IAAG,EAAE,OAAO,MAAM,IAAK,IAAG,EAAE,OAAO,MAAM,QAAQ,SAAS,IAAIA,IAAI,GAAGpM,EAAE,UAAUmK,EAAEiC,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAGtN,EAAE,EAAEqL,IAAIiC,EAAqBnC,EAAnBA,EAAEjK,EAAE,UAAUmK,EAAEiC,EAAE,CAAG,OAAOpM,EAAoM,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOlB,GAASsN,IAAN,IAAQ,UAAU,WAAWnC,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAWjK,IAAT,IAAK,GAAM,GAAGA,EAAE,EAAWlB,IAAT,IAAK,GAAM,GAAG,EAAE,kBAAkB3G,GAAE2G,EAAE,CAAC,KAAK,CAAC,IAAIqN,EAAE,EAAE,CAAmD,GAAzCC,IAAT,IAAK,IAAOD,EAAE,KAAKrN,EAAE8M,GAAG,GAAGQ,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAanC,IAAT,IAAK,GAAM,IAAI,EAAE,EAAEmC,EAAEnC,EAAE,OAAO,IAAI,EAAE,KAAK,GAAG2B,EAAEzT,GAAE8R,EAAEmC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAYjC,IAAT,IAAK,GAAM,IAAI,EAAE,EAAEF,EAAEE,EAAE,OAAO,IAAI,EAAE,KAAK,GAAGyB,EAAEzT,GAAEgS,EAAEF,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgBkC,EAAE,kBAAkBrN,EAAE,kBAAkB,EAAEkB,EAAE,KAAK,CAAC,cAAc,EAAEA,EAAE,KAAK,CAAC,eAAeA,EAAE,KAAK,SAASA,EAAE,eAAe,EAAE,4BAA4B,CAAC,EAAE,6BAA6B,CAAC,EAAE,yBAAyB,CAAC,EAAE,CAAC,SAAS,GAAE,EAAE,EAAE,CAAC,MAAM,CAAC,cAAcA,EAAE,cAAclB,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,GAAiCkB,IAA/B,6BAAiC,EAAyCA,IAAvC,qCAAyC,EAAE,EAAE,KAAK,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,OAAOlB,EAAP,CAAU,IAAI,SAAS,OAAO,GAAE,EAAQsN,EAAE,OAAR,KAAsBA,EAAE,aAAVA,EAAE,MAAqB,CAAC,IAAI,MAAM,OAAO,GAAE,EAAE,KAAK,CAAC,IAAI,OAAO,OAAO,GAAE,EAAE,KAAK,CAAC,IAAI,gBAAgB,OAAO,GAAE,EAAE,KAAK,CAAC,IAAI,QAAQ,OAAO,GAAE,EAAE,KAAK,CAAC,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,OAAO,GAAE,EAAE,KAAK,CAAC,IAAI,WAAW,OAAO,GAAE,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,GAAE,EAAE,KAAK,CAAC,MAAO,IAAGpM,EAAE,eAAmBA,EAAE,gBAAN,EAAoB,GAAE,EAAE,KAAK,CAACA,EAA6B,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,CAAkD,OAAzClB,IAAL,GAAcmL,GAAE,GAAGjK,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK4L,EAAEzT,GAAE2G,EAAE,CAAC,CAAC,CAAO,CAAC,GAAsD,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,GAAc,OAAOsN,GAAlB,SAAoB,MAAM,MAAME,EAAE,GAAG,CAAC,CAAM,IAAI,IAAIrC,IAAb,GAAE,CAAC,EAAemC,EAAE,GAAG,GAAG,KAAKA,EAAEnC,EAAE,CAAC,CAAC,IAAIE,EAAEiC,EAAEnC,GAAG,GAASE,GAAN,MAAqB,OAAOA,GAAnB,WAA2BA,IAAL,GAAO,CAAC,GAAOF,EAAE,QAAQ,KAAK,GAAnB,EAAoB,CAAC,IAAIkC,EAAEP,EAAEzT,GAAE8R,EAAE,CAAC,CAAC,EAAE2B,EAAEzT,IAAG,GAAGgS,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,EAAEF,EAAE,IAAIc,EAAE,GAAG,IAAIoB,EAAE,CAAUpB,IAAT,IAAK,KAAQ,EAAE,EAAE5S,GAAEgU,EAAE,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAIA,EAAEpB,EAAE,EAAE,EAAEA,EAAE,EAAa,OAAOZ,GAAlB,SAAwBA,IAAJ,GAAO,GAAG,KAAK,GAAGF,EAAE,CAAC2B,EAAE,GAAGzB,EAAE,CAACyB,EAAEzB,EAAE,KAAK,CAACyB,EAAEzT,IAAG,GAAGgS,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAEnK,EAAE,KAAK,GAAGmM,EAAE,GAAGhC,EAAE,EAAEnK,EAAE,KAAK,GAAGmM,EAAE,GAAGhC,EAAE,EAAE,GAAGnK,EAAE,KAAK,GAAG,CAAgD,SAAS5H,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOgU,EAAP,CAAU,IAAI,QAAQ,GAAGpM,EAAElB,EAAEmL,EAAE,CAAC,OAAO,IAAI,eAAe,IAAI,iBAAiB,IAAI,YAAY,IAAI,iCAAiC,IAAI,2BAA2B,OAAO,GAAG,EAAE,EAAEmC,EAAE,SAAeA,EAAE,KAAR,KAAkBA,EAAE,KAAR,KAAkBA,EAAE,KAAR,KAAkBA,EAAE,KAAR,QAAc,EAAE,GAAG,eAAeA,EAAE,CAAC,GAAGA,GAAG,KAAYtN,IAAP,KAAS,CAAC,OAAO,OAAOmL,EAAd,CAAiB,IAAI,WAAW,IAAI,SAAS,OAAO,IAAI,UAAU,GAAG,CAACnL,EAAE,gBAAgB,OAA4B,OAArB,EAAE8M,EAAE9M,EAAE,cAAc,CAAQA,EAAE,KAAT,CAAe,IAAK,GAAE,GAAGkB,EAAE,KAAK,GAAGoM,EAAE,GAAG,CAAC,MAAM,IAAK,GAAE,CAAC,IAAInC,EAAEjK,EAAE,KAAK,GAAGoM,EAAE,GAAG,CAAC,CAAC,IAAInC,GAAGjK,EAAE,KAAK,GAAGoM,EAAE,GAAGR,EAAEzT,GAAE8R,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,IAAK,GAAE,MAAMA,EAAE,EAAEjK,EAAE,KAAK,GAAGoM,EAAE,GAAGR,EAAEzT,GAAE8R,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,IAAK,GAAE,CAAC,MAAMA,EAAE,EAAE,GAAGA,GAAGjK,EAAE,KAAK,GAAGoM,EAAE,GAAGR,EAAEzT,GAAE8R,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,QAAQ,EAAE,cAAc,EAAE,GAAGA,GAAGjK,EAAE,KAAK,GAAGoM,EAAE,GAAGR,EAAEzT,GAAE8R,EAAE,CAAC,CAAC,GAAG,UAAU,GAAGmC,EAAE,CAAC,CAAC,OAAO,OAAOnC,EAAd,CAAiB,IAAI,WAAW,IAAI,SAAS,OAAO,IAAI,UAAU,GAAG,EAAEmC,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAWtN,IAAV,SAAuBA,IAAV,QAAY,OAAO,EAAE,KAAK,GAAG8M,EAAEQ,EAAE,CAAC,GAAGR,EAAEzT,GAAE8R,EAAE,CAAC,CAAC,GAAG,GAA2B,SAAS5R,GAAE,EAAE,EAAE,EAAE,CAAC,GAASyG,GAAN,KAAQ,CAAC,GAASsN,GAAN,KAAQ,MAAM,MAAME,EAAE,GAAG,CAAC,CAAC,GAAc,OAAOxN,GAAlB,UAAqB,EAAE,WAAWA,GAAG,MAAM,MAAMwN,EAAE,GAAG,CAAC,CAAC,EAAExN,EAAE,OAAcA,GAAP,MAAsBkB,EAAE,KAAK4L,EAAE,GAAG9M,EAAE,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,IAAIA,EAAE,GAAyD,OAAtD,GAAG,SAAS,QAAQkB,GAAG,SAAS,EAAE,CAAOA,GAAN,OAAU,GAAGA,KAAK,CAAQlB,EAA2B,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAKxC,GAAE8P,EAAE,CAAC,CAAC,IAAIjC,EAAEgC,EAAE,EAAE,KAAK,IAAIhC,KAAKrL,EAAE,GAAG,GAAG,KAAKA,EAAEqL,EAAE,CAAC,CAAC,IAAIY,EAAEjM,EAAEqL,GAAG,GAASY,GAAN,KAAQ,OAAOZ,EAAP,CAAU,IAAI,WAAW,EAAEY,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,QAAQ,GAAE/K,EAAEiK,EAAEE,EAAEY,EAAE,EAAsB,OAApB,EAAE,KAAK,GAAG,CAAC,GAAE/K,EAAEmM,EAAEC,EAAE,CAAkB,OAAOA,GAAlB,UAAqBpM,EAAE,KAAK4L,EAAEzT,GAAEiU,EAAE,CAAC,CAAC,CAAC,MAAMA,EAA6D,SAAS9P,GAAE,EAAE,CAAC,IAAIwC,EAAE,GAAG,IAAIkB,EAAE,CAAC,GAAYlB,IAAT,IAAK,GAAM,CAAC,GAAG,CAAC,GAAG,KAAKkB,EAAE,CAAC,MAAM,MAAMsM,EAAE,GAAGtM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAIA,EAAE,CAAC,GAAG,IAAIA,EAAElB,EAAE,CAAC,OAAOA,EAA8B,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOA,EAAP,CAAU,IAAI,SAAS,EAAE,KAAKxC,GAAE,SAAS,CAAC,CAAC,IAAI6P,EAAE,KAAKpB,EAAE,KAAK,IAAIjP,KAAKsQ,EAAE,GAAG,GAAG,KAAKA,EAAEtQ,EAAE,CAAC,CAAC,IAAI2Q,EAAEL,EAAEtQ,GAAG,GAAS2Q,GAAN,KAAQ,OAAO3Q,EAAP,CAAU,IAAI,WAAW,EAAE2Q,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,IAAI,eAAe,IAAI,QAAQ,MAAM,QAAQ,GAAEzM,EAAEiK,EAAEnO,EAAE2Q,EAAE,EAAsB,OAApB,EAAE,KAAK,GAAG,CAAC,GAAEzM,EAAE+K,EAAEoB,EAAE,CAAQA,EAAE,IAAI,SAAS,EAAEhC,EAAE,cAAc,EAAE,KAAK7N,GAAE,SAAS,CAAC,CAAC,IAAI4P,EAAE,EAAE,KAAKb,EAAE,KAASvP,EAAE,KAAK,IAAIqQ,KAAKC,EAAE,GAAG,GAAG,KAAKA,EAAED,EAAE,CAAC,CAAC,IAAI7O,EAAE8O,EAAED,GAAG,GAAS7O,GAAN,KAAQ,OAAO6O,EAAP,CAAU,IAAI,WAAW,EAAE7O,EAAE,MAAM,IAAI,WAAW,EAAEA,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,IAAI,QAAQ,EAAEA,EAAE,QAAQ,GAAE0C,EAAEiK,EAAEkC,EAAE7O,EAAE,EAAE,GAASyN,GAAN,KAAQ,GAAG,EAASmB,IAAP,KAAc,GAAGO,EAAE,CAAV,GAAGP,EAAQ,GAAGnB,EAAE,MAAM,EAAE,EAAEd,EAAEc,EAAE,OAAO,IAAI,GAAG,GAAGA,EAAEd,KAAKmC,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,YAAW,GAAGrB,IAAIqB,GAAGpM,EAAE,KAAK,GAAG,MAAM,GAAGA,EAAE,KAAK,GAAG,CAAqB,OAApB,EAAE,KAAK,GAAG,CAAC,GAAEA,EAAElE,EAAE2Q,EAAE,CAAQA,EAAE,IAAI,WAA4C,IAAIA,KAArC,EAAE,KAAKnQ,GAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,KAAc8P,EAAE,GAAG,GAAG,KAAKA,EAAEK,EAAE,GAAG,EAAEL,EAAEK,GAASP,GAAN,MAAS,OAAOO,EAAP,CAAU,IAAI,WAAW,EAAEP,EAAE,MAAM,IAAI,QAAQ,EAAEA,EAAE,MAAM,IAAI,eAAe,EAAEA,EAAE,MAAM,IAAI,0BAA0B,MAAM,MAAMI,EAAE,GAAG,CAAC,CAAC,QAAQ,GAAEtM,EAAEiK,EAAEwC,EAAEP,EAAE,CAAsC,GAA9BC,IAAP,MAAiBpB,IAAP,OAAW,EAAEA,GAAG,EAAE,KAAK,GAAG,CAAUjP,GAAN,KAAQ,CAAC,GAASqQ,GAAN,KAAQ,MAAM,MAAMG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAGxQ,EAAE,EAAE,EAAEA,EAAE,OAAO,MAAM,MAAMwQ,EAAE,GAAG,CAAC,CAAC,EAAE,GAAGxQ,EAA4E,OAA/D,OAAOqQ,GAAlB,UAA4BA,EAAE,KAAT;GAAanM,EAAE,KAAK,GAAG,CAAQmM,IAAP,MAAUnM,EAAE,KAAK4L,EAAEzT,GAAE,GAAGgU,EAAE,CAAC,CAAC,CAAQ,KAAK,IAAI,QAAwC,IAAIpB,KAApC,EAAE,KAAKzO,GAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAc8P,EAAE,GAAG,GAAG,KAAKA,EAAErB,EAAE,GAAG,EAAEqB,EAAErB,GAASM,GAAN,MAAS,OAAON,EAAP,CAAU,IAAI,WAAW,IAAI,0BAA0B,MAAM,MAAMuB,EAAE,IAAI,QAAQ,CAAC,CAAC,IAAI,iBAAiB,EAAEjB,EAAE,MAAM,IAAI,eAAe,EAAEA,EAAE,MAAM,IAAI,UAAU,EAAEA,EAAE,MAAM,IAAI,QAAQ,EAAEA,EAAE,MAAM,QAAQ,GAAErL,EAAEiK,EAAEc,EAAEM,EAAE,CAA0H,OAAlHvP,IAAP,KAAmCoQ,IAAP,MAAU9T,GAAE4H,EAAEiK,EAAE,UAAUiC,EAAE,CAA/C9T,GAAE4H,EAAEiK,EAAE,UAAUnO,EAAE,CAAqCqQ,IAAP,KAAiCM,IAAP,MAAUrU,GAAE4H,EAAEiK,EAAE,QAAQwC,EAAE,CAA3CrU,GAAE4H,EAAEiK,EAAE,QAAQkC,EAAE,CAA4B,EAAE,KAAK,GAAG,CAAQ,KAAK,IAAI,WAAiC,IAAI,IAAIE,KAA9B,EAAE,KAAK/P,GAAE,WAAW,CAAC,CAAc8P,EAAE,GAAG,GAAG,KAAKA,EAAEC,EAAE,GAAG,EAAED,EAAEC,GAASF,GAAN,MAAS,OAAOE,EAAP,CAAU,IAAI,WAAW,IAAI,0BAA0B,MAAM,MAAMC,EAAE,IAAI,CAAC,CAAC,QAAQ,GAAEtM,EAAEiK,EAAEoC,EAAEF,EAAE,CAAY,OAAX,EAAE,KAAK,GAAG,CAAQ,KAAK,IAAI,QAAkC,IAAI7O,KAA9B,EAAE,KAAKhB,GAAE,QAAQ,CAAC,CAAC,EAAE,KAAc8P,EAAE,GAAG,GAAG,KAAKA,EAAE9O,EAAE,GAAG,EAAE8O,EAAE9O,GAASyN,GAAN,MAAS,OAAOzN,EAAP,CAAU,IAAI,WAAW,EAAEyN,EAAE,MAAM,IAAI,0BAA0B,MAAM,MAAMuB,EAAE,IAAI,CAAC,CAAC,QAAQ,GAAEtM,EAAEiK,EAAE3M,EAAEyN,EAAE,CAAY,OAAX,EAAE,KAAK,GAAG,CAAQoB,EAAE,IAAI,UAAU,IAAI,MAA4B,IAAID,KAA1B,EAAE,KAAK5P,GAAEwC,EAAE,CAAC,CAAC,EAAE,EAAE,KAAcsN,EAAE,GAAG,GAAG,KAAKA,EAAEF,EAAE,GAAG,EAAEE,EAAEF,GAASO,GAAN,MAAS,OAAOP,EAAP,CAAU,IAAI,WAAW,EAAEO,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,QAAQ,GAAEzM,EAAEiK,EAAEiC,EAAEO,EAAE,CAAY,GAAX,EAAE,KAAK,GAAG,CAAU1B,GAAN,KAAQ,CAAC,GAASoB,GAAN,KAAQ,MAAM,MAAMG,EAAE,GAAG,CAAC,CAAC,GAAc,OAAOvB,GAAlB,UAAqB,EAAE,WAAWA,GAAG,MAAM,MAAMuB,EAAE,GAAG,CAAC,CAAC,EAAEvB,EAAE,OAAcqB,GAAP,OAAkC,OAAOA,GAAlB,UAAqB,EAAEA,EAAE,QAAeA,EAAE,KAAT;EAAYpM,EAAE,KAAK,GAAG4L,EAAEQ,EAAE,CAAC,CAACpM,EAAE,KAAK4L,EAAE,GAAGQ,EAAE,CAAC,EAA+C,OAAlC,OAAOD,GAAlB,UAA4BA,EAAE,KAAT;GAAanM,EAAE,KAAK,GAAG,CAAQmM,EAAE,IAAI,OAAO,IAAI,OAAO,IAAI,KAAK,IAAI,MAAM,IAAI,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAmB,IAAI,IAAIlB,KAArB,EAAE,KAAK3O,GAAEwC,EAAE,CAAC,CAAcsN,EAAE,GAAG,GAAG,KAAKA,EAAEnB,EAAE,GAAG,EAAEmB,EAAEnB,GAASkB,GAAN,MAAS,OAAOlB,EAAP,CAAU,IAAI,WAAW,IAAI,0BAA0B,MAAM,MAAMqB,EAAE,IAAIxN,EAAE,CAAC,CAAC,QAAQ,GAAEkB,EAAEiK,EAAEgB,EAAEkB,EAAE,CAAY,OAAX,EAAE,KAAK,GAAG,CAAQ,KAAK,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,YAAY,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,iBAAiB,IAAI,gBAAgB,OAAO,GAAGnM,EAAEoM,EAAEtN,EAAEmL,EAAE,CAAC,IAAI,OAAO,OAAWE,EAAE,gBAAN,GAAqBnK,EAAE,KAAK,GAAG,CAAC,GAAGA,EAAEoM,EAAEtN,EAAEmL,EAAE,CAAC,QAAQ,GAAQnL,EAAE,QAAQ,IAAI,GAAnB,IAAgC,OAAOsN,EAAE,IAApB,SAAuB,OAAO,GAAGpM,EAAEoM,EAAEtN,EAAEmL,EAAE,CAAuB,IAAIoB,KAA1B,EAAE,KAAK/O,GAAEwC,EAAE,CAAC,CAAC,EAAE,EAAE,KAAcsN,EAAE,GAAG,GAAG,KAAKA,EAAEf,EAAE,GAAG,EAAEe,EAAEf,GAASoB,GAAN,MAAS,OAAOpB,EAAP,CAAU,IAAI,WAAW,EAAEoB,EAAE,MAAM,IAAI,0BAA0B,EAAEA,EAAE,MAAM,IAAI,QAAQ,GAAGzM,EAAEiK,EAAEwC,EAAE,CAAC,MAAM,IAAI,iCAAiC,IAAI,2BAA2B,MAAM,QAAQ,GAAGpB,EAAE,EAAe,OAAOoB,GAApB,YAAkC,OAAOA,GAAlB,UAAqBzM,EAAE,KAAK,GAAG4L,EAAEP,EAAE,CAAC,GAAGO,EAAEzT,GAAEsU,EAAE,CAAC,CAAC,GAAG,CAAqB,OAApB,EAAE,KAAK,GAAG,CAAC,GAAEzM,EAAE+K,EAAEoB,EAAE,CAAQA,GAAyT,SAAS,GAAG,EAAE,EAAE,EAAE,CAAS,GAAR,EAAEnM,EAAE,GAAG,CAAWoM,IAAP,KAAS,MAAM,MAAME,EAAE,IAAI,CAAC,CAAQ,OAAP,EAAEtM,EAAEoM,EAAE,CAAQkI,EAAEtU,EAAE,GAAG,CAA2e,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOoM,EAAE,cAAT,CAAwB,IAAK,GAAE,IAAK,GAAE,OAAOI,EAAExM,EAAE,GAAG,CAACwM,EAAExM,EAAElB,EAAE,cAAc,CAAC0N,EAAExM,EAAE4L,EAAE3B,EAAE,SAAS,GAAG,CAAC,CAAC,CAACqK,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOwM,EAAExM,EAAE,GAAG,CAACwM,EAAExM,EAAElB,EAAE,cAAc,CAAC0N,EAAExM,EAAE4L,EAAE3B,EAAE,SAAS,GAAG,CAAC,CAAC,CAACqK,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOwM,EAAExM,EAAE,GAAG,CAACwM,EAAExM,EAAElB,EAAE,cAAc,CAAC0N,EAAExM,EAAE4L,EAAE3B,EAAE,SAAS,GAAG,CAAC,CAAC,CAACqK,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOwM,EAAExM,EAAE,GAAG,CAACwM,EAAExM,EAAElB,EAAE,cAAc,CAAC0N,EAAExM,EAAE4L,EAAE3B,EAAE,SAAS,GAAG,CAAC,CAAC,CAACqK,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOwM,EAAExM,EAAE,GAAG,CAACwM,EAAExM,EAAElB,EAAE,cAAc,CAAC0N,EAAExM,EAAE4L,EAAE3B,EAAE,SAAS,GAAG,CAAC,CAAC,CAACqK,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOwM,EAAExM,EAAE,GAAG,CAACwM,EAAExM,EAAElB,EAAE,cAAc,CAAC0N,EAAExM,EAAE4L,EAAE3B,EAAE,SAAS,GAAG,CAAC,CAAC,CAACqK,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOwM,EAAExM,EAAE,GAAG,CAACwM,EAAExM,EAAElB,EAAE,cAAc,CAAC0N,EAAExM,EAAE4L,EAAE3B,EAAE,SAAS,GAAG,CAAC,CAAC,CAACqK,EAAEtU,EAAE,GAAG,CAAC,QAAQ,MAAM,MAAMsM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,OAAOxN,EAAE,cAAT,CAAwB,IAAK,GAAE,IAAK,GAAE,OAAOwV,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOsU,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOsU,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOsU,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOsU,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOsU,EAAEtU,EAAE,GAAG,CAAC,IAAK,GAAE,OAAOsU,EAAEtU,EAAE,GAAG,CAAC,QAAQ,MAAM,MAAMsM,EAAE,IAAI,CAAC,EAAg/B,SAAS,GAAG,EAAE,CAAC,OAAO,KAAK,UAAUtM,EAAE,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,OAAOA,EAAP,CAAU,IAAI,IAAI,MAAM,UAAU,IAAI,SAAS,MAAM,UAAU,IAAI,SAAS,MAAM,UAAU,QAAQ,MAAM,MAAM,oMAAoM,IAAI,CAAujB,SAAS,GAAG,EAAE,CAAC,GAASA,GAAN,KAAQ,OAAO,KAAK,GAAgB,OAAOA,GAApB,WAAsB,OAAOA,EAAE,aAAaA,EAAE,MAAM,KAAK,GAAc,OAAOA,GAAlB,SAAoB,OAAOA,EAAE,OAAOA,EAAP,CAAU,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,SAAS,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,aAAa,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,GAAc,OAAOA,GAAlB,SAAoB,OAAOA,EAAE,SAAT,CAAmB,KAAK,GAAG,OAAOA,EAAE,aAAa,WAAW,YAAY,KAAK,GAAG,OAAOA,EAAE,SAAS,aAAa,WAAW,YAAY,KAAK,GAAG,IAAIlB,EAAEkB,EAAE,OAAkG,MAA3F,GAAEA,EAAE,YAAY,AAAgC,KAA5B,EAAElB,EAAE,aAAaA,EAAE,MAAM,GAAUkB,IAAL,GAA2B,aAApB,cAAcA,EAAE,KAAyBA,EAAE,KAAK,GAAG,MAAO,GAAEA,EAAE,aAAa,KAAYlB,IAAP,KAAW,GAAGkB,EAAE,KAAK,EAAE,OAAdlB,EAAqB,KAAK,GAAG,EAAEkB,EAAE,SAAS,EAAEA,EAAE,MAAM,GAAG,CAAC,OAAO,GAAGA,EAAElB,EAAE,CAAC,MAAS,GAAG,OAAO,KAAe,SAAS,GAAG,EAAE,EAAE,CAAkB,GAAjB,EAAEkB,EAAE,aAAgB,CAACA,EAAE,OAAO,GAAG,IAAIoM,EAAEnC,EAAE,EAAE,CAAC,IAAImC,KAAKpM,EAAE,EAAEoM,GAAGtN,EAAEsN,GAAG,OAAOnC,EAAc,SAAS1R,GAAE,EAAE,EAAE,CAAC,GAAGyH,IAAIlB,EAAE,CAAC,EAAE,QAAQ,cAAckB,EAAE,YAAY,EAAEA,EAAE,OAAO,IAAIoM,EAAEtN,EAAE,OAAO,GAAUkB,IAAP,SAAoBoM,IAAP,KAAS,MAAM,MAAME,EAAE,IAAI,CAAC,KAAK,CAAC,GAAUF,IAAP,KAAS,MAAM,MAAME,EAAE,IAAI,CAAC,CAAC,GAAEtM,EAAEoM,EAAE,CAAC,EAAE,QAAQ,cAActN,EAAE,OAAO,SAAS,GAAG,EAAE,CAAC,EAAE,QAAQ,cAAckB,EAAE,YAAY,EAAEA,EAAE,OAAcA,IAAP,MAAU,GAAGA,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,OAAclB,IAAP,MAAU,GAAGA,EAAE,CAAC,EAAE,QAAQ,cAAckB,EAAE,MAAM,SAAS,GAAG,EAAE,EAAE,CAAkD,GAAjD,EAAE,QAAQ,cAAcA,EAAE,YAAY,EAAEA,EAAE,OAAiBA,IAAP,KAAS,MAAM,MAAMsM,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQxN,EAAE,MAAMvG,GAAEyH,EAAElB,EAAE,CAAC,GAAGkB,EAAElB,EAAE,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,IAAIsN,EAAEtN,EAAE,OAAO,GAAUsN,IAAP,KAAS,MAAM,MAAME,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQF,EAAE,MAAM7T,GAAEyH,EAAEoM,EAAE,CAAC,GAAGpM,EAAEoM,EAAE,CAAC,EAAE,QAAQ,cAActN,EAAE,MAAM,SAAS,GAAE,EAAE,CAAC,IAAIA,EAAE,GAAG,IAAIkB,IAAWlB,IAAP,KAAS,GAAGkB,EAAE,CAAQA,IAAP,KAAS,GAAGlB,EAAE,CAACA,EAAE,QAAQkB,EAAE,MAAMzH,GAAEuG,EAAEkB,EAAE,CAAClB,EAAE,MAAMkB,EAAE,MAAM,GAAGlB,EAAEkB,EAAE,CAAC,GAAGlB,EAAEkB,EAAE,CAAC,GAAGA,GAA8O,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAImK,EAAWnK,EAAE,QAAX,IAAK,GAAoB,KAARA,EAAE,MAAW,EAAE,QAAQ,GAAG,EAAE,MAAMoM,EAAE,EAAE,MAAMjC,EAAE,IAAIgC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgBA,EAAE,IAAIpB,EAAEjM,EAAE,YAAmL,GAAvK,EAAE,QAAmB,OAAOiM,GAAlB,UAA4BA,EAAEA,EAAE,cAAcd,EAAE,EAAEnL,EAAE,yBAAsC,OAAOiM,GAApB,aAAwB,EAAEA,EAAEqB,EAAEjC,EAAE,CAAC,EAASY,GAAP,KAAqBZ,EAAE,GAAG,EAAE,CAACA,EAAEY,EAAE,CAAC,EAAE,MAAMZ,GAAmB,OAAOrL,EAAE,0BAAtB,YAA6D,OAAOkB,EAAE,yBAAtB,aAA6D,OAAOA,EAAE,2BAAtB,YAA8D,OAAOA,EAAE,oBAAtB,YAA0C,GAAG,EAAEA,EAAE,MAAmB,OAAOA,EAAE,oBAAtB,YAA0CA,EAAE,oBAAoB,CAAc,OAAOA,EAAE,2BAAtB,YAAiDA,EAAE,2BAA2B,CAAClB,IAAIkB,EAAE,OAAO,GAAG,oBAAoBA,EAAEA,EAAE,MAAM,KAAK,CAAQmM,EAAE,QAAT,MAAgB,EAAEA,EAAE,MAAM,OAAO,GAAG,EAAEA,EAAE,MAAM,EAAEA,EAAE,QAAQ,EAAE,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAEpB,GAAOjM,EAAE,SAAN,EAAa,EAAE,MAAMA,EAAE,OAAO,CAAuB,IAAtB,EAAEiM,EAAEjM,EAAE,GAAGkB,EAAE,MAAM,EAAE,CAAC,EAAM,EAAE+K,EAAE,EAAE,EAAEA,EAAEjM,EAAE,OAAO,IAAI,CAAC,IAAI2N,EAAE3N,EAAEiM,GAAG,EAAe,OAAO0B,GAApB,WAAsBA,EAAE,KAAKzM,EAAEmM,EAAEC,EAAEnC,EAAE,CAACwC,EAAQA,GAAN,OAAUtC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAACgC,EAAEM,EAAE,EAAE,GAAGN,EAAEM,EAAE,EAAE,EAAE,MAAMN,OAAO,EAAE,MAAM,KAA+B,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,IAAIlC,EAAEjK,EAAE,GAAG,EAAEA,EAAE,SAAS,IAAImK,EAAE,GAAG,GAAGF,EAAE,CAAC,EAAE,GAAG,EAAE,GAAGE,GAAG,GAAG,EAAE,IAAIgC,EAAE,GAAG,GAAGrN,EAAE,CAACqL,EAAE,GAAG,GAAGgC,EAAE,CAAC,IAAIpB,EAAEZ,EAAEA,EAAE,EAAyC,MAAvC,IAAGF,GAAG,GAAGc,GAAG,GAAG,SAAS,GAAG,CAAC,IAAIA,EAAE,GAAGA,EAAQ,CAAC,GAAG,GAAG,GAAG,GAAGjM,EAAE,CAACqL,EAAEiC,GAAGjC,EAAEF,EAAE,SAASkC,EAAEnM,EAAE,CAAC,MAAM,CAAC,GAAG,GAAGmM,EAAEC,GAAGjC,EAAEF,EAAE,SAASjK,EAAE,CAAyD,SAAS,GAAG,EAAE,CAAQ,MAAP,MAAK,EAAaA,IAAJ,EAAM,GAAG,IAAI,GAAGA,EAAE,CAAC,GAAG,GAAG,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,OAAOA,IAAIlB,IAAQkB,IAAJ,GAAO,EAAEA,GAAI,EAAElB,IAAIkB,IAAIA,GAAGlB,IAAIA,EAAkH,SAAS,IAAG,CAAC,GAAU,KAAP,KAAU,MAAM,MAAMwN,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,MAAMA,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,KAAK,MAAM,KAAK,KAAK,KAAK,CAAC,SAAS,IAAI,CAAgH,OAAxG,IAAP,KAAiB,KAAP,MAAW,GAAG,CAAC,EAAE,GAAG,EAAG,IAAI,GAAG,GAAG,CAAC,EAAE,EAAG,IAAW,EAAG,OAAV,MAAgB,GAAG,CAAC,EAAE,EAAG,EAAG,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,EAAG,EAAG,MAAa,EAAG,SAAS,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,EAAG,GAAG,KAAK,SAAS,GAAG,EAAE,EAAE,CAAC,OAAmB,OAAOxN,GAApB,WAAsBA,EAAEkB,EAAE,CAAClB,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,CAAgB,GAAf,GAAG,IAAG,CAAC,EAAG,IAAI,CAAI,GAAG,CAAC,IAAImL,EAAE,EAAG,MAAmB,GAAb,EAAEA,EAAE,SAAmB,KAAP,OAAY,EAAE,GAAG,IAAIA,EAAE,CAAUmC,IAAT,IAAK,IAAO,CAAC,GAAG,OAAOnC,EAAE,CAAC,EAAE,EAAG,cAAc,EAAG,GAAEjK,EAAEiK,EAAEmC,EAAE,OAAO,CAAC,EAAEA,EAAE,WAAkBA,IAAP,MAA6B,MAAnB,GAAG,cAAcnC,EAAQ,CAACA,EAAEnL,EAAE,CAAC,MAAM,CAAC,EAAG,cAAcA,EAAE,CAAgJ,MAA/I,GAAEkB,IAAI,GAAgB,OAAOlB,GAApB,WAAsBA,GAAG,CAACA,EAAWsN,IAAT,IAAK,GAAWtN,EAALsN,EAAEtN,EAAE,CAAG,EAAG,cAAckB,EAAE,EAAE,EAAG,MAAM,CAAC,KAAK,KAAK,SAAS,KAAK,CAAC,EAAE,EAAE,SAAS,GAAG,KAAK,KAAK,GAAGA,EAAE,CAAO,CAAC,EAAG,cAAcA,EAAE,CAAC,SAAS,GAAG,EAAE,EAAE,CAAoC,GAAnC,GAAG,IAAG,CAAC,EAAG,IAAI,CAAC,EAAWlB,IAAT,IAAK,GAAM,KAAKA,EAAY,IAAP,KAAU,CAAC,IAAIsN,EAAE,EAAG,cAAc,GAAUA,IAAP,MAAiBtN,IAAP,KAAS,CAAC,IAAImL,EAAEmC,EAAE,GAAG,EAAE,GAAUnC,IAAP,KAAS,EAAE,CAAC,MAAM,CAAC,IAAI,IAAIE,EAAE,EAAEA,EAAEF,EAAE,QAAQE,EAAErL,EAAE,OAAO,IAAI,GAAG,CAAC,GAAGA,EAAEqL,GAAGF,EAAEE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAGF,EAAE,OAAOmC,EAAE,IAAiC,MAA7B,GAAEpM,GAAG,CAAC,EAAG,cAAc,CAACA,EAAElB,EAAE,CAAQkB,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,MAAMsM,EAAE,IAAI,CAAC,CAAC,GAAGtM,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,OAAOoM,EAAE,KAAK,KAAK,CAAQ,KAAP,OAAY,GAAG,IAAI,KAAK,EAAE,GAAG,IAAItN,EAAE,CAAUsN,IAAT,IAAK,GAAM,GAAG,IAAItN,EAAEkB,EAAE,KAAK,CAAC,IAAI,EAAEoM,EAAStN,EAAE,OAAT,MAAe,EAAEA,EAAE,KAAK,EAAE,KAAKkB,GAAG,SAAS,IAAI,CAAC,MAAM,MAAMsM,EAAE,IAAI,CAAC,CAAC,SAAS,IAAI,EAAm9B,SAAS,GAAG,EAAE,CAAkB,OAAjB,QAAQ,MAAMtM,EAAE,CAAQ,KAAK,SAASxH,IAAG,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI6S,EAAE,EAAE,CAACvP,EAAE,IAAI,IAAwf,MAApf,GAAE,CAAC,YAAY,KAAK,cAAcgD,EAAE,qBAA8BmL,IAAT,IAAK,GAAM,MAAMA,EAAE,OAAO,EAAE,WAAW,KAAK,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,KAAK,eAAenO,EAAE,YAAYuP,EAAE,yBAAyB,EAAE,CAAC,oBAAoB,EAAE,CAAC,kBAAkB,EAAE,CAAC,QAAiBlB,IAAT,IAAK,GAAM,GAAGA,EAAE,WAAoBgC,IAAT,IAAK,GAAM3T,GAAE2T,EAAE,aAAsBpB,IAAT,IAAK,GAAMvS,GAAEuS,EAAE,aAAsB0B,IAAT,IAAK,GAAMjU,GAAEiU,EAAE,aAAsBP,IAAT,IAAK,GAAM1T,GAAE0T,EAAE,CAAC,EAAE,GAAGpN,EAAE,EAAE,KAAKsN,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,GAAGtN,EAAEkB,EAAE,KAAKoM,EAAEtQ,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,KAAKkE,EAAE,CAAQlB,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,kBAAyBsN,IAAP,KAAS,EAAE,mBAAmB,EAAE,eAAe,IAAIF,EAAE,CAAC,KAAKpN,EAAE,KAAK,UAAU,CAAC,IAAIA,EAAEkB,EAAE,YAAY,EAAE,KAAKkM,EAAE,CAAKpN,EAAE,SAAN,GAAc,GAAGkB,EAAE,EAAE,gBAAgBoM,EAAE,eAAenC,EAAE,SAASE,EAAE,cAAcgC,EAAE,QAAQpB,EAAE,YAAY0B,EAAE,CAAU,OAAT,EAAE,IAAIP,EAAE,CAAQA,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,MAAMpN,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,cAAcmL,EAAE,SAASmC,EAAE,eAAejC,EAAE,aAAagC,EAAE,CAAC,SAAS1T,GAAE,EAAE,EAAE,CAAgB,GAAf,EAAEuH,EAAE,QAAQlB,EAAE,CAAUkB,GAAN,MAAoB,OAAOA,GAAlB,SAAoB,MAAM,MAAM,iMAAiM,OAAOA,EAAE,YAAY,CAAC,OAAOA,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,IAAIoM,EAAEpM,EAAE,aAAa,EAAElB,EAAE,CAAC,EAAEkB,EAAE,aAAa,EAAElB,EAAE,CAAQkB,EAAE,cAAT,MAAuD,EAAE,OAAO,EAAE,EAAE,WAAWlB,IAAzD,EAAE,OAAO,EAAE,GAAGkB,EAAE,YAAYlB,EAAE,EAA8B,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAiB,IAAhB,GAAG,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAM,EAAEsN,EAAEnC,EAAEE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAG,KAAK,EAAEiC,EAAEnC,EAAEE,EAAE,CAAM,OAAL,IAAI,CAAQnK,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAImK,EAAEiC,EAAE,QAAQ,CAACD,EAAElC,EAAE,kBAAkB,GAAUkC,GAAP,KAAqB,CAAC,IAAIpB,EAAEjM,EAAE,cAAc,GAAgB,OAAOsN,EAAE,iBAAtB,WAAsC,EAAErB,MAAM,CAAuB,IAAI,IAAI0B,IAA9B,GAAEL,EAAE,iBAAiB,CAAcA,EAAE,GAAG,EAAEK,KAAKN,GAAG,MAAM,MAAMG,EAAE,IAAI,GAAGrC,EAAE,EAAE,UAAUwC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC1B,EAAEqB,EAAE,CAAC,EAAE,cAAcnC,EAAE,GAAEjK,EAAElB,EAAEqL,EAAE,CAAC,EAAE,cAAcY,OAAO,GAAE/K,EAAElB,EAAEqL,EAAE,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,GAAGnK,GAAGA,EAAE,aAAa,CAA6B,IAAI,IAAIoM,IAApC,GAAE,GAAG,EAAE,CAACtN,EAAE,CAAC,EAAEkB,EAAE,aAA0BA,EAAWlB,EAAEsN,KAAX,IAAK,KAAW,EAAEA,GAAGpM,EAAEoM,IAAI,OAAOtN,EAAE,OAAOA,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAgB,OAAOsN,GAApB,WAAsB,GAAGA,EAAE,WAAWA,EAAE,UAAU,iBAAiB,CAAC,EAAE,GAAGA,EAAEtN,EAAE,cAAc,CAAC,IAAIqN,EAAEC,EAAE,YAAY,EAAE,IAAIA,EAAEnC,EAAa,OAAOkC,GAAlB,UAA4BA,EAAEA,EAAE,cAAchC,EAAE,CAAC,GAAGgC,EAAEC,EAAEnC,EAAEE,EAAE,CAAC,GAAGnK,EAAElB,EAAEqN,EAAEC,EAAE,KAAK,CAAC,EAAE,GAAGA,EAAEtN,EAAE,cAAc,CAAC,EAAE,GAAGkB,EAAElB,EAAEsN,EAAEnC,EAAEkC,EAAE,CAAC,IAAIpB,EAAM,KAAJ,EAAO,GAAc,OAAOZ,GAAlB,UAA4BA,GAAgB,OAAOA,EAAE,QAAtB,YAAuCA,EAAE,WAAX,IAAK,GAAe,GAAGA,EAAEiC,EAAEnC,EAAEkC,EAAE,CAAC,GAAGnM,EAAElB,EAAEqL,EAAEiC,EAAE,SAASrB,EAAE,CAAC,EAAEjM,EAAE,YAAY,EAAE,YAAY,GAAGmL,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAEjK,EAAElB,EAAEqL,EAAE,QAAQ,CAAC,EAAE,YAAYF,QAAQ,GAAEjK,EAAElB,EAAEqL,EAAE,KAAK,CAAC,GAAc,OAAOiC,GAAlB,SAAoB,CAAC,OAAOA,EAAP,CAAU,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,GAAEpM,EAAElB,EAAEmL,EAAE,SAAS,CAAC,OAAO,KAAK,GAAG,GAAEjK,EAAElB,EAAEmL,EAAE,SAAS,CAAC,OAAO,KAAK,GAAG,MAAM,MAAMqC,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,EAAExN,EAAE,gBAAgB,EAAEA,EAAE,eAAe,EAAEmL,EAAE,SAAS,EAAEA,EAAE,SAAS,EAAE,IAAI,IAAI,IAAIwC,EAAE,CAAC,GAAG,KAAK,cAAc,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC,SAAS,EAAE,uBAAuB1B,EAAE,YAAY,KAAK,CAACmB,EAAE,GAAGlM,EAAEmK,EAAE,OAAO,OAAOsC,EAAEtC,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,KAAK+B,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,IAAIb,EAAE,GAAGrL,EAAE,EAAE,KAAKmK,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,gBAAgBsC,EAAE,EAAE,eAAepB,EAAE,GAAG,CAAC,GAAG,GAAGrL,EAAElB,EAAEmL,EAAE,CAACoB,EAAE,gBAAgBA,EAAE,cAAcA,EAAE,OAAO,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,GAAGoB,EAAEpB,EAAE,CAAKoB,EAAE,eAAN,EAAmB,MAAM,QAAQ3N,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,YAAYrG,GAAEuH,EAAElB,EAAE,QAAQ,CAAC,EAAE,gBAAgBsN,EAAE,EAAE,eAAejC,EAAE,EAAE,GAAGnK,EAAEmM,EAAEC,EAAEF,EAAEnB,EAAEjM,EAAE,cAAcA,EAAE,QAAQA,EAAE,YAAY,CAAC,EAAE,YAAY,KAAKA,EAAE,CAAC,OAAO,GAAc,OAAOsN,GAAlB,UAA4BA,EAAE,OAAOA,EAAE,SAAT,CAAmB,KAAK,GAA0B,GAAvB,EAAE,GAAGpM,EAAElB,EAAEsN,EAAE,OAAOnC,EAAEE,EAAE,CAAQ,KAAJ,EAAO,CAAC,EAAErL,EAAE,YAAY,EAAE,YAAY,GAAGsN,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAEpM,EAAElB,EAAEmL,EAAE,QAAQ,CAAC,EAAE,YAAYmC,QAAQ,GAAEpM,EAAElB,EAAEmL,EAAE,CAAC,OAAO,KAAK,GAAG,EAAEmC,EAAE,KAAK,EAAE,GAAGA,EAAEnC,EAAE,CAAC,GAAGjK,EAAElB,EAAEsN,EAAEnC,EAAEE,EAAE,CAAC,OAAO,KAAK,GAAqL,GAAlL,EAAEF,EAAE,SAAS,EAAEmC,EAAE,SAAS,EAAEnC,EAAE,MAAM,EAAEmC,EAAE,cAAc,EAAE,cAAcnC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,OAAOc,EAAE,MAAaA,IAAP,KAAS,EAAEA,EAAE,MAAM,EAAE,QAAQqB,EAAE,YAAYD,EAAE,MAAMlC,EAAE,CAAC,EAAE,QAAQA,EAAE,GAAEjK,EAAElB,EAAEqL,EAAE,CAAC,EAAE,GAAanK,IAAP,KAAS,MAAM,MAAMsM,EAAE,IAAI,CAAC,CAAC,EAAEtM,EAAE,YAAY,EAAE,QAAQ,cAAciK,IAAI,GAAGjK,EAAE,QAAQ,cAAciK,EAAE,EAAE,GAAGjK,EAAE,OAAO,EAAE,QAAQA,EAAE,OAAO,KAAK,GAAG,EAAEiK,EAAE,SAAS,EAAEA,EAAEmC,EAAE,cAAc,CAAC,GAAEpM,EAAElB,EAAEmL,EAAE,CAAC,OAAO,KAAK,GAAG,EAAEmC,EAAE,MAAM,EAAEjC,EAAEiC,EAAE,SAAS,CAAC,EAAE,GAAGA,EAAEnC,EAAE,CAAC,GAAGjK,EAAElB,EAAEsN,EAAEnC,EAAE,IAAK,GAAE,CAAC,OAAO,MAAM,MAAMqC,EAAE,IAAUF,GAAN,KAAQA,EAAE,OAAOA,EAAE,GAAG,CAAC,CAAmK,OAAlK,EAAEtN,EAAE,eAAe,EAAE,GAAGqL,EAAE,OAAOiC,EAAEnC,EAAEjK,EAAE,cAAcmK,EAAE,cAAc,CAAC,EAAE,eAAe,CAAC,EAAE,EAAEA,EAAE,cAAc,EAAE,cAAc,GAAGY,EAAEqB,EAAEnC,EAAE,CAAC,GAAGjK,EAAElB,EAAEqN,EAAE,CAAC,EAAE,cAAcpB,EAASqB,EAAP,CAAU,IAAI,OAAO,IAAI,OAAO,IAAI,KAAK,IAAI,MAAM,IAAI,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAM,MAAM,QAAQ,EAAE,OAAO,KAAK,GAAGR,EAAEQ,EAAE,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,GAAG,SAAS5O,GAAE,EAAE,EAAE,EAAE,CAAU,GAAT,EAAE,KAAK4O,EAAgB,OAAOA,GAAlB,UAA4BA,EAAE,CAAC,OAAOA,EAAE,SAAT,CAAmB,KAAK,GAAG,GAAGpM,EAAElB,EAAEsN,EAAE,KAAKA,EAAE,MAAMA,EAAE,IAAI,CAAC,OAAO,KAAK,GAAG,MAAM,MAAME,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,IAAIrC,EAAEmC,EAAE,MAAM,EAAEnC,EAAEmC,EAAE,SAAS,CAAC,GAAEpM,EAAElB,EAAEsN,EAAE,CAAC,OAAO,GAAG,GAAGA,EAAE,CAAC,CAAC,GAAGpM,EAAElB,EAAEsN,EAAE,CAAC,OAA0G,GAA9E,OAAOA,GAAlB,WAAHA,EAAuB,EAAE,MAAM,EAAE,IAAIA,EAAE,KAAKA,EAAE,cAAc,EAAe,OAAOnC,GAApB,WAAsBA,EAAE,MAASA,AAAI,IAAEA,EAAE,KAAKmC,EAAE,CAAE,CAAY,GAAX,EAAEnC,EAAE,MAAM,CAAI,CAACmC,EAAE,KAAK,CAAC,IAAIjC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAKiC,EAAE,MAAM,CAAC,EAAEnC,EAAE,MAAM,OAAO,CAACmC,EAAE,MAAM,GAAGpM,EAAElB,EAAEqL,EAAE,CAAC,OAA2C,KAApC,GAAE,OAAO,UAAU,SAAS,KAAKiC,EAAE,CAAO,MAAME,EAAE,GAAuBtM,IAApB,kBAAsB,qBAAqB,OAAO,KAAKoM,EAAE,CAAC,KAAK,KAAK,CAAC,IAAIpM,EAAE,CAAC,CAAY,OAAOoM,GAAlB,UAAqB,EAAEtN,EAAE,eAAe,EAAE,eAAe,GAAGA,EAAE,eAAe,OAAOsN,EAAEpM,EAAE,cAAciK,EAAE,eAAe,EAAa,OAAOmC,GAAlB,WAAsB,EAAEtN,EAAE,eAAe,EAAE,eAAe,GAAGA,EAAE,eAAe,OAAO,GAAGsN,EAAEpM,EAAE,cAAciK,EAAE,eAAe,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,IAAIA,EAAEmC,EAAE,OAAOjC,EAAE,EAAEA,EAAEF,EAAE,IAAI,CAAC,IAAIkC,EAAErN,EAAE,YAAY,EAAE,YAAY,GAAGqN,EAAElC,EAAEE,EAAE,CAAC,GAAG,CAAC,GAAGnK,EAAElB,EAAEsN,EAAEjC,GAAG,QAAQ,CAAC,EAAE,YAAYgC,IAAI,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,IAAIlC,EAAEnL,EAAE,eAAe,cAAcqL,EAAErL,EAAE,cAAcqN,EAAErN,EAAE,QAAQ,GAAG,CAAC,OAAOtB,GAAEwC,EAAElB,EAAEsN,EAAE,OAAOF,EAAE,CAAC,GAAG,IAAI,CAAY,OAAOA,GAAlB,WAA4BA,GAAgB,OAAOA,EAAE,MAAtB,WAA2B,KAAM,GAAE,eAAe,cAAcjC,EAAE,EAAE,cAAcE,EAAE,EAAE,QAAQgC,EAAE,GAAEA,EAAE,CAACD,EAAE,EAAEA,EAAE,IAAInB,EAAEjM,EAAE,eAAe2N,EAAE,GAAGzM,EAAE+K,EAAE,OAAO,OAAO,KAAKA,EAAE,cAAcA,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,SAAS,KAAK0B,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,GAAGzM,EAAElB,EAAE,KAAKA,EAAE,gBAAgB2N,EAAE3N,EAAE,SAASA,EAAE,cAAcA,EAAE,QAAQA,EAAE,YAAY,CAAC,KAAK,EAAE,KAAKkB,EAAEA,EAAE,CAAC,EAAE,eAAe,cAAciK,EAAE,EAAE,cAAcE,EAAE,EAAE,QAAQgC,EAAE,GAAEA,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC,IAAIrN,EAAEkB,EAAE,gBAAgB,EAAEA,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,KAAKlB,EAAEkB,EAAE,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,IAAIiK,EAAEjK,EAAE,gBAAgB,EAAE,eAAe,OAAO,EAASiK,IAAP,MAAU,EAAE,kBAAsBnL,EAAE,SAAN,IAAe,EAAE,OAAO,EAASA,EAAE,cAAT,MAAsBA,EAAE,YAAY,OAAO,IAAI,EAAE,eAAemL,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EAAE,EAAWmC,IAAT,IAAK,GAAM,MAAME,EAAE,IAAI,CAAC,CAACF,EAAE,EAAE,YAAYtN,EAAE,QAAQkB,EAAE,CAACiK,EAAE,eAAenL,EAAE,yBAAyB,KAAKmL,EAAE,EAAEA,EAAE,uBAAuB,SAAS,SAAS,EAAE,CAAC,OAAO,GAAGjK,EAAElB,EAAEsN,EAAE,GAAG,CAACnC,EAAE,uBAAuB,OAAO,CAAC,EAAE,kBAAsBnL,EAAE,kBAAN,IAAwB,EAAEA,EAAE,WAAWmL,GAAG,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC,GAAOnL,EAAE,OAAO,SAAb,GAAyBA,EAAE,SAAS,SAAf,GAA8BA,EAAE,SAAS,GAAG,WAArB,KAA8B,CAAC,IAAIsN,EAAEtN,EAAE,SAAS,GAAG,EAAE,GAAGA,EAAE,GAAG,EAAE,cAAc,CAAC,EAAMsN,EAAE,SAAN,GAAc,GAAGpM,EAAEoM,EAAE,MAAM,EAAE,kBAAkB,KAAKtN,EAAE,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,GAAUA,IAAP,KAAS,CAAC,GAAGsN,EAAE,cAAc,CAAC,GAAUpM,EAAE,uBAAT,KAA8B,MAAM,MAAMsM,EAAE,IAAI,CAAC,CAAC,EAAE,qBAAqBF,EAAE,EAAE,mBAAuBpM,EAAE,mBAAN,IAAyB,EAAE,aAAaxH,GAAE,EAAEwH,EAAE,aAAalB,GAAG,OAAO,EAAE,eAAeA,EAAE,oBAAwBA,EAAE,eAAN,GAAoBsN,EAAE,eAAmBA,EAAE,SAAN,GAAc,GAAGtN,EAAEsN,EAAE,CAACtN,EAAE,eAAekB,EAAE,oBAAoB,KAAKlB,EAAE,CAACA,EAAE,uBAAuB,QAAQ,GAAGkB,EAAE,CAAClB,EAAE,uBAAuB,OAAO,EAAEsN,EAAE,eAAmBA,EAAE,SAAN,IAAe,GAAGtN,EAAEsN,EAAE,CAAKtN,EAAE,kBAAkB,SAAxB,GAAgCA,EAAE,eAAekB,EAAE,kBAAkB,KAAKlB,EAAE,GAAG,EAAE,kBAAsBkB,EAAE,kBAAN,IAAwB,EAAEA,EAAE,WAAWA,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC,GAAOA,EAAE,SAAN,EAAa,CAAC,IAAIlB,EAAE,GAAGsN,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAInC,EAAE,GAAG,GAAGjK,EAAE,cAAc,GAAG,CAAC,IAAImK,EAAEgC,EAAEnM,EAAE,YAAY,IAAI,EAAE,EAAEmK,EAAEgC,EAAE,OAAO,IAAI,CAAC,IAAIpB,EAAEoB,EAAEhC,GAAOsC,EAAEzM,EAAEkM,EAAEnB,EAAE,eAAe,GAAOmB,EAAE,SAAN,EAAa,CAAC,GAAEnB,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAE0B,EAAE1B,EAAEA,EAAE,KAAK,CAACmB,EAAE,gBAAgBA,EAAE,cAAcA,EAAE,OAAO,KAAK,GAAG,CAACnB,EAAE,SAAS,OAAOA,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG0B,EAAE1B,EAAE,gBAAgBmB,EAAE,OAAOlM,EAAE,CAAC,GAAG,IAAI,CAAY,OAAOA,GAAlB,UAA4BA,GAAgB,OAAOA,EAAE,MAAtB,WAA2B,CAAC,IAAIqL,EAAEN,EAAE,KAAK,EAAE,KAAKM,EAAEA,EAAE,KAAK,CAAC,EAAE,SAAS,OAAON,EAAE,CAAC,EAAE,OAAO,EAAE,IAAIjP,EAAEiP,EAAE,gBAAgBzN,EAAE0C,EAAEqM,EAAE5T,GAAEgU,EAAEnP,EAAE,CAA2K,GAAnKxB,IAAP,KAAS,GAAG2Q,EAAEnP,EAAE,EAAE,EAAE,eAAexB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EAAE,EAAE,YAAYuQ,EAAEvQ,EAAE,eAAe2Q,EAAE,yBAAyB,KAAK3Q,EAAE,GAAG,EAAE,kBAAyB2Q,EAAE,kBAAN,EAAsB,CAAC,IAAIxB,EAAEwB,EAAE,WAAW,GAAG,KAAK,EAAE,OAAO,EAAEtC,EAAE,CAAQnK,EAAE,cAAT,MAAsB,GAAGA,EAAEA,EAAE,YAAY,OAAOlB,EAAE,CAAC,GAAEkB,EAAElB,EAAE,CAAC,GAAGkB,EAAElB,EAAE,QAAQ,CAAC,GAAGmL,EAAE,GAAG,QAAQmC,EAAEA,IAAI,IAAI,GAAEtN,EAAE,GAAG,SAAS,GAAG,EAAE,EAAE,EAAE,CAAoB,OAAnB,EAAE,cAAc,CAAC,EAASsN,EAAE,OAAT,CAAiB,IAAK,GAAE,IAAInC,EAAE,EAAE,GAAG,EAAE,gBAAoI,MAApH,GAAE,eAAe,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAEjK,EAAE,cAAc,EAAElB,EAAE,GAAG,CAAC,EAAEA,EAAEkB,EAAE,kBAAkB,CAAC,EAAE4L,EAAE3B,EAAE,SAAS,GAAG,CAAC,CAAC,EAAEnL,EAAEkB,EAAE,CAAQsU,EAAExV,EAAE,GAAG,CAAC,IAAK,GAAE,EAAE,OAAO,EAAE,IAAIqL,EAAE,CAAC,EAAE,EAAEiC,EAAE,OAAO,IAAID,EAAE,EAAE,EAAEC,EAAE,SAAS,IAAI,IAAIrB,EAAE,EAAEA,EAAEqB,EAAE,OAAO,IAAI,CAAC,IAAI,EAAEA,EAAErB,GAAGoB,EAAEhC,EAAE,MAAM,IAAI,EAAErL,EAAEmL,EAAEkC,GAAG,CAAC,EAAE,GAAGnM,EAAElB,EAAEqL,EAAE,CAAC,KAAKgC,EAAElC,EAAE,OAAO,EAAE,IAAI,EAAEnL,EAAEmL,EAAEkC,GAAG,CAA2B,OAA1B,EAAElC,EAAE,SAAS,EAAEqK,EAAExV,EAAEmL,EAAEkC,GAAG,EAAShC,EAAE,QAAQ,MAAM,MAAMmC,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,IAAIrC,EAAEmC,EAAE,SAAS,GAAUnC,IAAP,KAAS,OAAO,GAAGjK,EAAElB,EAAEsN,EAAE,CAAoB,GAAnB,EAAE,cAAc,CAAC,EAAKnC,EAAE,kBAAkB,EAAEA,EAAE,YAAYqK,EAAExV,EAAE,GAAG,CAAC0N,EAAE1N,EAAE,GAAG,CAACmL,IAAIuC,EAAE1N,EAAE,GAAG,CAAC0N,EAAE1N,EAAE8M,EAAEzT,GAAE8R,EAAE,CAAC,CAAC,CAACuC,EAAE1N,EAAE,GAAG,EAAEwV,EAAExV,EAAE,GAAG,CAAC,GAAGkB,EAAElB,EAAEsN,EAAE,SAAS,EAAEnC,EAAE,aAAa,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAEA,EAAE,kBAAkB,QAAQjK,EAAE,kBAAkB,KAAKiK,EAAE,CAAC,IAAIE,EAAEnK,EAAE,cAAkBmM,EAAE,EAAE,iBAAiB,EAAE,EAAEhC,EAAE,eAAegC,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,GAAGhC,EAAE,GAAGrL,EAAEkB,EAAE,cAAciK,EAAE,CAAC,GAAGjK,EAAElB,EAAEsN,EAAE,SAASnC,EAAE,SAASjK,EAAE,qBAAqB,EAAE,cAAc,EAAE,gBAAgBA,EAAE,oBAAoB,KAAKiK,EAAE,CAAC,GAAGnL,EAAEkB,EAAE,cAAciK,EAAE,GAAG,CAAC,GAAGjK,EAAElB,EAAEsN,EAAE,KAAK,CAA+B,GAA9B,EAAEtN,EAAE,GAAG,CAAC,EAAEmL,EAAE,kBAAyBmC,EAAE,SAAN,EAAa,MAAM,MAAME,EAAE,IAAI,CAAC,CAAC,GAAGtM,EAAElB,EAAEsN,EAAE,GAAG,CAAC,OAAOkI,EAAExV,EAAE,GAAG,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAsD,OAArD,GAAGA,EAAEkB,EAAE,cAAcoM,EAAE,cAAcA,EAAE,GAAG,CAAC,GAAGpM,EAAElB,EAAEsN,EAAE,CAAQ,GAAGtN,EAAEsN,EAAE,cAAc,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,IAAInC,EAAEmC,EAAE,kBAAkBjC,EAAE,EAAEA,EAAEF,EAAE,OAAO,IAAI,GAAGjK,EAAElB,EAAEsN,EAAEnC,EAAEE,GAAG,CAAmK,GAAlK,EAAE,OAAO,EAAE,EAAEnK,EAAE,cAAc,EAAEoM,EAAE,GAAG,EAAEA,EAAE,cAAc,EAAEtN,EAAEkB,EAAE,kBAAkB,CAAC,EAAE,6BAA6BwM,EAAE1N,EAAE,GAAG,EAAE,EAAE,6BAA6B,CAAC,EAAE0N,EAAE1N,EAAE,GAAG,EAAYmL,IAAP,KAAS,MAAM,MAAMqC,EAAE,IAAI,CAAC,CAAgE,MAA/D,GAAEV,EAAEQ,EAAE,SAAS,GAAG,CAAC,CAAC,EAAEtN,EAAEmL,EAAE,CAAC,EAAEnL,EAAE,GAAG,CAAC,EAAEA,EAAEkB,EAAE,cAAc,CAAC,EAAElB,EAAEsN,EAAE,CAAQkI,EAAExV,EAAE,GAAG,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAOmL,EAAE,SAAN,EAAa,MAAM,CAAC,EAAE,IAAIE,EAAEF,EAAE,GAAG,GAAQE,IAAL,GAAO,CAAC,IAAS,EAAE,GAAGiC,EAAE,iBAAb,GAA4B,MAAM,MAAME,EAAE,IAAI,CAAC,CAAC,OAAO,GAAGtM,EAAElB,EAAEmL,EAAE,CAA+N,OAA9N,GAAGjK,EAAElB,EAAEmL,EAAE,CAAC,EAAEjK,EAAE,cAAc,EAAElB,EAAEkB,EAAE,kBAAkB,CAAC,EAAE,4BAA4BwM,EAAE1N,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,EAAE0N,EAAE1N,EAAE,GAAG,EAAE,EAAEA,EAAEkB,EAAE,cAAc,CAAC,EAAE4L,EAAEzB,EAAE,SAAS,GAAG,CAAC,CAAC,EAAErL,EAAEqL,EAAE,CAAC,EAAErL,EAAE,GAAG,CAAC,EAAEA,EAAEkB,EAAE,kBAAkB,CAAC,EAAElB,EAAEqL,EAAE,CAAQmK,EAAExV,EAAE,GAAG,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAIsN,EAAEpM,EAAE,qBAAqB,GAAUoM,IAAP,MAAcpM,EAAE,mBAAN,EAAuB,CAAC,GAAGA,EAAElB,EAAEsN,EAAE,CAAC,EAAE,qBAAqB,KAAK,IAAInC,EAAEjK,EAAE,cAAc,gBAAgB,IAAI,EAAE,EAAEoM,EAAEnC,EAAE,OAAO,EAAE,IAAI,EAAEnL,EAAEmL,EAAEmC,GAAG,CAAC,EAAEnC,EAAE,QAAQqK,EAAExV,EAAEmL,EAAEmC,GAAG,CAAC,IAAIjC,EAAEgC,EAAEnM,EAAE,yBAAyB,IAAI,EAAE,EAAEmK,EAAEgC,EAAE,OAAO,IAAI,CAAC,IAAIpB,EAAEoB,EAAEhC,GAAG,EAAErL,EAAE,IAAI2N,EAAEzM,EAAE,cAAckM,EAAEnB,EAAE,GAAGM,EAAEN,EAAE,YAAYjP,EAAEiP,EAAE,aAAazN,EAAEyN,EAAE,oBAAwH,GAApG,EAAEd,EAAEwC,EAAE,kBAAkB,CAAC,EAAE,yBAAyBD,EAAEvC,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,EAAEuC,EAAEvC,EAAE,GAAG,EAAYiC,IAAP,KAAS,MAAM,MAAMI,EAAE,IAAI,CAAC,CAAsH,GAArH,EAAErC,EAAEiC,EAAE,CAAC,EAAEjC,EAAE,GAAG,EAAEoB,GAAGvP,GAAGwB,KAAKkP,EAAEvC,EAAE,GAAG,CAACuC,EAAEvC,EAAE2B,EAAE,GAAGP,GAAG,GAAG,CAAC,CAAC,GAAGvP,GAAGwB,KAAKkP,EAAEvC,EAAE,GAAG,CAACuC,EAAEvC,EAAE2B,EAAE,GAAG9P,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI0Q,EAAEvC,EAAE,GAAG,CAACuC,EAAEvC,EAAE2B,EAAE,GAAGtO,EAAE,CAAC,CAAC,EAAK,CAACgX,EAAErK,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,EAAEE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAEA,EAAE,CAAC,IAAIkC,EAAErM,EAAE,oBAAoB,IAAI,EAAE,EAAEmK,EAAEkC,EAAE,OAAO,IAAI,GAAG,CAAC,GAAGrM,EAAElB,EAAEuN,EAAElC,GAAG,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,EAAEA,EAAE,CAAC,OAAO,EAAE,OAAO,EAAEA,EAAE,CAAC,GAAGrL,EAAE,CAAC,GAAG,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,IAAImM,EAAEjL,EAAE,kBAAkB,IAAI,EAAE,EAAEmK,EAAEc,EAAE,OAAO,IAAI,CAAC,IAAIjC,EAAEiC,EAAEd,GAAG,EAAE,CAAC,EAAEnK,EAAE,EAAElB,EAAE,IAAI6M,EAAE3C,EAAE,kBAAkB,IAAI,EAAE,EAAEyD,EAAEd,EAAE,OAAO,IAAI,GAAG,CAAC,GAAGQ,EAAEpB,EAAE/B,EAAE2C,EAAEc,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAEA,EAAE,CAAC,IAAI5U,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE4U,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC5U,EAAE,CAAC,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,EAAEsS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAEA,EAAE,CAAC,IAAIrS,EAAEkI,EAAE,oBAAoB,IAAI,EAAE,EAAEmK,EAAErS,EAAE,OAAO,IAAI,GAAG,CAAC,GAAGkI,EAAElB,EAAEhH,EAAEqS,GAAG,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,EAAEA,EAAE,CAAC,OAAO,EAAE,OAAO,EAAEA,EAAE,QAAQ,CAAC,GAAGrL,EAAE,CAAKkB,EAAE,kBAAN,GAA2BA,EAAE,YAAY,SAAlB,GAA8BA,EAAE,yBAAyB,SAA/B,GAA2CA,EAAE,oBAAoB,SAA1B,GAAkClB,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAIsN,EAAEpM,EAAE,eAAe,EAAE,SAAS,SAAS,EAAE,CAAC,OAAO,GAAGoM,EAAEpM,EAAElB,EAAE,GAAG,CAAC,EAAE,OAAO,CAAQkB,EAAE,cAAT,MAAsB,GAAGA,EAAEA,EAAE,YAAY,OAAOlB,EAAE,CAAC,GAAEkB,EAAElB,EAAE,CAAC,GAAGkB,EAAElB,EAAE,mkBAA/+nE,CAAIA,GAAE,YAAYkB,EAAErH,EAAUqH,EAAMoM,GAAE,EAAE,CAAKnC,GAAEnL,GAAoUqL,GAAE,OAAO,UAAU,eAAegC,GAAE,8VAA8VpB,GAAE,EAAE,CAAC,GAAE,EAAE,CAAwU,GAAE,EAAE,CAAC,uIAAuI,MAAM,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,GAAE/K,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,iBAAiB,CAAC,CAAC,YAAY,QAAQ,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,GAAG,GAAElB,GAAG,IAAIhC,GAAEgC,EAAE,EAAE,CAAC,EAAEkB,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,kBAAkB,YAAY,aAAa,QAAQ,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEA,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,4BAA4B,YAAY,gBAAgB,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEA,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,8OAA8O,MAAM,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEA,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,WAAW,QAAQ,WAAW,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEA,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,WAAW,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEA,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,OAAO,OAAO,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEA,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,QAAQ,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEA,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAK,GAAE,gBAA2D,0jCAA0jC,MAAM,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,QAAQ,GAAE,GAAK,CAAC,GAAElB,GAAG,IAAIhC,GAAEgC,EAAE,EAAE,CAAC,EAAEkB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,2EAA2E,MAAM,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,QAAQ,GAAE,GAAK,CAAC,GAAElB,GAAG,IAAIhC,GAAEgC,EAAE,EAAE,CAAC,EAAEkB,EAAE,+BAA+B,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,WAAW,YAAY,CAAC,SAAS,SAAS,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,QAAQ,GAAE,GAAK,CAAC,GAAElB,GAAG,IAAIhC,GAAEgC,EAAE,EAAE,CAAC,EAAEkB,EAAE,uCAAuC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,cAAc,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEA,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAE,UAAU,IAAIlD,GAAE,YAAY,EAAE,CAAC,EAAE,aAAa,+BAA+B,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,OAAO,SAAS,aAAa,CAAC,SAAS,SAAS,EAAE,CAAC,GAAEkD,GAAG,IAAIlD,GAAEkD,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAK,GAAE,CAAC,wBAAwB,CAAC,EAAE,YAAY,CAAC,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,EAAE,gBAAgB,CAAC,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,EAAE,eAAe,CAAC,EAAE,gBAAgB,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,EAAE,YAAY,CAAC,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,EAAE,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,GAAE,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,OAAO,KAAK,GAAE,CAAC,SAAS,SAAS,EAAE,CAAC,GAAE,SAAS,SAAS,EAAE,CAAC,EAAElB,EAAEkB,EAAE,OAAO,EAAE,CAAC,aAAa,CAACA,EAAE,UAAU,EAAE,CAAC,GAAElB,GAAG,GAAEkB,KAAK,GAAG,CAAK,GAAE,UAA6Y,GAAE,WAAW,GAAE,OAAO,GAAE,MAAM,QAAwd,GAAE,IAAI,IAA61D,GAAE,8BAA8BjK,GAAE,IAAI,IAAggKQ,GAAE,mBAA40BU,GAAE,OAAO,OAAO,GAAE,OAAO,IAAI,gBAAgB,CAACT,GAAE,OAAO,IAAI,eAAe,CAAC,GAAE,OAAO,IAAI,iBAAiB,CAAC,GAAE,OAAO,IAAI,oBAAoB,CAAC,GAAE,OAAO,IAAI,iBAAiB,CAACqP,GAAE,OAAO,IAAI,iBAAiB,CAAC,GAAE,OAAO,IAAI,gBAAgB,CAACjP,GAAE,OAAO,IAAI,oBAAoB,CAACH,GAAE,OAAO,IAAI,iBAAiB,CAACC,GAAE,OAAO,IAAI,sBAAsB,CAAC,GAAG,OAAO,IAAI,aAAa,CAACgS,GAAG,OAAO,IAAI,aAAa,CAAC,GAAG,OAAO,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,yBAAyB,CAACjR,GAAG,OAAO,IAAI,sBAAsB,CAAC,GAAG,OAAO,IAAI,sBAAsB,CAAC,GAAG,OAAO,SAAqtBsG,GAAG,EAAE,CAAkG,GAAG,KAAiyB/G,GAAG,CAAC,UAAU,UAAU,CAAC,MAAM,CAAC,GAAG,gBAAgB,SAAS,EAAE,EAAE,CAAC,EAAEgJ,EAAE,gBAAuBA,EAAE,QAAT,MAAgBA,EAAE,MAAM,KAAKlB,EAAE,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAC,EAAEkB,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAClB,EAAE,EAAE,mBAAmB,UAAU,GAAG,CAA2/BtH,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,CAA+O,GAAG,KAAK,MAAM,KAAK,MAAM,GAAKsG,GAAG,KAAK,IAAI3G,GAAG,KAAK,IAAoI,GAAgB,OAAO,OAAO,IAA3B,WAA8B,OAAO,GAAG,GAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAKC,EAAG,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,EAA+1C,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,OAAO4I,EAAE,gBAAgB,WAAW,SAAS,EAAE,CAAO,OAAN,IAAK,CAAQA,EAAE,gBAAgB,QAAQ,GAAK,WAAW,GAAK,OAAO,SAAS,EAAE,CAAC,GAAG,IAAK,CAAC,EAAG,IAAM,CAAC,IAAIlB,EAAE1H,EAAG,cAAc,OAAc0H,IAAP,MAAU,EAAE,CAAC,QAAQkB,EAAE,CAAC,EAAG,cAAcA,GAAGlB,GAAG,SAAS,SAAS,EAAE,CAAC,OAAO,GAAK,GAAKkB,EAAE,EAAE,mBAAmB3I,GAAI,gBAAgB,UAAU,GAAG,YAAY,SAAS,EAAE,EAAE,CAAC,OAAO,IAAM,UAAU,CAAC,OAAO2I,IAAIlB,EAAE,EAAE,oBAAoBzH,GAAI,UAAUA,GAAI,cAAcA,GAAI,iBAAiB,SAAS,EAAE,CAAO,OAAN,IAAK,CAAQ2I,GAAG,cAAc,UAAU,CAAO,OAAN,IAAK,CAAO,CAAC,CAAC,EAAE,GAAK,EAAE,MAAM,UAAU,CAAC,IAAIA,EAAE,GAAG,YAAgBlB,EAAEkB,EAAE,SAAS,EAAEA,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAG,GAAG,GAAGA,EAAE,CAAC,IAAI,SAAS,GAAG,CAAClB,EAAE,IAAIsN,EAAE,GAAG,GAAUA,IAAP,KAAS,MAAM,MAAM,EAAI,IAAI,CAAC,CAA4D,MAA3D,GAAE,KAAK,EAAE,IAAIA,EAAE,SAAS,IAAIpM,EAAE,EAAElB,IAAI,GAAG,IAAIA,EAAE,SAAS,GAAG,EAASkB,EAAE,KAAK,iBAAiB,SAAS,EAAE,EAAE,CAAO,OAAN,IAAK,CAAQlB,EAAEkB,EAAE,QAAQ,EAAE,qBAAqB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAYoM,IAAT,IAAK,GAAM,MAAM,MAAM,EAAI,IAAI,CAAC,CAAC,OAAOA,GAAG,EAAE,CAAC,GAAG,KAAK,GAAGnC,GAAE,mDAAmD,uBAAuwb,GAAE,mBAAmB,UAAU,CAAC,MAAM,MAAM,EAAI,IAAI,CAAC,EAAE,GAAE,qBAAqB,SAAS,EAAE,EAAE,CAAC,OAAO,GAAKjK,EAAElB,EAAE,CAAC,EAAE,8NAA8N,EAAE,GAAE,yBAAyB,UAAU,CAAC,MAAM,MAAM,EAAI,IAAI,CAAC,EAAE,GAAE,eAAe,SAAS,EAAE,EAAE,CAAC,OAAO,GAAKkB,EAAElB,EAAE,CAAC,EAAE,mXAAmX,EAAE,GAAE,QAAQ,SAAa,GAAG,YAAYkB,EAAErH,EAAUqH,EAAM,GAAG,EAAE,CAAK,GAAG,GAAmU,GAAG,KAAK,GAAG,EAA+a,GAAG,IAAI,YAAsJ,GAAG,OAAO,UAAU,eAAe,GAAG,8VAA8V,GAAG,EAAE,CAAC,GAAG,EAAE,CAA6U,GAAG,EAAE,CAAC,uIAAuI,MAAM,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,iBAAiB,CAAC,CAAC,YAAY,QAAQ,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,GAAG,GAAGlB,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEkB,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,kBAAkB,YAAY,aAAa,QAAQ,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,4BAA4B,YAAY,gBAAgB,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,8OAA8O,MAAM,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,WAAW,QAAQ,WAAW,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,WAAW,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,OAAO,OAAO,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,QAAQ,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAK,GAAG,gBAAyD,0jCAA0jC,MAAM,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAGlB,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEkB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,2EAA2E,MAAM,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAGlB,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEkB,EAAE,+BAA+B,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,WAAW,YAAY,CAAC,SAAS,SAAS,EAAE,CAAC,IAAIlB,EAAEkB,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAGlB,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEkB,EAAE,uCAAuC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,cAAc,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,UAAU,IAAI,GAAE,YAAY,EAAE,CAAC,EAAE,aAAa,+BAA+B,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,OAAO,SAAS,aAAa,CAAC,SAAS,SAAS,EAAE,CAAC,GAAGA,GAAG,IAAI,GAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAK,GAAG,CAAC,wBAAwB,CAAC,EAAE,YAAY,CAAC,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,EAAE,gBAAgB,CAAC,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,EAAE,eAAe,CAAC,EAAE,gBAAgB,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,EAAE,YAAY,CAAC,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,EAAE,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,SAAS,SAAS,EAAE,CAAC,GAAG,SAAS,SAAS,EAAE,CAAC,EAAElB,EAAEkB,EAAE,OAAO,EAAE,CAAC,aAAa,CAACA,EAAE,UAAU,EAAE,CAAC,GAAGlB,GAAG,GAAGkB,KAAK,GAAG,CAAK,GAAG,UAA8Y,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,QAAQ,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,8BAA8B,CAAC,GAAG,EAAE,wBAAwB,CAAC,GAAG,sBAA0nC,GAAG,EAAE,WAAiB,CAAoF,GAAG,IAAI,IAAI,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAyd,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAo3B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAqQ,GAAG,EAAE,eAAe,CAA8Q,GAAG,EAAE;EAAK,CAAC,GAAG,8BAA8B,GAAG,IAAI,IAAyH,GAAG,EAAE,kBAAkB,CAA67G,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,WAAiB,CAAC,GAAG,EAAE,0BAAgC,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,YAAkB,CAAC,GAAG,EAAE,YAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,cAAc,CAAC,EAAE,eAAe,CAAK,GAAG,EAAE,eAAe,CAAsF,GAAG,EAAE,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,oDAAoD,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,qDAAqD,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,4BAA4B,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC,GAAG,EAAE,yBAAyB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,+BAA+B,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAm0B,GAAG,EAAE,yMAAyM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,4aAA4a,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,yLAAyL,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,mBAAgZ,GAAG,OAAO,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAAC,GAAG,OAAO,IAAI,eAAe,CAAC,GAAG,OAAO,IAAI,iBAAiB,CAAC,GAAG,OAAO,IAAI,oBAAoB,CAAC,GAAG,OAAO,IAAI,iBAAiB,CAAC,GAAG,OAAO,IAAI,iBAAiB,CAAC,GAAG,OAAO,IAAI,gBAAgB,CAAC,GAAG,OAAO,IAAI,oBAAoB,CAAC,GAAG,OAAO,IAAI,iBAAiB,CAAC,GAAG,OAAO,IAAI,sBAAsB,CAAC,GAAG,OAAO,IAAI,aAAa,CAAC,GAAG,OAAO,IAAI,aAAa,CAAC,GAAG,OAAO,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,yBAAyB,CAAC,GAAG,OAAO,IAAI,sBAAsB,CAAC,GAAG,OAAO,IAAI,sBAAsB,CAAC,GAAG,OAAO,SAAwtB,GAAG,EAAE,CAAgG,GAAG,KAA2vB,GAAG,CAAC,UAAU,UAAU,CAAC,MAAM,CAAC,GAAG,gBAAgB,SAAS,EAAE,EAAE,CAAC,EAAEA,EAAE,gBAAuBA,EAAE,QAAT,MAAgBA,EAAE,MAAM,KAAKlB,EAAE,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAC,EAAEkB,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAClB,EAAE,EAAE,mBAAmB,UAAU,GAAG,CAA2/B,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,CAA6O,GAAG,KAAK,MAAM,KAAK,MAAM,GAAG,GAAG,KAAK,IAAI,GAAG,KAAK,IAAgI,GAAgB,OAAO,OAAO,IAA3B,WAA8B,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAG,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,EAAozC,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,OAAOkB,EAAE,eAAe,WAAW,SAAS,EAAE,CAAK,OAAJ,IAAG,CAAQA,EAAE,eAAe,QAAQ,GAAG,WAAW,GAAG,OAAO,SAAS,EAAE,CAAC,GAAG,IAAG,CAAC,EAAG,IAAI,CAAC,IAAIlB,EAAE,EAAG,cAAc,OAAcA,IAAP,MAAU,EAAE,CAAC,QAAQkB,EAAE,CAAC,EAAG,cAAcA,GAAGlB,GAAG,SAAS,SAAS,EAAE,CAAC,OAAO,GAAG,GAAGkB,EAAE,EAAE,mBAAmB,GAAG,gBAAgB,UAAU,GAAG,YAAY,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,UAAU,CAAC,OAAOA,IAAIlB,EAAE,EAAE,oBAAoB,GAAG,UAAU,GAAG,cAAc,GAAG,iBAAiB,SAAS,EAAE,CAAK,OAAJ,IAAG,CAAQkB,GAAG,cAAc,UAAU,CAAK,OAAJ,IAAG,CAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC,IAAIA,EAAE,GAAG,YAAgBlB,EAAEkB,EAAE,SAAS,EAAEA,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAG,GAAG,GAAGA,EAAE,CAAC,IAAI,SAAS,GAAG,CAAClB,EAAE,IAAIsN,EAAE,GAAG,GAAUA,IAAP,KAAS,MAAM,MAAME,EAAE,IAAI,CAAC,CAA4D,MAA3D,GAAE,KAAK,EAAE,IAAIF,EAAE,SAAS,IAAIpM,EAAE,EAAElB,IAAI,GAAG,IAAIA,EAAE,SAAS,GAAG,EAASkB,EAAE,KAAK,iBAAiB,SAAS,EAAE,EAAE,CAAK,OAAJ,IAAG,CAAQlB,EAAEkB,EAAE,QAAQ,EAAE,qBAAqB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAYoM,IAAT,IAAK,GAAM,MAAM,MAAME,EAAE,IAAI,CAAC,CAAC,OAAOF,GAAG,EAAE,CAAC,GAAG,KAAK,GAAG,GAAG,mDAAmD,uBAAsqX,GAAG,uBAAuB,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,SAAS,SAAS,EAAE,EAAE,CAAC,IAAIjC,EAAEgC,EAAEpB,EAAE,IAAI,SAAS,SAAS,EAAE,EAAE,CAAC,EAAE/K,EAAE,EAAElB,IAAI,CAAC2N,EAAE,GAAGzM,EAAE,GAAGlB,EAAEA,EAAE,iBAAiB,IAAK,GAAEA,EAAEA,EAAE,MAAM,IAAK,GAAEA,EAAEA,EAAE,uBAAuB,IAAK,GAAEA,EAAEA,EAAE,iBAAiB,IAAK,GAAEA,EAAEA,EAAE,iBAAiB,IAAK,GAAE,CAAC,GAAGA,EAAEA,EAAE,aAAa,IAAK,GAAE,CAACA,EAAEA,EAAE,qBAAqB,IAAK,GAAEA,EAAEA,EAAE,QAAQ,IAAK,GAAEqN,GAAG,UAAU,CAAC,IAAInM,EAAE,IAAI,eAAe,CAAC,KAAK,QAAQ,KAAK,SAAS,EAAE,CAAC,GAAOyM,EAAE,SAAN,EAAa,EAAE,OAAO,EAAE,GAAGzM,EAAEyM,EAAE,WAAW,SAAaA,EAAE,SAAN,GAAqBA,EAAE,cAAT,KAAqB,CAAC,EAAE,YAAYzM,EAAE,GAAG,CAAC,GAAGyM,EAAEzM,EAAE,OAAOA,EAAE,CAAC,GAAEyM,EAAEzM,EAAE,CAAC,GAAGyM,EAAEzM,EAAE,IAAI,OAAO,UAAU,CAAC,GAAGyM,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,SAAS1B,EAAE,EAAE/K,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,OAAO,UAAU,IAAI,CAAC,EAAEA,EAAE,GAAGmK,EAAE,CAAC,GAAGrL,GAAGA,EAAE,OAAO,CAAC,IAAIoN,EAAEpN,EAAE,OAAOqM,EAAE,UAAU,CAAC,GAAGsB,EAAEP,EAAE,OAAO,CAAC,EAAE,oBAAoB,QAAQf,EAAE,EAAE,EAAE,iBAAiB,QAAQA,EAAE,CAAC,GAAGsB,EAAE,GAAG,EAAE,GAAG,QAAQ,SAAa,GAAG,EAAE,CAAK,GAASL,GAAN,GAAW,GAAG,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,GAAG,eAAe,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,uBAAuB,GAAG,uBAAgC,GAAG,QAAW,GAAG,eAAkB,GAAG,qBAAwB,GAAG,mBAAsB,GAAG,yBAAyB,GAAG,GAAG,0BCOpuqE,SAAwB,GAAmB,EAAM,CAAoB,GAAK,CAAC,UAAQ,EAAYpI,EAAGmb,EAAQ,GAAqB,EAAE,CAAC,CAAO,EAASnhB,GAAa,SAAS,GAAGA,GAAa,OAAa,EAAI2kB,EAAO,KAAK,CAAO1pB,EAAQ,EAAE,CAAO,EAAQ,EAAE,CAAK,EAAkB,GAAU,EAAoB,GAAU,EAAiB,GAAS,EAAO,UAAU,IAAG,EAAQ,QAAQ,EAAE,EAAQ,QAAQ,EAAO,QAAQ,EAAkB,IAAS,EAAO,QAAQ,IAAG,EAAQ,MAAM,EAAE,EAAQ,MAAM,EAAO,MAAM,EAAoB,IAAS,EAAO,OAAO,IAAG,EAAQ,KAAK,EAAE,EAAQ,KAAK,EAAO,KAAK,EAAiB,IAAS,EAAO,SAAW,EAAO,OAAO,OAAO,MAAS,EAAO,OAAO,IAAI,IAAG,EAAQ,QAAQ,EAAE,EAAQ,QAAQ,EAAO,OAAO,EAAE,EAAoB,IAAS,EAAO,OAAO,IAAI,IAAG,EAAQ,QAAQ,EAAE,EAAQ,QAAQ,EAAO,OAAO,EAAE,EAAoB,IAAS,EAAO,OAAO,IAAI,IAAG,EAAQ,QAAQ,EAAE,EAAQ,QAAQ,EAAO,OAAO,EAAE,EAAoB,KAAe,EAAO,OAAO,WAAW,IAAG,EAAQ,OAAO,EAAE,EAAQ,OAAO,EAAO,OAAO,SAAS,EAAoB,KAAW,EAAO,OAAS,EAAO,KAAK,IAAI,IAAG,EAAQ,MAAM,EAAE,EAAQ,MAAM,EAAO,KAAK,EAAE,EAAoB,IAAS,EAAO,KAAK,IAAI,IAAG,EAAQ,MAAM,EAAE,EAAQ,MAAM,EAAO,KAAK,EAAE,EAAoB,KAAU,EAAO,SAA+D,EAAO,QAA8D,IAAK,IAAuB,EAAQ,EAAE,EAAE,EAAQ,EAAmB,EAAO,QAAgE,EAAE,EAAoB,IAA2B,EAAO,QAAgE,IAAK,IAAuB,EAAQ,EAAE,EAAE,EAAQ,EAAmB,EAAO,QAAgE,EAAE,EAAoB,KAAO,IAAI,EAAgB,EAAE,CAAI,GAAkB,EAAgB,KAAK,UAAU,CAAI,GAAoB,EAAgB,KAAK,YAAY,CAAI,GAAiB,EAAgB,KAAK,SAAS,CAAC,IAAM,EAAW,EAAgB,KAAK,KAAK,CAAC,OAAoB,EAAK,GAAU,CAAK,MAAI,GAAG+K,EAAG,MAAM,CAAC,MAAM,EAAM,MAAM,WAAW,EAAM,WAAW,OAAO,OAAO,OAAO,EAAE,YAA6B,EAAO,QAA8D,OAAQ,KAAK,GAAG,EAAO,OAAO,YAAY,IAAI,IAAA,GAAU,GAAG,EAAM,KAAK,GAAG,EAAM,MAAM,CAAC,KAAK,EAAM,KAAK,QAAQ,EAAS,EAAE,CAAC/K,EAAQ,QAAQ,EAAS,EAAE,CAAC,EAAQ,UAAU,EAAM,UAAU,OAAO,EAAM,OAAO,IAAI,EAAM,QAAmB,aAAW,mBAAmB,CAAC,EAAoB,gBAAgB,EAAM,MAAM,YAAY,IAAI,EAAM,IAAI,OAAO,EAAO,OAAO,CAAC,CA2B94E,SAAS,GAAS,EAAQ,EAAQ,EAAI,EAAS,CAAC,GAAG,CAACA,GAAS,CAAC,GAAS,CAACA,EAAQ,eAAe,EAAI,CAAE,OAAkB,IAAM,EAAMA,EAAQ,GAAiC,EAAiC,IAAgD,IAAiD,GAAsB,IAAiC,EAA+E,OAA1EyU,GAAU,EAAU,EAAsBA,GAAU,EAAU,EAAmB,GAAc,EAAM,GAAcA,EAI/mB,SAAS,GAAS,EAAM,EAAQ,EAAS,EAAM,EAAO,CAAC,GAAG,IAAU,EAAU,OAAO,EAAO,IAAM,GAAY,EAAM,IAAU,EAAS,GAAS,OAAO,EAAM,GAAY,EAAO,GAAgF,SAAS,IAAsB,CAAC,IAAI,EAAO,GAAG,IAAI,IAAIvB,EAAE,EAAEA,EAAE,EAAE,IAAI,CAAC,IAAM,EAAY,KAAK,MAAM,KAAK,QAAQ,CAAC,GAAkB,CAAC,GAAQ,GAAW,OAAO,EAAY,CAAE,OAAO,mDAtCpb,IAAiE,IAA4D,IAAuC,CAAM,GAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAO,GAAI,EAAQ,GAAO,EAAQ,GAAO,GAAS,GAAiB,CAAC,eAAe,CAAC,GAAO,GAAO,CAAC,YAAY,CAAC,GAAO,GAAI,CAAC,YAAY,CAAC,GAAI,GAAO,CAAC,YAAY,CAAC,GAAI,GAAO,CAAC,CAAO,GAAU/S,EAAY,IAAI,EAAE,IAAI,EAAE,CAOsjE,GAAmB,YAAY,wBAAwB,GAAoB,GAAmB,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,aAAa,sCAAsC,YAAY,OAAO,gBAAgB,GAAK,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,KAAK,SAAS,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,SAAS,GAAK,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,QAAQ,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,wBAAwB,GAAK,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,KAAK,IAAO,OAAO,GAAO,EAAM,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,KAAK,IAAO,OAAO,GAAO,EAAM,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,KAAK,IAAO,OAAO,GAAO,EAAM,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,KAAK,IAAO,OAAO,GAAO,EAAM,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,aAAa,KAAK,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,OAAO,GAAO,EAAM,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,SAAS,GAAK,SAAS,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,KAAK,IAAO,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,KAAK,IAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,SAAS,GAAK,SAAS,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,QAAQ,CAAC,iBAAiB,cAAc,cAAc,cAAc,gBAAgB,eAAe,CAAC,aAAa,CAAC,aAAa,YAAY,cAAc,aAAa,qBAAqB,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAY,KAAK,QAAQ,CAAC,YAAY,OAAO,CAAC,aAAa,CAAC,SAAS,OAAO,CAAC,wBAAwB,GAAK,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,aAAa,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,GAAK,CAAC,WAAW,CAAC,KAAK,EAAY,QAAQ,aAAa,GAAM,CAAC,IAAI,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,aAAa,IAAI,wBAAwB,GAAK,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,YAAY,qEAAqE,CAAC,CAAC,CAAO,GAAuB,EAAkB,EAAW,SAAmB,CAAC,GAAA,EAAG,OAAK,UAAA,EAAU,QAAM,QAAA,EAAQ,UAAQ,UAAA,EAAU,SAAO,MAAI,aAAW,qBAAmB,kBAAgB,GAAM,MAAI,UAAQ,EAAI,CAAC,IAAM,EAAS4E,GAAa,SAAS,GAAGA,GAAa,OAAa,EAAY2kB,EAAO,EAAE,CAAC,CAAO,EAAI,EAAU,EAAc,EAAmB,GAAG3e,EAAG,UAAU,GAAGA,EAAG,WAAiB,EAAMmb,MAAY,CAAC,IAAM,EAAU,EAAK,MAAM;EAAK,CAAO7lB,EAAM,EAAE,CAAC,IAAI,IAAI6S,EAAE,EAAEA,EAAE,EAAU,OAAO,IAAK,EAAM,KAAK,EAAUA,GAAG,MAAM,SAAS,CAAC,CAAE,OAAO7S,GAAQ,CAAC,EAAK,CAAC,CAAC,MAAkB,EAAU,OACnuL,GAAqB,EAD2uL,GAAa,CAAC,IAAM,EAAe,GAAiB+a,GAAiB,EAAe,EAAO,YAAkB,EAAc,EAAY,QAAQ,OAAa,EAAQ,EAAE,CAAC,IAAI,IAAIlI,EAAE,EAAEA,EAAE,EAAc,IAAI,CAAC,IAAM,EAAQ,EAAY,QAAQA,GAAG,GAAG,CAAC,EAAS,SAAU,IAAM,GAAS,GAAa,GAAQ,IAAIA,EAAE,EAAc,IAAI,EAAmBuB,EAAS,EAAK2G,IAAY,gBAAoB,GAAS,GAAI,EAAS,GAAS,EAAQ,EAAE,GAAG,EAAE,EAAE,CAAU,GAAS,KAAI,EAAS,GAAS,EAAQ,GAAG,EAAE,EAAE,EAAE,EAA4I,EAAjIA,IAAY,eAAmB,GAAS,GAAa,GAAS,EAAQ,EAAE,GAAG,EAAE,EAAE,CAAgB,GAAS,EAAQ,GAAG,EAAE,EAAE,EAAE,CAAiB,GAAS,EAAQ,EAAe,GAAG,EAAe,GAAG,EAAE,EAAE,CAAE,EAAS,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,GAAU3G,EAAS,CAAC,CAAC,CAAC,IAAM,EAAW,EAAE,CAAO,EAAO,EAAE,CAAO,EAAQ,GAASzU,EAAQ,EAAQ,UAAUyU,EAAS,CAAI,IAAU,IAAA,KAAW,EAAO,QAAQ,OAAO,EAAQ,EAAE,IAAMtE,EAAM,GAASnQ,EAAQ,EAAQ,QAAQyU,EAAS,CAAItE,IAAQ,IAAA,IAAW,EAAW,KAAK,SAASA,EAAM,GAAG,CAAE,IAAM,EAAK,GAASnQ,EAAQ,EAAQ,OAAOyU,EAAS,CAAI,IAAO,IAAA,KAAW,EAAQ,MAAM,OAAO,QAAQ,EAAK,MAAM,IAAMrF,EAAO,GAASpP,EAAQ,EAAQ,SAASyU,EAAS,CAAIrF,IAAS,IAAA,IAAW,EAAW,KAAK,UAAUA,EAAO,MAAM,CAAE,IAAM3O,EAAQ,GAAST,EAAQ,EAAQ,UAAUyU,EAAS,CAAIhU,IAAU,IAAA,IAAW,EAAW,KAAK,WAAWA,EAAQ,MAAM,CAAE,IAAMC,EAAQ,GAASV,EAAQ,EAAQ,UAAUyU,EAAS,CAAI/T,IAAU,IAAA,IAAW,EAAW,KAAK,WAAWA,EAAQ,MAAM,CAAE,IAAMC,EAAQ,GAASX,EAAQ,EAAQ,UAAUyU,EAAS,CAAI9T,IAAU,IAAA,IAAW,EAAW,KAAK,WAAWA,EAAQ,MAAM,CAAE,IAAM,EAAM,GAASX,EAAQ,EAAQ,QAAQyU,EAAS,CAAI,IAAQ,IAAA,IAAW,EAAW,KAAK,SAAS,EAAM,MAAM,CAAE,IAAM,EAAM,GAASzU,EAAQ,EAAQ,QAAQyU,EAAS,CAAI,IAAQ,IAAA,IAAW,EAAW,KAAK,SAAS,EAAM,MAAM,CAAE,IAAM,EAAQ,GAASzU,EAAQ,EAAQ,IAAIyU,EAAS,CAAI,IAAU,IAAA,IAAW,EAAW,KAAK,cAAc,EAAQ,KAAK,CAAE,IAAM,EAAQ,GAASzU,EAAQ,EAAQ,IAAIyU,EAAS,CAAI,IAAU,IAAA,IAAW,EAAW,KAAK,cAAc,EAAQ,KAAK,CAAK,EAAW,SAAQ,EAAO,UAAU,EAAW,KAAK,IAAI,EAAE,EAAQ,KAAK,CAAC,UAAQ,SAAO,CAAC,CACjjQ,0BAA0B,CAAC,EAAQ,QAAQ,GAAQ,CAAC,GAAG,CAAC,EAAO,OAAO,GAAK,CAAC,UAAQ,UAAQ,EAAO,OAAO,OAAO,EAAQ,MAAM,EAAO,EAAG,EAAG,EAAyD,CAAkB,CAACzU,EAAQ,EAAQ,CAAC,CAAC,IAAIuS,EAAM,EAAQ,GAAoB,EAAU,IAAoB,EAAU,KAAK,EAAK,IAAY,CAAC,GAAG,EAAiB,OAAoB,EAAK,OAAO,CAAC,UAAU,GAAGxH,EAAG,eAAe,UAAU,GAAM,EAAU,EAAU,OAAO,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,KAAK,EAAK,IAAY,CAAC,IAAMlK,EAAW0R,EAAc,MAAR,KAA4B,EAAK,OAAO,CAAC,IAAI,GAAI,CAAI,IAAG,EAAY,QAAQ1R,GAAY,IAAK,UAAU,EAAc,SAAS,EAAK,CAAC,GAAG,EAAU,GAAG,EAAU,GAAG,IAAY,EAAG,CAAC,CAAC,GAAG,EAAU,GAAG,IAAY,CAAE,IAAM,EAAW0R,EAAc,MAAR,KAA4B,EAAK,OAAO,CAAC,IAAI,GAAI,CAAI,IAAG,EAAY,QAAQ,GAAY,IAAK,UAAU,EAAc,SAAS,GAAM,EAAU,EAAU,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAU,GAAG,IAAY,EAAG,CAA2B,OAAoB,EAAM,EAAI,CAAC,UAAUgY,EAAc,MAAI,MAAM,CAAC,GAAG,EAAM,GAAG,EAAM,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,OAAO,cAAc,SAAa,MAAI,CAAC,eAAe,cAAc,WAAY,GAA0C,MAAO,IAAA,GAAU,SAAS,CAAC,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS;OACnwCxf,EAAG;;;;;OAKHA,EAAG;;;;;OAKHA,EAAG;;;;;OAKHA,EAAG;;;;;OAKHA,EAAG;OACHA,EAAG;oBACU,EAAW;yBACK,GAA6C,GAAwC,GAAG,IAAe,GAA6C,GAAwC,GAAG;;MAE7N,CAAC,CAAC,EAAM,SAAS,EAAE,EAAmB,EAAE,EAAM,GAAG,CAAC,EAAM,KAAK,EAAU,IAAyB,EAAK,OAAO,CAAC,UAAU,GAAGA,EAAG,OAAO,SAAS,EAAmB,EAAU,EAAU,CAAC,CAAC,EAAU,CAAC,CAAC,CAAC,CAAC,EAAG,CAAC,CAA+e,IAAsB,EAAI,IAAW,CAAC,IAAI,EAAM,KAAS,EAAa,KAAS,EAAgB,KAAW,MAAmB,CAAC,GAAG,EAAI,QAAQ,CAA2B,IAAM,EAAlB,EAAI,QAA2B,uBAAuB,CAC54B,IAAkB,OAAM,EAAgB,EAAO,eAAe,CAAI,IAAe,EAAK,MAAK,EAAa,EAAK,IAAI,EAAS,EAAK,IAAI,EAAE,EAAgB,MAAO,GAAG,EAC/J,EAAM,sBAAsB,EAAe,EAE9C,MADA,GAAM,sBAAsB,EAAe,KACjC,CAAI,IAAQ,MAAM,qBAAqB,EAAM,GAAoM,GAAW,2ECtCiQ,GAAW,GAAGsQ,EAAmoB,GAAW,GAAgB,OAAOA,GAApB,6BCA7mC,mBCAwH,ICAokB,SAAS,GAAO,EAAE,EAAE,CAAC,IAAIxX,EAAE,EAAE,CAAC,IAAI,IAAIgC,KAAKkB,EAAE,OAAO,UAAU,eAAe,KAAKA,EAAElB,EAAE,EAAEwV,EAAE,QAAQxV,EAAE,CAAC,IAAI,EAAEA,GAAGkB,EAAElB,IAAI,GAASkB,GAAN,MAAsB,OAAO,OAAO,uBAA3B,WAAiD,CAAC,IAAIiK,EAAE,EAAE,IAAI,EAAE,OAAO,sBAAsBjK,EAAE,CAACiK,EAAEnL,EAAE,OAAO,IAAI,EAAE,QAAQA,EAAEmL,GAAG,CAAC,GAAG,OAAO,UAAU,qBAAqB,KAAKjK,EAAElB,EAAEmL,GAAG,GAAG,EAAEnL,EAAEmL,IAAIjK,EAAElB,EAAEmL,KAAK,OAAOnN,mCCAhkCgC,GAAE,EAAE,CAAC,OAAO,eAAeA,GAAE,aAAa,CAAC,MAAM,GAAK,CAAC,CAAC,GAAE,QAAQ,UAAU,GAAG,GAAE,UAAU,UAAU,GAAWA,GAAE,WAAaA,GAAE,QAAUA,GAAE,4BCAlF,ICA4hL,SAAS,GAAgB,EAAE,EAAE,CAAkL,OAA7J,OAAOkB,GAAlB,SAAuBsU,GAAaA,EAAEtU,KAAkB,EAAEA,GAAG,SAAS,iBAAiBA,EAAE,EAAC,EAAEsU,EAAEtU,IAAQ,EAAE,SAAS,iBAAiBA,EAAE,CAAM,aAAa,UAAU,EAAE,CAACA,EAAE,EAAS,MAAM,KAAKA,GAAG,EAAE,CAAC,CAA2uK,SAAS,GAAS,EAAE,EAAE,CAAC,KAAKlB,EAAE,OAAOmL,EAAE,OAAOc,EAAE,OAAO,EAAE,CAAC,CAAC,GAAiB,OAAO,qBAArB,IAA0C,UAAU,GAAG,IAAMjO,EAAE,GAAgBkD,EAAE,CAAOoM,EAAE,IAAI,QAA4OK,EAAE,IAAI,qBAA/M,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,IAAM3N,EAAEsN,EAAE,IAAIpM,EAAE,OAAO,CAAC,GAAGA,EAAE,iBAAiB,EAAQlB,KAAMkB,EAAE,eAAe,CAAC,IAAMlB,EAAEwV,EAAEtU,EAAE,CAAC,GAAElB,EAAE,CAACsN,EAAE,IAAIpM,EAAE,OAAOlB,EAAE,CAAC2N,EAAE,UAAUzM,EAAE,OAAO,MAASlB,IAAG,EAAEkB,EAAE,CAAC,EAAE,OAAOA,EAAE,OAAO,IAAI,EAAwD,CAAC,KAAKlB,EAAE,WAAWmL,EAAE,UAAqB,OAAOc,GAAlB,SAAoBA,EAAE,GAAEA,GAAG,CAAC,CAA8B,OAA7B,EAAE,SAAS,GAAG0B,EAAE,QAAQzM,EAAE,EAAE,KAAWyM,EAAE,YAAY,CAA2B,SAAS,GAAe,EAAE,EAAE,CAAC,GAAG6H,EAAE,CAAC,GAAK,CAAC,WAAWtU,EAAE,UAAUlB,GAAGwV,EAAE,GAAG,MAAM,CAAC,MAAMtU,EAAE,OAAOlB,EAAE,CAAC,OAAOkB,aAAa,YAAY,YAAYA,EAAEA,EAAE,SAAS,CAAC,CAAC,MAAMA,EAAE,YAAY,OAAOA,EAAE,aAAa,CAAC,SAAS,GAAa,CAAC,OAAOA,EAAE,YAAYsU,EAAE,cAAcxV,GAAG,CAAC,IAAImL,GAAU,EAAE,GAAE,IAAIjK,EAAE,GAAlB,MAAuCiK,EAAE,SAAS,GAAG,CAAC,EAAE,CAAC,OAAOjK,EAAE,YAAYsU,EAAE,IAAI,MAAM,CAAC,OAAO,GAAetU,EAAElB,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,GAAU,EAAE,CAAC,EAAE,QAAQ,GAAa,CAAC,SAAS,IAAsB,CAAe,OAAO,eAArB,MAAsC,GAAE,IAAI,eAAe,GAAU,EAAE,SAAS,GAAc,EAAE,EAAE,CAAC,IAAG,IAAsB,CAAC,IAAMA,EAAE,GAAgBkB,EAAE,CAAgH,OAA/G,EAAE,SAAS,GAAG,CAAC,IAAIlB,EAAE,GAAE,IAAIkB,EAAE,CAAKlB,IAAG,EAAE,IAAI,IAAI,GAAE,IAAIkB,EAAElB,EAAE,EAAC,EAAE,IAAIwV,EAAE,CAAQ,IAAuB,QAAQtU,EAAE,GAAG,KAAW,CAAC,EAAE,SAAS,GAAG,CAAC,IAAMlB,EAAE,GAAE,IAAIkB,EAAE,CAAQlB,GAAuB,OAAOwV,EAAE,CAASxV,GAAP,MAA4BA,EAAE,MAAe,IAAP,MAA4B,GAAE,UAAUkB,EAAE,GAAI,EAAwB,SAAS,IAA2B,CAAC,OAAM,CAAC,IAAMA,EAAE,CAAC,MAAM,EAAO,WAAW,OAAO,EAAO,YAAY,CAAOsU,EAAE,CAAC,OAAO,EAAO,KAAKtU,EAAE,YAAYA,EAAE,CAAC,GAAE,SAAS,GAAGA,EAAEsU,EAAE,EAAE,EAAE,EAAO,iBAAiB,SAAS,GAAE,CAAC,SAAS,GAAa,EAAE,CAAyC,OAAxC,GAAE,IAAItU,EAAE,CAAC,IAAG,IAA2B,KAAW,CAAC,GAAE,OAAOA,EAAE,CAAC,CAACxC,GAAE,MAAM,KAAI,GAAE,IAAK,KAAI,SAAS,GAAO,EAAE,EAAE,CAAC,OAAO2O,GAAEnM,EAAE,CAAC,GAAaA,EAAE,CAAC,GAAcA,EAAEsU,EAAE,CAAohK,SAAS,GAAqB,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,IAAI,YAAYA,EAAE,CAAC,OAAO,CAAC,cAAcxV,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,IAAI,YAAYwV,EAAE,CAAC,OAAO,CAAC,cAAcxV,EAAE,CAAC,CAAC,CAAC,yEAAtlf,IAAI,IAAMkB,aAAxpE,KAAwE,KAA+B,KAAuC,KAA+G,CAA+L,GAAE,CAAC,GAAG,IAAI,IAAI,IAAI,CAAO,GAAE,CAAC,YAAY,QAAQ,SAAS,OAAO,CAA8D,GAAE,CAAC,OAAO,UAAU,aAAa,OAAO,cAAc,GAAGA,EAAE,MAAM,CAAO,GAAE,CAAC,UAAU,CAAC,OAAO,sBAAsB,aAAa,MAAM,cAAc,GAAGA,EAAE,KAAK,CAAC,OAAO,GAAE,MAAM,CAAC,OAAO,WAAW,aAAa,EAAE,cAAcsU,GAAE,CAAC,KAAK,GAAE,CAAO,GAAE,IAAI,IAAU,GAAkB,GAAG,YAAYtU,IAAU6F,GAAE,CAAC,IAAI,IAAI,IAAI,CAAC,GAAE,SAAS,GAAG,CAAC,GAAE,SAAS,GAAG,CAAC,GAAE,KAAK7F,EAAEsU,EAAE,CAAC,GAAE,IAAI,GAAkBtU,EAAEsU,EAAE,CAAC,GAAEtU,GAAG,GAAG,GAAG,CAAsE,IAAI,IAAI6F,GAAE,CAA6lB,IAAe,EAAE,IAAI,SAAS,cAAc,MAAM,CAAC,QAAQ7F,EAAEsU,EAAE,CAAO,GAAE,CAAC,wBAAsC,OAAO,IAArB,KAA0B,OAAO,eAAe,KAAK,IAAI,mBAAmB,CAAC,UAAU,OAAO,eAAe,KAAK,QAAQ,UAAU,UAAU,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAS,CAAC,MAAO,GAAM,MAAO,IAAM,aAAa,EAAQ,GAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAU,iBAAiB,CAAC,GAAG,CAAC,GAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,eAAe,CAAC,MAAS,CAAC,MAAO,GAAM,MAAO,IAAM,CAAO,GAAE,EAAE,CAAO,GAAE,EAAE,CAAgB,GAAE,GAAEtU,QAAiB,GAAEA,KAAX,IAAK,KAAW,GAAEA,GAAG,GAAEA,IAAI,EAAS,GAAEA,IAAy8Q,GAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAijB,GAAE,IAAI,QAA45BxC,GAAE,IAAI,IAA2mL,GAAG,CAAC,SAAS,GAAG,EAAQwC,EAAE,OAAQ,WAAW,EAAE,CAAC,OAAOsU,EAAE,QAAQxV,GAAG,CAAC,cAAcmL,EAAE,EAAE,IAAI,CAAC,GAAK,CAAC,KAAKkC,GAAGlC,EAAEc,EAAE/B,GAAEiB,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,GAASjK,GAAG,GAAG,CAAwC,GAAvC,GAAG,CAAC,GAAkBA,EAAE,YAAYiK,EAAE,CAAI,CAACkC,EAAE,MAAO,IAAG,CAAC,GAAG,CAAC,GAAkBnM,EAAE,YAAYsU,EAAE,IAAIvJ,EAAE,EAAE,CAAO,IAAY,EAAE,EAAE,IAAI,GAAG,EAAI,CAACd,EAAE,aAAuBA,EAAE,cAAZ,WAAyB,GAAG,CAAC,GAAqBjK,EAAEsU,EAAErK,EAAE,GAA+xBnM,GAAG,CAAC,OAAO,GAAG,MAAjyB,CAAC,SAAS,GAAG,EAAQkC,EAAE,MAAO,WAAW,EAAE,CAAC,OAAOsU,EAAE,QAAQxV,KAAK,CAAC,IAAMmL,EAAE,GAAWjK,EAAE,aAAasU,EAAE,CAAOnI,EAAE,GAAWnM,EAAE,WAAWlB,EAAE,CAA2E,OAA1E,EAAE,iBAAiB,eAAemL,EAAE,CAAC,EAAE,iBAAiB,eAAekC,EAAE,KAAW,CAAC,EAAE,oBAAoB,eAAelC,EAAE,CAAC,EAAE,oBAAoB,eAAekC,EAAE,GAAG,CAAwf,MAA9e,CAAC,SAAS,GAAG,EAAQnM,EAAE,MAAO,WAAW,EAAE,CAAC,OAAOsU,EAAE,QAAQxV,KAAK,CAAC,IAAM,EAAY,GAAG,CAAC,GAAG,CAAC,GAAqBkB,EAAE,WAAWsU,EAAE,CAAC,EAAO,oBAAoB,YAAY,EAAY,EAAQ,EAAc,GAAG,CAAC,GAAG,CAAC,GAAqBtU,EAAE,aAAalB,EAAE,CAAC,EAAO,iBAAiB,YAAY,EAAY,EAAkD,OAAhD,EAAE,iBAAiB,cAAc,EAAc,KAAW,CAAC,EAAE,oBAAoB,cAAc,EAAc,CAAC,EAAO,oBAAoB,YAAY,EAAY,GAAG,CAAuC,CAAU,CAAqB,GAAG,OAAO,KAAKhB,GAAG,CAAQ,ICSx0mB,SAAwB,GAAO,EAAM,CAAY,GAAG,CAAC,QAAM,EAAE,CAAC,MAAI,UAAQ,iBAAe,aAAW,eAAa,gBAAc,cAAY,QAAM,cAAY,YAAU,YAAU,gBAAc,cAAY,SAAO,EAAW,CAAC,cAAY,WAAS,YAAU,YAAU,cAAW,EAAiB,CAAC,aAAU,cAAY,EAAoB,EAAa,EAAe,GAAG,EAAW,KAAK,EAAa,KAAK,EAAc,KAAK,EAAY,IAAI,GAAG,EAAQ,IAAsB,EAAcE,GAAa,SAAS,CAAO,GAAS,IAAgBA,GAAa,QAAQ,IAAgBA,GAAa,OACtkB,GAAc,EAAM,OAAO,QAAQ,CAAO,GAAY8B,EAAS,MAAM,GAAc,CAAO,GAAY,GAAY,EAAK,IAAY,KAAM,EAAU,QAAQ,IAAM,GAAa,IAAY,QAAQ,IAAY,QAAc,GAAO,GAAe,EAAE,CAAO,EAAY,GAAsB,GAA2B,GAAa,GAAO,EAAY,CAAqB,IAAM,GAAU6iB,EAAO,KAAK,CAAO,EAAYxD,MAAmB,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAG,EAAE,CAAC,CAAM,CAAC,EAAK,IAAStS,EAAS,CAAC,OAAO,KAAK,SAAS,KAAK,CAAC,CAAiB,GAAe,KAAS,GAAc,EAAE,CAA0B,EAAY,EAAM,GAAQ,EAAK,KAAU,EAAY,GAAY,KAAK,MAAM,GAAG,GAAY,CAAC,EAAE,GAAQ,GAAM,CAAC,IAAU,IAAa,EAAK,SAAQ,EAAY,KAAK,MAAM,EAAK,OAAO,EAAK,SAAS,EAAE,CAAC,EAAE,EAAY,KAAK,IAAI,EAAY,GAAqB,CAAC,GAAQ,GAAiC,IAAM,EAAQC,MAAgB,CAAC,GAAG,IAAa,GAAU,QAAQ,CAAC,IAAM,EAAa,GAAa,GAAU,QAAQ,YAAY,GAAU,QAAQ,aAAmB,EAAM,EAAY,GAAG,QAAQ,GAAa,EAAY,GAAG,QAAQ,WAAW,EAAY,GAAG,QAAQ,UAAU,EAAkM,GAAtL,EAAY,GAAG,QAAQ,GAAa,EAAY,GAAG,QAAQ,WAAW,EAAY,GAAG,QAAQ,YAAY,EAAY,GAAG,QAAQ,UAAU,EAAY,GAAG,QAAQ,aAAa,GAA2B,EAAM,EAAI,MAAoB,CAAC,GAAQ,CAAC,OAAO,EAAa,SAAS,EAAe,CAAC,EAAG,GAAI,EAAE,CAAC,CAAO,GAAe,GAAS,CAAC,kBAAkB,OAAO,CAAC,EAAE,CAAuC,GAAG,GAAY,CACtkD,GAAG,CAAC,GAAS,CAGE,IAAI,EAAc6V,EAAO,GAAK,CAAC,OAAqB,GAAM,KAAK,EAAQ,GAAM,GAAK,CAAQ,GAAO,GAAU,SAAS,CAAC,iBAAe,CAAI,CAAC,EAAc,UAAU,EAAY,OAAO,EAAY,SAAS,GAAM,KAAK,EAAQ,GAAM,GAAK,CAAE,EAAc,QAAQ,IAAQ,EAAG,EAAE,CAAC,CAAE,GAAe7iB,EAAS,IAAI,IAAe,EAAM,IAAQ,CAAC,IAAI,EAAO0L,IAAQ,IAAG,EAAI,EAAY,IAAOA,IAAQ,GAAc,OAAO,IAAG,EAAI,EAAY,IAAI,IAAMjN,EAAK,CAAC,MAAM,GAAU,EAAM,OAAO,MAAM,OAAO,OAAO,EAAW,EAAM,OAAO,OAAO,OAAO,CAAC,OAAoB,EAAK,EAAY,CAAC,QAAQ,KAAK,SAAsB,EAAK,GAAQ,CAAK,MAAI,MAAMA,EAAK,SAAsB,EAAa,EAAM,CAAC,MAAM,CAAC,GAAG,EAAM,OAAO,MAAM,GAAGA,EAAK,WAAW,EAAE,GAAG,GAAe,CAAC,SAAS,EAAM,MAAM,SAAS,EAAM,MAAM,SAAS,aAAaiN,EAAM,IAAA,GAAU,CAAC,EAAM,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,EAAG,CAAE,IAAM,GAAS,GAAS,GAAK,EAAU,GAAU,CAAC,GAAG,CAAC,GAAU,IAAI,IAAIW,EAAE,EAAEA,EAAE,EAAY,IAAK,GAAc,GAAc,OAAOrM,EAAS,IAAI,IAAe,EAAM,IAAa,CAAC,IAAMvB,EAAK,CAAC,MAAM,GAAU,EAAM,OAAO,MAAM,OAAO,OAAO,EAAW,EAAM,OAAO,OAAO,OAAO,WAAY,GAAmB,YAAV,IAAA,GAAsB,CAAC,OAAoB,EAAK,EAAY,CAAC,QAAQ,KAAK,SAAsB,EAAK,GAAQ,CAAC,MAAMA,EAAK,SAAsB,EAAa,EAAM,CAAC,IAAI4N,EAAE,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,OAAO,MAAM,MAAM,GAAU,EAAM,OAAO,MAAM,OAAO,OAAO,EAAW,EAAM,OAAO,OAAO,OAAO,WAAW,EAAE,GAAG,GAAe,CAAC,SAAS,EAAM,MAAM,SAAS,EAAM,MAAM,SAAS,SAASA,EAAE,IAAA,GAAU,CAAC,EAAM,OAAO,SAAS,CAAC,CAACA,EAAE,KAAK,EAAW,CAAC,CAACA,EAAE,KAAK,EAAW,EAAG,CAAC,CAAG,IAAM,EAAe,EAAK,SAAS,EAAK,SAAS,KAAK,MAAM,EAAK,OAAO,EAAK,SAAS,CAAmB,EAAO,KAAK,CAAgB,EAAO,KAAK,CAAY,EAAO,EAAE,CAAC,IAAM,GAAQwW,EAAO,GAAM,CAAO,GAAgB,IAAkB,CAAO,GAAQA,EAAO,KAAK,CAAO,GAAaA,EAAO,KAAK,CAEz4D,GAAG,CAAC,GAAS,CAAC,MAAc,CAAI,SAAiB,CAAC,GAAgB,CAAC,GAAwM,MAAzL,IAAa,QAAQ,GAAQ,QAAQ,QAAQ,CAAC,UAAU,CAAC,EAAY,EAAE,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,EAAe,CAAC,EAAM,IAAI,WAAW,IAAS,OAAO,SAAS,CAAC,KAAW,GAAa,QAAQ,QAAQ,EAAG,CAAC,EAAY,EAAe,EAAM,CAAC,CAAC,IAAM,EAAY7V,MAAgB,CAAC,GAAG,CAAC,GAAa,QAAQ,OAAO,IAAM,EAAO,SAAS,OAAU,IAAU,CAAC,GAAQ,GAAa,QAAQ,YAAY,SAAU,GAAa,QAAQ,MAAM,EAAW,CAAC,IAAU,IAAS,GAAa,QAAQ,YAAY,WAAW,GAAa,QAAQ,OAAO,EAAI,CAAC,GAAS,CAAC,CAAC,MAAc,CAAC,GAAa,EAAG,CAAC,GAAS,EAAY,EAAe,EAAM,CAAC,CAAC,OAAe,SAAS,iBAAiB,mBAAmB,EAAY,KAAW,CAAC,SAAS,oBAAoB,mBAAmB,EAAY,GAAK,CAAC,EAAY,CAAC,CAAa,IAAM,GAAc,GAAa,WAAW,YAAkB,GAAe,EAAU,EAAQ,GAAa,IAAI,EAAU,EAAQ,GAAerO,GAAM,EAAU,EAAE,GAAe,CAAO,GAAa,IAAI,EAAgB,GAAS,mBAAmB,GAAc,kBAAkB,GAAU,IAAI,GAAe,sBAAsB,GAAe,sBAAsB,GAAa,mBAAmB,GAAU,IAAI,GAAa,IAAuW,OAA9U,GAAkW,EAAK,UAAU,CAAC,MAAM,CAAC,GAAG,GAAuB,WAAQ,gBAAgB,EAAY,GAAS,IAAA,GAAU,UAAU,EAAY,GAAS,IAAA,GAAU,SAAS,EAAS,UAAU,SAAS,QAAQ,EAAa,CAAC,IAAI,GAAU,SAAsB,EAAM,EAAO,GAAG,CAAC,IAAI,GAAQ,MAAM,CAAC,GAAG,GAAmB,MAAI,IAAI,IAAY,UAAU,GAAc,EAAe,CAAC,CAAC,EAAe,IAAA,GAAU,KAAK,IAAY,SAAS,GAAc,EAAe,CAAC,CAAC,EAAe,IAAA,GAAU,WAAW,EAAU,SAAS,WAAW,cAAc,GAAa,MAAM,SAAS,GAAG,EAAM,WAAW,IAAU,CAAC,GAAS,OAAO,YAAY,UAAU,EAAY,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAQ,QAAQ,GAAQ,GAAa,UACp2E,GAAa,QAAQ,aAAa,IAAe,iBAAiB,CAAC,GAAQ,QAAQ,GAAS,GAAa,UACzG,GAAa,QAAQ,aAAa,IAAK,SAAS,CAAC,GAAe,GAAc,CAAC,CAAC,CAAC,CAAC,CAFgyC,EAAM,UAAU,CAAC,MAAM,GAAkB,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,GAAY,SAAS,IAAI,CAAC,CAAc,EAAK,IAAI,CAAC,MAAM,GAAY,SAAS,qBAAqB,CAAC,CAAc,EAAK,IAAI,CAAC,MAAM,GAAe,SAAS,4DAA4D,CAAC,CAAC,CAAC,CAAC,iDAhBpmD,IAAsJ,IAAiE,IAA2G,KAAmC,CAAM,GAAqB,IAAU,GAAsB,CAAC,KAAK,GAAQ,eAAe,EAAO,KAAK,MAAM,GAAQ,cAAc,EAAO,KAAK,IAAI,GAAQ,eAAe,EAAO,KAAK,OAAO,GAAQ,cAAc,EAAO,KAAK,CAkBhiB,GAAqB,GAAY,CAAC,WAAS,GAAG,GAAO,IAAM,CAAC,IAAM,EAASkkB,GAAQ,CAAO,EAAO,EAAU,EAAS,CACqH,OADpH,EAAoB,MAAQ,EAAS,QAAQ,CAAC,MAAc,CAAC,IAAM,EAAQ,EAAS,QAAY,IAC5S,EAAQ,EAAQ,iBAAiB,WAAW,CAAC,QAAQ,GAAI,CAAC,IAAM,EAAK,EAAG,QAAQ,aAAgB,EAAK,EAAG,SAAS,EAAU,EAAG,gBAAgB,WAAW,EAAG,CAAO,EAAQ,iBAAiB,WAAW,CAAC,QAAQ,GAAI,CAAC,IAAM,EAAK,EAAG,aAAa,WAAW,CAAI,IAAK,EAAG,QAAQ,aAAa,GAAK,EAAG,SAAS,IAAK,GAAI,CAAC,EAAO,CAAC,CAAqB,EAAK,KAAK,CAAC,GAAG,EAAM,cAAc,CAAC,EAAO,IAAI,EAAkB,WAAS,CAAC,EAAG,CAAyB,GAAO,aAAa,CAAC,IAAI,GAAG,QAAQ,GAAG,cAAc,CAAC,UAAU,GAAK,WAAW,GAAK,CAAC,YAAY,CAAC,YAAY,GAAK,SAAS,GAAM,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,CAAC,UAAU,GAAK,CAAwB,GAAoB,GAAO,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,QAAQ,CAAC,KAAK,EAAY,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,aAAa,IAAI,KAAK,IAAI,eAAe,GAAK,KAAK,EAAE,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,OAAO,QAAQ,MAAM,SAAS,CAAC,YAAY,CAAC,iBAAiB,kBAAkB,eAAe,iBAAiB,CAAC,aAAa,CAAC,OAAO,QAAQ,MAAM,SAAS,CAAC,aAAa,OAAO,wBAAwB,GAAK,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,aAAa,SAAS,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,eAAe,eAAe,CAAC,KAAK,CAAC,YAAY,eAAe,eAAe,CAAC,IAAI,CAAC,aAAa,eAAe,cAAc,CAAC,OAAO,CAAC,aAAa,eAAe,cAAc,CAAC,CAAC,CAAC,aAAa,SAAS,wBAAwB,GAAK,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,UAAU,KAAK,EAAY,YAAY,UAAU,iBAAiB,aAAa,CAAC,UAAU,mBAAmB,CAAC,UAAU,CAAC,aAAa,eAAe,gBAAgB,cAAc,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,OAAO,cAAc,UAAU,aAAa,GAAK,CAAC,WAAW,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,OAAO,cAAc,UAAU,aAAa,GAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,SAAS,CAAC,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAK,CAAC,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,OAAO,cAAc,OAAO,aAAa,GAAM,OAAO,EAAM,CAAC,OAAO,EAAM,cAAc,IAAO,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,EAAM,CAAC,OAAO,EAAM,cAAc,IAAQ,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,EAAM,CAAC,OAAO,EAAM,cAAc,IAAQ,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,OAAO,EAAM,CAAC,OAAO,EAAM,cAAc,IAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,EAAE,KAAK,GAAG,eAAe,GAAK,YAAY,+CAA+C,CAAC,CAAC,CAA+B,GAAe,CAAC,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,SAAS,OAAO,UAAU,OAAO,WAAW,SAAS,OAAO,EAAE,QAAQ,EAAE,cAAc,OAAO,WAAW,OAAO,CAAmB,GAAkB,CAAC,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,aAAa,SAAS,WAAW,SAAS,cAAc,SAAS,MAAM,OAAO,WAAW,0BAA0B,SAAS,GAAG,SAAS,SAAS,QAAQ,sBAAsB,CAAO,GAAY,CAAC,SAAS,GAAG,aAAa,GAAG,CAAO,GAAY,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,IAAI,UAAU,SAAS,CAAO,GAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,IAAI,WAAW,IAAI,UAAU,SAAS,CAA+ClkB,IAAO,EAAI,EAAI,IAAM,KAAK,IAAI,KAAK,IAAI,EAAI,EAAI,CAAC,EAAI,CAAO,GAAc,GAAO,OAAO,GAAQ,UAAU,CAAC,MAAM,EAAM,ICfluH,SAAS,GAAM,EAAK,EAAO,EAAK,CAC9B,OAAO,KAAK,IAAI,EAAK,KAAK,IAAI,EAAO,EAAI,CAAC,CAE5C,SAASgI,GAAK,EAAG,EAAG,EAAG,CACrB,OAAQ,EAAI6N,GAAK3I,EAAI2I,EAAI5I,EAE3B,SAAS,GAAK,EAAG,EAAG,EAAQ,EAAW,CACrC,OAAOjF,GAAKkF,EAAGD,EAAG,EAAI,KAAK,IAAI,CAAC,EAAS,EAAU,CAAC,CAEtD,SAAS,GAAO,EAAG,EAAG,CACpB,OAAQ5M,EAAIoN,EAAIA,GAAKA,EAsEvB,SAASlN,GAAS,EAAU,EAAO,CACjC,IAAI,EACJ,OAAO,SAAS,GAAG,EAAM,CACvB,IAAI,EAAU,KACd,aAAa,EAAM,CACnB,EAAQ,eAAiB,CACvB,EAAQ,IAAK,GACb,EAAS,MAAM,EAAS,EAAK,EAC5B,EAAM,gDA3FT,GAAU,QAiBV,GAAU,KAAM,CAClB,UAAY,GACZ,MAAQ,EACR,KAAO,EACP,GAAK,EACL,YAAc,EAEd,KACA,SACA,OACA,SAMA,QAAQ,EAAW,CACjB,GAAI,CAAC,KAAK,UAAW,OACrB,IAAI,EAAY,GAChB,GAAI,KAAK,UAAY,KAAK,OAAQ,CAChC,KAAK,aAAe,EACpB,IAAM,EAAiB,GAAM,EAAG,KAAK,YAAc,KAAK,SAAU,EAAE,CACpE,EAAY,GAAkB,EAC9B,IAAM,EAAgB,EAAY,EAAI,KAAK,OAAO,EAAe,CACjE,KAAK,MAAQ,KAAK,MAAQ,KAAK,GAAK,KAAK,MAAQ,OACxC,KAAK,MACd,KAAK,MAAQ,GAAK,KAAK,MAAO,KAAK,GAAI,KAAK,KAAO,GAAI,EAAU,CAC7D,KAAK,MAAM,KAAK,MAAM,GAAK,KAAK,KAClC,KAAK,MAAQ,KAAK,GAClB,EAAY,MAGd,KAAK,MAAQ,KAAK,GAClB,EAAY,IAEV,GACF,KAAK,MAAM,CAEb,KAAK,WAAW,KAAK,MAAO,EAAU,CAGxC,MAAO,CACL,KAAK,UAAY,GAUnB,OAAO,EAAM,EAAI,CAAE,KAAM,EAAO,WAAU,SAAQ,UAAS,YAAY,CACrE,KAAK,KAAO,KAAK,MAAQ,EACzB,KAAK,GAAK,EACV,KAAK,KAAO,EACZ,KAAK,SAAW,EAChB,KAAK,OAAS,EACd,KAAK,YAAc,EACnB,KAAK,UAAY,GACjB,KAAW,CACX,KAAK,SAAW,IAkBhB,GAAa,KAAM,CACrB,YAAY,EAAS,EAAS,CAAE,aAAa,GAAM,SAAU,EAAgB,KAAQ,EAAE,CAAE,CACvF,KAAK,QAAU,EACf,KAAK,QAAU,EACX,IACF,KAAK,gBAAkBA,GAAS,KAAK,OAAQ,EAAc,CACvD,KAAK,mBAAmB,OAC1B,EAAO,iBAAiB,SAAU,KAAK,gBAAiB,GAAM,EAE9D,KAAK,sBAAwB,IAAI,eAAe,KAAK,gBAAgB,CACrE,KAAK,sBAAsB,QAAQ,KAAK,QAAQ,EAElD,KAAK,sBAAwB,IAAI,eAAe,KAAK,gBAAgB,CACrE,KAAK,sBAAsB,QAAQ,KAAK,QAAQ,EAElD,KAAK,QAAQ,CAEf,MAAQ,EACR,OAAS,EACT,aAAe,EACf,YAAc,EAEd,gBACA,sBACA,sBACA,SAAU,CACR,KAAK,uBAAuB,YAAY,CACxC,KAAK,uBAAuB,YAAY,CACpC,KAAK,UAAY,GAAU,KAAK,iBAClC,EAAO,oBAAoB,SAAU,KAAK,gBAAiB,GAAM,CAGrE,WAAe,CACb,KAAK,iBAAiB,CACtB,KAAK,iBAAiB,EAExB,oBAAwB,CAClB,KAAK,mBAAmB,QAC1B,KAAK,MAAQ,EAAO,WACpB,KAAK,OAAS,EAAO,cAErB,KAAK,MAAQ,KAAK,QAAQ,YAC1B,KAAK,OAAS,KAAK,QAAQ,eAG/B,oBAAwB,CAClB,KAAK,mBAAmB,QAC1B,KAAK,aAAe,KAAK,QAAQ,aACjC,KAAK,YAAc,KAAK,QAAQ,cAEhC,KAAK,aAAe,KAAK,QAAQ,aACjC,KAAK,YAAc,KAAK,QAAQ,cAGpC,IAAI,OAAQ,CACV,MAAO,CACL,EAAG,KAAK,YAAc,KAAK,MAC3B,EAAG,KAAK,aAAe,KAAK,OAC7B,GAKD,GAAU,KAAM,CAClB,OAAS,EAAE,CAMX,KAAK,EAAO,GAAG,EAAM,CACnB,IAAI,EAAY,KAAK,OAAO,IAAU,EAAE,CACxC,IAAK,IAAImN,EAAI,EAAGb,EAAS,EAAU,OAAQa,EAAIb,EAAQ,IACrD,EAAUa,KAAK,GAAG,EAAK,CAS3B,GAAG,EAAO,EAAI,CAEZ,OADA,KAAK,OAAO,IAAQ,KAAK,EAAG,GAAK,KAAK,OAAO,GAAS,CAAC,EAAG,MAC7C,CACX,KAAK,OAAO,GAAS,KAAK,OAAO,IAAQ,OAAQ,GAAM,IAAOA,EAAE,EAQpE,IAAI,EAAO,EAAU,CACnB,KAAK,OAAO,GAAS,KAAK,OAAO,IAAQ,OAAQ,GAAM,IAAaA,EAAE,CAKxE,SAAU,CACR,KAAK,OAAS,EAAE,GAKhB,GAAc,IAAM,EACpB,GAAkB,CAAE,QAAS,GAAO,CACpC,GAAgB,KAAM,CACxB,YAAY,EAAS,EAAU,CAAE,gBAAiB,EAAG,gBAAiB,EAAG,CAAE,CACzE,KAAK,QAAU,EACf,KAAK,QAAU,EACf,EAAO,iBAAiB,SAAU,KAAK,eAAgB,GAAM,CAC7D,KAAK,gBAAgB,CACrB,KAAK,QAAQ,iBAAiB,QAAS,KAAK,QAAS,GAAgB,CACrE,KAAK,QAAQ,iBACX,aACA,KAAK,aACL,GACD,CACD,KAAK,QAAQ,iBACX,YACA,KAAK,YACL,GACD,CACD,KAAK,QAAQ,iBAAiB,WAAY,KAAK,WAAY,GAAgB,CAE7E,WAAa,CACX,EAAG,EACH,EAAG,EACJ,CACD,UAAY,CACV,EAAG,EACH,EAAG,EACJ,CACD,OAAS,CACP,MAAO,EACP,OAAQ,EACT,CACD,QAAU,IAAI,GAOd,GAAG,EAAO,EAAU,CAClB,OAAO,KAAK,QAAQ,GAAG,EAAO,EAAS,CAGzC,SAAU,CACR,KAAK,QAAQ,SAAS,CACtB,EAAO,oBAAoB,SAAU,KAAK,eAAgB,GAAM,CAChE,KAAK,QAAQ,oBAAoB,QAAS,KAAK,QAAS,GAAgB,CACxE,KAAK,QAAQ,oBACX,aACA,KAAK,aACL,GACD,CACD,KAAK,QAAQ,oBACX,YACA,KAAK,YACL,GACD,CACD,KAAK,QAAQ,oBACX,WACA,KAAK,WACL,GACD,CAOH,aAAgB,GAAU,CACxB,GAAM,CAAE,UAAS,WAAY,EAAM,cAAgB,EAAM,cAAc,GAAK,EAC5E,KAAK,WAAW,EAAI,EACpB,KAAK,WAAW,EAAI,EACpB,KAAK,UAAY,CACf,EAAG,EACH,EAAG,EACJ,CACD,KAAK,QAAQ,KAAK,SAAU,CAC1B,OAAQ,EACR,OAAQ,EACR,QACD,CAAC,EAGJ,YAAe,GAAU,CACvB,GAAM,CAAE,UAAS,WAAY,EAAM,cAAgB,EAAM,cAAc,GAAK,EACtE,EAAS,EAAE,EAAU,KAAK,WAAW,GAAK,KAAK,QAAQ,gBACvD,EAAS,EAAE,EAAU,KAAK,WAAW,GAAK,KAAK,QAAQ,gBAC7D,KAAK,WAAW,EAAI,EACpB,KAAK,WAAW,EAAI,EACpB,KAAK,UAAY,CACf,EAAG,EACH,EAAG,EACJ,CACD,KAAK,QAAQ,KAAK,SAAU,CAC1B,SACA,SACA,QACD,CAAC,EAEJ,WAAc,GAAU,CACtB,KAAK,QAAQ,KAAK,SAAU,CAC1B,OAAQ,KAAK,UAAU,EACvB,OAAQ,KAAK,UAAU,EACvB,QACD,CAAC,EAGJ,QAAW,GAAU,CACnB,GAAI,CAAE,SAAQ,SAAQ,aAAc,EAC9B,EAAc,IAAc,EAAI,GAAc,IAAc,EAAI,KAAK,OAAO,MAAQ,EACpF,EAAc,IAAc,EAAI,GAAc,IAAc,EAAI,KAAK,OAAO,OAAS,EAC3F,GAAU,EACV,GAAU,EACV,GAAU,KAAK,QAAQ,gBACvB,GAAU,KAAK,QAAQ,gBACvB,KAAK,QAAQ,KAAK,SAAU,CAAE,SAAQ,SAAQ,QAAO,CAAC,EAExD,mBAAuB,CACrB,KAAK,OAAS,CACZ,MAAO,EAAO,WACd,OAAQ,EAAO,YAChB,GAKD,GAAiB,GAAM,KAAK,IAAI,EAAG,MAAiB,IAAG,IAAMmI,GAAG,CAChE,GAAQ,KAAM,CAChB,aAAe,GAEf,WAAa,GAEb,UAAY,GAEZ,8BAAgC,GAChC,sBAAwB,KACxB,QAAU,KAIV,WAIA,KAAO,EAWP,SAAW,EAAE,CAIb,aAAe,EAIf,SAAW,EAIX,UAAY,EAIZ,QAIA,aAIA,eAEA,QAAU,IAAI,GACd,QAAU,IAAI,GAEd,WAEA,cACA,YAAY,CACV,UAAU,EACV,UAAU,SAAS,gBACnB,eAAe,EACf,cAAc,GACd,YAAY,GACZ,gBAAgB,KAChB,uBAAuB,IACvB,WAEA,SACA,KAAM,EAAQ,GACd,WAAW,GACX,cAAc,WAEd,qBAAqB,WAErB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACb,UACA,gBACA,aAAa,GACb,UAAU,GACV,UAAU,GACV,aAAa,GAEb,oBAAoB,GACpB,kCAAkC,IAChC,EAAE,CAAE,CACN,EAAO,aAAe,IAClB,CAAC,GAAW,IAAY,SAAS,mBACnC,EAAU,GAER,OAAO,GAAa,UAAY,OAAO,GAAW,WACpD,EAAS,GACA,OAAO,GAAW,YAAc,OAAO,GAAa,WAC7D,EAAW,GAEb,KAAK,QAAU,CACb,UACA,UACA,eACA,cACA,YACA,gBACA,uBACA,WACA,SACA,KAAM,EACN,WACA,qBACA,cACA,kBACA,kBACA,aACA,UACA,gBACA,aACA,UACA,UACA,aACA,oBACA,kCACD,CACD,KAAK,WAAa,IAAI,GAAW,EAAS,EAAS,CAAE,aAAY,CAAC,CAClE,KAAK,iBAAiB,CACtB,KAAK,aAAe,KAAK,eAAiB,KAAK,aAC/C,KAAK,QAAQ,QAAQ,iBAAiB,SAAU,KAAK,eAAgB,GAAM,CAC3E,KAAK,QAAQ,QAAQ,iBAAiB,YAAa,KAAK,YAAa,CACnE,QAAS,GACV,CAAC,CACE,KAAK,QAAQ,SAAW,KAAK,QAAQ,UAAY,GACnD,KAAK,QAAQ,QAAQ,iBACnB,QACA,KAAK,QACL,GACD,CAEH,KAAK,QAAQ,QAAQ,iBACnB,cACA,KAAK,cACL,GACD,CACD,KAAK,cAAgB,IAAI,GAAc,EAAc,CACnD,kBACA,kBACD,CAAC,CACF,KAAK,cAAc,GAAG,SAAU,KAAK,gBAAgB,CACjD,KAAK,QAAQ,YACf,KAAK,YAAY,iBAAiB,gBAAiB,KAAK,gBAAiB,CACvE,QAAS,GACV,CAAC,CAEA,KAAK,QAAQ,UACf,KAAK,QAAU,sBAAsB,KAAK,IAAI,EAMlD,SAAU,CACR,KAAK,QAAQ,SAAS,CACtB,KAAK,QAAQ,QAAQ,oBACnB,SACA,KAAK,eACL,GACD,CACD,KAAK,QAAQ,QAAQ,oBAAoB,YAAa,KAAK,YAAa,CACtE,QAAS,GACV,CAAC,CACF,KAAK,QAAQ,QAAQ,oBACnB,cACA,KAAK,cACL,GACD,CACG,KAAK,QAAQ,SAAW,KAAK,QAAQ,UAAY,GACnD,KAAK,QAAQ,QAAQ,oBACnB,QACA,KAAK,QACL,GACD,CAEH,KAAK,cAAc,SAAS,CAC5B,KAAK,WAAW,SAAS,CACzB,KAAK,kBAAkB,CACnB,KAAK,SACP,qBAAqB,KAAK,QAAQ,CAGtC,GAAG,EAAO,EAAU,CAClB,OAAO,KAAK,QAAQ,GAAG,EAAO,EAAS,CAEzC,IAAI,EAAO,EAAU,CACnB,OAAO,KAAK,QAAQ,IAAI,EAAO,EAAS,CAE1C,YAAe,GAAM,CACbtU,aAAa,cACb,KAAK,cAAgB,UAAY,KAAK,cAAgB,KACxD,EAAE,iBAAiB,EAIzB,2BAA+B,CAC7B,KAAK,QAAQ,QAAQ,cACnB,IAAI,YAAY,YAAa,CAC3B,QAAS,KAAK,QAAQ,UAAY,EAElC,OAAQ,CACN,eAAgB,GACjB,CACF,CAAC,CACH,EAEH,gBAAmB,GAAU,CAC3B,GAAI,EAAM,aAAa,SAAS,WAAW,CAAE,CAC3C,IAAM,EAAW,KAAK,aAAe,aAAe,aAC9C,EAAW,iBAAiB,KAAK,YAAY,CAAC,GAChD,CAAC,SAAU,OAAO,CAAC,SAAS,EAAS,CACvC,KAAK,cAAc,CAEnB,KAAK,eAAe,GAI1B,UAAU,EAAQ,CACZ,KAAK,aACP,KAAK,QAAQ,QAAQ,SAAS,CAAE,KAAM,EAAQ,SAAU,UAAW,CAAC,CAEpE,KAAK,QAAQ,QAAQ,SAAS,CAAE,IAAK,EAAQ,SAAU,UAAW,CAAC,CAGvE,QAAW,GAAU,CAEnB,IAAM,EADO,EAAM,cAAc,CACb,KACjB,GAAS,aAAgB,oBAAsB,EAAK,aAAa,OAAO,EAAE,WAAW,IAAI,EAAI,EAAK,aAAa,OAAO,EAAE,WAAW,KAAK,EAAI,EAAK,aAAa,OAAO,EAAE,WAAW,MAAM,EAC1L,CACD,GAAI,EAAQ,CACV,IAAMgE,EAAK,EAAO,aAAa,OAAO,CACtC,GAAIA,EAAI,CACN,IAAM,EAAU,OAAO,KAAK,QAAQ,SAAY,UAAY,KAAK,QAAQ,QAAU,KAAK,QAAQ,QAAU,IAAK,GAC3G,EAAS,IAAIA,EAAG,MAAM,IAAI,CAAC,KAC3B,CAAC,IAAK,KAAM,MAAO,OAAQ,QAAS,SAAS,CAAC,SAASA,EAAG,GAC5D,EAAS,GAEX,KAAK,SAAS,EAAQ,EAAQ,IAIpC,cAAiB,GAAU,CACrB,EAAM,SAAW,GACnB,KAAK,OAAO,EAGhB,gBAAmB,GAAS,CAC1B,GAAI,OAAO,KAAK,QAAQ,eAAkB,YAAc,KAAK,QAAQ,cAAc,EAAK,GAAK,GAC3F,OACF,GAAM,CAAE,SAAQ,SAAQ,SAAU,EAGlC,GAFA,KAAK,QAAQ,KAAK,iBAAkB,CAAE,SAAQ,SAAQ,QAAO,CAAC,CAC1D,EAAM,SACN,EAAM,qBAAsB,OAChC,IAAM,EAAU,EAAM,KAAK,SAAS,QAAQ,CACtC,EAAU,EAAM,KAAK,SAAS,QAAQ,CAC5C,KAAK,WAAa,EAAM,OAAS,cAAgB,EAAM,OAAS,YAChE,IAAM,EAAe,IAAW,GAAK,IAAW,EAEhD,GADoB,KAAK,QAAQ,WAAa,GAAW,EAAM,OAAS,cAAgB,GAAgB,CAAC,KAAK,WAAa,CAAC,KAAK,SAChH,CACf,KAAK,OAAO,CACZ,OAEF,IAAM,EAAmB,KAAK,QAAQ,qBAAuB,YAAc,IAAW,GAAK,KAAK,QAAQ,qBAAuB,cAAgB,IAAW,EAC1J,GAAI,GAAgB,EAClB,OAEF,IAAI,EAAe,EAAM,cAAc,CACvC,EAAe,EAAa,MAAM,EAAG,EAAa,QAAQ,KAAK,YAAY,CAAC,CAC5E,IAAM,EAAU,KAAK,QAAQ,QAC7B,GAAM,EAAa,KAChB,GAAS,aAAgB,cAAgB,OAAO,GAAY,YAAc,IAAU,EAAK,EAAI,EAAK,eAAe,qBAAqB,EAAI,GAAW,EAAK,eAAe,2BAA2B,EAAI,GAAW,EAAK,eAAe,2BAA2B,EAAI,KAAK,QAAQ,mBAAqB,KAAK,kBAAkB,EAAM,CAAE,SAAQ,SAAQ,CAAC,EAC1V,CACC,OACF,GAAI,KAAK,WAAa,KAAK,SAAU,CAC/B,EAAM,YACR,EAAM,gBAAgB,CAExB,OAGF,GAAI,EADa,KAAK,QAAQ,WAAa,GAAW,KAAK,QAAQ,aAAe,GACnE,CACb,KAAK,YAAc,SACnB,KAAK,QAAQ,MAAM,CACnB,EAAM,qBAAuB,GAC7B,OAEF,IAAI,EAAQ,EACR,KAAK,QAAQ,qBAAuB,OACtC,EAAQ,KAAK,IAAI,EAAO,CAAG,KAAK,IAAI,EAAO,CAAG,EAAS,EAC9C,KAAK,QAAQ,qBAAuB,eAC7C,EAAQ,IAEN,CAAC,KAAK,QAAQ,YAAc,KAAK,QAAQ,UAAY,KAAK,QAAQ,UAAY,IAAW,KAAK,eAAiB,GAAK,KAAK,eAAiB,KAAK,OAAS,KAAK,iBAAmB,GAAK,EAAS,GAAK,KAAK,iBAAmB,KAAK,OAAS,EAAS,MACpP,EAAM,qBAAuB,IAE3B,EAAM,YACR,EAAM,gBAAgB,CAExB,IAAM,EAAc,GAAW,KAAK,QAAQ,UAEtC,EADa,GAAW,EAAM,OAAS,WAEzC,IACF,EAAQ,KAAK,KAAK,KAAK,SAAS,CAAY,KAAK,IAAI,KAAK,SAAS,GAAE,KAAK,QAAQ,sBAEpF,KAAK,SAAS,KAAK,aAAe,EAAO,CACvC,aAAc,GACd,GAAG,EAAc,CACf,KAAM,EAAkB,KAAK,QAAQ,cAAgB,EAEtD,CAAG,CACF,KAAM,KAAK,QAAQ,KACnB,SAAU,KAAK,QAAQ,SACvB,OAAQ,KAAK,QAAQ,OACtB,CACF,CAAC,EAKJ,QAAS,CACP,KAAK,WAAW,QAAQ,CACxB,KAAK,eAAiB,KAAK,aAAe,KAAK,aAC/C,KAAK,MAAM,CAEb,MAAO,CACL,KAAK,QAAQ,KAAK,SAAU,KAAK,CAEnC,mBAAuB,CAKrB,GAJI,KAAK,wBAA0B,OACjC,aAAa,KAAK,sBAAsB,CACxC,KAAK,sBAAwB,MAE3B,KAAK,8BAA+B,CACtC,KAAK,8BAAgC,GACrC,OAEF,GAAI,KAAK,cAAgB,IAAS,KAAK,cAAgB,SAAU,CAC/D,IAAM,EAAa,KAAK,eACxB,KAAK,eAAiB,KAAK,aAAe,KAAK,aAC/C,KAAK,aAAe,KAAK,SACzB,KAAK,SAAW,KAAK,eAAiB,EACtC,KAAK,UAAY,KAAK,KACpB,KAAK,eAAiB,EACvB,CACI,KAAK,YACR,KAAK,YAAc,UAErB,KAAK,MAAM,CACP,KAAK,WAAa,IACpB,KAAK,sBAAwB,eAAiB,CAC5C,KAAK,aAAe,KAAK,SACzB,KAAK,SAAW,EAChB,KAAK,YAAc,GACnB,KAAK,MAAM,EACV,IAAI,IAIb,OAAQ,CACN,KAAK,SAAW,GAChB,KAAK,YAAc,GACnB,KAAK,eAAiB,KAAK,aAAe,KAAK,aAC/C,KAAK,aAAe,KAAK,SAAW,EACpC,KAAK,QAAQ,MAAM,CAKrB,OAAQ,CACD,QAAK,UACV,IAAI,KAAK,QAAQ,WAAY,CAC3B,KAAK,YAAY,MAAM,eAAe,WAAW,CACjD,OAEF,KAAK,eAAe,EAEtB,eAAgB,CACT,KAAK,YACV,KAAK,OAAO,CACZ,KAAK,UAAY,GACjB,KAAK,MAAM,EAKb,MAAO,CACD,SAAK,UACT,IAAI,KAAK,QAAQ,WAAY,CAC3B,KAAK,YAAY,MAAM,YAAY,WAAY,OAAO,CACtD,OAEF,KAAK,cAAc,EAErB,cAAe,CACT,KAAK,YACT,KAAK,OAAO,CACZ,KAAK,UAAY,GACjB,KAAK,MAAM,EAOb,IAAO,GAAS,CACd,IAAM,EAAY,GAAQ,KAAK,MAAQ,GACvC,KAAK,KAAO,EACZ,KAAK,QAAQ,QAAQ,EAAY,KAAK,CAClC,KAAK,QAAQ,UACf,KAAK,QAAU,sBAAsB,KAAK,IAAI,GAuBlD,SAAS,EAAQ,CACf,SAAS,EACT,YAAY,GACZ,OAAO,GACP,WAAW,KAAK,QAAQ,SACxB,SAAS,KAAK,QAAQ,OACtB,KAAM,EAAQ,KAAK,QAAQ,KAC3B,UACA,aACA,QAAQ,GAER,eAAe,GAEf,YACE,EAAE,CAAE,CACN,MAAK,KAAK,WAAa,KAAK,WAAa,CAAC,GAC1C,IAAI,OAAO,GAAW,UAAY,CAAC,MAAO,OAAQ,QAAQ,CAAC,SAAS,EAAO,CACzE,EAAS,UACA,OAAO,GAAW,UAAY,CAAC,SAAU,QAAS,MAAM,CAAC,SAAS,EAAO,CAClF,EAAS,KAAK,UACT,CACL,IAAI,EAMJ,GALI,OAAO,GAAW,SACpB,EAAO,SAAS,cAAc,EAAO,CAC5B,aAAkB,aAAe,GAAQ,WAClD,EAAO,GAEL,EAAM,CACR,GAAI,KAAK,QAAQ,UAAY,EAAQ,CACnC,IAAM,EAAc,KAAK,YAAY,uBAAuB,CAC5D,GAAU,KAAK,aAAe,EAAY,KAAO,EAAY,IAE/D,IAAM,EAAO,EAAK,uBAAuB,CACzC,GAAU,KAAK,aAAe,EAAK,KAAO,EAAK,KAAO,KAAK,gBAG3D,UAAO,GAAW,SAGtB,IAFA,GAAU,EACV,EAAS,KAAK,MAAM,EAAO,CACvB,KAAK,QAAQ,aACX,EAAc,CAChB,KAAK,aAAe,KAAK,eAAiB,KAAK,OAC/C,IAAMiJ,EAAW,EAAS,KAAK,eAC3BA,EAAW,KAAK,MAAQ,EAC1B,GAAkB,KAAK,MACdA,EAAW,CAAC,KAAK,MAAQ,IAClC,GAAkB,KAAK,aAI3B,EAAS,GAAM,EAAG,EAAQ,KAAK,MAAM,CAEvC,GAAI,IAAW,KAAK,aAAc,CAChC,IAAU,KAAK,CACf,IAAa,KAAK,CAClB,OAGF,GADA,KAAK,SAAW,GAAY,EAAE,CAC1B,EAAW,CACb,KAAK,eAAiB,KAAK,aAAe,EAC1C,KAAK,UAAU,KAAK,OAAO,CAC3B,KAAK,OAAO,CACZ,KAAK,8BAA8B,CACnC,KAAK,MAAM,CACX,IAAa,KAAK,CAClB,KAAK,SAAW,EAAE,CAClB,0BAA4B,CAC1B,KAAK,wBAAwB,EAC7B,CACF,OAEG,IACH,KAAK,aAAe,GAElB,OAAO,GAAa,UAAY,OAAO,GAAW,WACpD,EAAS,GACA,OAAO,GAAW,YAAc,OAAO,GAAa,WAC7D,EAAW,GAEb,KAAK,QAAQ,OAAO,KAAK,eAAgB,EAAQ,CAC/C,WACA,SACA,KAAM,EACN,YAAe,CACT,IAAM,KAAK,SAAW,IAC1B,KAAK,YAAc,SACnB,IAAU,KAAK,EAEjB,UAAW,EAAO,IAAc,CAC9B,KAAK,YAAc,SACnB,KAAK,aAAe,KAAK,SACzB,KAAK,SAAW,EAAQ,KAAK,eAC7B,KAAK,UAAY,KAAK,KAAK,KAAK,SAAS,CACzC,KAAK,eAAiB,EACtB,KAAK,UAAU,KAAK,OAAO,CACvB,IACF,KAAK,aAAe,GAEjB,GAAW,KAAK,MAAM,CACvB,IACF,KAAK,OAAO,CACZ,KAAK,MAAM,CACX,IAAa,KAAK,CAClB,KAAK,SAAW,EAAE,CAClB,0BAA4B,CAC1B,KAAK,wBAAwB,EAC7B,CACF,KAAK,8BAA8B,GAGxC,CAAC,GAEJ,8BAA+B,CAC7B,KAAK,8BAAgC,GACrC,0BAA4B,CAC1B,KAAK,8BAAgC,IACrC,CAEJ,kBAAkB,EAAM,CAAE,SAAQ,UAAU,CAC1C,IAAM,EAAO,KAAK,KAAK,CACjB,EAAQ,EAAK,SAAW,EAAE,CAC5B,EAAc,EAAc,EAAe,EAAe,EAAa,EAAc,EAAa,EAChG,EAAqB,KAAK,QAAQ,mBACxC,GAAI,GAAQ,EAAM,MAAQ,GAAK,IAAK,CAClC,EAAM,KAAO,KAAK,KAAK,CACvB,IAAM,EAAgB,EAAO,iBAAiB,EAAK,CACnD,EAAM,cAAgB,EACtB,IAAM,EAAkB,EAAc,UAChC,EAAkB,EAAc,UAOtC,GANA,EAAe,CAAC,OAAQ,UAAW,SAAS,CAAC,SAAS,EAAgB,CACtE,EAAe,CAAC,OAAQ,UAAW,SAAS,CAAC,SAAS,EAAgB,CACtE,EAAM,aAAe,EACrB,EAAM,aAAe,EACjB,CAAC,GAAgB,CAAC,GAClB,IAAuB,YAAc,CAAC,GACtC,IAAuB,cAAgB,CAAC,EAAc,MAAO,GACjE,EAAc,EAAK,YACnB,EAAe,EAAK,aACpB,EAAc,EAAK,YACnB,EAAe,EAAK,aACpB,EAAgB,EAAc,EAC9B,EAAgB,EAAe,EAC/B,EAAM,cAAgB,EACtB,EAAM,cAAgB,EACtB,EAAM,YAAc,EACpB,EAAM,aAAe,EACrB,EAAM,YAAc,EACpB,EAAM,aAAe,OAErB,EAAgB,EAAM,cACtB,EAAgB,EAAM,cACtB,EAAe,EAAM,aACrB,EAAe,EAAM,aACrB,EAAc,EAAM,YACpB,EAAe,EAAM,aACrB,EAAc,EAAM,YACpB,EAAe,EAAM,aAOvB,GALI,CAAC,GAAgB,CAAC,GAAgB,CAAC,GAAiB,CAAC,GAGrD,IAAuB,aAAe,CAAC,GAAgB,CAAC,IAExD,IAAuB,eAAiB,CAAC,GAAgB,CAAC,GAC5D,MAAO,GACT,IAAI,EACJ,GAAI,IAAuB,aACzB,EAAc,YACL,IAAuB,WAChC,EAAc,QACT,CACL,IAAM,EAAe,IAAW,EAC1B,EAAe,IAAW,EAC5B,GAAgB,GAAgB,IAClC,EAAc,KAEZ,GAAgB,GAAgB,IAClC,EAAc,KAGlB,GAAI,CAAC,EAAa,MAAO,GACzB,IAAI,EAAQ,EAAW,EAAO,EAAa,EAC3C,GAAI,IAAgB,IAClB,EAAS,EAAK,WACd,EAAY,EAAc,EAC1B,EAAQ,EACR,EAAc,EACd,EAAe,UACN,IAAgB,IACzB,EAAS,EAAK,UACd,EAAY,EAAe,EAC3B,EAAQ,EACR,EAAc,EACd,EAAe,OAEf,MAAO,GAGT,OADmB,EAAQ,EAAI,EAAS,EAAY,EAAS,IACxC,GAAe,EAKtC,IAAI,aAAc,CAChB,OAAO,KAAK,QAAQ,UAAY,EAAS,SAAS,gBAAkB,KAAK,QAAQ,QAKnF,IAAI,OAAQ,CAQR,OAPE,KAAK,QAAQ,gCACX,KAAK,aACA,KAAK,YAAY,YAAc,KAAK,YAAY,YAEhD,KAAK,YAAY,aAAe,KAAK,YAAY,aAGnD,KAAK,WAAW,MAAM,KAAK,aAAe,IAAM,KAM3D,IAAI,cAAe,CACjB,OAAO,KAAK,QAAQ,cAAgB,aAKtC,IAAI,cAAe,CACjB,IAAM,EAAU,KAAK,QAAQ,QAC7B,OAAO,KAAK,aAAe,EAAQ,SAAW,EAAQ,WAAa,EAAQ,SAAW,EAAQ,UAKhG,IAAI,QAAS,CACX,OAAO,KAAK,QAAQ,SAAW,GAAO,KAAK,eAAgB,KAAK,MAAM,CAAG,KAAK,eAKhF,IAAI,UAAW,CACb,OAAO,KAAK,QAAU,EAAI,EAAI,KAAK,OAAS,KAAK,MAKnD,IAAI,aAAc,CAChB,OAAO,KAAK,aAEd,IAAI,YAAY,EAAO,CACjB,KAAK,eAAiB,IACxB,KAAK,aAAe,EACpB,KAAK,iBAAiB,EAM1B,IAAI,WAAY,CACd,OAAO,KAAK,WAEd,IAAI,UAAU,EAAO,CACf,KAAK,aAAe,IACtB,KAAK,WAAa,EAClB,KAAK,iBAAiB,EAM1B,IAAI,UAAW,CACb,OAAO,KAAK,UAEd,IAAI,SAAS,EAAO,CACd,KAAK,YAAc,IACrB,KAAK,UAAY,EACjB,KAAK,iBAAiB,EAM1B,IAAI,UAAW,CACb,OAAO,KAAK,cAAgB,SAK9B,IAAI,WAAY,CACd,IAAIuW,EAAY,QAMhB,OALI,KAAK,QAAQ,aAAY,GAAa,qBACtC,KAAK,YAAW,GAAa,kBAC7B,KAAK,WAAU,GAAa,iBAC5B,KAAK,cAAa,GAAa,oBAC/B,KAAK,cAAgB,WAAU,GAAa,iBACzCA,EAET,iBAAkB,CAChB,KAAK,kBAAkB,CACvB,KAAK,YAAY,UAAY,GAAG,KAAK,YAAY,UAAU,GAAG,KAAK,YAAY,MAAM,CAEvF,kBAAmB,CACjB,KAAK,YAAY,UAAY,KAAK,YAAY,UAAU,QAAQ,gBAAiB,GAAG,CAAC,MAAM,MCjjC/F,SAAS,GAAS,EAAU,EAAO,CACjC,IAAI,EACJ,OAAO,SAAS,GAAG,EAAM,CACvB,IAAI,EAAU,KACd,aAAa,EAAM,CACnB,EAAQ,eAAiB,CACvB,EAAQ,IAAK,GACb,EAAS,MAAM,EAAS,EAAK,EAC5B,EAAM,EAKb,SAAS,GAAmB,EAAS,CAClB,iBAAiB,EAAQ,CAAC,WACb,WAE5B,EAAQ,MAAM,YAAY,WAAY,SAAS,CAC/C,EAAQ,QAAQ,OAAS,QAEvB,EAAQ,cACV,GAAmB,EAAQ,aAAa,CAG5C,SAAS,GAAgB,EAAS,CAC5B,GAAS,SAAS,SAAW,SAC/B,EAAQ,MAAM,eAAe,WAAW,CACxC,OAAO,EAAQ,QAAQ,QAErB,EAAQ,cACV,GAAgB,EAAQ,aAAa,CAGzC,SAAS,GAAU,EAAS,EAAc,EAAG,CAC3C,IAAM,EAAM,EAAc,EAAQ,UAIlC,OAHI,EAAQ,aACH,GAAU,EAAQ,aAAc,EAAI,CAEtC,EAET,SAAS,GAAW,EAAS,EAAc,EAAG,CAC5C,IAAM,EAAO,EAAc,EAAQ,WAInC,OAHI,EAAQ,aACH,GAAW,EAAQ,aAAc,EAAK,CAExC,EAET,SAAS,GAAU,EAAS,EAAc,EAAG,CAC3C,IAAM,EAAM,EAAc,EAAQ,UAIlC,OAHI,EAAQ,aACH,GAAU,EAAQ,aAAc,EAAI,CAEtC,EAAM,EAAO,QAEtB,SAAS,GAAW,EAAS,EAAc,EAAG,CAC5C,IAAM,EAAO,EAAc,EAAQ,WAInC,OAHI,EAAQ,aACH,GAAW,EAAQ,aAAc,EAAK,CAExC,EAAO,EAAO,QA+EvB,SAAS,IAAM,CACb,MAAO,kCA9EL,GAAc,KAAM,CACtB,QACA,QACA,MAEA,KAAO,EAAE,CACT,sBACA,eACA,YAAY,EAAS,CACnB,QAAQ,CAAC,QAAQ,CACjB,eAAe,GACf,kBAAkB,IAChB,EAAE,CAAE,CACN,KAAK,QAAU,EACf,KAAK,QAAU,CAAE,QAAO,eAAc,kBAAiB,CACvD,KAAK,MAAQ,CAAC,EAAM,CAAC,MAAM,CAC3B,KAAK,sBAAwB,IAAI,eAAe,KAAK,gBAAgB,CACrE,KAAK,sBAAsB,QAAQ,SAAS,KAAK,CACjD,KAAK,iBAAiB,CACtB,KAAK,eAAiB,IAAI,eAAe,KAAK,SAAS,CACvD,KAAK,eAAe,QAAQ,KAAK,QAAQ,CACzC,KAAK,QAAQ,CACX,MAAO,KAAK,QAAQ,YACpB,OAAQ,KAAK,QAAQ,aACtB,CAAC,CAEJ,SAAU,CACR,KAAK,sBAAsB,YAAY,CACvC,KAAK,eAAe,YAAY,CAElC,QAAQ,CACN,MACA,OACA,QACA,SACA,WACE,EAAE,CAAE,CACN,IAAa,KAAK,KAAK,IACvB,IAAe,KAAK,KAAK,KACzB,IAAiB,KAAK,KAAK,MAC3B,IAAmB,KAAK,KAAK,OAC7B,IAAqB,KAAK,KAAK,QAC3B,MAAQ,KAAK,KAAK,KAAO,IAAS,KAAK,KAAK,MAAQ,IAAU,KAAK,KAAK,OAAS,IAAW,KAAK,KAAK,QAAU,IAAY,KAAK,KAAK,WAE1I,KAAK,KAAK,IAAM,EAChB,KAAK,KAAK,EAAI,EACd,KAAK,KAAK,MAAQ,EAClB,KAAK,KAAK,OAAS,EACnB,KAAK,KAAK,KAAO,EACjB,KAAK,KAAK,EAAI,EACd,KAAK,KAAK,OAAS,EAAM,EACzB,KAAK,KAAK,MAAQ,EAAO,GAE3B,oBAAwB,CACtB,IAAI,EAAK,EAET,GADI,KAAK,QAAQ,cAAc,GAAmB,KAAK,QAAQ,CAC3D,KAAK,QAAQ,gBACf,EAAM,GAAU,KAAK,QAAQ,CAC7B,EAAO,GAAW,KAAK,QAAQ,KAC1B,CACL,IAAM,EAAO,KAAK,QAAQ,uBAAuB,CACjD,EAAM,EAAK,IAAM,GAAU,KAAK,QAAQ,CACxC,EAAO,EAAK,KAAO,GAAW,KAAK,QAAQ,CAEzC,KAAK,QAAQ,cAAc,GAAgB,KAAK,QAAQ,CAC5D,KAAK,QAAQ,CAAE,MAAK,OAAM,CAAC,EAE7B,UAAY,CAAC,KAAW,CACtB,GAAI,CAAC,GAAO,cAAc,GAAI,OAC9B,IAAM,EAAQ,EAAM,cAAc,GAAG,WAC/B,EAAS,EAAM,cAAc,GAAG,UACtC,KAAK,QAAQ,CAAE,QAAO,SAAQ,CAAC,GAK/B,GAAQ,EAMR,GAAO,KAAM,CACf,YAAY,EAAO,CACjB,OAAO,YACP,KAAA,EACA,SACA,WACA,oBAAoB,MAEpB,SAAU,EAAgB,IAC1B,cACA,kBACE,EAAE,CAAE,CACN,KAAK,MAAQ,EACb,KAAK,QAAU,CACb,OACA,KAAA,EACA,SACA,WACA,oBAEA,SAAU,EACV,cACA,iBACD,CACD,KAAK,gBAAgB,CACrB,EAAO,iBAAiB,SAAU,KAAK,eAAgB,GAAM,CAC7D,KAAK,gBAAkB,GAAS,KAAK,OAAQ,KAAK,QAAQ,SAAS,CACnE,KAAK,MAAM,GAAG,iBAAkB,KAAK,gBAAgB,CAEvD,QACA,SAA2B,IAAI,IAC/B,MAAwB,IAAI,IAC5B,SAAW,CACT,MAAO,EAAO,WACd,OAAQ,EAAO,YAChB,CACD,UAAY,GACZ,gBAIA,SAAU,CACR,KAAK,MAAM,IAAI,iBAAkB,KAAK,gBAAgB,CACtD,EAAO,oBAAoB,SAAU,KAAK,eAAgB,GAAM,CAChE,KAAK,SAAS,QAAS,GAAY,EAAQ,SAAS,CAAC,CAKvD,OAAQ,CACN,KAAK,UAAY,GAKnB,MAAO,CACL,KAAK,UAAY,GASnB,IAAI,EAAO,EAAW,EAAE,CAAE,CACxB,IAAMxf,EAAK,IAAK,CAEhB,OADA,KAAK,MAAM,IAAIA,EAAI,CAAE,QAAO,WAAU,CAAC,KAC1B,KAAK,MAAM,OAAOA,EAAG,CASpC,WAAW,EAAS,EAAU,EAAE,CAAE,CAChC,IAAMA,EAAK,IAAK,CAEhB,OADA,KAAK,SAAS,IAAIA,EAAI,IAAI,GAAY,EAAS,EAAQ,CAAC,KAC3C,KAAK,SAAS,OAAOA,EAAG,CAEvC,mBAAuB,CACrB,KAAK,SAAS,MAAQ,EAAO,WAC7B,KAAK,SAAS,OAAS,EAAO,aA0BhC,WAAe,CACb,GAAI,CAAE,SAAQ,gBAAiB,KAAK,MACpC,EAAS,KAAK,KAAK,KAAK,MAAM,OAAO,CACrC,IAAI,EAAQ,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAiBpC,GAhBA,KAAK,SAAS,SAAS,CAAE,OAAM,WAAY,CACzC,IAAI,EACJ,EAAM,QAAS,GAAW,CACpB,IAAW,QACb,EAAQ,EAAK,IACJ,IAAW,SACpB,EAAQ,EAAe,EAAK,KAAO,EAAK,MAAQ,EAAI,KAAK,SAAS,MAAQ,EAAI,EAAK,IAAM,EAAK,OAAS,EAAI,KAAK,SAAS,OAAS,EACzH,IAAW,QACpB,EAAQ,EAAe,EAAK,KAAO,EAAK,MAAQ,KAAK,SAAS,MAAQ,EAAK,IAAM,EAAK,OAAS,KAAK,SAAS,QAE3G,OAAO,GAAU,UACnB,EAAM,KAAK,CAAE,MAAO,KAAK,KAAK,EAAM,CAAE,SAAU,EAAE,CAAE,CAAC,EAEvD,EACF,CACF,EAAQ,EAAM,MAAM,EAAG,IAAM,KAAK,IAAIoI,EAAE,MAAM,CAAG,KAAK,IAAIC,EAAE,MAAM,CAAC,CAC/D,EAAM,SAAW,EAAG,OACxB,IAAI,EAAW,EAAM,UAAU,CAAE,WAAY,GAAS,EAAO,CACzD,IAAa,IAAK,KAAG,EAAW,EAAM,IAC1C,IAAM,EAAqB,KAAK,IAAI,EAAS,EAAS,MAAM,CACxD,EAAW,EAAM,MAAM,CAAE,WAAY,GAAS,EAAO,CACrD,IAAa,IAAK,KAAG,EAAW,EAAM,EAAM,OAAS,IACzD,IAAM,EAAqB,KAAK,IAAI,EAAS,EAAS,MAAM,CACtD,EAAO,EAAqB,EAAqB,EAAW,EAC5DY,EAAW,KAAK,IAAI,EAAS,EAAK,MAAM,CAC1C,EACE,EAAO,EAAe,QAAU,SACtC,AAKE,EALE,OAAO,KAAK,QAAQ,mBAAsB,UAAY,KAAK,QAAQ,kBAAkB,SAAS,IAAI,CAChF,OAAO,KAAK,QAAQ,kBAAkB,QAAQ,IAAK,GAAG,CAAC,CAAG,IAAM,KAAK,SAAS,GACzF,OAAO,KAAK,QAAQ,mBAAsB,SAC/B,KAAK,QAAQ,kBAEb,KAAK,SAAS,IAEhC,KAAK,QAAQ,OAAS,aAAe,KAAK,QAAQ,OAAS,aAAeA,GAAY,IACxF,KAAK,MAAM,SAAS,EAAK,MAAO,CAC9B,KAAM,KAAK,QAAQ,KACnB,OAAQ,KAAK,QAAQ,OACrB,SAAU,KAAK,QAAQ,SACvB,SAAU,CAAE,UAAW,OAAQ,CAC/B,YAAe,CACb,KAAK,QAAQ,cAAc,EAAK,EAElC,eAAkB,CAChB,KAAK,QAAQ,iBAAiB,EAAK,EAEtC,CAAC,MC5SL,SAAwB,GAAU,CAAC,SAAO,SAAO,WAAS,cAAY,YAAU,WAAS,QAAM,CAAC,IAAM,EAAW0V,GAAQ,CAAO,EAAWA,GAAQ,CACqG,OADpG,MAAc,CAAC,GAAG,IAAW,CAAC,EAAW,SAAS,CAAC,EAAW,SAAS,OAAU,EAAW,SAAS,EAAW,UAAY,IAAc,aAAc,EAAW,QAAQ,MAAM,YAAY,YAAY,OAAO,CAAO,EAAW,QAAQ,MAAM,YAAY,YAAY,OAAO,EAAG,IAAM,EAAM,IAAI,GAAM,CAAC,YAAY,EAAO,SAAS,EAAU,GAAG,WAAS,cAAY,mBAAmB,IAAc,aAAa,OAAO,WAAW,QAAQ,GAAK,WAAW,GAAK,QAAQ,GAAK,kBAAkB,GAAK,QAAQ,EAAW,QAAQ,QAAQ,EAAW,QAAQ,UAAU,EAAQ,GAAW,IAAc,aAAa,CAAC,CAAK,EACpkB,OADilB,GAAM,EAAK,MAAM,OAAO,IAAG,EAAU,IAAI,GAAK,EAAM,CAAC,KAAK,EAAK,KAAK,kBAAkB,EAAK,UAAU,IAAI,CAAC,CAAC,EAAK,MAAM,QAAQ,GAAM,CAAC,GAAG,CAAC,EAAK,QAAQ,QAAQ,OAAO,IAAM3e,EAAG,EAAK,OAAO,QAAQ,GACn7B,SAAS,iBAAiB,IAAIA,IAAK,CAAU,QAAQ,GAAS,CAAC,EAAU,WAAW,EAAQ,CAAC,MAAM,EAAK,MAAM,CAAC,EAAG,EAAG,EAAE,EAAO,MAAM,EAAM,EAAO,UAAU,MAAe,CAAC,EAAM,SAAS,CAAI,GAAU,EAAU,SAAS,GAAK,CAAC,EAAS,CAAC,CAAqB,EAAMoU,EAAU,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,KAAK,+CAA+C,IAAI,aAAa,CAAC,CAAC,GAAuB,EAAKA,EAAU,CAAC,SAAsB,EAAK,MAAM,CAAC,IAAI,EAAW,MAAM,IAAc,aAAa,CAAC,UAAU,OAAO,MAAM,OAAO,CAAC,CAAC,UAAU,OAAO,OAAO,OAAO,CAAC,SAAsB,EAAK,MAAM,CAAC,IAAI,EAAW,MAAM,CAAC,MAAM,OAAO,CAAC,SAAStY,EAAS,IAAI,EAAS,GAAoB,EAAe,EAAM,CAAc,EAAa,EAAM,CAAC,MAAM,CAAC,GAAG,EAAM,MAAM,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,EAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBALjuB,IAAoD,KAAgE,KAAoE,IAAyE,CAKke,GAAU,YAAY,QAAQ,GAAoB,GAAU,CAAC,OAAO,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAK,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,EAAM,CAAC,OAAO,EAAM,SAAS,IAAQ,CAAC,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAM,OAAO,EAAM,CAAC,OAAO,EAAM,SAAS,IAAQ,CAAC,YAAY,CAAC,KAAK,EAAY,KAAK,aAAa,WAAW,wBAAwB,GAAK,QAAQ,CAAC,WAAW,aAAa,CAAC,aAAa,CAAC,WAAW,aAAa,CAAC,OAAO,EAAM,CAAC,OAAO,EAAM,SAAS,IAAQ,CAAC,SAAS,CAAC,KAAK,EAAY,kBAAkB,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,SAAS,GAAK,YAAY,6EAA6E,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,aAAa,YAAY,wBAAwB,GAAK,0BAA0B,WAAW,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,YAAY,YAAY,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,GAAe,EAAM,KAAK,OAAO,YAAc,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,SAAS,KAAK,EAAY,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAY,KAAK,aAAa,SAAS,wBAAwB,GAAK,0BAA0B,aAAa,QAAQ,CAAC,QAAQ,SAAS,MAAM,CAAC,YAAY,CAAC,YAAY,eAAe,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ICLj/C,SAAgB,GAAS,EAAQ,CAAC,OAAO,GAAS,KAAK,GAAG,uCAAlwB,IAAoD,IAA8C,CAQwC,OAAgB,CAAC,GAAK,CAAC,EAAW,GAAe+M,EAAS,GAAM,CAAkP,OAAjP,MAAc,CAAC,IAAM,EAAW,EAAO,WAAW,+BAA+B,CAAC,EAAc,EAAW,QAAQ,CAAC,IAAM,EAAQ,GAAG,EAAc7M,EAAE,QAAQ,CAAiC,OAAhC,EAAW,YAAY,EAAQ,KAAW,EAAW,eAAe,EAAQ,EAAG,EAAE,CAAC,CAAQ,GAA0B,IAAiB,CAAC,YAAU,WAAS,WAAS,MAAI,OAAK,QAAM,EAAE,CAAC,GAAG,KAAS,CAAC,IAAM,EAAiB,IAAqB,CAAO,EAAa,CAAC,MAAM,OAAO,OAAO,OAAO,UAAU,EAAI,CAAoJ,OAAhJ,IAAY,QAA6B,EAAK,MAAM,CAAC,IAAI,EAAS,IAAI,EAAS,MAAM,CAAC,GAAG,EAAa,GAAG,EAAM,CAAC,YAAY,YAAY,CAAC,CAA2B,EAAK,QAAQ,CAAC,IAAI,EAAS,SAAS,CAAC,EAAiB,MAAM,GAAK,YAAY,GAAU,OAAK,MAAM,CAAC,GAAG,EAAa,GAAG,EAAM,CAAC,YAAY,YAAY,CAAC,EAAiB,IAAgB,EAAM,EAAK,EAAS,EAAQ,EAAa,EAAU,EAAK,EAAY,gBAAgB,CAAC,IAAM,EAAW,IAAa,CAAO,EAAqBmf,MAAY,CAAC,IAAM,EAAe,CAAC,QAAQ,CAAC,MAAM,yFAAyF,IAAI,0BAA0B,CAAC,aAAa,CAAC,MAAM,uEAAuE,IAAI,6CAA6C,CAAC,YAAY,CAAC,MAAM,qEAAqE,IAAI,uDAAuD,CAAC,UAAU,CAAC,MAAM,sEAAsE,IAAI,gEAAgE,CAAC,UAAU,CAAC,MAAM,sEAAsE,IAAI,wEAAwE,CAAC,UAAU,CAAC,MAAM,8FAA8F,IAAI,8DAA8D,CAAC,YAAY,CAAC,MAAM,8FAA8F,IAAI,0DAA0D,CAAC,UAAU,CAAC,MAAM,6FAA6F,IAAI,oDAAoD,CAAC,MAAM,CAAC,MAAM,6FAA6F,IAAI,mEAAmE,CAAC,KAAK,CAAC,MAAM,4FAA4F,IAAI,+CAA+C,CAAC,QAAQ,CAAC,MAAM,8FAA8F,IAAI,4DAA4D,CAAC,MAAM,CAAC,MAAM,8FAA8F,IAAI,uCAAuC,CAAC,CAAC,OAAO,EAAe,IAAc,EAAe,aAAc,CAAC,EAAY,CAAC,CAAO,EAASA,MAAgB,GAAM,GAAY,GAAW,IAAY,EAAU,IAAY,GAAc,KAAK,EAAqB,MAAQ,CAAC,EAAW,EAAa,EAAU,EAAK,EAAqB,MAAM,CAAC,CAAO,EAASA,MAAY,IAAI,IAAQ,SAAgI,IAAQ,MAAkE,OAAxD,GAAM,GAAY,GAAW,IAAY,EAAU,IAAY,GAAc,KAAK,EAAqB,KAAO,CAAC,EAAW,EAAa,EAAU,EAAK,EAAqB,IAAI,CAAC,CAAO,EAASA,MAAgB,IAAQ,QAAgB,EAAiB,IAAO,MAAM,EAAS,EAAU,CAAC,EAAM,EAAK,EAAS,EAAS,EAAQ,EAAa,EAAU,EAAK,CAAC,CAAO,EAAUA,OAAgC,CAAC,MAAM,QAAQ,IAAI,QAAQ,MAAM,QAAQ,EAAqB,IAAQ,QAAU,CAAC,EAAM,CAAC,CAAC,MAAM,CAAC,WAAS,WAAS,WAAS,YAAU,EAAgB,GAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,QAAQ,QAAQ,CAAC,aAAa,CAAC,QAAQ,QAAQ,CAAC,wBAAwB,GAAK,aAAa,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,MAAM,SAAS,CAAC,aAAa,CAAC,MAAM,SAAS,CAAC,wBAAwB,GAAK,aAAa,MAAM,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,SAAU,CAAC,aAAa,CAAC,KAAK,EAAY,gBAAgB,MAAM,QAAQ,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,SAAU,CAmBxiJ,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,sEAC3D,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,MAAM,EAAM,OAAO,QAAmB,IAAO,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,iBAAiB,CAAC,MAAM,OAAO,CAAC,YAAY,0CAA0C,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,SAAS,EAAM,OAAO,QAAmB,IAAO,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAK,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,SAAU,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,QAAQ,CAAC,QAAQ,UAAU,CAAC,aAAa,CAAC,QAAQ,UAAU,CAAC,aAAa,QAAQ,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,UAAU,SAAS,QAAQ,YAAY,UAAU,CAAC,aAAa,CAAC,UAAU,SAAS,QAAQ,YAAY,UAAU,CAAC,aAAa,SAAS,CAAC,OAAO,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAK,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,SAAU,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,QAAQ,UAAU,CAAC,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,aAAa,QAAQ,OAAO,EAAM,CAAC,OAAO,EAAM,MAAM,UAAU,EAAM,MAAM,WAAW,EAAM,MAAM,WAAY,CAAC,QAAQ,CACnkC,KAAK,EAAY,iBAAiB,MAAM,UAAU,OAAO,EAAM,CAA+F,MAA9F,GAAI,EAAM,OAAO,aAAa,EAAM,OAAO,UAAU,EAAM,UAAU,YAAuC,CAAC,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,SAAS,SAAS,CAAC,wBAAwB,GAAK,aAAa,EAAE,YAAY,6DAA6D,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,SAAU,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,QAAQ,CAAC,MAAM,SAAS,SAAS,CAAC,aAAa,CAAC,MAAM,SAAS,SAAS,CAAC,wBAAwB,GAAK,aAAa,SAAS,YAAY,iEAAiE,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,aAAc,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,YAAY,aAAa,KAAK,UAC10B,SAAS,CAAC,WAAW,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,GAAM,CAAC,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,GAAM,YAAY,2GAA2G,CAAC,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,gBAAgB,wBAAwB,GAAK,0BAA0B,aAAa,QAAQ,CAAC,GAAK,GAAM,CAAC,aAAa,CAAC,QAAQ,QAAQ,CAAC,aAAa,GAAM,YAAY,uDAAuD,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,wBAAwB,GAAK,0BAA0B,aAAa,QAAQ,CAAC,OAAO,SAAS,CAAC,aAAa,CAAC,OAAO,SAAS,CAAC,aAAa,OAAO,YAAY,yCAAyC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,cAAc,YAAa,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAY,aAAa,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAY,aAAa,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAY,aAAa,MAAM,YAAY,CAAC,oBAAoB,CAAC,KAAK,EAAY,aAAa,MAAM,qBAAqB,CAAC,CAAC,kBC9BpnC,qBCAA,IAA6C,IAA+C,CAA6F,IAAkB,EAAO,EAAW,EAAQ,KAAO,CAAC,GAAK,CAAC,EAAY,GAAgBtS,EAAS,GAAM,CAAO,EAAgB8V,EAAO,EAAE,CAAC,CAC1W,IAAI,IAAM,KAAO,EAAY,EAAgB,QAAQ,KAAM,EAAgB,QAAQ,GAAK,IAAI,EAAY,EAAO,GAAK,EASrE,OAR/C,MAAc,CACd,GAAG,CAAC,EAAQ,CAAC,IAAI,IAAM,KAAO,EAAO,CAAC,IAAM,EAAG,EAAgB,QAAQ,GAAW,EAAY,EAAO,GAAQ,GAAI,EAAG,KAAK,GAAG,GAC5H,EAAG,IAAI,EAAY,CAChB,GAAa,EAAe,GAAM,CAAE,OAEvC,IAAM,EAAc,EAAE,CAAK,EAAoB,GAAM,IAAI,IAAM,KAAO,EAAO,CAAC,IAAM,EAAG,EAAgB,QAAQ,GAAW,EAAY,EAAO,GAAK,GAAG,GAAI,EAAG,KAAK,GAAG,EAAY,CAAC,EAAoB,GAAK,IAAM,EAAiB,EAAQ,EAAG,EAAY,EAAW,CAAC,EAAc,KAAK,EAAiB,EAExS,OAF8S,GAAqB,EAAe,GAAK,CACvV,QAAQ,IAAI,EAAc,CAAC,SAAS,CAAI,GAAqB,EAAe,GAAM,EAAI,KAC5E,CAAC,EAAc,QAAQ,GAAkB,CAAC,EAAiB,MAAM,EAAG,GAC5E,CAAC,KAAK,UAAU,EAAO,CAAC,EAAW,EAAQ,CAAC,CAAO,CAAC,aAAa,EAAgB,QAAQ,kBAAkB,EAAY,KCVkI,SAAgB,GAAkB,EAAO,EAAY,EAAW,EAAS,EAAO,GAAK,CAAC,IAAM,EAAOA,EAAO,OAAO,YAAY,OAAO,QAAQ,EAAO,CAAC,KAAK,CAAC,EAAI,CAAC,WAAS,CAAC,EAAI,EAAK,CAAC,CAAC,CAAC,CAAM,CAAC,EAAW,GAAe9V,EAAS,GAAM,CAAO,EAAqB8V,EAAO,KAAK,CAAO,EAAU,GAAO,EAAY,UAAU,WAAW,EAAY,QAAQ,EAAY,QAAQ,EAAwB,EAAS,EAAU,EAAU,CAAC,KAAK,CAAC,EAAY,OAAO,OAAO,EAAY,OAAO,CAAC,CAAM,CAAC,mBAAiB,GAAU,CAAC,OAAO,EAAU,aAAa,GAAM,OAAO,EAAY,WAAW,MAAM,CAAC,cAAc,YAAY,CAAC,EAAY,WAAW,SAAS,CAAC,YAAY,cAAc,CAAC,CAAC,eAAe,aAAa,CAAC,CAAC,CAAM,CAAC,EAAe,GAAmB9V,EAAS,EAAE,CAQ/4B,OAP1F,MAAc,CAAC,GAAG,GAAQ,EAAY,OAAO,YAAgG,OAAjE,EAAgB,SAAS,GAAQ,CAAC,EAAkB,EAAE,EAAO,EAAG,EAAuB,CAAC,EAAgB,EAAY,KAAK,EAAO,CAAC,CAAC,MAAc,CAE5N,GADA,AAAqE,EAAqB,WAAzD,EAAqB,QAAQ,MAAM,CAA8B,MAC/F,CAAC,EAAO,CAAC,OAAO,QAAQ,EAAO,CAAC,SAAS,CAAC,EAAI,CAAC,WAAS,CAAC,EAAO,QAAQ,GAAK,GAAO,CACvF,OAAQ,IAAM,EAAQ,EAAE,CAAO,EAAkB,EAAE,CAAK,EAAc,GAAU,EAAoB,GAGpG,GAH0G,OAAO,QAAQ,EAAO,CAAC,SAAS,CAAC,EAAI,CAAC,OAAK,SAAO,CAAC,IAAI,EAAY,OAAO,EAAY,KAAnB,CAAyB,IAAI,SAAS,EAAY,EAAG,EAAc,GAAK,MAAM,IAAI,QAAQ,EAAY,EAAS,EAAG,EAAK,EAAc,GAAK,MAAM,IAAI,YAAY,EAAY,GAAM,EAAG,GAAM,EAAe,EAAc,GAAK,MAAM,QAAQ,EAAO,QAAQ,GAAK,EAAK,OAAQ,EAAQ,GAAK,EACnc,KAAK,IAAI,EAAO,QAAQ,GAAK,EAAY,CAAC,MAAM,EAAkB,GAAK,EAAY,EAAoB,IAC1G,EAAO,QAAQ,GAAK,GAAe,CAChC,CAAC,GAAe,CAAC,EAAqB,OAAQ,IAAM,EAAS,EAAQ,EAAO,QAAQ,EAAkB,CAAC,GAAG,EAAW,UAAU,KAAK,UAAU,KAAK,eAAe,CAAC,EAAc,GAAM,CAAC,EAAqB,QAAQ,MAAO,SAAS,GAAQ,CAAK,GAAY,EAAc,GAAK,EAAI,CAAC,CAAuC,MAAtC,GAAqB,QAAQ,MAAmB,CAAI,IAAU,EAAS,MAAM,CACvW,EAAqB,QAAQ,QAAU,CAAC,EAAS,EAAe,EAAY,KAAK,EAAO,CAAC,CAAO,CAAC,OAAO,EAAO,QAAQ,aAAW,CAAE,SAAgB,GAAoB,EAAY,EAAW,EAAS,EAAO,GAAK,CAAC,IAAM,EAAY8V,EAAO,EAAE,CAAM,CAACjV,EAAS,GAAab,EAAS,EAAE,CAAM,CAAC,EAAmB,GAAuBA,EAAS,GAAM,CAAM,CAAC,EAAe,GAAmBA,EAAS,EAAE,CACtY,EAAS,EAAU,GAAQ,EAAY,UAAU,WAAW,EAAY,QAAQ,EAAY,QAAQ,EAAS,CAAC,KAAK,EAAO,CAAC,EAAY,OAAO,GAAK,OAAO,EAAO,EAAY,OAAO,EAAE,CAAC,CACxL,CAAC,mBAAiB,GAAU,CAAC,OAAO,GAAQ,EAAY,UAAU,WAAW,EAAY,QAAQ,EAAY,QAAQ,EAAS,aAAa,GAAM,OAAO,GAAQ,EAAY,WAAW,MAAM,CAAC,cAAc,YAAY,CAAC,GAAQ,EAAY,WAAW,SAAS,CAAC,YAAY,cAAc,CAAC,CAAC,eAAe,aAAa,CAAC,CAAC,CAM+K,OALhf,MAAc,CAAC,GAAG,GAAQ,EAAY,OAAO,YAAgG,OAAjE,EAAgB,SAAS,GAAQ,CAAC,EAAkB,EAAE,EAAO,EAAG,EAAuB,CAAC,EAAgB,EAAY,KAAK,EAAO,CAAC,CAC7M,MAAc,CACd,GAAG,CAAC,EAAO,CAAC,EAAY,QAAQ,EAAE,EAAY,EAAE,CAAC,EAAsB,GAAM,CAAC,OAAQ,IAAI,EAAY,EAAM,EAAc,GAAM,OAAO,EAAY,KAAnB,CAAyB,IAAI,SAC7J,EAAY,EAAE,EAAc,GAAK,MAAM,IAAI,QAC3C,EAAY,EAAS,EAAE,EAAE,EAAc,GAAK,MAAM,IAAI,YACtD,EAAY,EAAe,EAAc,GAAK,MAAM,QAAQ,EAAY,QAAQ,EAAE,EAAY,EAAE,CAAC,EAAsB,GAAM,CAAC,OAAQ,GAAG,CAAC,EAAc,OAAO,EAAsB,GAAK,CAAC,IAAM,EAAS,EAAQ,EAAY,QAAQ,EAAY,CAAC,GAAG,EAAW,UAAU,KAAK,UAAU,KAAK,SAAS,GAAQ,CAAC,EAAY,QAAQ,EAAO,EAAY,EAAO,EAAG,eAAe,CAAC,EAAsB,GAAM,EAAG,CAAC,CAAC,UAAU,CAAC,EAAS,MAAM,GAAK,CAAC,EAAO,EAAS,EAAe,EAAY,KAAK,EAAW,CAAC,CAAO,CAAC,SAAA,EAAS,qBAAmB,mBAhBxe,IAA8H,IAA+C,ICA3C,SAAgB,GAAS,EAAI,EAAU,QAAQ,EAAK,GAAK,EAAS,GAAK,CAAC,GAAK,CAAC,EAAW,GAAeA,EAAS,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,SAAS,GAAM,QAAQ,GAAM,eAAe,GAAM,UAAU,KAAK,WAAW,KAAK,CAAC,CACpZ,EAAgB8V,EAAO,KAAK,CAAO,EAAU7V,GAAa,EAAS,IAAO,CAAK,KACrF,IAAG,EAAgB,QAAQ,CAAC,GAAG,IAAO,QAAQ,CAAC,IAAM,EAAM,EAAgB,QAAQ,EAAM,OAAO,CAAC,EAAM,gBAAgB,MAAM,CAAC,EAAM,MAAM,CAAE,EAAgB,QAAQ,KACT,GAA3J,EAAc,IAAO,CAAC,GAAG,EAAK,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,SAAS,GAAM,QAAQ,GAAM,eAAe,GAAM,UAAU,KAAK,WAAW,KAAK,EAAE,CAAI,IAAO,QAAQ,CAAC,IAAM,EAAI,IAAI,MAAM,EAAI,YAAY,YAAY,EAAgB,QAAQ,EAMoK,EAAI,iBAAiB,WAL1Z,CAClB,EAAgB,UAAU,IAAW,EAAc,IAAO,CAAC,GAAG,EAAK,MAAM,EAAI,WAAW,CAAC,MAAM,EAAI,MAAM,OAAO,EAAI,OAAO,CAAC,QAAQ,GAAM,EAAE,CAC5I,EAAI,OACP,EAAI,QAAQ,CAAC,SAAS,CAAI,EAAgB,UAAU,GAAW,EAAc,IAAO,CAAC,GAAG,EAAK,SAAS,GAAK,eAAe,GAAM,UAAU,KAAK,WAAW,KAAK,EAAE,EAAG,CAAC,UAAU,CAAI,EAAgB,UAAU,GAAW,EAAc,IAAO,CAAC,GAAG,EAAK,QAAQ,GAAK,SAAS,GAAM,EAAE,EAAG,CAEvR,0BAA0B,CAAI,EAAgB,UAAU,IAAc,EAAI,aAAa,GAAG,EAAI,cAAc,EAAG,EAAc,IAAO,CAAC,GAAG,EAAK,SAAS,GAAK,eAAe,GAAM,UAAU,KAAK,WAAW,KAAK,EAAE,CAAO,EAAc,IAAO,CAAC,GAAG,EAAK,QAAQ,GAAK,SAAS,GAAM,EAAE,GAAI,GAAyK,CAAC,EAAI,iBAAiB,YAArK,CAAI,EAAgB,UAAU,GAAW,EAAc,IAAO,CAAC,GAAG,EAAK,QAAQ,GAAK,SAAS,GAAM,EAAE,EAAoF,CAAC,EAAI,IAAI,UAAkB,IAAO,QAAQ,CAAC,IAAM,EAAM,SAAS,cAAc,QAAQ,CAAC,EAAM,YAAY,YAAY,EAAM,MAAM,GAAK,EAAM,KAAK,EAAK,EAAM,YAAY,GAAK,EAAM,QAAQ,WAAW,EAAgB,QAAQ,EACzsB,IAAI,EAAa,GACX,MAAyB,CAAI,EAAgB,UAAU,GAAa,EAAc,IAAO,CAAC,GAAG,EAAK,MAAM,EAAM,WAAW,CAAC,MAAM,EAAM,WAAW,OAAO,EAAM,YAAY,CAAC,QAAQ,GAAM,SAAS,GAAM,EAAE,EAC1M,MAAoB,CACvB,QAAc,EAAgB,UAAU,IAAgB,EAAM,YAAY,EAAE,CAAC,EAAa,GAAK,IAAM,MAAsB,EAAM,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAS,MAAe,CAAC,EAAM,OAAO,EAAG,EAAc,IAAO,CAAC,GAAG,EAAK,SAAS,GAAK,eAAe,EAAS,YAAU,aAAW,EAAE,CAC/R,EAAoC,GAAW,CAArC,EAAM,YAAY,IAO0C,EAAM,iBAAiB,iBAAiB,EAAqB,CAAC,EAAM,iBAAiB,iBALpI,CAAC,GAAiB,EAKgJ,CAAC,EAAM,iBAAiB,qBANtL,CAAC,GAAiB,EAM0M,CAAC,EAAM,iBAAiB,uBAJlP,CAAC,GAAiB,EAI0Q,CAAC,EAAM,iBAAiB,YAJzQ,CAAI,EAAgB,UAAU,GAAa,EAAc,IAAO,CAAC,GAAG,EAAK,QAAQ,GAAK,SAAS,GAAM,EAAE,EAIsL,CAAC,EAAM,iBAAiB,YAHxW,CAAI,EAAgB,UAAU,GAAa,EAAc,IAAO,CAAC,GAAG,EAAK,eAAe,GAAM,EAAE,EAG+R,CAAC,EAAM,iBAAiB,WAFtZ,CAAI,EAAgB,UAAU,GAAa,EAAc,IAAO,CAAC,GAAG,EAAK,eAAe,GAAK,EAAE,EAE8U,CAAC,EAAM,iBAAiB,YADpc,CAAI,EAAgB,UAAU,GAAa,EAAc,IAAO,CAAC,GAAG,EAAK,eAAe,GAAM,EAAE,EAC6X,CAAC,EAAM,iBAAiB,cAAnf,CAAI,EAAgB,SAA4f,CAAC,EAAM,IAAI,KAAY,CAAC,EAAK,EAAS,CAAC,CAC3X,OAD4X,OAAe,EAAU,EAAI,EAAU,KAClnB,CAAC,GAAG,EAAgB,QAAQ,CAAC,GAAG,IAAY,QAAQ,CAAC,IAAM,EAAM,EAAgB,QAAQ,EAAM,OAAO,CAAC,EAAM,gBAAgB,MAAM,CAAC,EAAM,MAAM,CAAE,EAAgB,QAAQ,QAAU,CAAC,EAAI,EAAU,EAAU,CAAC,CAAQ,oBAtBrL,IAAyD,ICQpG,SAAgBxB,GAAO,EAAG,CACtB,IAAIK,EAAIS,EAAE,GACNV,EAAIU,EAAE,GACNzB,EAAIyB,EAAE,GACV,OAAO,KAAK,KAAKT,EAAIA,EAAID,EAAIA,EAAIf,EAAIA,EAAE,CAU3C,SAAgBnD,GAAK,EAAK,EAAG,CAIzB,MAHA,GAAI,GAAK4E,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACJ,EAYX,SAAgB1E,GAAI,EAAK,EAAG,EAAG,EAAG,CAI9B,MAHA,GAAI,GAAKiE,EACT,EAAI,GAAKD,EACT,EAAI,GAAKf,EACF,EAWX,SAAgBvE,GAAI,EAAK,EAAG,EAAG,CAI3B,MAHA,GAAI,GAAKgG,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GACX,EAWX,SAAgBlL,GAAS,EAAK,EAAG,EAAG,CAIhC,MAHA,GAAI,GAAKiL,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GACX,EAWX,SAAgBxE,GAAS,EAAK,EAAG,EAAG,CAIhC,MAHA,GAAI,GAAKuE,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GACX,EAWX,SAAgB,GAAO,EAAK,EAAG,EAAG,CAI9B,MAHA,GAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GACX,EAWX,SAAgBjD,GAAM,EAAK,EAAG,EAAG,CAI7B,MAHA,GAAI,GAAKgD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EACT,EAUX,SAAgB,GAAS,EAAG,EAAG,CAC3B,IAAIV,EAAIU,EAAE,GAAKD,EAAE,GACbV,EAAIW,EAAE,GAAKD,EAAE,GACbzB,EAAI0B,EAAE,GAAKD,EAAE,GACjB,OAAO,KAAK,KAAKT,EAAIA,EAAID,EAAIA,EAAIf,EAAIA,EAAE,CAU3C,SAAgB,GAAgB,EAAG,EAAG,CAClC,IAAIgB,EAAIU,EAAE,GAAKD,EAAE,GACbV,EAAIW,EAAE,GAAKD,EAAE,GACbzB,EAAI0B,EAAE,GAAKD,EAAE,GACjB,OAAOT,EAAIA,EAAID,EAAIA,EAAIf,EAAIA,EAS/B,SAAgB,GAAc,EAAG,CAC7B,IAAIgB,EAAIS,EAAE,GACNV,EAAIU,EAAE,GACNzB,EAAIyB,EAAE,GACV,OAAOT,EAAIA,EAAID,EAAIA,EAAIf,EAAIA,EAU/B,SAAgB,GAAO,EAAK,EAAG,CAI3B,MAHA,GAAI,GAAK,CAACyB,EAAE,GACZ,EAAI,GAAK,CAACA,EAAE,GACZ,EAAI,GAAK,CAACA,EAAE,GACL,EAUX,SAAgB,GAAQ,EAAK,EAAG,CAI5B,MAHA,GAAI,GAAK,EAAMA,EAAE,GACjB,EAAI,GAAK,EAAMA,EAAE,GACjB,EAAI,GAAK,EAAMA,EAAE,GACV,EAUX,SAAgBrH,GAAU,EAAK,EAAG,CAC9B,IAAI4G,EAAIS,EAAE,GACNV,EAAIU,EAAE,GACNzB,EAAIyB,EAAE,GACN,EAAMT,EAAIA,EAAID,EAAIA,EAAIf,EAAIA,EAQ9B,OAPI,EAAM,IAEN,EAAM,EAAI,KAAK,KAAK,EAAI,EAE5B,EAAI,GAAKyB,EAAE,GAAK,EAChB,EAAI,GAAKA,EAAE,GAAK,EAChB,EAAI,GAAKA,EAAE,GAAK,EACT,EAUX,SAAgB1G,GAAI,EAAG,EAAG,CACtB,OAAO0G,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAWhD,SAAgB,GAAM,EAAK,EAAG,EAAG,CAC7B,IAAI,EAAKD,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKC,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GAKX,MAHA,GAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACjB,EAYX,SAAgB,GAAK,EAAK,EAAG,EAAG,EAAG,CAC/B,IAAI,EAAKD,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GAIX,MAHA,GAAI,GAAK,EAAKkI,GAAKjI,EAAE,GAAK,GAC1B,EAAI,GAAK,EAAKiI,GAAKjI,EAAE,GAAK,GAC1B,EAAI,GAAK,EAAKiI,GAAKjI,EAAE,GAAK,GACnB,EAaX,SAAgB,GAAW,EAAK,EAAG,EAAG,EAAO,EAAI,CAC7C,IAAM,EAAM,KAAK,IAAI,CAAC,EAAQ3J,EAAG,CAC7B,EAAK0J,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GAKX,MAHA,GAAI,GAAKC,EAAE,IAAM,EAAKA,EAAE,IAAM,EAC9B,EAAI,GAAKA,EAAE,IAAM,EAAKA,EAAE,IAAM,EAC9B,EAAI,GAAKA,EAAE,IAAM,EAAKA,EAAE,IAAM,EACvB,EAYX,SAAgB,GAAc,EAAK,EAAG,EAAG,CACrC,IAAIV,EAAIS,EAAE,GACNV,EAAIU,EAAE,GACNzB,EAAIyB,EAAE,GACNN,EAAIb,EAAE,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,IAAMN,EAAIM,EAAE,IAK5C,MAJA,KAAS,EACT,EAAI,IAAMA,EAAE,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,GAAKN,EAAIM,EAAE,KAAOa,EACpD,EAAI,IAAMb,EAAE,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,GAAKN,EAAIM,EAAE,KAAOa,EACpD,EAAI,IAAMb,EAAE,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,IAAMN,EAAIM,EAAE,KAAOa,EAC9C,EAOX,SAAgB,GAAgB,EAAK,EAAG,EAAG,CACvC,IAAIH,EAAIS,EAAE,GACNV,EAAIU,EAAE,GACNzB,EAAIyB,EAAE,GACNN,EAAIb,EAAE,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,IAAMN,EAAIM,EAAE,IAK5C,MAJA,KAAS,EACT,EAAI,IAAMA,EAAE,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,GAAKN,GAAKmB,EAC5C,EAAI,IAAMb,EAAE,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,GAAKN,GAAKmB,EAC5C,EAAI,IAAMb,EAAE,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,IAAMN,GAAKmB,EACtC,EAWX,SAAgB,GAAc,EAAK,EAAG,EAAG,CACrC,IAAIH,EAAIS,EAAE,GACNV,EAAIU,EAAE,GACNzB,EAAIyB,EAAE,GAIV,MAHA,GAAI,GAAKT,EAAIV,EAAE,GAAKS,EAAIT,EAAE,GAAKN,EAAIM,EAAE,GACrC,EAAI,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,GAAKN,EAAIM,EAAE,GACrC,EAAI,GAAKU,EAAIV,EAAE,GAAKS,EAAIT,EAAE,GAAKN,EAAIM,EAAE,GAC9B,EAWX,SAAgB,GAAc,EAAK,EAAG,EAAG,CAGrC,IAAIU,EAAIS,EAAE,GACNV,EAAIU,EAAE,GACNzB,EAAIyB,EAAE,GACN,EAAKjB,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GAEP,EAAM,EAAKR,EAAI,EAAKe,EACpB,EAAM,EAAKC,EAAI,EAAKhB,EACpB,EAAM,EAAKe,EAAI,EAAKC,EAEpB,EAAO,EAAK,EAAM,EAAK,EACvB,EAAO,EAAK,EAAM,EAAK,EACvB,EAAO,EAAK,EAAM,EAAK,EAEvB,EAAK,EAAK,EAYd,MAXA,IAAO,EACP,GAAO,EACP,GAAO,EAEP,GAAQ,EACR,GAAQ,EACR,GAAQ,EAER,EAAI,GAAKA,EAAI,EAAM,EACnB,EAAI,GAAKD,EAAI,EAAM,EACnB,EAAI,GAAKf,EAAI,EAAM,EACZ,EAuCX,SAAgB,GAAY,EAAG,EAAG,CAC9B,OAAOyB,EAAE,KAAOC,EAAE,IAAMD,EAAE,KAAOC,EAAE,IAAMD,EAAE,KAAOC,EAAE,qBA/B3C,IAAS,UAAY,CAC9B,IAAM,EAAQ,CAAC,EAAG,EAAG,EAAE,CACjB,EAAQ,CAAC,EAAG,EAAG,EAAE,CAEvB,OAAO,SAAU,EAAG,EAAG,CACnB,GAAK,EAAOD,EAAE,CACd,GAAK,EAAOC,EAAE,CAEd,GAAU,EAAO,EAAM,CACvB,GAAU,EAAO,EAAM,CAEvB,IAAI,EAAS3G,GAAI,EAAO,EAAM,CAO1B,OALA,EAAS,EACF,EACA,EAAS,GACT,KAAK,GAEL,KAAK,KAAK,EAAO,KAGhC,oBCzZgD,CAEvC,EAAb,MAAa,UAAa,KAAM,CAC5B,YAAY,EAAI,EAAG,EAAIiG,EAAG,EAAIA,EAAG,CAE7B,OADA,MAAMA,EAAGD,EAAGf,EAAE,CACP,KAGX,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,EAAE,EAAG,CACL,KAAK,GAAKkB,EAGd,IAAI,EAAE,EAAG,CACL,KAAK,GAAKA,EAGd,IAAI,EAAE,EAAG,CACL,KAAK,GAAKA,EAGd,IAAI,EAAG,EAAIF,EAAG,EAAIA,EAAG,CAGjB,OAFIA,EAAE,OAAe,KAAK,KAAKA,EAAE,EACjC,GAAa,KAAMA,EAAGD,EAAGf,EAAE,CACpB,MAGX,KAAK,EAAG,CAEJ,OADA,GAAc,KAAMkB,EAAE,CACf,KAGX,IAAI,EAAI,EAAI,CAGR,OAFI,EAAI,GAAa,KAAM,EAAI,EAAG,CAC7B,GAAa,KAAM,KAAM,EAAG,CAC1B,KAGX,IAAI,EAAI,EAAI,CAGR,OAFI,EAAI,GAAkB,KAAM,EAAI,EAAG,CAClC,GAAkB,KAAM,KAAM,EAAG,CAC/B,KAGX,SAAS,EAAG,CAGR,OAFIA,EAAE,OAAQ,GAAkB,KAAM,KAAMA,EAAE,CACzC,GAAe,KAAM,KAAMA,EAAE,CAC3B,KAGX,OAAO,EAAG,CAGN,OAFIA,EAAE,OAAQ,GAAgB,KAAM,KAAMA,EAAE,CACvC,GAAe,KAAM,KAAM,EAAIA,EAAE,CAC/B,KAGX,QAAQ,EAAI,KAAM,CAEd,OADA,GAAiB,KAAMA,EAAE,CAClB,KAIX,KAAM,CACF,OAAO5J,GAAgB,KAAK,CAGhC,SAAS,EAAG,CAEH,OADD4J,EAAU3J,GAAkB,KAAM2J,EAAE,CAC5B5J,GAAgB,KAAK,CAGrC,YAAa,CACT,OAAOE,GAAuB,KAAK,CAGvC,gBAAgB,EAAG,CAEV,OADD0J,EAAUzJ,GAAyB,KAAMyJ,EAAE,CACnC1J,GAAuB,KAAK,CAG5C,OAAO,EAAI,KAAM,CAEb,OADA,GAAgB,KAAM0J,EAAE,CACjB,KAGX,MAAM,EAAI,EAAI,CAGV,OAFI,EAAI,GAAe,KAAM,EAAI,EAAG,CAC/B,GAAe,KAAM,KAAM,EAAG,CAC5B,KAGX,MAAM,EAAG,CAEL,OADA,GAAe,KAAM,KAAMA,EAAE,CACtB,KAGX,WAAY,CAER,OADA,GAAmB,KAAM,KAAK,CACvB,KAGX,IAAI,EAAG,CACH,OAAOxJ,GAAa,KAAMwJ,EAAE,CAGhC,OAAO,EAAG,CACN,OAAOvJ,GAAqB,KAAMuJ,EAAE,CAGxC,aAAa,EAAM,CAEf,OADA,GAAuB,KAAM,KAAM,EAAK,CACjC,KAGX,aAAa,EAAM,CAEf,OADA,GAAuB,KAAM,KAAM,EAAK,CACjC,KAGX,mBAAmB,EAAM,CAErB,OADA,GAAyB,KAAM,KAAM,EAAK,CACnC,KAGX,gBAAgB,EAAG,CAEf,OADA,GAAuB,KAAM,KAAMV,EAAE,CAC9B,KAGX,MAAM,EAAG,CACL,OAAO3I,GAAe,KAAMqJ,EAAE,CAGlC,KAAK,EAAG,EAAG,CAEP,OADA,GAAc,KAAM,KAAMA,EAAGyI,EAAE,CACxB,KAGX,WAAW,EAAG,EAAO,EAAI,CAErB,OADA,GAAoB,KAAM,KAAMzI,EAAG,EAAOnJ,EAAG,CACtC,KAGX,OAAQ,CACJ,OAAO,IAAI,EAAK,KAAK,GAAI,KAAK,GAAI,KAAK,GAAG,CAG9C,UAAU,EAAG,EAAI,EAAG,CAIhB,MAHA,MAAK,GAAK0J,EAAEnC,GACZ,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GACT,KAGX,QAAQ,EAAI,EAAE,CAAE,EAAI,EAAG,CAInB,MAHA,GAAEA,GAAK,KAAK,GACZ,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GACTmC,EAGX,mBAAmB,EAAM,CACrB,IAAMT,EAAI,KAAK,GACTD,EAAI,KAAK,GACTf,EAAI,KAAK,GAMf,MAJA,MAAK,GAAK,EAAK,GAAKgB,EAAI,EAAK,GAAKD,EAAI,EAAK,GAAKf,EAChD,KAAK,GAAK,EAAK,GAAKgB,EAAI,EAAK,GAAKD,EAAI,EAAK,GAAKf,EAChD,KAAK,GAAK,EAAK,GAAKgB,EAAI,EAAK,GAAKD,EAAI,EAAK,IAAMf,EAE1C,KAAK,WAAW,mCCnKQ,CAEjC9H,GAA2B,IAAI,EAEjCuI,GAAK,EACL,GAAU,EAGV,GAAiB,GAER,GAAb,KAAsB,CAClB,YAAY,EAAI,EAAa,EAAE,CAAE,CAoB7B,IAAK,IAAI,KAnBJ,EAAG,QAAQ,QAAQ,MAAM,8CAA8C,CAC5E,KAAK,GAAK,EACV,KAAK,WAAa,EAClB,KAAK,GAAK,KAGV,KAAK,KAAO,EAAE,CAEd,KAAK,UAAY,CAAE,MAAO,EAAG,MAAO,EAAG,CACvC,KAAK,eAAiB,EAGtB,KAAK,GAAG,SAAS,gBAAgB,KAAK,CACtC,KAAK,GAAG,SAAS,gBAAkB,KAGnC,KAAK,QAAU,KAAK,GAAG,SAAS,MAGhB,EACZ,KAAK,aAAa,EAAK,EAAW,GAAK,CAI/C,aAAa,EAAK,EAAM,CA4BpB,GA3BA,KAAK,WAAW,GAAO,EAGvB,EAAK,GAAK,KACV,EAAK,KAAO,EAAK,MAAQ,EACzB,EAAK,KACD,EAAK,OACJ,EAAK,KAAK,cAAgB,aACrB,KAAK,GAAG,MACR,EAAK,KAAK,cAAgB,YAC1B,KAAK,GAAG,eACR,KAAK,GAAG,cAClB,EAAK,OAAS,IAAQ,QAAU,KAAK,GAAG,qBAAuB,KAAK,GAAG,aACvE,EAAK,WAAa,EAAK,YAAc,GACrC,EAAK,OAAS,EAAK,QAAU,EAC7B,EAAK,OAAS,EAAK,QAAU,EAC7B,EAAK,MAAQ,EAAK,QAAU,EAAK,OAAS,EAAK,KAAK,WAAa,EAAK,OAAS,EAAK,KAAK,OAAS,EAAK,MACvG,EAAK,QAAU,EAAK,WAAa,EACjC,EAAK,YAAc,GACnB,EAAK,MAAQ,EAAK,OAAS,KAAK,GAAG,YAE9B,EAAK,QAEN,KAAK,gBAAgB,EAAK,CAI1B,EAAK,QAAS,CAEd,GADA,KAAK,YAAc,GACf,KAAK,gBAAkB,KAAK,iBAAmB,EAAK,MAAQ,EAAK,QAEjE,OADA,QAAQ,KAAK,8DAA8D,CACnE,KAAK,eAAiB,KAAK,IAAI,KAAK,eAAgB,EAAK,MAAQ,EAAK,QAAQ,CAE1F,KAAK,eAAiB,EAAK,MAAQ,EAAK,aACjC,IAAQ,QACf,KAAK,UAAU,MAAQ,EAAK,MACpB,KAAK,WAAW,QACxB,KAAK,UAAU,MAAQ,KAAK,IAAI,KAAK,UAAU,MAAO,EAAK,MAAM,EAIzE,gBAAgB,EAAM,CAClB,IAAM,EAAc,CAAC,EAAK,OACtB,IAAa,EAAK,OAAS,KAAK,GAAG,cAAc,EACjD,KAAK,QAAQ,cAAgB,EAAK,SAClC,KAAK,GAAG,WAAW,EAAK,OAAQ,EAAK,OAAO,CAC5C,KAAK,QAAQ,YAAc,EAAK,QAEhC,EACA,KAAK,GAAG,WAAW,EAAK,OAAQ,EAAK,KAAM,EAAK,MAAM,CAEtD,KAAK,GAAG,cAAc,EAAK,OAAQ,EAAG,EAAK,KAAK,CAEpD,EAAK,YAAc,GAGvB,SAAS,EAAO,CACZ,KAAK,aAAa,QAAS,EAAM,CAGrC,aAAa,EAAO,EAAO,CACvB,KAAK,UAAU,MAAQ,EACvB,KAAK,UAAU,MAAQ,EAG3B,kBAAkB,EAAO,CACrB,KAAK,eAAiB,EAG1B,UAAU,EAAS,CACf,KAAK,KAAK,EAAQ,gBAAkB,KAAK,GAAG,SAAS,mBAAmB,CACxE,KAAK,GAAG,SAAS,gBAAgB,KAAK,KAAK,EAAQ,gBAAgB,CACnE,KAAK,eAAe,EAAQ,CAGhC,eAAe,EAAS,CAEpB,EAAQ,mBAAmB,SAAS,EAAU,CAAE,OAAM,UAAW,CAE7D,GAAI,CAAC,KAAK,WAAW,GAAO,CACxB,QAAQ,KAAK,oBAAoB,EAAK,qBAAqB,CAC3D,OAGJ,IAAM,EAAO,KAAK,WAAW,GAE7B,KAAK,GAAG,WAAW,EAAK,OAAQ,EAAK,OAAO,CAC5C,KAAK,QAAQ,YAAc,EAAK,OAGhC,IAAI,EAAS,EACT,IAAS,QAAO,EAAS,GACzB,IAAS,QAAO,EAAS,GACzB,IAAS,QAAO,EAAS,GAE7B,IAAM,EAAO,EAAK,KAAO,EACnB,EAAS,IAAW,EAAI,EAAI,EAAS,EAAS,EAC9C,EAAS,IAAW,EAAI,EAAI,EAAS,EAE3C,IAAK,IAAIe,EAAI,EAAGA,EAAI,EAAQ,IACxB,KAAK,GAAG,oBAAoB,EAAWA,EAAG,EAAM,EAAK,KAAM,EAAK,WAAY,EAAK,OAAS,EAAQ,EAAK,OAASA,EAAI,EAAO,CAC3H,KAAK,GAAG,wBAAwB,EAAWA,EAAE,CAI7C,KAAK,GAAG,SAAS,oBAAoB,EAAWA,EAAG,EAAK,QAAQ,EAEtE,CAGE,KAAK,WAAW,OAAO,KAAK,GAAG,WAAW,KAAK,GAAG,qBAAsB,KAAK,WAAW,MAAM,OAAO,CAG7G,KAAK,CAAE,UAAS,OAAO,KAAK,GAAG,WAAa,CACpC,KAAK,GAAG,SAAS,kBAAoB,GAAG,KAAK,GAAG,GAAG,EAAQ,mBACtD,KAAK,KAAK,EAAQ,iBAAiB,KAAK,UAAU,EAAQ,CAC/D,KAAK,GAAG,SAAS,gBAAgB,KAAK,KAAK,EAAQ,gBAAgB,CACnE,KAAK,GAAG,SAAS,gBAAkB,GAAG,KAAK,GAAG,GAAG,EAAQ,kBAI7D,EAAQ,mBAAmB,SAAS,EAAU,CAAE,UAAW,CACvD,IAAM,EAAO,KAAK,WAAW,GACzB,EAAK,aAAa,KAAK,gBAAgB,EAAK,EAClD,CAGF,IAAI,EAAuB,EACvB,KAAK,WAAW,OAAO,OAAS,KAAK,GAAG,eAAc,EAAuB,GAE7E,KAAK,YACD,KAAK,WAAW,MAChB,KAAK,GAAG,SAAS,sBACb,EACA,KAAK,UAAU,MACf,KAAK,WAAW,MAAM,KACtB,KAAK,WAAW,MAAM,OAAS,KAAK,UAAU,MAAQ,EACtD,KAAK,eACR,CAED,KAAK,GAAG,SAAS,oBAAoB,EAAM,KAAK,UAAU,MAAO,KAAK,UAAU,MAAO,KAAK,eAAe,CAG3G,KAAK,WAAW,MAChB,KAAK,GAAG,aACJ,EACA,KAAK,UAAU,MACf,KAAK,WAAW,MAAM,KACtB,KAAK,WAAW,MAAM,OAAS,KAAK,UAAU,MAAQ,EACzD,CAED,KAAK,GAAG,WAAW,EAAM,KAAK,UAAU,MAAO,KAAK,UAAU,MAAM,CAKhF,aAAc,CAEV,IAAM,EAAO,KAAK,WAAW,SAE7B,GAAI,EAAK,KAAM,OAAO,EAClB,OAEJ,OADA,QAAQ,KAAK,kDAAkD,CACvD,GAAiB,GAG7B,mBAAmB,EAAM,CACrB,AAAW,IAAO,KAAK,aAAa,CACpC,IAAM,EAAQ,EAAK,KAGb,EAAS,EAAK,KAEpB,AACI,KAAK,SAAS,CACV,IAAK,IAAI,EACT,IAAK,IAAI,EACT,OAAQ,IAAI,EACZ,MAAO,IAAI,EACX,OAAQ,IACX,CAGL,IAAM,EAAM,KAAK,OAAO,IAClB,EAAM,KAAK,OAAO,IAClB,EAAS,KAAK,OAAO,OACrB/C,EAAQ,KAAK,OAAO,MAE1B,EAAI,IAAI,IAAU,CAClB,EAAI,IAAI,KAAU,CAGlB,IAAK,IAAI+C,EAAI,EAAGhC,EAAI,EAAM,OAAQgC,EAAIhC,EAAG,GAAK,EAAQ,CAClD,IAAMwB,EAAI,EAAMQ,GACVT,EAAI,EAAMS,EAAI,GACdxB,EAAI,EAAMwB,EAAI,GAEpB,EAAI,EAAI,KAAK,IAAIR,EAAG,EAAI,EAAE,CAC1B,EAAI,EAAI,KAAK,IAAID,EAAG,EAAI,EAAE,CAC1B,EAAI,EAAI,KAAK,IAAIf,EAAG,EAAI,EAAE,CAE1B,EAAI,EAAI,KAAK,IAAIgB,EAAG,EAAI,EAAE,CAC1B,EAAI,EAAI,KAAK,IAAID,EAAG,EAAI,EAAE,CAC1B,EAAI,EAAI,KAAK,IAAIf,EAAG,EAAI,EAAE,CAG9B,EAAM,IAAI,EAAK,EAAI,CACnB,EAAO,IAAI,EAAK,EAAI,CAAC,OAAO,EAAE,CAGlC,sBAAsB,EAAM,CACxB,AAAW,IAAO,KAAK,aAAa,CACpC,IAAM,EAAQ,EAAK,KAGb,EAAS,EAAK,KAEf,KAAK,QAAQ,KAAK,mBAAmB,EAAK,CAE/C,IAAI,EAAc,EAClB,IAAK,IAAIwB,EAAI,EAAGhC,EAAI,EAAM,OAAQgC,EAAIhC,EAAG,GAAK,EAC1C,GAAS,UAAU,EAAOgC,EAAE,CAC5B,EAAc,KAAK,IAAI,EAAa,KAAK,OAAO,OAAO,gBAAgBtJ,GAAS,CAAC,CAGrF,KAAK,OAAO,OAAS,KAAK,KAAK,EAAY,CAG/C,QAAS,CACL,IAAK,IAAI,KAAO,KAAK,KACjB,KAAK,GAAG,SAAS,kBAAkB,KAAK,KAAK,GAAK,CAClD,OAAO,KAAK,KAAK,GAErB,IAAK,IAAI,KAAO,KAAK,WACjB,KAAK,GAAG,aAAa,KAAK,WAAW,GAAK,OAAO,CACjD,OAAO,KAAK,WAAW,QCxDnC,SAAS,GAAW,EAAI,EAAM,EAAU,EAAO,CAC3C,EAAQ,EAAM,OAAS,GAAQ,EAAM,CAAG,EACxC,IAAM,EAAW,EAAG,SAAS,MAAM,iBAAiB,IAAI,EAAS,CAGjE,GAAI,EAAM,OACN,GAAI,IAAa,IAAA,IAAa,EAAS,SAAW,EAAM,OAEpD,EAAG,SAAS,MAAM,iBAAiB,IAAI,EAAU,EAAM,MAAM,EAAE,CAAC,KAC7D,CACH,GAAI,GAAY,EAAU,EAAM,CAAE,OAGlC,EAAS,IAAM,EAAS,IAAI,EAAM,CAAG,GAAS,EAAU,EAAM,CAC9D,EAAG,SAAS,MAAM,iBAAiB,IAAI,EAAU,EAAS,KAE3D,CACH,GAAI,IAAa,EAAO,OACxB,EAAG,SAAS,MAAM,iBAAiB,IAAI,EAAU,EAAM,CAG3D,OAAQ,EAAR,CACI,IAAK,MACD,OAAO,EAAM,OAAS,EAAG,WAAW,EAAU,EAAM,CAAG,EAAG,UAAU,EAAU,EAAM,CACxF,IAAK,OACD,OAAO,EAAG,WAAW,EAAU,EAAM,CACzC,IAAK,OACD,OAAO,EAAG,WAAW,EAAU,EAAM,CACzC,IAAK,OACD,OAAO,EAAG,WAAW,EAAU,EAAM,CACzC,IAAK,OACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,OACD,OAAO,EAAM,OAAS,EAAG,WAAW,EAAU,EAAM,CAAG,EAAG,UAAU,EAAU,EAAM,CACxF,IAAK,OACL,IAAK,OACD,OAAO,EAAG,WAAW,EAAU,EAAM,CACzC,IAAK,OACL,IAAK,OACD,OAAO,EAAG,WAAW,EAAU,EAAM,CACzC,IAAK,OACL,IAAK,OACD,OAAO,EAAG,WAAW,EAAU,EAAM,CACzC,IAAK,OACD,OAAO,EAAG,iBAAiB,EAAU,GAAO,EAAM,CACtD,IAAK,OACD,OAAO,EAAG,iBAAiB,EAAU,GAAO,EAAM,CACtD,IAAK,OACD,OAAO,EAAG,iBAAiB,EAAU,GAAO,EAAM,EAI9D,SAAS,GAAe,EAAQ,CAC5B,IAAI,EAAQ,EAAO,MAAM;EAAK,CAC9B,IAAK,IAAIsJ,EAAI,EAAGA,EAAI,EAAM,OAAQ,IAC9B,EAAMA,GAAKA,EAAI,EAAI,KAAO,EAAMA,GAEpC,OAAO,EAAM,KAAK;EAAK,CAG3B,SAAS,GAAQ,EAAG,CAChB,IAAM,EAAWC,EAAE,OACb,EAAWA,EAAE,GAAG,OACtB,GAAI,IAAa,IAAA,GAAW,OAAOA,EACnC,IAAMd,EAAS,EAAW,EACtB,EAAQ,GAAcA,GACrB,IAAO,GAAcA,GAAU,EAAQ,IAAI,aAAaA,EAAO,EACpE,IAAK,IAAIa,EAAI,EAAGA,EAAI,EAAU,IAAK,EAAM,IAAIC,EAAED,GAAIA,EAAI,EAAS,CAChE,OAAO,EAGX,SAAS,GAAY,EAAG,EAAG,CACvB,GAAIC,EAAE,SAAWC,EAAE,OAAQ,MAAO,GAClC,IAAK,IAAIF,EAAI,EAAGhC,EAAIiC,EAAE,OAAQD,EAAIhC,EAAG,IACjC,GAAIiC,EAAED,KAAOE,EAAEF,GAAI,MAAO,GAE9B,MAAO,GAGX,SAAS,GAAS,EAAG,EAAG,CACpB,IAAK,IAAIA,EAAI,EAAGhC,EAAIiC,EAAE,OAAQD,EAAIhC,EAAG,IACjC,EAAEgC,GAAKE,EAAEF,GAKjB,SAAS,GAAK,EAAS,CACf,GAAY,MAChB,QAAQ,KAAK,EAAQ,CACrB,KACI,GAAY,KAAK,QAAQ,KAAK,kDAAkD,6BAnUpFf,GAAK,EAGH,GAAgB,EAAE,CAEX,GAAb,KAAqB,CACjB,YACI,EACA,CACI,SACA,WACA,WAAW,EAAE,CAEb,cAAc,GACd,WAAW,EAAG,KACd,YAAY,EAAG,IACf,YAAY,GACZ,aAAa,GACb,YAAY,EAAG,QACf,EAAE,CACR,CACO,EAAG,QAAQ,QAAQ,MAAM,6CAA6C,CAC3E,KAAK,GAAK,EACV,KAAK,SAAW,EAChB,KAAK,GAAK,KAEL,GAAQ,QAAQ,KAAK,6BAA6B,CAClD,GAAU,QAAQ,KAAK,+BAA+B,CAG3D,KAAK,YAAc,EACnB,KAAK,SAAW,EAChB,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,UAAY,EACjB,KAAK,UAAY,EAAE,CACnB,KAAK,cAAgB,EAAE,CACvB,KAAK,YAAc,EAAE,CACrB,KAAK,UAAY,EAAE,CAGf,KAAK,aAAe,CAAC,KAAK,UAAU,MAChC,KAAK,GAAG,SAAS,mBAAoB,KAAK,aAAa,KAAK,GAAG,IAAK,KAAK,GAAG,oBAAoB,CAC/F,KAAK,aAAa,KAAK,GAAG,UAAW,KAAK,GAAG,oBAAoB,EAI1E,KAAK,aAAe,EAAG,aAAa,EAAG,cAAc,CACrD,KAAK,eAAiB,EAAG,aAAa,EAAG,gBAAgB,CACzD,KAAK,QAAU,EAAG,eAAe,CACjC,EAAG,aAAa,KAAK,QAAS,KAAK,aAAa,CAChD,EAAG,aAAa,KAAK,QAAS,KAAK,eAAe,CAGlD,KAAK,WAAW,CAAE,SAAQ,WAAU,CAAC,CAGzC,WAAW,CAAE,SAAQ,YAAY,CAqB7B,GApBI,IAEA,KAAK,GAAG,aAAa,KAAK,aAAc,EAAO,CAC/C,KAAK,GAAG,cAAc,KAAK,aAAa,CACpC,KAAK,GAAG,iBAAiB,KAAK,aAAa,GAAK,IAChD,QAAQ,KAAK,GAAG,KAAK,GAAG,iBAAiB,KAAK,aAAa,CAAC,mBAAmB,GAAe,EAAO,GAAG,EAI5G,IAEA,KAAK,GAAG,aAAa,KAAK,eAAgB,EAAS,CACnD,KAAK,GAAG,cAAc,KAAK,eAAe,CACtC,KAAK,GAAG,iBAAiB,KAAK,eAAe,GAAK,IAClD,QAAQ,KAAK,GAAG,KAAK,GAAG,iBAAiB,KAAK,eAAe,CAAC,qBAAqB,GAAe,EAAS,GAAG,EAKtH,KAAK,GAAG,YAAY,KAAK,QAAQ,CAC7B,CAAC,KAAK,GAAG,oBAAoB,KAAK,QAAS,KAAK,GAAG,YAAY,CAC/D,OAAO,QAAQ,KAAK,KAAK,GAAG,kBAAkB,KAAK,QAAQ,CAAC,CAIhE,KAAK,iBAAmB,IAAI,IAC5B,IAAI,EAAc,KAAK,GAAG,oBAAoB,KAAK,QAAS,KAAK,GAAG,gBAAgB,CACpF,IAAK,IAAI,EAAS,EAAG,EAAS,EAAa,IAAU,CACjD,IAAI,EAAU,KAAK,GAAG,iBAAiB,KAAK,QAAS,EAAO,CAC5D,KAAK,iBAAiB,IAAI,EAAS,KAAK,GAAG,mBAAmB,KAAK,QAAS,EAAQ,KAAK,CAAC,CAG1F,IAAM,EAAQ,EAAQ,KAAK,MAAM,SAAS,CAE1C,EAAQ,YAAc,EAAM,GAC5B,EAAQ,eAAiB,EAAM,MAAM,EAAE,CAI3C,KAAK,mBAAqB,IAAI,IAC9B,IAAM,EAAY,EAAE,CACd,EAAa,KAAK,GAAG,oBAAoB,KAAK,QAAS,KAAK,GAAG,kBAAkB,CACvF,IAAK,IAAI,EAAS,EAAG,EAAS,EAAY,IAAU,CAChD,IAAM,EAAY,KAAK,GAAG,gBAAgB,KAAK,QAAS,EAAO,CACzD,EAAW,KAAK,GAAG,kBAAkB,KAAK,QAAS,EAAU,KAAK,CAEpE,IAAa,KACjB,EAAU,GAAY,EAAU,KAChC,KAAK,mBAAmB,IAAI,EAAW,EAAS,EAEpD,KAAK,eAAiB,EAAU,KAAK,GAAG,CAG5C,aAAa,EAAK,EAAK,EAAU,EAAU,CACvC,KAAK,UAAU,IAAM,EACrB,KAAK,UAAU,IAAM,EACrB,KAAK,UAAU,SAAW,EAC1B,KAAK,UAAU,SAAW,EACtB,IAAK,KAAK,YAAc,IAGhC,iBAAiB,EAAS,EAAW,CACjC,KAAK,cAAc,QAAU,EAC7B,KAAK,cAAc,UAAY,EAGnC,eAAe,EAAM,EAAK,EAAM,CAC5B,KAAK,WAAa,EAClB,KAAK,YAAY,KAAO,EACxB,KAAK,YAAY,IAAM,EACvB,KAAK,YAAY,KAAO4V,EAG5B,aAAa,EAAa,EAAW,EAAW,CAC5C,KAAK,UAAU,YAAc,EAC7B,KAAK,UAAU,UAAY,EAC3B,KAAK,UAAU,UAAY,EAG/B,YAAa,CACL,KAAK,UAAW,KAAK,GAAG,SAAS,OAAO,KAAK,GAAG,WAAW,CAC1D,KAAK,GAAG,SAAS,QAAQ,KAAK,GAAG,WAAW,CAE7C,KAAK,SAAU,KAAK,GAAG,SAAS,OAAO,KAAK,GAAG,UAAU,CACxD,KAAK,GAAG,SAAS,QAAQ,KAAK,GAAG,UAAU,CAE5C,KAAK,UAAU,IAAK,KAAK,GAAG,SAAS,OAAO,KAAK,GAAG,MAAM,CACzD,KAAK,GAAG,SAAS,QAAQ,KAAK,GAAG,MAAM,CAExC,KAAK,UAAU,KAAK,GAAG,SAAS,YAAY,KAAK,SAAS,CAC9D,KAAK,GAAG,SAAS,aAAa,KAAK,UAAU,CAC7C,KAAK,GAAG,SAAS,aAAa,KAAK,WAAW,CAC9C,KAAK,GAAG,SAAS,aAAa,KAAK,UAAU,CACzC,KAAK,UAAU,KAAK,KAAK,GAAG,SAAS,aAAa,KAAK,UAAU,IAAK,KAAK,UAAU,IAAK,KAAK,UAAU,SAAU,KAAK,UAAU,SAAS,CAC/I,KAAK,GAAG,SAAS,iBAAiB,KAAK,cAAc,QAAS,KAAK,cAAc,UAAU,CAExF,KAAK,YAAY,MAAQ,KAAK,UAAU,YAAa,KAAK,GAAG,SAAS,OAAO,KAAK,GAAG,aAAa,CAC5F,KAAK,GAAG,SAAS,QAAQ,KAAK,GAAG,aAAa,CAEvD,KAAK,GAAG,SAAS,eAAe,KAAK,YAAY,KAAM,KAAK,YAAY,IAAK,KAAK,YAAY,KAAK,CACnG,KAAK,GAAG,SAAS,aAAa,KAAK,UAAU,YAAa,KAAK,UAAU,UAAW,KAAK,UAAU,UAAU,CAIjH,IAAI,CAAE,YAAY,IAAU,EAAE,CAAE,CAC5B,IAAI,EAAc,GACI,KAAK,GAAG,SAAS,MAAM,iBAAmB,KAAK,KAIjE,KAAK,GAAG,WAAW,KAAK,QAAQ,CAChC,KAAK,GAAG,SAAS,MAAM,eAAiB,KAAK,IAIjD,KAAK,iBAAiB,SAAS,EAAU,IAAkB,CACvD,IAAI,EAAU,KAAK,SAAS,EAAc,aAE1C,IAAK,IAAMpd,KAAa,EAAc,eAAgB,CAClD,GAAI,CAAC,EAAS,MAEd,GAAIA,KAAa,EACb,EAAU,EAAQA,WACX,MAAM,QAAQ,EAAQ,MAAM,CACnC,UACG,CACH,EAAU,IAAA,GACV,OAIR,GAAI,CAAC,EACD,OAAO,GAAK,kBAAkB,EAAc,KAAK,wBAAwB,CAG7E,GAAI,GAAW,EAAQ,QAAU,IAAA,GAC7B,OAAO,GAAK,GAAG,EAAc,KAAK,uCAAuC,CAG7E,GAAI,EAAQ,MAAM,QAKd,MAJA,IAA4B,EAG5B,EAAQ,MAAM,OAAO,EAAY,CAC1B,GAAW,KAAK,GAAI,EAAc,KAAM,EAAU,EAAY,CAIzE,GAAI,EAAQ,MAAM,QAAU,EAAQ,MAAM,GAAG,QAAS,CAClD,IAAM,EAAe,EAAE,CAOvB,OANA,EAAQ,MAAM,QAAS,GAAU,CAC7B,GAA4B,EAC5B,EAAM,OAAO,EAAY,CACzB,EAAa,KAAK,EAAY,EAChC,CAEK,GAAW,KAAK,GAAI,EAAc,KAAM,EAAU,EAAa,CAG1E,GAAW,KAAK,GAAI,EAAc,KAAM,EAAU,EAAQ,MAAM,EAClE,CAEF,KAAK,YAAY,CACb,GAAW,KAAK,GAAG,SAAS,aAAa,KAAK,YAAc,KAAK,GAAG,IAAM,KAAK,GAAG,GAAK,KAAK,GAAG,IAAI,CAG3G,QAAS,CACL,KAAK,GAAG,cAAc,KAAK,QAAQ,GA4FvC,GAAY,4BClUuB,CAYjC,GAA2B,IAAI,EACjCwH,GAAK,EAEI,GAAb,KAAsB,CAClB,YAAY,CACR,SAAS,SAAS,cAAc,SAAS,CACzC,QAAQ,IACR,SAAS,IACT,MAAM,EACN,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,qBAAqB,GACrB,wBAAwB,GACxB,kBAAkB,UAClB,YAAY,GACZ,QAAQ,GACR,EAAE,CAAE,CACJ,IAAM,EAAa,CAAE,QAAO,QAAO,UAAS,YAAW,qBAAoB,wBAAuB,kBAAiB,CACnH,KAAK,IAAM,EACX,KAAK,MAAQ,EACb,KAAK,MAAQ,GACb,KAAK,MAAQ,EACb,KAAK,QAAU,EACf,KAAK,mBAAqB,EAC1B,KAAK,UAAY,EACjB,KAAK,GAAK,KAGN,IAAU,IAAG,KAAK,GAAK,EAAO,WAAW,SAAU,EAAW,EAClE,KAAK,SAAW,CAAC,CAAC,KAAK,GACvB,AAAc,KAAK,KAAK,EAAO,WAAW,QAAS,EAAW,CACzD,KAAK,IAAI,QAAQ,MAAM,iCAAiC,CAG7D,KAAK,GAAG,SAAW,KAGnB,KAAK,QAAQ,EAAO,EAAO,CAG3B,KAAK,MAAQ,EAAE,CACf,KAAK,MAAM,UAAY,CAAE,IAAK,KAAK,GAAG,IAAK,IAAK,KAAK,GAAG,KAAM,CAC9D,KAAK,MAAM,cAAgB,CAAE,QAAS,KAAK,GAAG,SAAU,CACxD,KAAK,MAAM,SAAW,GACtB,KAAK,MAAM,UAAY,KAAK,GAAG,IAC/B,KAAK,MAAM,UAAY,GACvB,KAAK,MAAM,UAAY,KAAK,GAAG,OAC/B,KAAK,MAAM,iBAAmB,GAC9B,KAAK,MAAM,MAAQ,GACnB,KAAK,MAAM,gBAAkB,EAC7B,KAAK,MAAM,YAAc,KACzB,KAAK,MAAM,SAAW,CAAE,EAAG,EAAG,EAAG,EAAG,MAAO,KAAM,OAAQ,KAAM,CAC/D,KAAK,MAAM,aAAe,EAAE,CAC5B,KAAK,MAAM,kBAAoB,EAC/B,KAAK,MAAM,YAAc,KACzB,KAAK,MAAM,iBAAmB,IAAI,IAClC,KAAK,MAAM,eAAiB,KAG5B,KAAK,WAAa,EAAE,CAGhB,KAAK,UACL,KAAK,aAAa,yBAAyB,CAC3C,KAAK,aAAa,2BAA2B,GAE7C,KAAK,aAAa,oBAAoB,CACtC,KAAK,aAAa,2BAA2B,CAC7C,KAAK,aAAa,yBAAyB,CAC3C,KAAK,aAAa,gCAAgC,CAClD,KAAK,aAAa,yBAAyB,CAC3C,KAAK,aAAa,2BAA2B,CAC7C,KAAK,aAAa,WAAW,CAC7B,KAAK,aAAa,sBAAsB,CACxC,KAAK,aAAa,qBAAqB,EAE3C,KAAK,aAAa,gCAAgC,CAClD,KAAK,aAAa,+BAA+B,CACjD,KAAK,aAAa,gCAAgC,CAClD,KAAK,aAAa,gCAAgC,CAClD,KAAK,aAAa,iCAAiC,CACnD,KAAK,aAAa,wCAAwC,CAG1D,KAAK,oBAAsB,KAAK,aAAa,yBAA0B,sBAAuB,2BAA2B,CACzH,KAAK,oBAAsB,KAAK,aAAa,yBAA0B,sBAAuB,2BAA2B,CACzH,KAAK,sBAAwB,KAAK,aAAa,yBAA0B,wBAAyB,6BAA6B,CAC/H,KAAK,kBAAoB,KAAK,aAAa,0BAA2B,oBAAqB,uBAAuB,CAClH,KAAK,gBAAkB,KAAK,aAAa,0BAA2B,kBAAmB,qBAAqB,CAC5G,KAAK,kBAAoB,KAAK,aAAa,0BAA2B,oBAAqB,uBAAuB,CAClH,KAAK,YAAc,KAAK,aAAa,qBAAsB,cAAe,mBAAmB,CAG7F,KAAK,WAAa,EAAE,CACpB,KAAK,WAAW,gBAAkB,KAAK,GAAG,aAAa,KAAK,GAAG,iCAAiC,CAChG,KAAK,WAAW,cAAgB,KAAK,aAAa,iCAAiC,CAC7E,KAAK,GAAG,aAAa,KAAK,aAAa,iCAAiC,CAAC,+BAA+B,CACxG,EAGV,QAAQ,EAAO,EAAQ,CACnB,KAAK,MAAQ,EACb,KAAK,OAAS,EAEd,KAAK,GAAG,OAAO,MAAQ,EAAQ,KAAK,IACpC,KAAK,GAAG,OAAO,OAAS,EAAS,KAAK,IAEjC,KAAK,GAAG,OAAO,OACpB,OAAO,OAAO,KAAK,GAAG,OAAO,MAAO,CAChC,MAAO,EAAQ,KACf,OAAQ,EAAS,KACpB,CAAC,CAGN,YAAY,EAAO,EAAQ,EAAI,EAAG,EAAI,EAAG,CACjC,KAAK,MAAM,SAAS,QAAU,GAAS,KAAK,MAAM,SAAS,SAAW,IAC1E,KAAK,MAAM,SAAS,MAAQ,EAC5B,KAAK,MAAM,SAAS,OAAS,EAC7B,KAAK,MAAM,SAAS,EAAIO,EACxB,KAAK,MAAM,SAAS,EAAID,EACxB,KAAK,GAAG,SAASC,EAAGD,EAAG,EAAO,EAAO,EAGzC,WAAW,EAAO,EAAQ,EAAI,EAAG,EAAI,EAAG,CACpC,KAAK,GAAG,QAAQC,EAAGD,EAAG,EAAO,EAAO,CAGxC,OAAO,EAAI,CACH,KAAK,MAAM1H,KAAQ,KACvB,KAAK,GAAG,OAAOA,EAAG,CAClB,KAAK,MAAMA,GAAM,IAGrB,QAAQ,EAAI,CACJ,KAAK,MAAMA,KAAQ,KACvB,KAAK,GAAG,QAAQA,EAAG,CACnB,KAAK,MAAMA,GAAM,IAGrB,aAAa,EAAK,EAAK,EAAU,EAAU,CAEnC,KAAK,MAAM,UAAU,MAAQ,GAC7B,KAAK,MAAM,UAAU,MAAQ,GAC7B,KAAK,MAAM,UAAU,WAAa,GAClC,KAAK,MAAM,UAAU,WAAa,IAGtC,KAAK,MAAM,UAAU,IAAM,EAC3B,KAAK,MAAM,UAAU,IAAM,EAC3B,KAAK,MAAM,UAAU,SAAW,EAChC,KAAK,MAAM,UAAU,SAAW,EAC5B,IAAa,IAAA,GACZ,KAAK,GAAG,UAAU,EAAK,EAAI,CADJ,KAAK,GAAG,kBAAkB,EAAK,EAAK,EAAU,EAAS,EAIvF,iBAAiB,EAAS,EAAW,CACjC,IAAqB,KAAK,GAAG,SACzB,OAAK,MAAM,cAAc,UAAY,GAAW,KAAK,MAAM,cAAc,YAAc,KAC3F,KAAK,MAAM,cAAc,QAAU,EACnC,KAAK,MAAM,cAAc,UAAY,EACjC,IAAc,IAAA,GACb,KAAK,GAAG,cAAc,EAAQ,CADN,KAAK,GAAG,sBAAsB,EAAS,EAAU,EAIlF,YAAY,EAAO,CACX,KAAK,MAAM,WAAa,IAC5B,KAAK,MAAM,SAAW,EACtB,KAAK,GAAG,SAAS,EAAM,EAG3B,aAAa,EAAO,CACZ,KAAK,MAAM,YAAc,IAC7B,KAAK,MAAM,UAAY,EACvB,KAAK,GAAG,UAAU,EAAM,EAG5B,aAAa,EAAO,CACZ,KAAK,MAAM,YAAc,IAC7B,KAAK,MAAM,UAAY,EACvB,KAAK,GAAG,UAAU,EAAM,EAG5B,aAAa,EAAO,CACZ,KAAK,MAAM,YAAc,IAC7B,KAAK,MAAM,UAAY,EACvB,KAAK,GAAG,UAAU,EAAM,EAG5B,eAAe,EAAO,CACf,KAAK,MAAM,cAAgB,IAC9B,KAAK,MAAM,YAAc,EACzB,KAAK,GAAG,YAAY,EAAM,EAG9B,eAAe,EAAM,EAAK,EAAM,CAExB,KAAK,MAAM,cAAgB,GAC1B,KAAK,MAAM,aAAe,GAC1B,KAAK,MAAM,kBAAoBgd,IAGpC,KAAK,MAAM,YAAc,GAAQ,KAAK,GAAG,OACzC,KAAK,MAAM,WAAa,GAAO,EAC/B,KAAK,MAAM,gBAAkBA,GAAQ,EAErC,KAAK,GAAG,YAAY,GAAQ,KAAK,GAAG,OAAQ,GAAO,EAAGA,GAAQ,EAAE,EAGpE,aAAa,EAAa,EAAW,EAAW,CAEzC,KAAK,MAAM,cAAgB,GAC1B,KAAK,MAAM,mBAAqB,GAChC,KAAK,MAAM,mBAAqB,IAGpC,KAAK,MAAM,YAAc,EACzB,KAAK,MAAM,iBAAmB,EAC9B,KAAK,MAAM,iBAAmB,EAE9B,KAAK,GAAG,UAAU,EAAa,EAAW,EAAU,EAIxD,cAAc,EAAO,CACb,KAAK,MAAM,oBAAsB,IACrC,KAAK,MAAM,kBAAoB,EAC/B,KAAK,GAAG,cAAc,KAAK,GAAG,SAAW,EAAM,EAGnD,gBAAgB,CAAE,SAAS,KAAK,GAAG,YAAa,SAAS,MAAS,EAAE,CAAE,CAC9D,KAAK,MAAM,cAAgB,IAC/B,KAAK,MAAM,YAAc,EACzB,KAAK,GAAG,gBAAgB,EAAQ,EAAO,EAG3C,aAAa,EAAW,EAAY,EAAS,CAgBzC,OAdI,GAAc,KAAK,GAAG,GAAoB,KAAK,GAAG,GAAY,KAAK,KAAK,GAAG,EAG1E,KAAK,WAAW,KACjB,KAAK,WAAW,GAAa,KAAK,GAAG,aAAa,EAAU,EAI3D,EAGA,KAAK,WAAW,GAGd,KAAK,WAAW,GAAW,GAAS,KAAK,KAAK,WAAW,GAAW,CAHnC,KAHhB,KAAK,WAAW,IAS5C,WAAW,EAAG,EAAG,CAQT,OAPA5U,EAAE,cAAgBC,EAAE,YAEbD,EAAE,QAAQ,KAAOC,EAAE,QAAQ,GAE3BD,EAAE,SAAWC,EAAE,OAGfA,EAAE,GAAKD,EAAE,GAFTA,EAAE,OAASC,EAAE,OAFbD,EAAE,QAAQ,GAAKC,EAAE,QAAQ,GAFzBD,EAAE,YAAcC,EAAE,YAUjC,gBAAgB,EAAG,EAAG,CAOd,OANAD,EAAE,cAAgBC,EAAE,YAGpBD,EAAE,SAAWC,EAAE,OAGRA,EAAE,GAAKD,EAAE,GAFTC,EAAE,OAASD,EAAE,OAHbA,EAAE,YAAcC,EAAE,YASjC,OAAO,EAAG,EAAG,CAML,OALAD,EAAE,cAAgBC,EAAE,YAEbD,EAAE,QAAQ,KAAOC,EAAE,QAAQ,GAG3BA,EAAE,GAAKD,EAAE,GAFTA,EAAE,QAAQ,GAAKC,EAAE,QAAQ,GAFzBD,EAAE,YAAcC,EAAE,YAQjC,cAAc,CAAE,QAAO,SAAQ,cAAa,QAAQ,CAChD,IAAI,EAAa,EAAE,CAgBnB,GAdI,GAAU,GAAa,EAAO,eAAe,CAGjD,EAAM,SAAU,GAAS,CACrB,GAAI,CAAC,EAAK,QAAS,MAAO,GACrB,EAAK,OAEN,GAAe,EAAK,eAAiB,GACjC,CAAC,EAAO,sBAAsB,EAAK,EAG3C,EAAW,KAAK,EAAK,GACvB,CAEE,EAAM,CACN,IAAM,EAAS,EAAE,CACX,EAAc,EAAE,CAChB,EAAK,EAAE,CAEb,EAAW,QAAS,GAAS,CAEpB,EAAK,QAAQ,YAEP,EAAK,QAAQ,UACpB,EAAY,KAAK,EAAK,CAEtB,EAAG,KAAK,EAAK,CAJb,EAAO,KAAK,EAAK,CAOrB,EAAK,OAAS,EAGV,IAAK,cAAgB,GAAK,CAAC,EAAK,QAAQ,WAAa,CAAC,KAG1D,EAAK,YAAY,eAAe,GAAS,CACzC,GAAS,aAAa,EAAO,qBAAqB,CAClD,EAAK,OAAS,GAAS,IACzB,CAEF,EAAO,KAAK,KAAK,WAAW,CAC5B,EAAY,KAAK,KAAK,gBAAgB,CACtC,EAAG,KAAK,KAAK,OAAO,CAEpB,EAAa,EAAO,OAAO,EAAa,EAAG,CAG/C,OAAO,EAGX,OAAO,CAAE,QAAO,SAAQ,SAAS,KAAM,SAAS,GAAM,OAAO,GAAM,cAAc,GAAM,SAAS,CACxF,IAAW,MAEX,KAAK,iBAAiB,CACtB,KAAK,YAAY,KAAK,MAAQ,KAAK,IAAK,KAAK,OAAS,KAAK,IAAI,GAG/D,KAAK,gBAAgB,EAAO,CAC5B,KAAK,YAAY,EAAO,MAAO,EAAO,OAAO,GAG7C,GAAU,KAAK,WAAa,IAAU,MAElC,KAAK,QAAU,CAAC,GAAU,EAAO,SACjC,KAAK,OAAO,KAAK,GAAG,WAAW,CAC/B,KAAK,aAAa,GAAK,GAIxB,KAAK,SAAY,CAAC,GAAU,EAAO,WAClC,KAAK,OAAO,KAAK,GAAG,aAAa,CACjC,KAAK,eAAe,IAAK,EAG7B,KAAK,GAAG,OACH,KAAK,MAAQ,KAAK,GAAG,iBAAmB,IACpC,KAAK,MAAQ,KAAK,GAAG,iBAAmB,IACxC,KAAK,QAAU,KAAK,GAAG,mBAAqB,GACpD,EAID,GAAQ,EAAM,mBAAmB,CAGjC,GAAQ,EAAO,mBAAmB,CAGnB,KAAK,cAAc,CAAE,QAAO,SAAQ,cAAa,OAAM,CAAC,CAEhE,QAAS,GAAS,CACzB,EAAK,KAAK,CAAE,SAAQ,CAAC,EACvB,MCnYV,SAAgB7E,GAAK,EAAK,EAAG,CAKzB,MAJA,GAAI,GAAK4E,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACJ,EAaX,SAAgB1E,GAAI,EAAK,EAAG,EAAG,EAAG,EAAG,CAKjC,MAJA,GAAI,GAAKiE,EACT,EAAI,GAAKD,EACT,EAAI,GAAKf,EACT,EAAI,GAAKmB,EACF,EAwDX,SAAgB/G,GAAU,EAAK,EAAG,CAC9B,IAAI4G,EAAIS,EAAE,GACNV,EAAIU,EAAE,GACNzB,EAAIyB,EAAE,GACNN,EAAIM,EAAE,GACN,EAAMT,EAAIA,EAAID,EAAIA,EAAIf,EAAIA,EAAImB,EAAIA,EAQtC,OAPI,EAAM,IACN,EAAM,EAAI,KAAK,KAAK,EAAI,EAE5B,EAAI,GAAKH,EAAI,EACb,EAAI,GAAKD,EAAI,EACb,EAAI,GAAKf,EAAI,EACb,EAAI,GAAKmB,EAAI,EACN,EAUX,SAAgBpG,GAAI,EAAG,EAAG,CACtB,OAAO0G,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,sBCxG9D,SAAgB1E,GAAS,EAAK,CAK1B,MAJA,GAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACF,EAYX,SAAgB,GAAa,EAAK,EAAM,EAAK,CACzC,GAAY,GACZ,IAAIoD,EAAI,KAAK,IAAI,EAAI,CAKrB,MAJA,GAAI,GAAKA,EAAI,EAAK,GAClB,EAAI,GAAKA,EAAI,EAAK,GAClB,EAAI,GAAKA,EAAI,EAAK,GAClB,EAAI,GAAK,KAAK,IAAI,EAAI,CACf,EAWX,SAAgBlD,GAAS,EAAK,EAAG,EAAG,CAChC,IAAI,EAAKuE,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKC,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GAMX,MAJA,GAAI,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAC5C,EAAI,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAC5C,EAAI,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAC5C,EAAI,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACrC,EAWX,SAAgB,GAAQ,EAAK,EAAG,EAAK,CACjC,GAAO,GAEP,IAAI,EAAKD,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAK,KAAK,IAAI,EAAI,CAClB,EAAK,KAAK,IAAI,EAAI,CAMtB,MAJA,GAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACjB,EAWX,SAAgB,GAAQ,EAAK,EAAG,EAAK,CACjC,GAAO,GAEP,IAAI,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAK,KAAK,IAAI,EAAI,CAClB,EAAK,KAAK,IAAI,EAAI,CAMtB,MAJA,GAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACjB,EAWX,SAAgB,GAAQ,EAAK,EAAG,EAAK,CACjC,GAAO,GAEP,IAAI,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAK,KAAK,IAAI,EAAI,CAClB,EAAK,KAAK,IAAI,EAAI,CAMtB,MAJA,GAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACjB,EAYX,SAAgB,GAAM,EAAK,EAAG,EAAG,EAAG,CAGhC,IAAI,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKC,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GAEP,EAAO,EAAO,EAAO,EAAQ,EA+BjC,MA5BA,GAAQ,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAEvC,EAAQ,IACR,EAAQ,CAAC,EACT,EAAK,CAAC,EACN,EAAK,CAAC,EACN,EAAK,CAAC,EACN,EAAK,CAAC,GAGN,EAAM,EAAQ,MAEd,EAAQ,KAAK,KAAK,EAAM,CACxB,EAAQ,KAAK,IAAI,EAAM,CACvB,EAAS,KAAK,KAAK,EAAMiI,GAAK,EAAM,CAAG,EACvC,EAAS,KAAK,IAAIA,EAAI,EAAM,CAAG,IAI/B,EAAS,EAAMA,EACf,EAASA,GAGb,EAAI,GAAK,EAAS,EAAK,EAAS,EAChC,EAAI,GAAK,EAAS,EAAK,EAAS,EAChC,EAAI,GAAK,EAAS,EAAK,EAAS,EAChC,EAAI,GAAK,EAAS,EAAK,EAAS,EAEzB,EAUX,SAAgBlK,GAAO,EAAK,EAAG,CAC3B,IAAI,EAAKgC,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP1G,EAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACzC,EAASA,EAAM,EAAMA,EAAM,EAQ/B,MAJA,GAAI,GAAK,CAAC,EAAK,EACf,EAAI,GAAK,CAAC,EAAK,EACf,EAAI,GAAK,CAAC,EAAK,EACf,EAAI,GAAK,EAAK,EACP,EAWX,SAAgB,GAAU,EAAK,EAAG,CAK9B,MAJA,GAAI,GAAK,CAAC0G,EAAE,GACZ,EAAI,GAAK,CAACA,EAAE,GACZ,EAAI,GAAK,CAACA,EAAE,GACZ,EAAI,GAAKA,EAAE,GACJ,EAcX,SAAgB,GAAS,EAAK,EAAG,CAG7B,IAAI,EAASnB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GACzB,EAEJ,GAAI,EAAS,EAET,EAAQ,KAAK,KAAK,EAAS,EAAI,CAC/B,EAAI,GAAK,GAAM,EACf,EAAQ,GAAM,EACd,EAAI,IAAMA,EAAE,GAAKA,EAAE,IAAM,EACzB,EAAI,IAAMA,EAAE,GAAKA,EAAE,IAAM,EACzB,EAAI,IAAMA,EAAE,GAAKA,EAAE,IAAM,MACtB,CAEH,IAAIkB,EAAI,EACJlB,EAAE,GAAKA,EAAE,KAAI,EAAI,GACjBA,EAAE,GAAKA,EAAEkB,EAAI,EAAIA,KAAI,EAAI,GAC7B,IAAItG,GAAKsG,EAAI,GAAK,EACdG,GAAKH,EAAI,GAAK,EAElB,EAAQ,KAAK,KAAKlB,EAAEkB,EAAI,EAAIA,GAAKlB,EAAEpF,EAAI,EAAIA,GAAKoF,EAAEqB,EAAI,EAAIA,GAAK,EAAI,CACnE,EAAIH,GAAK,GAAM,EACf,EAAQ,GAAM,EACd,EAAI,IAAMlB,EAAEpF,EAAI,EAAIyG,GAAKrB,EAAEqB,EAAI,EAAIzG,IAAM,EACzC,EAAIA,IAAMoF,EAAEpF,EAAI,EAAIsG,GAAKlB,EAAEkB,EAAI,EAAItG,IAAM,EACzC,EAAIyG,IAAMrB,EAAEqB,EAAI,EAAIH,GAAKlB,EAAEkB,EAAI,EAAIG,IAAM,EAG7C,OAAO,EAYX,SAAgB,GAAU,EAAK,EAAO,EAAQ,MAAO,CACjD,IAAI,EAAK,KAAK,IAAI,EAAM,GAAK,GAAI,CAC7BvG,EAAK,KAAK,IAAI,EAAM,GAAK,GAAI,CAC7B,EAAK,KAAK,IAAI,EAAM,GAAK,GAAI,CAC7B,EAAK,KAAK,IAAI,EAAM,GAAK,GAAI,CAC7B,EAAK,KAAK,IAAI,EAAM,GAAK,GAAI,CAC7B,EAAK,KAAK,IAAI,EAAM,GAAK,GAAI,CAkCjC,OAhCI,IAAU,OACV,EAAI,GAAK,EAAK,EAAK,EAAKA,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,GAC3B,IAAU,OACjB,EAAI,GAAK,EAAK,EAAK,EAAKA,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,GAC3B,IAAU,OACjB,EAAI,GAAK,EAAK,EAAK,EAAKA,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,GAC3B,IAAU,OACjB,EAAI,GAAK,EAAK,EAAK,EAAKA,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,GAC3B,IAAU,OACjB,EAAI,GAAK,EAAK,EAAK,EAAKA,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,GAC3B,IAAU,QACjB,EAAI,GAAK,EAAK,EAAK,EAAKA,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,EAClC,EAAI,GAAKA,EAAK,EAAK,EAAK,EAAK,EAAK,GAG/B,iCAnU2B,CA8UzByB,GAAOvB,GAaPyB,GAAMvB,GAgCN,GAAMK,GA8BN,GAAYK,wBCzZ2B,CAEvC,GAAb,cAA0B,KAAM,CAC5B,YAAY,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,CACpC,MAAM8E,EAAGD,EAAGf,EAAGmB,EAAE,CACjB,KAAK,aAAiB,GAGtB,KAAK,QAAU,KAGf,IAAM,EAAe,CAAC,IAAK,IAAK,IAAK,IAAI,CACzC,OAAO,IAAI,MAAM,KAAM,CACnB,IAAI,EAAQ,EAAU,CAClB,IAAM,EAAU,QAAQ,IAAI,GAAG,UAAU,CAEzC,OADI,GAAW,EAAa,SAAS,EAAS,EAAE,EAAO,UAAU,CAC1D,GAEd,CAAC,CAGN,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,EAAE,EAAG,CACL,KAAK,QAAQ,GAAKD,EAClB,KAAK,UAAU,CAGnB,IAAI,EAAE,EAAG,CACL,KAAK,QAAQ,GAAKA,EAClB,KAAK,UAAU,CAGnB,IAAI,EAAE,EAAG,CACL,KAAK,QAAQ,GAAKA,EAClB,KAAK,UAAU,CAGnB,IAAI,EAAE,EAAG,CACL,KAAK,QAAQ,GAAKA,EAClB,KAAK,UAAU,CAGnB,UAAW,CAGP,OAFA,GAAkB,KAAK,QAAQ,CAC/B,KAAK,UAAU,CACR,KAGX,IAAI,EAAG,EAAG,EAAG,EAAG,CAIZ,OAHIF,EAAE,OAAe,KAAK,KAAKA,EAAE,EACjC,GAAa,KAAK,QAASA,EAAGD,EAAGf,EAAGmB,EAAE,CACtC,KAAK,UAAU,CACR,MAGX,QAAQ,EAAG,CAGP,OAFA,GAAiB,KAAK,QAAS,KAAK,QAASM,EAAE,CAC/C,KAAK,UAAU,CACR,KAGX,QAAQ,EAAG,CAGP,OAFA,GAAiB,KAAK,QAAS,KAAK,QAASA,EAAE,CAC/C,KAAK,UAAU,CACR,KAGX,QAAQ,EAAG,CAGP,OAFA,GAAiB,KAAK,QAAS,KAAK,QAASA,EAAE,CAC/C,KAAK,UAAU,CACR,KAGX,QAAQ,EAAI,KAAK,QAAS,CAGtB,OAFA,GAAgB,KAAK,QAASjB,EAAE,CAChC,KAAK,UAAU,CACR,KAGX,UAAU,EAAI,KAAK,QAAS,CAGxB,OAFA,GAAmB,KAAK,QAASA,EAAE,CACnC,KAAK,UAAU,CACR,KAGX,KAAK,EAAG,CAGJ,OAFA,GAAc,KAAK,QAASA,EAAE,CAC9B,KAAK,UAAU,CACR,KAGX,UAAU,EAAI,KAAK,QAAS,CAGxB,OAFA,GAAmB,KAAK,QAASA,EAAE,CACnC,KAAK,UAAU,CACR,KAGX,SAAS,EAAI,EAAI,CAOb,OANI,EACA,GAAkB,KAAK,QAAS,EAAI,EAAG,CAEvC,GAAkB,KAAK,QAAS,KAAK,QAAS,EAAG,CAErD,KAAK,UAAU,CACR,KAGX,IAAI,EAAG,CACH,OAAO9D,GAAa,KAAK,QAASwE,EAAE,CAGxC,YAAY,EAAS,CAGjB,OAFA,GAAkB,KAAK,QAAS,EAAQ,CACxC,KAAK,UAAU,CACR,KAGX,UAAU,EAAO,EAAY,CAIzB,OAHA,GAAmB,KAAK,QAAS,EAAO,EAAM,MAAM,CAE/C,GAAY,KAAK,UAAU,CACzB,KAGX,cAAc,EAAM,EAAG,CAGnB,OAFA,GAAsB,KAAK,QAAS,EAAMO,EAAE,CAC5C,KAAK,UAAU,CACR,KAGX,MAAM,EAAG,EAAG,CAGR,OAFA,GAAe,KAAK,QAAS,KAAK,QAASjB,EAAGmJ,EAAE,CAChD,KAAK,UAAU,CACR,KAGX,UAAU,EAAG,EAAI,EAAG,CAMhB,MALA,MAAK,QAAQ,GAAKlI,EAAEnC,GACpB,KAAK,QAAQ,GAAKmC,EAAEnC,EAAI,GACxB,KAAK,QAAQ,GAAKmC,EAAEnC,EAAI,GACxB,KAAK,QAAQ,GAAKmC,EAAEnC,EAAI,GACxB,KAAK,UAAU,CACR,KAGX,QAAQ,EAAI,EAAE,CAAE,EAAI,EAAG,CAKnB,MAJA,GAAEA,GAAK,KAAK,GACZ,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GACTmC,OC1Jf,SAAgB5E,GAAK,EAAK,EAAG,CAiBzB,MAhBA,GAAI,GAAK4E,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACL,EASX,SAAgB1E,GAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAiBrG,MAhBA,GAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACH,EASX,SAAgBC,GAAS,EAAK,CAiB1B,MAhBA,GAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACH,EA6DX,SAAgByC,GAAO,EAAK,EAAG,CAC3B,IAAI,EAAMgC,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IAER,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EAGxB,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAwB5E,OAtBK,GAGL,EAAM,EAAM,EAEZ,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,KAAO,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAChD,EAAI,KAAO,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAChD,EAAI,KAAO,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAChD,EAAI,KAAO,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAChD,EAAI,KAAO,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAChD,EAAI,KAAO,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAEzC,GArBI,KA8Bf,SAAgB,GAAY,EAAG,CAC3B,IAAI,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IAER,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EAG5B,OAAO,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAW7E,SAAgBvE,GAAS,EAAK,EAAG,EAAG,CAChC,IAAI,EAAMuE,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IAGR,EAAKC,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GAgCX,MA/BA,GAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAC/C,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAC/C,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAC/C,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAE/C,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAC/C,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAC/C,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAC/C,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAE/C,EAAKA,EAAE,GACP,EAAKA,EAAE,GACP,EAAKA,EAAE,IACP,EAAKA,EAAE,IACP,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAC/C,EAAI,GAAK,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAC/C,EAAI,IAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAChD,EAAI,IAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAEhD,EAAKA,EAAE,IACP,EAAKA,EAAE,IACP,EAAKA,EAAE,IACP,EAAKA,EAAE,IACP,EAAI,IAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAChD,EAAI,IAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAChD,EAAI,IAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAChD,EAAI,IAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EAAM,EAAK,EACzC,EAWX,SAAgBtE,GAAU,EAAK,EAAG,EAAG,CACjC,IAAI4D,EAAIE,EAAE,GACNH,EAAIG,EAAE,GACNlB,EAAIkB,EAAE,GACN,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EAAK,EAwCnB,OAtCIO,IAAM,GACN,EAAI,IAAMA,EAAE,GAAKT,EAAIS,EAAE,GAAKV,EAAIU,EAAE,GAAKzB,EAAIyB,EAAE,IAC7C,EAAI,IAAMA,EAAE,GAAKT,EAAIS,EAAE,GAAKV,EAAIU,EAAE,GAAKzB,EAAIyB,EAAE,IAC7C,EAAI,IAAMA,EAAE,GAAKT,EAAIS,EAAE,GAAKV,EAAIU,EAAE,IAAMzB,EAAIyB,EAAE,IAC9C,EAAI,IAAMA,EAAE,GAAKT,EAAIS,EAAE,GAAKV,EAAIU,EAAE,IAAMzB,EAAIyB,EAAE,MAE9C,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IAER,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EACV,EAAI,IAAM,EAEV,EAAI,IAAM,EAAMT,EAAI,EAAMD,EAAI,EAAMf,EAAIyB,EAAE,IAC1C,EAAI,IAAM,EAAMT,EAAI,EAAMD,EAAI,EAAMf,EAAIyB,EAAE,IAC1C,EAAI,IAAM,EAAMT,EAAI,EAAMD,EAAI,EAAMf,EAAIyB,EAAE,IAC1C,EAAI,IAAM,EAAMT,EAAI,EAAMD,EAAI,EAAMf,EAAIyB,EAAE,KAGvC,EAWX,SAAgBhD,GAAM,EAAK,EAAG,EAAG,CAC7B,IAAIuC,EAAIE,EAAE,GACNH,EAAIG,EAAE,GACNlB,EAAIkB,EAAE,GAkBV,MAhBA,GAAI,GAAKO,EAAE,GAAKT,EAChB,EAAI,GAAKS,EAAE,GAAKT,EAChB,EAAI,GAAKS,EAAE,GAAKT,EAChB,EAAI,GAAKS,EAAE,GAAKT,EAChB,EAAI,GAAKS,EAAE,GAAKV,EAChB,EAAI,GAAKU,EAAE,GAAKV,EAChB,EAAI,GAAKU,EAAE,GAAKV,EAChB,EAAI,GAAKU,EAAE,GAAKV,EAChB,EAAI,GAAKU,EAAE,GAAKzB,EAChB,EAAI,GAAKyB,EAAE,GAAKzB,EAChB,EAAI,IAAMyB,EAAE,IAAMzB,EAClB,EAAI,IAAMyB,EAAE,IAAMzB,EAClB,EAAI,IAAMyB,EAAE,IACZ,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACL,EAYX,SAAgB/D,GAAO,EAAK,EAAG,EAAK,EAAM,CACtC,IAAIsD,EAAI,EAAK,GACTD,EAAI,EAAK,GACTf,EAAI,EAAK,GACT,EAAM,KAAK,MAAMgB,EAAGD,EAAGf,EAAE,CACzBI,EAAG0B,EAAG6H,EACN,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,GA4Dd,OA1DI,KAAK,IAAI,EAAI,CAAG,GACT,MAGX,EAAM,EAAI,EACV,GAAK,EACL,GAAK,EACL,GAAK,EAEL,EAAI,KAAK,IAAI,EAAI,CACjB,EAAI,KAAK,IAAI,EAAI,CACjB,EAAI,EAAI7H,EAER,EAAML,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IAGR,EAAMT,EAAIA,EAAI2I,EAAI7H,EAClB,EAAMf,EAAIC,EAAI2I,EAAI3J,EAAII,EACtB,EAAMJ,EAAIgB,EAAI2I,EAAI5I,EAAIX,EACtB,EAAMY,EAAID,EAAI4I,EAAI3J,EAAII,EACtB,EAAMW,EAAIA,EAAI4I,EAAI7H,EAClB,EAAM9B,EAAIe,EAAI4I,EAAI3I,EAAIZ,EACtB,EAAMY,EAAIhB,EAAI2J,EAAI5I,EAAIX,EACtB,EAAMW,EAAIf,EAAI2J,EAAI3I,EAAIZ,EACtB,GAAMJ,EAAIA,EAAI2J,EAAI7H,EAGlB,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,GACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,GACvC,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GACxC,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAEpCL,IAAM,IAEN,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,IACZ,EAAI,IAAMA,EAAE,KAET,GAYX,SAAgB,GAAe,EAAK,EAAK,CAKrC,MAJA,GAAI,GAAK,EAAI,IACb,EAAI,GAAK,EAAI,IACb,EAAI,GAAK,EAAI,IAEN,EAaX,SAAgB,GAAW,EAAK,EAAK,CACjC,IAAI,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,IAMd,MAJA,GAAI,GAAK,KAAK,MAAM,EAAK,EAAK,EAAI,CAClC,EAAI,GAAK,KAAK,MAAM,EAAK,EAAK,EAAI,CAClC,EAAI,GAAK,KAAK,MAAM,EAAK,EAAK,EAAI,CAE3B,EAGX,SAAgB,GAAkB,EAAK,CACnC,IAAI,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,GACV,EAAM,EAAI,IAERT,EAAI,EAAM,EAAM,EAAM,EAAM,EAAM,EAClCD,EAAI,EAAM,EAAM,EAAM,EAAM,EAAM,EAClCf,EAAI,EAAM,EAAM,EAAM,EAAM,EAAM,EAExC,OAAO,KAAK,KAAK,KAAK,IAAIgB,EAAGD,EAAGf,EAAE,CAAC,CAgFvC,SAAgB,GAAU,EAAQ,EAAa,EAAgB,EAAU,CACrE,IAAI,EAAKlC,GAAY,CAAC,EAAO,GAAI,EAAO,GAAI,EAAO,GAAG,CAAC,CACjD,EAAKA,GAAY,CAAC,EAAO,GAAI,EAAO,GAAI,EAAO,GAAG,CAAC,CACnD,EAAKA,GAAY,CAAC,EAAO,GAAI,EAAO,GAAI,EAAO,IAAI,CAAC,CAG9C,GAAY,EAAO,CACrB,IAAG,EAAK,CAAC,GAEnB,EAAe,GAAK,EAAO,IAC3B,EAAe,GAAK,EAAO,IAC3B,EAAe,GAAK,EAAO,IAG3B,IAAM,EAAM,EAAO,OAAO,CAEpB,EAAQ,EAAI,EACZ,EAAQ,EAAI,EACZ,EAAQ,EAAI,EAElB,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EAEV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EAEV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,KAAO,EAEX,GAAY,EAAa,EAAI,CAE7B,EAAS,GAAK,EACd,EAAS,GAAK,EACd,EAAS,GAAK,EAkBlB,SAAgB,GAAQ,EAAQ,EAAa,EAAgB,EAAU,CACnE,IAAMC,EAAK,EAELiD,EAAI,EAAY,GAClBD,EAAI,EAAY,GAChBf,EAAI,EAAY,GAChBmB,EAAI,EAAY,GACd,EAAKH,EAAIA,EACX,EAAKD,EAAIA,EACT,EAAKf,EAAIA,EACP,EAAKgB,EAAI,EACX,EAAKA,EAAI,EACT,EAAKA,EAAI,EACP,EAAKD,EAAI,EACX,EAAKA,EAAI,EACT,EAAKf,EAAI,EACP,EAAKmB,EAAI,EACX,EAAKA,EAAI,EACT,EAAKA,EAAI,EAEP,EAAK,EAAS,GAChB,EAAK,EAAS,GACd,EAAK,EAAS,GAsBlB,MApBA,GAAG,IAAM,GAAK,EAAK,IAAO,EAC1B,EAAG,IAAM,EAAK,GAAM,EACpB,EAAG,IAAM,EAAK,GAAM,EACpB,EAAG,GAAK,EAER,EAAG,IAAM,EAAK,GAAM,EACpB,EAAG,IAAM,GAAK,EAAK,IAAO,EAC1B,EAAG,IAAM,EAAK,GAAM,EACpB,EAAG,GAAK,EAER,EAAG,IAAM,EAAK,GAAM,EACpB,EAAG,IAAM,EAAK,GAAM,EACpB,EAAG,KAAO,GAAK,EAAK,IAAO,EAC3B,EAAG,IAAM,EAET,EAAG,IAAM,EAAe,GACxB,EAAG,IAAM,EAAe,GACxB,EAAG,IAAM,EAAe,GACxB,EAAG,IAAM,EAEFpD,EAuEX,SAAgBE,GAAS,EAAK,EAAG,CAC7B,IAAI+C,EAAIR,EAAE,GACNO,EAAIP,EAAE,GACNR,EAAIQ,EAAE,GACNW,EAAIX,EAAE,GACN,EAAKQ,EAAIA,EACT,EAAKD,EAAIA,EACT,EAAKf,EAAIA,EAET,EAAKgB,EAAI,EACT,EAAKD,EAAI,EACT,EAAKA,EAAI,EACT,EAAKf,EAAI,EACT,EAAKA,EAAI,EACT,EAAKA,EAAI,EACT,EAAKmB,EAAI,EACT,EAAKA,EAAI,EACT,EAAKA,EAAI,EAsBb,MApBA,GAAI,GAAK,EAAI,EAAK,EAClB,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAET,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAAI,EAAK,EAClB,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAET,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAAK,EACd,EAAI,IAAM,EAAI,EAAK,EACnB,EAAI,IAAM,EAEV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EAEH,EAaX,SAAgB,GAAY,EAAK,EAAM,EAAQ,EAAM,EAAK,CACtD,IAAIT,EAAI,EAAM,KAAK,IAAI,EAAO,EAAE,CAC5B,EAAK,GAAK,EAAO,GAiBrB,MAhBA,GAAI,GAAKA,EAAI,EACb,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAKA,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,KAAO,EAAM,GAAQ,EACzB,EAAI,IAAM,GACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EAAI,EAAM,EAAO,EAC3B,EAAI,IAAM,EACH,EAeX,SAAgB,GAAM,EAAK,EAAM,EAAO,EAAQ,EAAK,EAAM,EAAK,CAC5D,IAAI,EAAK,GAAK,EAAO,GACjBtC,EAAK,GAAK,EAAS,GACnB,EAAK,GAAK,EAAO,GAiBrB,MAhBA,GAAI,GAAK,GAAK,EACd,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,GAAKA,EACd,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EAAI,EACd,EAAI,IAAM,EACV,EAAI,KAAO,EAAO,GAAS,EAC3B,EAAI,KAAO,EAAM,GAAUA,EAC3B,EAAI,KAAO,EAAM,GAAQ,EACzB,EAAI,IAAM,EACH,EAYX,SAAgB,GAAS,EAAK,EAAK,EAAQ,EAAI,CAC3C,IAAI,EAAO,EAAI,GACX,EAAO,EAAI,GACX,EAAO,EAAI,GACX,EAAM,EAAG,GACT,EAAM,EAAG,GACT,EAAM,EAAG,GAET,EAAK,EAAO,EAAO,GACnB,EAAK,EAAO,EAAO,GACnB,EAAK,EAAO,EAAO,GAEnB,EAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAC/B,IAAQ,EAER,EAAK,GAEL,EAAM,EAAI,KAAK,KAAK,EAAI,CACxB,GAAM,EACN,GAAM,EACN,GAAM,GAGV,IAAI,EAAK,EAAM,EAAK,EAAM,EACtB,EAAK,EAAM,EAAK,EAAM,EACtB,EAAK,EAAM,EAAK,EAAM,EAsC1B,MApCA,GAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAC3B,IAAQ,IAEJ,EACA,GAAO,KACA,EACP,GAAO,KAEP,GAAO,KAEV,EAAK,EAAM,EAAK,EAAM,EAAM,EAAK,EAAM,EAAK,EAAM,EAAM,EAAK,EAAM,EAAK,EAAM,EAE/E,EAAM,EAAK,EAAK,EAAK,EAAK,EAAK,GAGnC,EAAM,EAAI,KAAK,KAAK,EAAI,CACxB,GAAM,EACN,GAAM,EACN,GAAM,EAEN,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACH,EAWX,SAAgB,GAAI,EAAK,EAAG,EAAG,CAiB3B,MAhBA,GAAI,GAAKqD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACb,EAWX,SAAgB,GAAS,EAAK,EAAG,EAAG,CAiBhC,MAhBA,GAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,GAAKD,EAAE,GAAKC,EAAE,GAClB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACpB,EAAI,IAAMD,EAAE,IAAMC,EAAE,IACb,EAWX,SAAgB,GAAe,EAAK,EAAG,EAAG,CAiBtC,MAhBA,GAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,GAAKD,EAAE,GAAKC,EAChB,EAAI,IAAMD,EAAE,IAAMC,EAClB,EAAI,IAAMD,EAAE,IAAMC,EAClB,EAAI,IAAMD,EAAE,IAAMC,EAClB,EAAI,IAAMD,EAAE,IAAMC,EAClB,EAAI,IAAMD,EAAE,IAAMC,EAClB,EAAI,IAAMD,EAAE,IAAMC,EACX,2BA5hC2B,CAEhC,GAAU,KAoiBH,IAAe,UAAY,CACpC,IAAM,EAAO,CAAC,EAAG,EAAG,EAAE,CAEtB,OAAO,SAAU,EAAK,EAAK,CACvB,IAAI,EAAU,EACd,GAAW,EAAS,EAAI,CAExB,IAAI,EAAM,EAAI,EAAQ,GAClB,EAAM,EAAI,EAAQ,GAClB,EAAM,EAAI,EAAQ,GAElB,EAAO,EAAI,GAAK,EAChB,EAAO,EAAI,GAAK,EAChB,EAAO,EAAI,GAAK,EAChB,EAAO,EAAI,GAAK,EAChB,EAAO,EAAI,GAAK,EAChB,EAAO,EAAI,GAAK,EAChB,EAAO,EAAI,GAAK,EAChB,EAAO,EAAI,GAAK,EAChB,EAAO,EAAI,IAAM,EAEjB,EAAQ,EAAO,EAAO,EACtBrD,EAAI,EA4BR,OA1BI,EAAQ,GACR,EAAI,KAAK,KAAK,EAAQ,EAAI,CAAG,EAC7B,EAAI,GAAK,IAAOA,EAChB,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,IAAM,EAAO,GAAQA,GAClB,EAAO,GAAQ,EAAO,GAC7B,EAAI,KAAK,KAAK,EAAM,EAAO,EAAO,EAAK,CAAG,EAC1C,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,GAAK,IAAOA,EAChB,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,IAAM,EAAO,GAAQA,GAClB,EAAO,GACd,EAAI,KAAK,KAAK,EAAM,EAAO,EAAO,EAAK,CAAG,EAC1C,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,GAAK,IAAOA,EAChB,EAAI,IAAM,EAAO,GAAQA,IAEzB,EAAI,KAAK,KAAK,EAAM,EAAO,EAAO,EAAK,CAAG,EAC1C,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,IAAM,EAAO,GAAQA,EACzB,EAAI,GAAK,IAAOA,GAGb,MAEX,sBC1lBgD,CAEvC,GAAb,cAA0B,KAAM,CAC5B,YACI,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACR,CAEE,OADA,MAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,CAC9E,KAGX,IAAI,GAAI,CACJ,OAAO,KAAK,IAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,IAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,IAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,IAGhB,IAAI,EAAE,EAAG,CACL,KAAK,IAAM6C,EAGf,IAAI,EAAE,EAAG,CACL,KAAK,IAAMA,EAGf,IAAI,EAAE,EAAG,CACL,KAAK,IAAMA,EAGf,IAAI,EAAE,EAAG,CACL,KAAK,IAAMA,EAGf,IAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAGhF,OAFI,EAAI,OAAe,KAAK,KAAK,EAAI,EACrC,GAAa,KAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,CAC3F,MAGX,UAAU,EAAG,EAAI,KAAM,CAEnB,OADA,GAAmB,KAAMZ,EAAGY,EAAE,CACvB,KAGX,OAAO,EAAG,EAAM,EAAI,KAAM,CAEtB,OADA,GAAgB,KAAMZ,EAAGY,EAAG,EAAK,CAC1B,KAGX,MAAM,EAAG,EAAI,KAAM,CAEf,OADA,GAAe,KAAMZ,EAAG,OAAOY,GAAM,SAAW,CAACA,EAAGA,EAAGA,EAAE,CAAGA,EAAE,CACvD,KAGX,IAAI,EAAI,EAAI,CAGR,OAFI,EAAI,GAAa,KAAM,EAAI,EAAG,CAC7B,GAAa,KAAM,KAAM,EAAG,CAC1B,KAGX,IAAI,EAAI,EAAI,CAGR,OAFI,EAAI,GAAkB,KAAM,EAAI,EAAG,CAClC,GAAkB,KAAM,KAAM,EAAG,CAC/B,KAGX,SAAS,EAAI,EAAI,CAQb,OAPK,EAAG,OAEG,EACP,GAAkB,KAAM,EAAI,EAAG,CAE/B,GAAkB,KAAM,KAAM,EAAG,CAJjC,GAAwB,KAAM,KAAM,EAAG,CAMpC,KAGX,UAAW,CAEP,OADA,GAAkB,KAAK,CAChB,KAGX,KAAK,EAAG,CAEJ,OADA,GAAc,KAAMZ,EAAE,CACf,KAGX,gBAAgB,CAAE,MAAK,SAAQ,OAAM,OAAQ,EAAE,CAAE,CAE7C,OADA,GAAqB,KAAM,EAAK,EAAQ,EAAM,EAAI,CAC3C,KAGX,eAAe,CAAE,OAAM,QAAO,SAAQ,MAAK,OAAM,OAAO,CAEpD,OADA,GAAe,KAAM,EAAM,EAAO,EAAQ,EAAK,EAAM,EAAI,CAClD,KAGX,eAAe,EAAG,CAEd,OADA,GAAkB,KAAME,EAAE,CACnB,KAGX,YAAY,EAAG,CAIX,MAHA,MAAK,EAAIU,EAAE,GACX,KAAK,EAAIA,EAAE,GACX,KAAK,EAAIA,EAAE,GACJ,KAGX,QAAQ,EAAI,KAAM,CAEd,OADA,GAAgB,KAAMZ,EAAE,CACjB,KAGX,QAAQ,EAAG,EAAK,EAAO,CAEnB,OADA,GAAiB,KAAME,EAAG,EAAK/B,EAAM,CAC9B,KAGX,UAAU,EAAG,EAAK,EAAO,CAErB,OADA,GAAmB,KAAM+B,EAAG,EAAK/B,EAAM,CAChC,KAGX,YAAY,EAAG,CAEX,OADA,GAAqB+B,EAAG,KAAK,CACtB,KAGX,eAAe,EAAK,CAEhB,OADA,GAAwB,EAAK,KAAK,CAC3B,KAGX,WAAW,EAAO,CAEd,OADA,GAAoB/B,EAAO,KAAK,CACzB,KAGX,mBAAoB,CAChB,OAAOC,GAA2B,KAAK,CAG3C,OAAO,EAAK,EAAQ,EAAI,CAEpB,OADA,GAAkB,KAAM,EAAK,EAAQ,EAAG,CACjC,KAGX,aAAc,CACV,OAAOC,GAAqB,KAAK,CAGrC,UAAU,EAAG,EAAI,EAAG,CAiBhB,MAhBA,MAAK,GAAK8C,EAAEnC,GACZ,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,GAAKmC,EAAEnC,EAAI,GAChB,KAAK,IAAMmC,EAAEnC,EAAI,IACjB,KAAK,IAAMmC,EAAEnC,EAAI,IACjB,KAAK,IAAMmC,EAAEnC,EAAI,IACjB,KAAK,IAAMmC,EAAEnC,EAAI,IACjB,KAAK,IAAMmC,EAAEnC,EAAI,IACjB,KAAK,IAAMmC,EAAEnC,EAAI,IACV,KAGX,QAAQ,EAAI,EAAE,CAAE,EAAI,EAAG,CAiBnB,MAhBA,GAAEA,GAAK,KAAK,GACZ,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,IAAM,KAAK,IACjB,EAAEA,EAAI,IAAM,KAAK,IACjB,EAAEA,EAAI,IAAM,KAAK,IACjB,EAAEA,EAAI,IAAM,KAAK,IACjB,EAAEA,EAAI,IAAM,KAAK,IACjB,EAAEA,EAAI,IAAM,KAAK,IACVmC,OCpNf,SAAgB,GAAmB,EAAK,EAAG,EAAQ,MAAO,CAyDtD,OAxDI,IAAU,OACV,EAAI,GAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAInB,EAAE,GAAI,GAAG,CAAE,EAAE,CAAC,CAC/C,KAAK,IAAIA,EAAE,GAAG,CAAG,QACjB,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,IAAI,CACjC,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,GAAG,GAEhC,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,GAAG,CAC/B,EAAI,GAAK,IAEN,IAAU,OACjB,EAAI,GAAK,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,IAAIA,EAAE,GAAI,GAAG,CAAE,EAAE,CAAC,CAChD,KAAK,IAAIA,EAAE,GAAG,CAAG,QACjB,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,IAAI,CAChC,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,GAAG,GAE/B,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,GAAG,CAChC,EAAI,GAAK,IAEN,IAAU,OACjB,EAAI,GAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAIA,EAAE,GAAI,GAAG,CAAE,EAAE,CAAC,CAC/C,KAAK,IAAIA,EAAE,GAAG,CAAG,QACjB,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,IAAI,CACjC,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,GAAG,GAEhC,EAAI,GAAK,EACT,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,GAAG,GAE5B,IAAU,OACjB,EAAI,GAAK,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,IAAIA,EAAE,GAAI,GAAG,CAAE,EAAE,CAAC,CAChD,KAAK,IAAIA,EAAE,GAAG,CAAG,QACjB,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,IAAI,CAChC,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,GAAG,GAE/B,EAAI,GAAK,EACT,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,GAAG,GAE7B,IAAU,OACjB,EAAI,GAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAIA,EAAE,GAAI,GAAG,CAAE,EAAE,CAAC,CAC/C,KAAK,IAAIA,EAAE,GAAG,CAAG,QACjB,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,GAAG,CAChC,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,GAAG,GAEhC,EAAI,GAAK,EACT,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,IAAI,GAE7B,IAAU,QACjB,EAAI,GAAK,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,IAAIA,EAAE,GAAI,GAAG,CAAE,EAAE,CAAC,CAChD,KAAK,IAAIA,EAAE,GAAG,CAAG,QACjB,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,GAAG,CAC/B,EAAI,GAAK,KAAK,MAAMA,EAAE,GAAIA,EAAE,GAAG,GAE/B,EAAI,GAAK,KAAK,MAAM,CAACA,EAAE,GAAIA,EAAE,IAAI,CACjC,EAAI,GAAK,IAIV,0CC1D2C,KACrB,CAE3B,GAA0B,IAAI,GAEvB,GAAb,cAA2B,KAAM,CAC7B,YAAY,EAAI,EAAG,EAAIU,EAAG,EAAIA,EAAG,EAAQ,MAAO,CAC5C,MAAMA,EAAGD,EAAGf,EAAE,CACd,KAAK,MAAQ,EACb,KAAK,aAAiB,GAGtB,KAAK,QAAU,KAGf,IAAM,EAAe,CAAC,IAAK,IAAK,IAAI,CACpC,OAAO,IAAI,MAAM,KAAM,CACnB,IAAI,EAAQ,EAAU,CAClB,IAAM,EAAU,QAAQ,IAAI,GAAG,UAAU,CAEzC,OADI,GAAW,EAAa,SAAS,EAAS,EAAE,EAAO,UAAU,CAC1D,GAEd,CAAC,CAGN,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,GAAI,CACJ,OAAO,KAAK,GAGhB,IAAI,EAAE,EAAG,CACL,KAAK,QAAQ,GAAKkB,EAClB,KAAK,UAAU,CAGnB,IAAI,EAAE,EAAG,CACL,KAAK,QAAQ,GAAKA,EAClB,KAAK,UAAU,CAGnB,IAAI,EAAE,EAAG,CACL,KAAK,QAAQ,GAAKA,EAClB,KAAK,UAAU,CAGnB,IAAI,EAAG,EAAIF,EAAG,EAAIA,EAAG,CAMjB,OALIA,EAAE,OAAe,KAAK,KAAKA,EAAE,EACjC,KAAK,QAAQ,GAAKA,EAClB,KAAK,QAAQ,GAAKD,EAClB,KAAK,QAAQ,GAAKf,EAClB,KAAK,UAAU,CACR,MAGX,KAAK,EAAG,CAKJ,MAJA,MAAK,QAAQ,GAAKkB,EAAE,GACpB,KAAK,QAAQ,GAAKA,EAAE,GACpB,KAAK,QAAQ,GAAKA,EAAE,GACpB,KAAK,UAAU,CACR,KAGX,QAAQ,EAAO,CAGX,MAFA,MAAK,QAAQ,MAAQ,EACrB,KAAK,UAAU,CACR,KAGX,mBAAmB,EAAG,EAAQ,KAAK,MAAO,CAGtC,OAFA,GAA6B,KAAK,QAASZ,EAAG,EAAM,CACpD,KAAK,UAAU,CACR,KAGX,eAAe,EAAG,EAAQ,KAAK,MAAO,EAAY,CAK9C,OAJA,GAAQ,eAAeE,EAAE,CACzB,KAAK,QAAQ,mBAAmB,GAAS,EAAM,CAE1C,GAAY,KAAK,UAAU,CACzB,KAGX,UAAU,EAAG,EAAI,EAAG,CAIhB,MAHA,MAAK,QAAQ,GAAKiB,EAAEnC,GACpB,KAAK,QAAQ,GAAKmC,EAAEnC,EAAI,GACxB,KAAK,QAAQ,GAAKmC,EAAEnC,EAAI,GACjB,KAGX,QAAQ,EAAI,EAAE,CAAE,EAAI,EAAG,CAInB,MAHA,GAAEA,GAAK,KAAK,GACZ,EAAEA,EAAI,GAAK,KAAK,GAChB,EAAEA,EAAI,GAAK,KAAK,GACTmC,wBCpGwB,KACA,KACA,KACE,CAE5B,GAAb,KAAuB,CACnB,aAAc,CACV,KAAK,OAAS,KACd,KAAK,SAAW,EAAE,CAClB,KAAK,QAAU,GAEf,KAAK,OAAS,IAAI,GAClB,KAAK,YAAc,IAAI,GACvB,KAAK,iBAAmB,GACxB,KAAK,uBAAyB,GAE9B,KAAK,SAAW,IAAI,EACpB,KAAK,WAAa,IAAI,GACtB,KAAK,MAAQ,IAAI,EAAK,EAAE,CACxB,KAAK,SAAW,IAAI,GACpB,KAAK,GAAK,IAAI,EAAK,EAAG,EAAG,EAAE,CAE3B,KAAK,SAAS,QAAQ,aAAiB,KAAK,WAAW,UAAU,KAAK,SAAU,GAAK,CACrF,KAAK,WAAW,QAAQ,aAAiB,KAAK,SAAS,eAAe,KAAK,WAAY,IAAA,GAAW,GAAK,CAG3G,UAAU,EAAQ,EAAe,GAAM,CAC/B,KAAK,QAAU,IAAW,KAAK,QAAQ,KAAK,OAAO,YAAY,KAAM,GAAM,CAC/E,KAAK,OAAS,EACV,GAAgB,GAAQ,EAAO,SAAS,KAAM,GAAM,CAG5D,SAAS,EAAO,EAAc,GAAM,CAC3B,CAAC,KAAK,SAAS,QAAQ,EAAM,EAAE,KAAK,SAAS,KAAK,EAAM,CACzD,GAAa,EAAM,UAAU,KAAM,GAAM,CAGjD,YAAY,EAAO,EAAc,GAAM,CAC7B,CAAC,KAAK,SAAS,QAAQ,EAAM,EAAE,KAAK,SAAS,OAAO,KAAK,SAAS,QAAQ,EAAM,CAAE,EAAE,CACtF,GAAa,EAAM,UAAU,KAAM,GAAM,CAGjD,kBAAkB,EAAO,CACjB,KAAK,kBAAkB,KAAK,cAAc,EAC1C,KAAK,wBAA0B,KAC3B,KAAK,SAAW,KAAM,KAAK,YAAY,KAAK,KAAK,OAAO,CACvD,KAAK,YAAY,SAAS,KAAK,OAAO,YAAa,KAAK,OAAO,CACpE,KAAK,uBAAyB,GAC9B,EAAQ,IAGZ,IAAK,IAAID,EAAI,EAAGhC,EAAI,KAAK,SAAS,OAAQgC,EAAIhC,EAAG,IAC7C,KAAK,SAASgC,GAAG,kBAAkB,EAAM,CAIjD,cAAe,CACX,KAAK,OAAO,QAAQ,KAAK,WAAY,KAAK,SAAU,KAAK,MAAM,CAC/D,KAAK,uBAAyB,GAGlC,SAAS,EAAU,CAEX,MAAS,KAAK,CAClB,IAAK,IAAIA,EAAI,EAAGhC,EAAI,KAAK,SAAS,OAAQgC,EAAIhC,EAAG,IAC7C,KAAK,SAASgC,GAAG,SAAS,EAAS,CAI3C,WAAY,CACR,KAAK,OAAO,UAAU,KAAK,WAAW,QAAS,KAAK,SAAU,KAAK,MAAM,CACzE,KAAK,SAAS,eAAe,KAAK,WAAW,CAGjD,OAAO,EAAQ,EAAS,GAAO,CACvB/B,EAAQ,KAAK,OAAO,OAAO,KAAK,SAAU,EAAQ,KAAK,GAAG,CACzD,KAAK,OAAO,OAAO,EAAQ,KAAK,SAAU,KAAK,GAAG,CACvD,KAAK,OAAO,YAAY,KAAK,WAAW,QAAQ,CAChD,KAAK,SAAS,eAAe,KAAK,WAAW,iCC9EV,KACJ,IACA,CAEjC,GAA2B,IAAI,GAC/B,GAA4B,IAAI,EAChC,GAA4B,IAAI,EAEzB,GAAb,cAA4B,EAAU,CAClC,YAAY,EAAI,CAAE,OAAO,GAAK,MAAM,IAAK,MAAM,GAAI,SAAS,EAAG,OAAM,QAAO,SAAQ,MAAK,OAAO,GAAM,EAAE,CAAE,CACtG,OAAO,CAEP,OAAO,OAAO,KAAM,CAAE,OAAM,MAAK,MAAK,SAAQ,OAAM,QAAO,SAAQ,MAAK,OAAM,CAAC,CAE/E,KAAK,iBAAmB,IAAI,GAC5B,KAAK,WAAa,IAAI,GACtB,KAAK,qBAAuB,IAAI,GAChC,KAAK,cAAgB,IAAI,EAGzB,KAAK,KAAO,GAAQ,EAAQ,eAAiB,cAEzC,KAAK,OAAS,eAAgB,KAAK,cAAc,CAChD,KAAK,aAAa,CAG3B,YAAY,CAAE,OAAO,KAAK,KAAM,MAAM,KAAK,IAAK,MAAM,KAAK,IAAK,SAAS,KAAK,QAAW,EAAE,CAAE,CAIzF,OAHA,OAAO,OAAO,KAAM,CAAE,OAAM,MAAK,MAAK,SAAQ,CAAC,CAC/C,KAAK,iBAAiB,gBAAgB,CAAE,IAAK,GAAO,KAAK,GAAK,KAAM,SAAQ,OAAM,MAAK,CAAC,CACxF,KAAK,KAAO,cACL,KAGX,aAAa,CACT,OAAO,KAAK,KACZ,MAAM,KAAK,IACX,OAAO,KAAK,MAAQ,GACpB,QAAQ,KAAK,OAAS,EACtB,SAAS,KAAK,QAAU,GACxB,MAAM,KAAK,KAAO,EAClB,OAAO,KAAK,MACZ,EAAE,CAAE,CAQJ,OAPA,OAAO,OAAO,KAAM,CAAE,OAAM,MAAK,OAAM,QAAO,SAAQ,MAAK,OAAM,CAAC,CAClE,GAAQ,EACR,GAAS,EACT,GAAU,EACV,GAAO,EACP,KAAK,iBAAiB,eAAe,CAAE,OAAM,QAAO,SAAQ,MAAK,OAAM,MAAK,CAAC,CAC7E,KAAK,KAAO,eACL,KAGX,mBAAoB,CAOhB,OANA,MAAM,mBAAmB,CACzB,KAAK,WAAW,QAAQ,KAAK,YAAY,CACzC,KAAK,YAAY,eAAe,KAAK,cAAc,CAGnD,KAAK,qBAAqB,SAAS,KAAK,iBAAkB,KAAK,WAAW,CACnE,KAGX,wBAAyB,CAIjB,OAHA,KAAK,OAAS,cACP,KAAK,aAAa,CAElB,KAAK,cAAc,CAIlC,OAAO,EAAQ,CAEX,OADA,MAAM,OAAO,EAAQ,GAAK,CACnB,KAIX,QAAQ,EAAG,CAGP,OAFA,EAAE,aAAa,KAAK,WAAW,CAC/B,EAAE,aAAa,KAAK,iBAAiB,CAC9B,KAIX,UAAU,EAAG,CAGT,OAFA,EAAE,aAAa,GAAS,QAAQ,KAAK,iBAAiB,CAAC,CACvD,EAAE,aAAa,KAAK,YAAY,CACzB,KAGX,eAAgB,CACZ,AACI,KAAK,UAAU,CAAC,IAAI,EAAQ,IAAI,EAAQ,IAAI,EAAQ,IAAI,EAAQ,IAAI,EAAQ,IAAI,EAAO,CAG3F,IAAMa,EAAI,KAAK,qBACf,KAAK,QAAQ,GAAG,IAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,GAAG,CAAC,SAAWA,EAAE,IAAMA,EAAE,IACjF,KAAK,QAAQ,GAAG,IAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,GAAG,CAAC,SAAWA,EAAE,IAAMA,EAAE,IACjF,KAAK,QAAQ,GAAG,IAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,GAAG,CAAC,SAAWA,EAAE,IAAMA,EAAE,IACjF,KAAK,QAAQ,GAAG,IAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,GAAG,CAAC,SAAWA,EAAE,IAAMA,EAAE,IACjF,KAAK,QAAQ,GAAG,IAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,IAAI,CAAC,SAAWA,EAAE,IAAMA,EAAE,IAClF,KAAK,QAAQ,GAAG,IAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,IAAI,CAAC,SAAWA,EAAE,IAAMA,EAAE,IAElF,IAAK,IAAIkB,EAAI,EAAGA,EAAI,EAAG,IAAK,CACxB,IAAM,EAAS,EAAM,KAAK,QAAQA,GAAG,UAAU,CAC/C,KAAK,QAAQA,GAAG,SAAS,EAAO,CAChC,KAAK,QAAQA,GAAG,UAAY,GAIpC,sBAAsB,EAAM,EAAc,EAAK,YAAa,CAMxD,GAJI,CAAC,EAAK,SAAS,WAAW,YAE1B,CAAC,EAAK,SAAS,QAAU,EAAK,SAAS,OAAO,SAAW,MAAU,EAAK,SAAS,uBAAuB,CAExG,CAAC,EAAK,SAAS,QAAQ,MAAO,GAElC,IAAM,EAAS,GACf,EAAO,KAAK,EAAK,SAAS,OAAO,OAAO,CACxC,EAAO,aAAa,EAAY,CAEhC,IAAM,EAAS,EAAK,SAAS,OAAO,OAAS,EAAY,mBAAmB,CAE5E,OAAO,KAAK,wBAAwB,EAAQ,EAAO,CAGvD,wBAAwB,EAAQ,EAAQ,CACpC,IAAM,EAAS,GAEf,IAAK,IAAIA,EAAI,EAAGA,EAAI,EAAG,IAAK,CACxB,IAAM,EAAQ,KAAK,QAAQA,GAE3B,GADiB,EAAO,KAAK,EAAM,CAAC,IAAI,EAAO,CAAG,EAAM,SACzC,CAAC,EAAQ,MAAO,GAEnC,MAAO,QC7Hf,SAAgB,GAAS,EAAK,EAAG,CAU7B,MATA,GAAI,GAAKC,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,IACJ,EAWX,SAAgB,GAAS,EAAK,EAAG,CAC7B,IAAIT,EAAIR,EAAE,GACNO,EAAIP,EAAE,GACNR,EAAIQ,EAAE,GACNW,EAAIX,EAAE,GACN,EAAKQ,EAAIA,EACT,EAAKD,EAAIA,EACT,EAAKf,EAAIA,EAET,EAAKgB,EAAI,EACT,EAAKD,EAAI,EACT,EAAKA,EAAI,EACT,EAAKf,EAAI,EACT,EAAKA,EAAI,EACT,EAAKA,EAAI,EACT,EAAKmB,EAAI,EACT,EAAKA,EAAI,EACT,EAAKA,EAAI,EAcb,MAZA,GAAI,GAAK,EAAI,EAAK,EAClB,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAAK,EAEd,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAAI,EAAK,EAClB,EAAI,GAAK,EAAK,EAEd,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAAK,EACd,EAAI,GAAK,EAAI,EAAK,EAEX,EAUX,SAAgB,GAAK,EAAK,EAAG,CAUzB,MATA,GAAI,GAAKM,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACJ,EASX,SAAgB,GAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAUlE,MATA,GAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACF,EASX,SAAgB,GAAS,EAAK,CAU1B,MATA,GAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACF,EA4CX,SAAgB,GAAO,EAAK,EAAG,CAC3B,IAAI,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GAER,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,CAAC,EAAM,EAAM,EAAM,EACzB,EAAM,EAAM,EAAM,EAAM,EAGxB,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAgBxC,OAdK,GAGL,EAAM,EAAM,EAEZ,EAAI,GAAK,EAAM,EACf,EAAI,IAAM,CAAC,EAAM,EAAM,EAAM,GAAO,EACpC,EAAI,IAAM,EAAM,EAAM,EAAM,GAAO,EACnC,EAAI,GAAK,EAAM,EACf,EAAI,IAAM,EAAM,EAAM,EAAM,GAAO,EACnC,EAAI,IAAM,CAAC,EAAM,EAAM,EAAM,GAAO,EACpC,EAAI,GAAK,EAAM,EACf,EAAI,IAAM,CAAC,EAAM,EAAM,EAAM,GAAO,EACpC,EAAI,IAAM,EAAM,EAAM,EAAM,GAAO,EAC5B,GAbI,KA4Cf,SAAgB,GAAS,EAAK,EAAG,EAAG,CAChC,IAAI,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GAER,EAAMC,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GAaZ,MAXA,GAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EAEvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EAEvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EAChC,EAWX,SAAgB,GAAU,EAAK,EAAG,EAAG,CACjC,IAAI,EAAMD,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACRT,EAAIE,EAAE,GACNH,EAAIG,EAAE,GAaV,MAXA,GAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EAET,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EAET,EAAI,GAAKF,EAAI,EAAMD,EAAI,EAAM,EAC7B,EAAI,GAAKC,EAAI,EAAMD,EAAI,EAAM,EAC7B,EAAI,GAAKC,EAAI,EAAMD,EAAI,EAAM,EACtB,EAWX,SAAgB,GAAO,EAAK,EAAG,EAAK,CAChC,IAAI,EAAMU,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACRrB,EAAI,KAAK,IAAI,EAAI,CACjB0B,EAAI,KAAK,IAAI,EAAI,CAarB,MAXA,GAAI,GAAKA,EAAI,EAAM1B,EAAI,EACvB,EAAI,GAAK0B,EAAI,EAAM1B,EAAI,EACvB,EAAI,GAAK0B,EAAI,EAAM1B,EAAI,EAEvB,EAAI,GAAK0B,EAAI,EAAM1B,EAAI,EACvB,EAAI,GAAK0B,EAAI,EAAM1B,EAAI,EACvB,EAAI,GAAK0B,EAAI,EAAM1B,EAAI,EAEvB,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACF,EAWX,SAAgB,GAAM,EAAK,EAAG,EAAG,CAC7B,IAAIY,EAAIE,EAAE,GACNH,EAAIG,EAAE,GAaV,MAXA,GAAI,GAAKF,EAAIS,EAAE,GACf,EAAI,GAAKT,EAAIS,EAAE,GACf,EAAI,GAAKT,EAAIS,EAAE,GAEf,EAAI,GAAKV,EAAIU,EAAE,GACf,EAAI,GAAKV,EAAIU,EAAE,GACf,EAAI,GAAKV,EAAIU,EAAE,GAEf,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACX,EAAI,GAAKA,EAAE,GACJ,EAWX,SAAgB,GAAe,EAAK,EAAG,CACnC,IAAI,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,GACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IACR,EAAMA,EAAE,IAER,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EAGxB,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAmB5E,OAjBK,GAGL,EAAM,EAAM,EAEZ,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAE/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAE/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAC/C,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAO,EAExC,GAhBI,0CChZqC,CAEvC,GAAb,cAA0B,KAAM,CAC5B,YAAY,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,CAEzF,OADA,MAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,CAC3C,KAGX,IAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAG7C,OAFI,EAAI,OAAe,KAAK,KAAK,EAAI,EACrC,GAAa,KAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,CACxD,MAGX,UAAU,EAAG,EAAI,KAAM,CAEnB,OADA,GAAmB,KAAMnB,EAAGY,EAAE,CACvB,KAGX,OAAO,EAAG,EAAI,KAAM,CAEhB,OADA,GAAgB,KAAMZ,EAAGY,EAAE,CACpB,KAGX,MAAM,EAAG,EAAI,KAAM,CAEf,OADA,GAAe,KAAMZ,EAAGY,EAAE,CACnB,KAGX,SAAS,EAAI,EAAI,CAMb,OALI,EACA,GAAkB,KAAM,EAAI,EAAG,CAE/B,GAAkB,KAAM,KAAM,EAAG,CAE9B,KAGX,UAAW,CAEP,OADA,GAAkB,KAAK,CAChB,KAGX,KAAK,EAAG,CAEJ,OADA,GAAc,KAAMZ,EAAE,CACf,KAGX,YAAY,EAAG,CAEX,OADA,GAAkB,KAAMA,EAAE,CACnB,KAGX,eAAe,EAAG,CAEd,OADA,GAAkB,KAAME,EAAE,CACnB,KAGX,UAAU,EAAO,EAAO,EAAO,CAE3B,OADA,KAAK,IAAI,EAAM,GAAI,EAAM,GAAI,EAAM,GAAI,EAAM,GAAI,EAAM,GAAI,EAAM,GAAI,EAAM,GAAI,EAAM,GAAI,EAAM,GAAG,CAC3F,KAGX,QAAQ,EAAI,KAAM,CAEd,OADA,GAAgB,KAAMF,EAAE,CACjB,KAGX,gBAAgB,EAAG,CAEf,OADA,GAAwB,KAAMA,EAAE,CACzB,+BCtE4B,KACJ,KACA,CAEnCG,GAAK,EAEI,GAAb,cAA0B,EAAU,CAChC,YAAY,EAAI,CAAE,WAAU,UAAS,OAAO,EAAG,UAAW,gBAAgB,GAAM,cAAc,GAAM,EAAE,CAAE,CACpG,OAAO,CACF,EAAG,QAAQ,QAAQ,MAAM,0CAA0C,CACxE,KAAK,GAAK,EACV,KAAK,GAAK,KACV,KAAK,SAAW,EAChB,KAAK,QAAU,EACf,KAAK,KAAO,EAGZ,KAAK,cAAgB,EAGrB,KAAK,YAAc,EACnB,KAAK,gBAAkB,IAAI,GAC3B,KAAK,aAAe,IAAI,GACxB,KAAK,sBAAwB,EAAE,CAC/B,KAAK,qBAAuB,EAAE,CAGlC,eAAe,EAAG,CAEd,OADA,KAAK,sBAAsB,KAAKC,EAAE,CAC3B,KAGX,cAAc,EAAG,CAEb,OADA,KAAK,qBAAqB,KAAKA,EAAE,CAC1B,KAGX,KAAK,CAAE,UAAW,EAAE,CAAE,CACd,IAEK,KAAK,QAAQ,SAAS,aACvB,OAAO,OAAO,KAAK,QAAQ,SAAU,CACjC,YAAa,CAAE,MAAO,KAAM,CAC5B,WAAY,CAAE,MAAO,KAAM,CAC3B,gBAAiB,CAAE,MAAO,KAAM,CAChC,aAAc,CAAE,MAAO,KAAM,CAC7B,iBAAkB,CAAE,MAAO,KAAM,CACjC,eAAgB,CAAE,MAAO,KAAM,CAClC,CAAC,CAIN,KAAK,QAAQ,SAAS,iBAAiB,MAAQ,EAAO,iBACtD,KAAK,QAAQ,SAAS,eAAe,MAAQ,EAAO,cACpD,KAAK,QAAQ,SAAS,WAAW,MAAQ,EAAO,WAChD,KAAK,gBAAgB,SAAS,EAAO,WAAY,KAAK,YAAY,CAClE,KAAK,aAAa,gBAAgB,KAAK,gBAAgB,CACvD,KAAK,QAAQ,SAAS,YAAY,MAAQ,KAAK,YAC/C,KAAK,QAAQ,SAAS,gBAAgB,MAAQ,KAAK,gBACnD,KAAK,QAAQ,SAAS,aAAa,MAAQ,KAAK,cAEpD,KAAK,sBAAsB,QAAS,GAAMA,GAAKA,EAAE,CAAE,KAAM,KAAM,SAAQ,CAAC,CAAC,CAGzE,IAAI,EAAY,KAAK,QAAQ,UAAY,KAAK,YAAY,aAAa,CAAG,EAC1E,KAAK,QAAQ,IAAI,CAAE,YAAW,CAAC,CAC/B,KAAK,SAAS,KAAK,CAAE,KAAM,KAAK,KAAM,QAAS,KAAK,QAAS,CAAC,CAC9D,KAAK,qBAAqB,QAAS,GAAMA,GAAKA,EAAE,CAAE,KAAM,KAAM,SAAQ,CAAC,CAAC,MC5DhF,SAAS,GAAW,EAAO,CACvB,OAAQ,EAAS,EAAQ,IAAQ,0BAH/B,GAAa,IAAI,WAAW,EAAE,CAMhC,GAAK,EAEI,GAAb,KAAqB,CACjB,YACI,EACA,CACI,QACA,SAAS,EAAG,WACZ,OAAO,EAAG,cACV,SAAS,EAAG,KACZ,iBAAiB,EACjB,QAAQ,EAAG,cACX,QAAQ,EAAG,cACX,QAAQ,EAAG,cACX,kBAAkB,KAAY,EAAG,YAAc,EAAG,kBAClD,YAAY,EAAkB,EAAG,sBAAwB,EAAG,OAC5D,YAAY,EAAG,OACf,mBAAmB,GACnB,kBAAkB,EAClB,QAAQ,IAAW,EAAG,YAAc,EAAG,YACvC,aAAa,EACb,QAAQ,EACR,QACA,SAAS,EACT,OAAA,EAAS,GACT,EAAE,CACR,CACE,KAAK,GAAK,EACV,KAAK,GAAK,KAEV,KAAK,MAAQ,EACb,KAAK,OAAS,EACd,KAAK,KAAO,EACZ,KAAK,OAAS,EACd,KAAK,eAAiB,EACtB,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,gBAAkB,EACvB,KAAK,iBAAmB,EACxB,KAAK,gBAAkB,EACvB,KAAK,MAAQ,EACb,KAAK,WAAa,KAAK,IAAI,EAAY,KAAK,GAAG,SAAS,WAAW,cAAc,CACjF,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,OAAS,EACd,KAAK,OAASC,EACd,KAAK,QAAU,KAAK,GAAG,eAAe,CAEtC,KAAK,MAAQ,CACT,MAAO,KACV,CAGD,KAAK,QAAU,KAAK,GAAG,SAAS,MAGhC,KAAK,MAAQ,EAAE,CACf,KAAK,MAAM,UAAY,KAAK,GAAG,sBAC/B,KAAK,MAAM,UAAY,KAAK,GAAG,OAC/B,KAAK,MAAM,MAAQ,KAAK,GAAG,OAC3B,KAAK,MAAM,MAAQ,KAAK,GAAG,OAC3B,KAAK,MAAM,WAAa,EAG5B,MAAO,CAEC,KAAK,QAAQ,aAAa,KAAK,QAAQ,qBAAuB,KAAK,KACvE,KAAK,GAAG,YAAY,KAAK,OAAQ,KAAK,QAAQ,CAC9C,KAAK,QAAQ,aAAa,KAAK,QAAQ,mBAAqB,KAAK,IAGrE,OAAO,EAAc,EAAG,CACpB,IAAM,EAAc,EAAE,KAAK,QAAU,KAAK,MAAM,OAAS,CAAC,KAAK,aAG/D,IAAI,GAAe,KAAK,QAAQ,aAAa,KAAiB,KAAK,MAE/D,KAAK,GAAG,SAAS,cAAc,EAAY,CAC3C,KAAK,MAAM,EAGV,EAgDL,IA/CA,KAAK,YAAc,GAEf,KAAK,QAAU,KAAK,QAAQ,QAC5B,KAAK,GAAG,YAAY,KAAK,GAAG,oBAAqB,KAAK,MAAM,CAC5D,KAAK,QAAQ,MAAQ,KAAK,OAG1B,KAAK,mBAAqB,KAAK,QAAQ,mBACvC,KAAK,GAAG,YAAY,KAAK,GAAG,+BAAgC,KAAK,iBAAiB,CAClF,KAAK,QAAQ,iBAAmB,KAAK,kBAGrC,KAAK,kBAAoB,KAAK,QAAQ,kBACtC,KAAK,GAAG,YAAY,KAAK,GAAG,iBAAkB,KAAK,gBAAgB,CACnE,KAAK,QAAQ,gBAAkB,KAAK,iBAGpC,KAAK,YAAc,KAAK,MAAM,YAC9B,KAAK,GAAG,cAAc,KAAK,OAAQ,KAAK,GAAG,mBAAoB,KAAK,UAAU,CAC9E,KAAK,MAAM,UAAY,KAAK,WAG5B,KAAK,YAAc,KAAK,MAAM,YAC9B,KAAK,GAAG,cAAc,KAAK,OAAQ,KAAK,GAAG,mBAAoB,KAAK,UAAU,CAC9E,KAAK,MAAM,UAAY,KAAK,WAG5B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,GAAG,cAAc,KAAK,OAAQ,KAAK,GAAG,eAAgB,KAAK,MAAM,CACtE,KAAK,MAAM,MAAQ,KAAK,OAGxB,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,GAAG,cAAc,KAAK,OAAQ,KAAK,GAAG,eAAgB,KAAK,MAAM,CACtE,KAAK,MAAM,MAAQ,KAAK,OAGxB,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,GAAG,cAAc,KAAK,OAAQ,KAAK,GAAG,eAAgB,KAAK,MAAM,CACtE,KAAK,MAAM,MAAQ,KAAK,OAGxB,KAAK,YAAc,KAAK,aAAe,KAAK,MAAM,aAClD,KAAK,GAAG,cAAc,KAAK,OAAQ,KAAK,GAAG,SAAS,aAAa,iCAAiC,CAAC,2BAA4B,KAAK,WAAW,CAC/I,KAAK,MAAM,WAAa,KAAK,YAG7B,KAAK,MAAO,CAMZ,GALI,KAAK,MAAM,QACX,KAAK,MAAQ,KAAK,MAAM,MACxB,KAAK,OAAS,KAAK,MAAM,QAGzB,KAAK,SAAW,KAAK,GAAG,iBAExB,IAAK,IAAIa,EAAI,EAAGA,EAAI,EAAG,IACnB,KAAK,GAAG,WAAW,KAAK,GAAG,4BAA8BA,EAAG,KAAK,MAAO,KAAK,eAAgB,KAAK,OAAQ,KAAK,KAAM,KAAK,MAAMA,GAAG,SAEhI,YAAY,OAAO,KAAK,MAAM,CAEjC,KAAK,SAAW,KAAK,GAAG,WACxB,KAAK,GAAG,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,eAAgB,KAAK,MAAO,KAAK,OAAQ,EAAG,KAAK,OAAQ,KAAK,KAAM,KAAK,MAAM,EACzH,KAAK,SAAW,KAAK,GAAG,kBAAoB,KAAK,SAAW,KAAK,GAAG,aAC3E,KAAK,GAAG,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,eAAgB,KAAK,MAAO,KAAK,OAAQ,KAAK,OAAQ,EAAG,KAAK,OAAQ,KAAK,KAAM,KAAK,MAAM,SAE1I,KAAK,MAAM,oBAElB,IAAK,IAAI,EAAQ,EAAG,EAAQ,KAAK,MAAM,OAAQ,IAC3C,KAAK,GAAG,qBAAqB,KAAK,OAAQ,EAAO,KAAK,eAAgB,KAAK,MAAM,GAAO,MAAO,KAAK,MAAM,GAAO,OAAQ,EAAG,KAAK,MAAM,GAAO,KAAK,MAInJ,KAAK,SAAW,KAAK,GAAG,WACxB,KAAK,GAAG,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,eAAgB,KAAK,OAAQ,KAAK,KAAM,KAAK,MAAM,CAEpG,KAAK,GAAG,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,eAAgB,KAAK,MAAO,KAAK,OAAQ,KAAK,OAAQ,EAAG,KAAK,OAAQ,KAAK,KAAM,KAAK,MAAM,CAIjJ,KAAK,kBAED,CAAC,KAAK,GAAG,SAAS,WAAa,CAAC,GAAW,KAAK,MAAM,MAAM,EAAI,CAAC,GAAW,KAAK,MAAM,OAAO,GAC9F,KAAK,gBAAkB,GACvB,KAAK,MAAQ,KAAK,MAAQ,KAAK,GAAG,cAClC,KAAK,UAAY,KAAK,GAAG,QAEzB,KAAK,GAAG,eAAe,KAAK,OAAO,EAK3C,KAAK,UAAY,KAAK,UAAU,SAE5B,KAAK,SAAW,KAAK,GAAG,iBAExB,IAAK,IAAIA,EAAI,EAAGA,EAAI,EAAG,IACnB,KAAK,GAAG,WAAW,KAAK,GAAG,4BAA8BA,EAAG,EAAG,KAAK,GAAG,KAAM,EAAG,EAAG,EAAG,KAAK,GAAG,KAAM,KAAK,GAAG,cAAe,GAAW,MAEnI,KAAK,MAER,KAAK,SAAW,KAAK,GAAG,WACxB,KAAK,GAAG,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,eAAgB,KAAK,MAAO,KAAK,OAAQ,EAAG,KAAK,OAAQ,KAAK,KAAM,KAAK,CAE1H,KAAK,GAAG,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,eAAgB,KAAK,MAAO,KAAK,OAAQ,KAAK,OAAQ,EAAG,KAAK,OAAQ,KAAK,KAAM,KAAK,CAI3I,KAAK,GAAG,WAAW,KAAK,OAAQ,EAAG,KAAK,GAAG,KAAM,EAAG,EAAG,EAAG,KAAK,GAAG,KAAM,KAAK,GAAG,cAAe,GAAW,CAGlH,KAAK,MAAM,MAAQ,KAAK,2BC9MM,sBCAS,CAElC,GAAb,MAAa,UAAc,EAAS,CAChC,YAAY,EAAI,CAAE,QAAQ,EAAG,SAAS,EAAG,gBAAgB,EAAG,iBAAiB,EAAG,aAAa,EAAE,EAAK,EAAE,CAAE,CACpG,IAAM,EAAQ,EACR,EAAQ,EAGR,GAAO,EAAQ,IAAM,EAAQ,GAC7B,EAAa,EAAQ,EAAQ,EAG7B,EAAW,IAAI,aAAa,EAAM,EAAE,CACpC,EAAS,IAAI,aAAa,EAAM,EAAE,CAClC,EAAK,IAAI,aAAa,EAAM,EAAE,CAC9BX,EAAQ,EAAa,MAAQ,IAAI,YAAY,EAAW,CAAG,IAAI,YAAY,EAAW,CAE5F,EAAM,WAAW,EAAU,EAAQ,EAAIA,EAAO,EAAO,EAAQ,EAAG,EAAO,EAAM,CAE7E,OAAO,OAAO,EAAY,CACtB,SAAU,CAAE,KAAM,EAAG,KAAM,EAAU,CACrC,OAAQ,CAAE,KAAM,EAAG,KAAM,EAAQ,CACjC,GAAI,CAAE,KAAM,EAAG,KAAM,EAAI,CACzB,MAAO,CAAE,KAAMA,EAAO,CACzB,CAAC,CAEF,MAAM,EAAI,EAAW,CAGzB,OAAO,WAAW,EAAU,EAAQ,EAAI,EAAO,EAAO,EAAQ,EAAO,EAAO,EAAO,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAO,EAAG,EAAO,GAAI,EAAI,EAAG,EAAK,EAAG,CACxI,IAAM,EAAKW,EACL,EAAO,EAAQ,EACf,EAAO,EAAS,EAEtB,IAAK,IAAI,EAAK,EAAG,GAAM,EAAO,IAAM,CAChC,IAAIT,EAAI,EAAK,EAAO,EAAS,EAC7B,IAAK,IAAI,EAAK,EAAG,GAAM,EAAO,IAAM,IAAK,CACrC,IAAIC,EAAI,EAAK,EAAO,EAAQ,EAa5B,GAXA,EAASQ,EAAI,EAAIP,GAAKD,EAAI,EAC1B,EAASQ,EAAI,EAAIN,GAAKH,EAAI,EAC1B,EAASS,EAAI,EAAIL,GAAK,EAAQ,EAE9B,EAAOK,EAAI,EAAIP,GAAK,EACpB,EAAOO,EAAI,EAAIN,GAAK,EACpB,EAAOM,EAAI,EAAIL,GAAK,GAAS,EAAI,EAAI,GAErC,EAAGK,EAAI,GAAK,EAAK,EACjB,EAAGA,EAAI,EAAI,GAAK,EAAI,EAAK,EAErB,IAAO,GAAS,IAAO,EAAO,SAClC,IAAIC,EAAI,EAAK,EAAK,GAAM,EAAQ,GAC5BC,EAAI,EAAK,GAAM,EAAK,IAAM,EAAQ,GAClCI,EAAI,EAAK,GAAM,EAAK,IAAM,EAAQ,GAAK,EACvCP,EAAI,EAAK,EAAK,GAAM,EAAQ,GAAK,EAErC,EAAM,EAAK,GAAKE,EAChB,EAAM,EAAK,EAAI,GAAKC,EACpB,EAAM,EAAK,EAAI,GAAKH,EACpB,EAAM,EAAK,EAAI,GAAKG,EACpB,EAAM,EAAK,EAAI,GAAKI,EACpB,EAAM,EAAK,EAAI,GAAKP,EACpB,0BC9D+B,KACZ,mBCDY,IACR,mBCDQ,IACR,mBCDQ,mBCEA,IACR,sBCEA,kBCDA,KACA,ICavC,SAAS,GAAa,EAAQ,EAAG,EAAI,KAAO,EAAI,KAAO,CAQnD,GAPIC,EAAI,EACJ,GAAI,IAAI,EAAO,GAAI,EAAO,GAAG,CAAC,MAAMC,EAAE,CAAC,IAAI,EAAO,GAAG,CAErD,GAAI,IAAI,EAAOD,EAAI,GAAI,EAAOA,EAAI,GAAG,CAChC,MAAMC,EAAE,CACR,IAAI,EAAOD,GAAG,CAEnBA,EAAI,EAAO,OAAS,EAAG,CACvB,IAAM,EAAO,EAAO,OAAS,EAC7B,GAAI,IAAI,EAAO,EAAO,GAAI,EAAO,GAAM,CAClC,MAAME,EAAE,CACR,IAAI,EAAO,GAAM,MAEtB,GAAI,IAAI,EAAOF,GAAI,EAAOA,EAAI,GAAG,CAC5B,MAAME,EAAE,CACR,IAAI,EAAOF,EAAI,GAAG,CAE3B,MAAO,CAAC,GAAI,OAAO,CAAE,GAAI,OAAO,CAAC,CAGrC,SAAS,GAAwB,EAAG,EAAI,EAAI,EAAI,CAC5C,IAAMG,EAAI,EAAIgI,EACd,GAAI,KAAK,EAAG,CAAC,MAAMhI,GAAK,EAAE,CAC1B,GAAI,KAAK,EAAG,CAAC,MAAM,EAAIA,EAAIgI,EAAE,CAC7B,GAAI,KAAK,EAAG,CAAC,MAAMA,GAAK,EAAE,CAC1B,IAAM,EAAM,IAAI,EAEhB,OADA,EAAI,IAAI,GAAK,GAAI,CAAC,IAAI,GAAI,CACnB,EAGX,SAAS,GAAoB,EAAG,EAAI,EAAI,EAAI,EAAI,CAC5C,IAAMhI,EAAI,EAAIgI,EACd,GAAI,KAAK,EAAG,CAAC,MAAMhI,GAAK,EAAE,CAC1B,GAAI,KAAK,EAAG,CAAC,MAAM,EAAIA,GAAK,EAAIgI,EAAE,CAClC,GAAI,KAAK,EAAG,CAAC,MAAM,EAAIhI,EAAIgI,GAAK,EAAE,CAClC,GAAI,KAAK,EAAG,CAAC,MAAMA,GAAK,EAAE,CAC1B,IAAM,EAAM,IAAI,EAEhB,OADA,EAAI,IAAI,GAAK,GAAI,CAAC,IAAI,GAAI,CAAC,IAAI,GAAI,CAC5B,4CAzD4B,CAEjC,GAAa,aACb,GAAc,cACd,GAAkB,kBAGlB,GAAsB,IAAI,EAC5B,GAAsB,IAAI,EAC1B,GAAsB,IAAI,EAC1B,GAAsB,IAAI,EAkDjB,GAAb,MAAa,CAAM,CACf,YAAY,CAAE,SAAS,CAAC,IAAI,EAAK,EAAG,EAAG,EAAE,CAAE,IAAI,EAAK,EAAG,EAAG,EAAE,CAAE,IAAI,EAAK,EAAG,EAAG,EAAE,CAAE,IAAI,EAAK,EAAG,EAAG,EAAE,CAAC,CAAE,YAAY,GAAI,OAAO,IAAe,EAAE,CAAE,CAC3I,KAAK,OAAS,EACd,KAAK,UAAY,EACjB,KAAK,KAAO,EAGhB,0BAA0B,EAAY,KAAK,UAAW,CAClD,IAAM,EAAS,EAAE,CACX,EAAQ,KAAK,OAAO,OAE1B,GAAI,EAAQ,EAER,OADA,QAAQ,KAAK,8BAA8B,CACpC,EAAE,CAGb,IAAM,EAAK,KAAK,OAAO,GACnB,EAAK,KAAK,OAAO,GACjB,EAAK,KAAK,OAAO,GAErB,IAAK,IAAInI,EAAI,EAAGA,GAAK,EAAW,IAAK,CACjC,IAAMK,EAAI,GAAwBL,EAAI,EAAW,EAAI,EAAI,EAAG,CAC5D,EAAO,KAAKK,EAAE,CAGlB,IAAI,EAAS,EACb,KAAO,EAAQ,EAAS,GAAG,CACvB,EAAG,KAAK,EAAG,CACX,EAAK,EAAG,MAAM,EAAE,CAAC,IAAI,EAAG,CACxB,EAAK,KAAK,OAAO,GACjB,IAAK,IAAIL,EAAI,EAAGA,GAAK,EAAW,IAAK,CACjC,IAAMK,EAAI,GAAwBL,EAAI,EAAW,EAAI,EAAI,EAAG,CAC5D,EAAO,KAAKK,EAAE,CAElB,IAGJ,OAAO,EAGX,sBAAsB,EAAY,KAAK,UAAW,CAC9C,IAAM,EAAS,EAAE,CACX,EAAQ,KAAK,OAAO,OAE1B,GAAI,EAAQ,EAER,OADA,QAAQ,KAAK,8BAA8B,CACpC,EAAE,CAGb,IAAI,EAAK,KAAK,OAAO,GACjB,EAAK,KAAK,OAAO,GACjB,EAAK,KAAK,OAAO,GACjB,EAAK,KAAK,OAAO,GAErB,IAAK,IAAIL,EAAI,EAAGA,GAAK,EAAW,IAAK,CACjC,IAAMK,EAAI,GAAoBL,EAAI,EAAW,EAAI,EAAI,EAAI,EAAG,CAC5D,EAAO,KAAKK,EAAE,CAGlB,IAAI,EAAS,EACb,KAAO,EAAQ,EAAS,GAAG,CACvB,EAAG,KAAK,EAAG,CACX,EAAK,EAAG,MAAM,EAAE,CAAC,IAAI,EAAG,CACxB,EAAK,KAAK,OAAO,GACjB,EAAK,KAAK,OAAO,EAAS,GAC1B,IAAK,IAAIL,EAAI,EAAGA,GAAK,EAAW,IAAK,CACjC,IAAMK,EAAI,GAAoBL,EAAI,EAAW,EAAI,EAAI,EAAI,EAAG,CAC5D,EAAO,KAAKK,EAAE,CAElB,GAAU,EAGd,OAAO,EAGX,qBAAqB,EAAY,KAAK,UAAW,EAAI,KAAO,EAAI,KAAO,CACnE,IAAM,EAAS,EAAE,CAGjB,GAFc,KAAK,OAAO,QAEb,EACT,OAAO,KAAK,OAGhB,IAAI,EAgBJ,OAfA,KAAK,OAAO,SAAS,EAAG,IAAM,CAC1B,GAAIL,IAAM,EACN,EAAKK,MACF,CACH,GAAM,CAAC,EAAI,GAAM,GAAa,KAAK,OAAQL,EAAI,EAAGC,EAAGC,EAAE,CACjDI,EAAI,IAAI,EAAM,CAChB,OAAQ,CAAC,EAAI,EAAI,EAAID,EAAE,CACvB,KAAM,GACT,CAAC,CACF,EAAO,KAAK,CACZ,EAAO,KAAK,GAAGC,EAAE,UAAU,EAAU,CAAC,CACtC,EAAKD,IAEX,CAEK,EAGX,UAAU,EAAY,KAAK,UAAW,EAAI,KAAO,EAAI,KAAO,CACxD,IAAM,EAAO,KAAK,KAclB,OAZI,IAAS,GACF,KAAK,0BAA0B,EAAU,CAGhD,IAAS,GACF,KAAK,sBAAsB,EAAU,CAG5C,IAAS,GACF,KAAK,qBAAqB,EAAWJ,EAAGC,EAAE,CAG9C,KAAK,SAIpB,GAAM,WAAa,GACnB,GAAM,YAAc,GACpB,GAAM,gBAAkB,oBCtLkB,kBCAA,kBCAA,KACuB,kBCFvB,KACA,KACe,KACQ,KACtB,mBCJI,IACR,mBCAA,KACgB,KACd,kBCHF,KACA,mBCDA,KACU,KACV,KACM,KACF,mBCJY,KAEhB,KAEE,mBCHF,KACM,KACU,KACd,mBCJM,KAER,IAEA,mBCJI,KAEY,mBCFV,uBCAA,KACA,kBCDN,KACA,mBCDA,KACA,KACM,mBCFI,KACV,mBCDQ,KACE,KACJ,KACN,KACI,KACQ,KACV,KACF,IACA,KAEY,mBCVZ,KAEQ,mBCFL,KAEQ,IACR,mBCHA,KAEQ,IACR,mBCHA,KAEQ,IACR,mBCHA,KAEQ,IACR,mBCHG,mBCCC,KACF,KACE,KACJ,KACM,KACV,KACM,KACU,KAId,KAEF,KACA,IAEA,KAII,KACJ,KACM,KACI,KACA,KACN,KACA,KACI,KACJ,KACG,KACL,KACA,KACA,KACU,KAGJ,KACJ,KACM,KACJ,KACQ,KACM,KACN,KACJ,KACU,KAGV,KACY,KACA,KACkB,KACJ,KAChB,KACR,wBCtDP,CAuB5Bc,GAAoB;;;;;;;;;;;MAWhBE,GAAsB;;;;;;;;;;SClCkX,SAAgB,GAAY,EAAS,EAAM,EAAW,EAAU,EAAQ,EAAE,CAAC,CAAC,IAAM,EAASsV,EAAO,EAAE,CAAC,CAAM,CAAC,EAAc,GAAkB9V,EAAS,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAM,CAAC,EAAQ,GAAYA,EAAS,GAAM,CAAO,EAAiB8V,EAAO,GAAM,CAAO,EAAmBA,EAAO,KAAK,CAAO,EAAkBA,EAAO,KAAK,CAAM,CAAC,aAAA,EAAa,eAAA,EAAe,YAAU,QAAQ,WAAS,EAAE,CAAC,uBAAqB,EAAE,EAAE,EACjzB,EAA4B,CAAC,UAAU,KAAK,KAAK,KAAK,SAAS,KAAK,GAAG,EAAqB,CAClG,AAAgC,EAAmB,UAAQ,KAAK,MAAM,KAAK,UAAU,EAAS,CAAC,CAC/F,IAAM,EAAsB7V,GAAa,EAAO,IAAU,CACvDC,EAAQ,WAAW,EAAO,aAAa,aAAaA,EAAQ,UAAU,CAAKA,EAAQ,MAAM,EAAO,aAAa,OAAOA,EAAQ,KAAK,CAAKA,EAAQ,WAAW,MAAMA,EAAQ,WAAW,IAAA,KAAW,EAAO,SAASA,EAAQ,WAAY,EAAE,CAAC,CACjO,EAAYD,MAAgB,CAAC,GAAK,CAAC,WAAS,SAAO,QAAM,WAAS,EAAS,QAAQ,EAAQ,YAAY,GAAK,EAAS,OAAO,CAAC,QAAM,SAAO,CAAC,EAAG,CAAC,EAAU,CAAC,CAC1JE,EAAmBF,GAAa,EAAW,EAAY,EAAe,EAAgB,IAAU,CAAC,IAAM,EAAY,EAAW,EAAkB,EAAgB,EAAe,EAAoB,EAAW,EAAkS,OAAnR,IAAU,SAAS,EAAY,EAAgB,EAAW,GAAwB,IAAU,YAAc,EAAY,GAAiB,EAAW,EAAe,EAAY,EAAe,IAAkB,EAAY,EAAgB,EAAW,EAAgB,IAAoB,CAAC,MAAM,EAAW,OAAO,EAAY,EAAG,EAAE,CAAC,CACjiB,EAAgBA,GAAa,EAAM,EAAO,IAAU,CAAC,GAAK,CAAC,WAAS,SAAO,OAAK,WAAS,EAAS,QAAQ,GAAG,CAAC,GAAU,CAAC,GAAQ,CAAC,GAAM,CAAC,EAAQ,OACvJ,IAAM,EAAc,EAAS,GAAG,OAAU,OAAc,QAAQ,EAAM,EAAS,KAAK,EAAc,SAAS,EAAO,EAAS,OAE3H,EAAS,QAAQ,EAAM,EAAO,CAC4C,EAAO,IAApD,EAAE,KAAK,KAAK,EAAO,EAAjC,IAA4C,EAAE,IAAI,KAAK,IAAmB,EAAO,OAAO,EAAM,EAAO,EAAO,wBAAwB,CAChJ,EAAQ,WAAa,EAAQ,SAAS,YAAY,EAAW,OAAO,EAAW,SAAQ,EAAQ,SAAS,WAAW,MAAM,CAAC,EAAW,MAAM,EAAW,OAAO,EAAK,EAAQ,SAAS,aAAY,EAAQ,SAAS,WAAW,MAAM,CAAC,EAAM,EAAO,EAAK,EAAQ,SAAS,WAAU,EAAQ,SAAS,SAAS,MAAM,IAAU,QAAQ,EAAE,EAAE,QAAQ,IAAI,EAAQ,SAAS,SAAS,MAAM,GACjX,EAAW,OAAO,EAAW,QAAO,CAAC,IAAM,EAAUE,EAAmB,EAAW,MAAM,EAAW,OAAO,EAAM,EAAO,EAAU,CAC/H,EAAG,EAAS,GAAS,EAAY,IAAI,GAAM,EAAG,CAAC,MAAM,EAAU,MAAM,OAAO,EAAU,OAAO,CAAC,CAC9F,EAAY,EAAK,SAAS,EAAK,SAAS,EAAY,EAAS,QAAQ,SAAS,EACjF,GAAa,IAAc,GAAa,EAAY,SAAS,EAAY,SAAS,GAAK,CAAC,EAAWA,EAAmB,EAAU,CAAC,CAC9H,EAAoBF,MAAgB,CAAC,GAAG,CAAC,EAAS,QAAQ,OAAO,IAAM,EAAS,EAAS,QAAQ,YAAkB,EAAU,EAAS,QAAQ,aACpJ,EAAiB,GAAc,EAAS,QAAQ,GAAU,EAAS,SAAS,EAAiB,CAAC,MAAM,EAAS,OAAO,EAAU,CAAS,EAAW,EAAG,CAAC,EAAS,CAAC,CAqBmC,OApBnM,OAAe,GAAqB,CACjC,EAAkB,SAAS,EAAkB,QAAQ,YAAY,CAAK,EAAS,UAAS,EAAkB,QAAQ,IAAI,eAAe,GAAS,CACjJ,IAAI,IAAM,KAAS,EAAQ,CAAC,GAAK,CAAC,QAAM,UAAQ,EAAM,YAAY,EAAiB,GAAc,EAAS,QAAQ,GAAO,EAAS,SAAS,EAAc,CAAC,QAAM,SAAO,CAAS,EAAW,GAAI,CAAC,EAAkB,QAAQ,QAAQ,EAAS,QAAQ,MAAY,CAAI,EAAkB,SAAS,EAAkB,QAAQ,YAAY,GAAM,CAAC,EAAS,CAAC,CACrV,MAAc,CAAC,GAAG,CAAC,EAAS,SAAS,EAAc,QAAQ,GAAG,EAAc,SAAS,GAAG,EAAiB,QAAQ,OAAO,IAAI,EAAS,EAAO,EAAM,EAAQ,EAAK,EAAQ,EAcvK,OAd2L,SAAS,CAAC,GAAK,CAAC,QAAM,UAAQ,EACzN,EAAS,IAAI,GAAS,CAAC,QAAM,SAAO,IAAI,KAAK,IAAI,EAAO,iBAAiB,EAAE,CAAC,MAAM,GAAK,mBAAmB,GAAM,CAAC,CAAC,IAAM,EAAG,EAAS,GACpI,EAAS,QAAQ,UAAU,GAAG,EAAS,QAAQ,YAAY,EAAG,OAAO,CACrE,EAAG,OAAO,MAAM,MAAM,OAAO,EAAG,OAAO,MAAM,OAAO,OAAO,EAAG,OAAO,MAAM,QAAQ,QAAQ,EAAsB,EAAG,OAAO,EAA4B,CAAC,EAAG,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAG,OAAO,EAAG,MAAM,CAAC,EAAG,UAAU,EAAG,UAAU,EAAG,oBAAoB,CACpP,IAAMG,EAAS,IAAU,EAAI,EAAE,KAAK,KAAK,EAAO,EAAEA,EAAS,EAAE,IAAI,KAAK,IACtE,EAAO,IAAI,GAAO,EAAG,CAAK,MAAI,OAAO,EAAM,EAAO,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,EAAO,SAAS,IAAI,EAAE,EAAEA,EAAS,CACpG,EAAM,IAAI,GACV,IAAM,EAAgB,IAAY,QAAmB,EAAQ,IAAI,GAAQ,EAAG,CAAC,UAAU,EAAgB,EAAG,qBAAqB,EAAG,OAAO,UAAU,EAAG,OAAuB,kBAAgB,iBAAiB,GAAM,gBAAgB,EAAE,MAAM,EAAG,cAAc,MAAM,EAAG,cAAc,OAAO,EAAG,KAAK,eAAe,EAAG,KAAK,CAAC,CACxT,IAAO,EAAQ,MAAM,GACxB,IAAM,EAAUD,EAAmB,EAAW,OAAO,EAAM,EAAW,QAAQ,EAAO,EAAM,EAAO,EAAU,CAC5G,EAAQ,IAAI,GAAQ,EAAG,CAAC,OAAOE,GAAcC,GAAoB,SAASC,GAAgBC,GAAsB,SAAS,CAAC,SAAS,CAAC,MAAM,EAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAW,OAAO,EAAM,EAAW,QAAQ,EAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAM,EAAO,CAAC,CAAC,SAAS,CAAC,MAAM,IAAY,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAmB,QAAQ,CAAC,YAAY,GAAK,SAAS,KAAK,CAAC,CACpW,EAAS,IAAI,GAAM,EAAG,CAAC,MAAM,EAAU,MAAM,OAAO,EAAU,OAAO,CAAC,CACtE,EAAK,IAAI,GAAK,EAAG,CAAC,WAAS,UAAQ,CAAC,CAAC,EAAK,UAAU,EAAM,CAC1D,EAAS,QAAQ,CAAC,WAAS,SAAO,QAAM,UAAQ,OAAK,UAAQ,WAAS,KAAG,eAAe,GAAa,CAAC,OAAO,KAAK,EAAY,CAAC,QAAQ,GAAK,CAAI,EAAQ,SAAS,KAAM,EAAQ,SAAS,GAAK,MAAM,EAAY,KAAQ,EAAG,CAAC,EAAiB,QAAQ,GAAK,EAAW,GAAK,IAAS,KACxQ,CACV,GAAG,EAAS,CAAC,IAAM,EAAG,EAAS,GAAM,EAAG,QAAQ,EAAG,OAAO,YAAY,EAAG,OAAO,WAAW,YAAY,EAAG,OAAO,CAAE,IAAM,EAAY,EAAG,aAAa,qBAAqB,CAAI,GAAa,EAAY,aAAa,CACpN,EAAS,QAAQ,EAAE,CAAC,EAAiB,QAAQ,GAAM,EAAW,GAAM,GAAK,CAAC,EAAMH,EAAaE,EAAe,EAAU,CAAC,CACvH,MAAc,CAAI,EAAiB,SAAS,EAAc,MAAM,GAAG,EAAc,OAAO,GAAG,EAAgB,EAAc,MAAM,EAAc,OAAO,EAAU,EAAI,CAAC,EAAc,EAAgB,CAAC,CAAO,CAAC,SAAS,EAAS,QAAQ,gBAAc,cAAY,UAAQ,uBAvC3N,IAAyD,KAAwF,KAAmJ,mBCAxN,KAAgH,KAA2E,KAAiG,KAA4D,KAAkE,qBCApgB,GAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BX,GAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBC3Ba,IAA4C,IAAwC,IAA6C,KAAoI,KAA8L,CAAa,IAAU,CAAC,WAAS,WAAS,YAAU,OAAK,MAAI,OAAK,MAAA,EAAM,UAAQ,UAAQ,cAAY,iBAAe,gBAAc,YAAU,SAAO,UAAQ,aAAW,yBAAuB,CAAC,IAAM,EAASuV,EAAO,KAAK,CAAO,EAAiB,IAAqB,CAAM,CAAC,QAAM,aAAW,WAAS,UAAQ,iBAAe,YAAU,cAAY,GAAS,EAAS,EAAU,EAAK,CAAC,EAAiB,CAAM,CAAC,WAAS,eAAY,gBAAc,WAAS,GAAY,EAAS,EAAM,EAAW,EAAU,CAAC,UAAU,GAAM,gBAAa,kBAAe,UAAU,EAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAK,CAAC,OAAO,CAAC,MAAM,GAAShV,EAAM,CAAC,CAAC,SAAS,CAAC,MAAM,EAAQ,CAAC,aAAa,CAAC,MAAM,EAAQ,YAAY,CAAC,OAAO,CAAC,MAAM,EAAQ,MAAM,CAAC,YAAY,CAAC,MAAM,EAAQ,WAAW,CAAC,OAAO,CAAC,MAAM,EAAQ,MAAM,CAAC,YAAY,CAAC,MAAM,EAAQ,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAQ,QAAQ,EAAQ,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,UAAU,EAAc,WAAW,EAAU,IAAY,QAAQ,GAAG,EAAS,KAAK,IAAY,QAAQ,QAAQ,MAAM,SAAS,KAAK,CAAC,CAAC,CACr+C,MAAc,CAAI,CAAC,GAAkB,CAAC,GAAU,CAAC,GAAkB,EAAS,WAAU,EAAS,eAAe,CAAC,MAAM,EAAK,OAAO,GAASA,EAAM,CAAC,SAAS,EAAQ,aAAa,EAAQ,YAAY,OAAO,EAAQ,MAAM,YAAY,EAAQ,WAAW,OAAO,EAAQ,MAAM,YAAY,EAAQ,WAAW,QAAQ,CAAC,EAAQ,QAAQ,EAAQ,QAAQ,CAAC,CAAC,CAAC,IAAa,GAAI,CAAC,EAAS,EAAQ,EAAS,EAAI,EAAKA,EAAM,EAAQ,EAAQ,EAAc,EAAiB,CAAC,CAClc,MAAc,CAAI,MAAC,GAAkB,CAAC,IAAmB,EAAS,SAAS,CAAC,IAAa,CAAC,IAAM,EAAU,eAAe,CAAC,IAAa,EAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAU,IAAM,CAAC,EAAS,EAAiB,CAAC,CACnN,IAAM,EAAgBwR,OAAa,CAAC,KAAK,CAAC,KAAK,EAAK,GAAG,EAAY,OAAO,KAAK,CAAC,MAAM,CAAC,KAAKxR,EAAM,GAAG,EAAY,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAQ,GAAG,EAAY,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAQ,MAAM,GAAG,EAAY,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,EAAQ,WAAW,GAAG,EAAY,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,EAAQ,MAAM,GAAG,EAAY,OAAO,MAAM,CAAC,EAAE,CAAC,EAAKA,EAAM,EAAQ,EAAQ,EAAY,OAAO,CAAC,CAAO,GAAa,EAAY,OAAO,OAAa,GAAWwR,OAAa,CAAC,GAAG,EAAe,EAAE,CAAC,EAAe,CAAC,CACvgB,CAAC,SAAA,GAAS,uBAAoB,GAAoB,EAAY,GAAW,EAAS,CAAC,GAAa,CAChG,CAAC,SAAO,cAAY,GAAkB,EAAgB,EAAY,GAAW,EAAS,GAAa,CAClG,EAAcA,OAAa,CAAM,OAAK,MAAMxR,EAAc,UAAQ,WAAW,EAAQ,WAAW,MAAM,EAAQ,MAAM,MAAM,EAAQ,MAAM,QAAQ,EAAQ,QAAQ,QAAQ,EAAQ,QAAQ,EAAE,CAAC,EAAKA,EAAM,EAAQ,EAAQ,CAAC,CAAM,CAAC,gBAAa,sBAAmB,GAAiB,EAAc,GAAW,EAAY,OAAO,UAAU,CACrU,GAAwBwR,MAC3B,EAAY,OAAO,UAAkB,IAAS,CAAC,MAAM,GAAa,KAAK,KAAK,CAAC,OAAO,GAAS,GAAa,MAAM,KAAK,CAAC,CAAC,SAAS,GAAa,QAAQ,KAAK,CAAC,YAAY,GAAa,WAAW,KAAK,CAAC,OAAO,GAAa,MAAM,KAAK,CAAC,OAAO,GAAa,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAa,QAAQ,KAAK,CAAC,GAAa,QAAQ,KAAK,CAAC,CAAC,EACrU,GACI,IAAS,CAAC,MAAM1R,EAAO,KAAK,OAAO,GAASA,EAAO,MAAM,CAAC,OAAOA,EAAO,MAAM,SAASA,EAAO,QAAQ,OAAOA,EAAO,MAAM,YAAYA,EAAO,WAAW,QAAQ,CAACA,EAAO,QAAQA,EAAO,QAAQ,CAAC,GAChM,EAAE,KAAY,CAAC,MAAM,EAAKC,EAAS,OAAO,EAAQ,MAAMA,EAAS,EAAK,CAAC,EAAY,KAAK,GAAa,EAAKC,EAAM,EAAQ,EAAQ,CAAC,CACxI,MAAc,CAAI,GAAkB,CAAC,GAAU,CAAC,IAAkB,EAAS,UAAU,IAAa,CAAK,GAAQ,OAAO,GAAS,YAAY,GAAQ,GAAI,CAAC,EAAS,EAAQ,EAAS,EAAc,EAAiB,EAAO,CAAC,CACzN,GAAkB,GAAM,CAAI,GAAkB,CAAC,GAAU,CAAC,GAAkB,EAAS,WAA6B,EAAQ,SAAS,UAAU,EAAY,OAAO,WAAW,GAAY,IAAoB,KAAgC,EAAS,eAAe,GAAwB,EAAOD,GAAS,CAAC,CAAC,IAAa,GAAK,CAC/T,IAAM,GAAaiV,EAAO,CAAC,UAAQ,iBAAe,aAAW,sBAAmB,qBAAkB,CAAC,CAAukC,OAAtkC,MAAc,CAAI,IAA2B,GAAS,CAAC,GAAa,QAAQ,SAAS,GAAS,OAAO,GAAU,YAAY,GAAS,CAAE,GAAa,QAAQ,QAAQ,IAAU,CAAC,EAAiB,EAAQ,EAAQ,CAAC,CAAC,MAAc,CAAI,IAA2B,CAAC,GAAgB,GAAa,QAAQ,gBAAgB,GAAY,OAAO,GAAa,YAAY,GAAY,CAAE,GAAa,QAAQ,eAAe,IAAiB,CAAC,EAAiB,EAAe,EAAW,CAAC,CAAC,MAAc,CAAC,GAAG,EAAiB,OAAO,IAAM,EAAkB,CAAC,GAAY,CAAC,IAAoB,CAAC,GAAwB,EAAiB,GAAa,QAAQ,YAAY,GAAa,QAAQ,oBAAoB,GAAa,QAAQ,kBAAqB,GAAmB,GAAkB,GAAqB,OAAO,GAAsB,YAAY,GAAqB,CAAE,GAAa,QAAQ,WAAW,EAAW,GAAa,QAAQ,mBAAmB,GAAmB,GAAa,QAAQ,kBAAkB,IAAoB,CAAC,EAAiB,EAAW,GAAmB,GAAkB,EAAoB,CAAC,CAAqB,EAAK,MAAM,CAAC,IAAI,EAAS,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,SAAS,SAAS,CAAC,CAAC,KCA9xC,SAAS,GAAU,CAAC,OAAK,OAAK,UAAQ,WAAS,UAAQ,eAAa,OAAK,YAAU,OAAK,MAAI,OAAK,MAAA,EAAM,UAAQ,UAAQ,cAAY,aAAW,gBAAc,YAAU,SAAO,UAAQ,aAAW,uBAAqB,CAAC,GAAK,CAAC,WAAS,WAAS,aAAW,GAAe,EAAK,EAAK,EAAS,EAAQ,EAAa,EAAU,EAAK,YAAY,CAAO,EAAmB,IAAkB,CAAkM,OAA9L,EAAc,eAAe,EAAc,QAAQ,EAAwC,EAAK,GAAgB,CAAW,YAAmB,WAAkB,WAAa,MAAS,OAAK,CAAC,CAAsB,EAAK,GAAS,CAAW,YAAmB,WAAkB,WAAc,OAAS,MAAS,OAAK,MAAMhV,EAAc,UAAgB,UAAoB,cAAY,eAAe,EAAyB,gBAAwB,YAAiB,SAAe,UAAmB,aAA+B,sBAAoB,CAAC,sBAVh3B,IAAqE,KAAyJ,KAA6G,IAUsjB,GAAU,GAAU,YAAY,aAAa,GAAoB,GAAU,CAAC,GAAG,GAAiB,MAAM,GAAG,GAAiB,KAAK,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,eAAe,GAAM,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,eAAe,GAAM,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,IAAO,aAAa,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,eAAe,GAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,YAAY,UAAU,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,YAAY,QAAQ,SAAS,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,YAAY,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,UAAU,SAAS,OAAO,CAAC,aAAa,EAAE,OAAO,EAAM,CAAC,OAAO,EAAM,QAAQ,GAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,YAAY,YAAY,KAAK,cAAc,SAAS,CAAC,GAAG,GAAiB,gBAAgB,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,YAAY,SAAS,KAAK,SAAS,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAW,EAAM,OAAO,WAAY,SAAS,CAAC,OAAO,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAM,YAAY,0DAA0D,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,eAAe,GAAM,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,aAAa,GAAG,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,QAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,eAAe,GAAM,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,IAAO,aAAa,EAAE,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,QAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,eAAe,GAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,QAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,QAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,QAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAY,WAAW,MAAM,aAAa,aAAa,CAAC,KAAK,SAAS,SAAS,EAAE,CAAC,CAAC,GAAG,GAAiB,cAAc,GAAG,GAAiB,aAAa,CAAC,ICVvtH,SAAwB,GAAa,EAAM,CAAC,GAAK,CAAC,OAAK,eAAa,OAAK,aAAW,EAAY,EAAcwR,MAC9G,CAAC,GAAM,EAAK,MAAM,CAAC,SAAS,EAAU,GAAM,GAClC,IAAI,OAAO,KAAK,IAAI,EAAE,KAAK,IAAI,EAAa,GAAG,CAAC,CAAC,CAAe,EAAO,CAAC,EAAK,EAAa,CAAC,CAAO,EAAa,GAAO,OAAO,EAAM,MAAM,QAAQ,OAAO,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,MAAM,SAAS,WAAW,GAAG,EAAa,CAAC,GAAG,GAAO,MAAM,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAK,MAAM,EAAU,WAAW,WAAW,UAAU,aAAa,aAAa,aAAa,GAAG,EAAa,EAAE,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC,SAAS,GAAe,0BAA0B,CAAC,CAAC,CAAC,mBALve,IAA2B,IAAoD,CAK0Z,GAAoB,GAAa,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,uLAAuL,gBAAgB,GAAK,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,eAAe,GAAK,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,aAAa,CAAC,SAAS,OAAO,QAAQ,SAAS,cAAc,UAAU,WAAW,QAAQ,CAAC,SAAS,WAAW,gBAAgB,aAAa,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,CAAC,2BCLrpC,IAAU,UAAU,CAAC,mBAAmB,eAAe,CAAC,CAAcI,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAcoC,GAAI,CAAC,g0BAAg0B,CAAc6B,GAAU,yCCAvwC,IAAU,UAAU,CAAC,mBAAmB,eAAe,CAAC,CAAcjE,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAcoC,GAAI,CAAC,y3BAAy3B,+6BAA+6B,46BAA46B,CAAc6B,GAAU,kBCAhyF,SAAShH,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,qDAAhkB,IAA2H,IAAkE,IAA4B,CAAgCjC,GAAW,CAAC,YAAY,YAAY,CAAOwD,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,MAAM,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAOpB,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOxG,GAAwB,CAAC,YAAY,YAAY,YAAY,YAAY,CAAOsE,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAUj6C,GAAgB,GAVi7C,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYuF,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,EAAS,CAAsC,EAAkB,EAAGW,GAA2C,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKf,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,gBAAgBuF,EAAU,EAAW,CAAC,mBAAmB,YAA6B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,GAAGhH,GAAqB,CAAC,UAAU,CAAC,mBAAmB,YAAY,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,wEAAwE,OAAO,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,wEAAwE,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,gIAAgI,gQAAgQ,4HAA4H,CAUzyH,eAAe,IAAgB,GAAgB,GAAgB,YAAY,UAAU,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,YAAY,YAAY,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICVymB,SAASA,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,iEAA3oC,IAAsP,IAAkE,IAA4B,KAAoJ,KAAyH,KAAkH,CAAM,GAAa,EAASpN,GAAQ,CAAOqN,GAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,CAAOlC,GAAW,CAAC,YAAY,YAAY,CAAOwD,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOpB,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOxG,GAAwB,CAAC,OAAO,YAAY,KAAK,YAAY,CAAOsE,IAAU,CAAC,SAAO,GAAA,EAAG,WAAS,OAAK,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAM,EAAM,WAAW,uPAA0P,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,UAAU,GAAU,EAAM,WAAW,mEAAyE,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASsF,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,gBAAA,GAAgB,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,EAAS,CAAM,CAAC,yBAAsB,SAAO,GAAyB,EAAY,CAAO,GAAa,GAAsB,MAAM,GAAG,IAAO,CAAC,EAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,EAAW,YAAY,EAAG,CAAO,EAAa,GAAsB,MAAM,GAAG,IAAO,CAAC,EAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,EAAW,YAAY,EAAG,CAAkF,GAAkB,EAAGW,GAAzEiF,GAAsBC,GAA8F,CAAO,OAAoB,IAAiB,mBAAiC,IAAc,YAAuC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKjG,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,GAAkB,gBAAgBuF,EAAU,EAAW,CAAC,mBAAmB,SAAS,iBAAiB,GAAsB,mBAAiB,SAAS,YAAY,MAAM,GAAa,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,GAAGhH,GAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,UAAU,CAAC,mBAAmB,OAAO,MAAM,EAAa,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,qEAAqE,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,wEAAwE,CAAC,kBAAkB,CAAC,gBAAgB,wEAAwE,CAAC,CAAC,CAAC,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,mEAAyE,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,qEAAqE,CAAC,kBAAkB,CAAC,qBAAqB,qEAAqE,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGlH,GAAqB,CAAC,kBAAkB,CAAC,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,mEAAyE,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,mEAAyE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,OAAO,GAAG,GAAmB,GAAG,GAAG,KAAK,GAAmB,QAAQ,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAGlH,GAAqB,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,KAAK,GAAmB,QAAQ,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAY,EAAe,CAAC,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA4C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKpN,GAAQ,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,QAAQ,YAAY,MAAM,OAAO,GAAGoN,GAAqB,CAAC,UAAU,CAAC,QAAQ,YAAY,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAa,EAAe,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,uPAA0P,CAAC,CAAC,CAAC,CAAC,UAAU,eAAe,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAO/B,GAAI,CAAC,kFAAkF,gFAAgF,6RAA6R,4IAA4I,sRAAsR,uKAAuK,yGAAyG,yRAAyR,uLAAuL,GAAGsC,GAAgB,GAAGC,GAAiB,CAWtiU,GAAgB,GAAQxB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,WAAW,GAAgB,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,SAAS,OAAO,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,mEAAyE,YAAY,GAAG,gBAAgB,GAAM,MAAM,WAAiB,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,uPAA0P,YAAY,GAAG,gBAAgB,GAAM,MAAM,OAAO,KAAK,EAAY,OAAO,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAa,GAAG,GAAwB6C,GAAkB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,2BCXhxF,IAAU,UAAU,CAAC,oBAAoB,oBAAoB,CAAC,CAAclF,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,aAAa,SAAS,GAAK,OAAO,SAAS,MAAM,SAAS,IAAI,kGAAkG,OAAO,MAAM,CAAC,CAAC,OAAO,aAAa,SAAS,GAAK,OAAO,SAAS,MAAM,SAAS,IAAI,kGAAkG,OAAO,MAAM,CAAC,CAAC,CAAC,CAAcoC,GAAI,CAAC,8zBAAk0B,q3BAAy3B,i3BAAq3B,CAAc6B,GAAU,0ECA5hG,IAA4J,IAAkE,IAA4B,KAAmJ,CAAMzF,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAO5J,GAAU,CAAC,QAAQ,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAsEjD,GAAW,CAAC,OAAOiD,GAAU,aAAa,YAAY,WAAzG,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,SAAS,CAAoF,QAAQ,WAAW,KAAK,SAAS,CAAwEhD,GAAY,CAAC,OAAOgD,GAAU,OAAO,GAAM,WAAW,EAAE,UAAU,EAAE,aAAa,YAAY,WAAlJ,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,KAAK,SAAS,CAA2H,QAAQ,WAAW,KAAK,SAAS,CAAOwI,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOlC,IAAU,CAAC,SAAO,GAAA,EAAG,SAAO,MAAI,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAQ,EAAM,WAAW,OAAO,UAAU,GAAK,EAAM,WAAW,wCAAwC,EAASpE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASsF,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,EAAS,CAA2D,EAAkB,EAAGW,GAAlDiF,GAA6F,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKhG,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAM,EAAO,GAAG,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,iBAAiBuF,EAAU,EAAW,CAAC,mBAAmB,YAA6B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,gBAAgB,qEAAqE,GAAG,EAAM,CAAC,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,GAAG,KAAK,SAAsB,EAAKE,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAOtS,GAAW,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,GAAG,KAAK,SAAsB,EAAKsS,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,OAAOrS,GAAY,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,qEAAqE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAOsQ,GAAI,CAAC,kFAAkF,kFAAkF,6TAA6T,mMAAmM,GAAGsC,GAAgB,CAWj8K,GAAgB,GAAQvB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,YAAY,GAAgB,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,GAAoB,GAAgB,CAAC,UAAU,CAAC,aAAa,OAAO,gBAAgB,GAAM,MAAM,SAAS,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,wCAAwC,YAAY,GAAG,gBAAgB,GAAM,MAAM,MAAM,KAAK,EAAY,OAAO,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAwB6C,GAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,2BCXrzE,IAAU,UAAU,CAAC,mBAAmB,eAAe,CAAC,CAAcjF,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAcoC,GAAI,CAAC,w3BAAw3B,86BAA86B,26BAA26B,CAAc6B,GAAU,kBCAh6E,SAAShH,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,8DAAr4B,IAAwM,IAAkE,IAA4B,KAAmJ,CAAMC,GAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,CAAOlC,GAAW,CAAC,YAAY,YAAY,YAAY,YAAY,CAAOwD,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,kBAAkB,CAA8LC,GAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAOpB,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOxG,GAAwB,CAAC,KAAK,YAAY,QAAQ,YAAY,MAAM,YAAY,QAAQ,YAAY,CAAOsE,IAAU,CAAC,WAAS,SAAO,GAAA,EAAG,QAAM,kBAAgB,WAAS,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAO,EAAM,WAAW,OAAO,UAAU,GAAU,EAAM,UAAU,UAAU,GAAU,EAAM,WAAW,OAAO,UAAU,GAAiB,EAAM,WAAW,aAAa,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASsF,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,gBAAA,GAAgB,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,GAAiBpE,GAAuB,EAAM,EAAS,CAAM,CAAC,wBAAsB,UAAO,GAAyB,EAAY,CAAO,EAAe,EAAsB,MAAM,GAAG,IAAO,CAAC,EAAW,YAAY,EAAG,CAAO,GAAc,EAAsB,MAAM,GAAG,IAAO,CAAC,IAAM,EAAW,EAAK,IAAI,QAAQ,OAAO,MAAM,CAAI,GAAY,OAAO,GAAG,EAAW,YAAY,CAAM,GAAY,EAAW,YAAY,EAAI,CAAO,GAAgB,EAAsB,MAAM,GAAG,IAAO,CAAC,EAAW,YAAY,EAAG,CAAO,GAAe,EAAsB,MAAM,GAAG,IAAO,CAAC,EAAW,YAAY,EAAG,CAA2D,GAAkB,EAAGW,GAAlDiF,GAA6F,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKhG,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAM,EAAO,MAAM,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,GAAkB,gBAAgBuF,EAAU,EAAW,CAAC,mBAAmB,UAA2B,oBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,GAAGhH,GAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,OAAO,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAkB,oBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qEAAqE,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGlH,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAKhN,GAAmB,CAAC,UAAU,iBAAiB,UAAU,EAA2B,oBAAiB,SAAS,YAAY,OAAO,GAAc,QAAQ,EAAe,UAAU,GAAgB,YAAY,EAAU,SAAS,EAAU,MAAM,CAAC,4BAA4B,yBAAyB,qCAAqC,MAAM,8BAA8B,wEAAwE,mCAAmC,MAAM,oCAAoC,MAAM,8BAA8B,QAAQ,kCAAkC,MAAM,4BAA4B,wEAAwE,4BAA4B,qBAAqB,mCAAmC,2BAA2B,CAAC,KAAK,WAAW,SAAS,CAAC,kBAAkB,CAAC,8BAA8B,wEAAwE,CAAC,UAAU,CAAC,8BAA8B,qEAAqE,CAAC,UAAU,CAAC,8BAA8B,wEAAwE,CAAC,UAAU,CAAC,8BAA8B,wEAAwE,CAAC,CAAC,GAAG8F,GAAqB,CAAC,UAAU,CAAC,QAAQ,GAAe,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAOmF,GAAI,CAAC,kFAAkF,gFAAgF,6QAA6Q,gHAAgH,qaAAqa,4JAA4J,GAAGsC,GAAgB,CAWj/O,GAAgB,GAAQvB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,qBAAqB,GAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,UAAU,QAAQ,OAAO,UAAU,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,OAAO,YAAY,GAAG,MAAM,YAAY,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,OAAO,YAAY,GAAG,gBAAgB,GAAM,MAAM,QAAQ,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,aAAa,YAAY,GAAG,MAAM,mBAAmB,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAM,MAAM,WAAW,KAAK,EAAY,QAAQ,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAwB6C,GAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICXx+D,SAAShI,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,0EAA/7B,IAAmK,IAAkE,IAA4B,KAAmJ,CAAM,GAAgB,GAAO,EAAO,IAAI,CAAOC,GAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,QAAQ,GAAK,CAAC,CAAOlC,GAAW,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,CAAOwD,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,CAA8LC,GAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAO,GAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAO5J,GAAU,CAAC,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAO,IAAoB,EAAE,IAAI,oBAAoBC,IAAUuI,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOxG,GAAwB,CAAC,QAAQ,YAAY,SAAS,YAAY,MAAM,YAAY,QAAQ,YAAY,QAAQ,YAAY,CAAOsE,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASsF,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,gBAAA,GAAgB,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,EAAS,CAA2D,EAAkB,EAAGW,GAAlDiF,GAA6F,CAAO,MAAoB,IAAc,YAA6C,MAAqB,IAAc,YAAuC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKhG,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAM,EAAO,OAAO,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,iBAAiBuF,EAAU,EAAW,CAAC,mBAAmB,UAAU,aAAa,SAA0B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,gBAAgB,qEAAqE,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,QAAQ,EAAE,GAAG,EAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,wEAAwE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,gBAAgB,wEAAwE,QAAQ,EAAE,CAAC,UAAU,CAAC,gBAAgB,yBAAyB,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAGhH,GAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,oBAAoB,CAAC,mBAAmB,IAAA,GAAU,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAC,GAAa,EAAe,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,qEAAqE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,qBAAqB,qEAAqE,CAAC,UAAU,CAAC,qBAAqB,qEAAqE,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGlH,GAAqB,CAAC,oBAAoB,CAAC,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,GAAc,EAAe,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,UAA2B,mBAAiB,SAAS,YAAY,MAAM,CAAC,KAAK,oIAAoI,WAAW,oIAAoI,CAAC,SAAsB,EAAK,GAAgB,CAAC,eAAerP,GAAU,4BAA4B,GAAK,0BAA0B,EAAE,yBAAyB,OAAO,yBAAyB,GAAY,gBAAgB,GAAM,mBAAmB,GAAK,gBAAgB,EAAE,UAAU,iBAAiB,mBAAmB,QAAyB,mBAAiB,SAAS,YAAY,MAAM,CAAC,WAAW,2FAA2F,gBAAgB,oBAAoB,KAAK,OAAO,WAAW,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,+GAA+G,gBAAgB,mBAAmB,KAAK,oIAAoI,WAAW,oIAAoI,CAAC,CAAC,SAAsB,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,WAA4B,mBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,qBAAqB,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,kBAAkB,GAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAOsN,GAAI,CAAC,kFAAkF,kFAAkF,2QAA2Q,8JAA8J,uLAAuL,qIAAqI,+LAA+L,6MAA6M,uEAAuE,GAAGsC,GAAgB,CAU1oS,GAAgB,GAAQvB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,WAAW,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,UAAU,UAAU,WAAW,UAAU,QAAQ,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAwB6C,GAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICVvgD,SAAShI,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,iEAAv4B,IAAwM,IAAkE,IAA4B,KAAmJ,CAAMC,GAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,CAAOlC,GAAW,CAAC,YAAY,YAAY,YAAY,YAAY,CAAOwD,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,mBAAmB,UAAU,mBAAmB,UAAU,mBAAmB,UAAU,kBAAkB,CAA8LC,GAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAOpB,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAO,GAAqB,CAAC,eAAe,MAAM,YAAY,WAAW,KAAK,OAAO,MAAM,QAAQ,OAAO,SAAS,KAAK,OAAO,KAAK,OAAO,IAAI,MAAM,CAAOxG,GAAwB,CAAC,KAAK,YAAY,QAAQ,YAAY,MAAM,YAAY,QAAQ,YAAY,CAAOsE,IAAU,CAAC,WAAS,SAAO,GAAA,EAAG,QAAM,kBAAgB,WAAS,OAAK,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAO,EAAM,WAAW,OAAO,UAAU,GAAU,EAAM,UAAU,UAAU,GAAU,EAAM,WAAW,OAAO,UAAU,GAAiB,EAAM,WAAW,aAAa,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,UAAU,GAAqB,IAAO,GAAM,EAAM,WAAW,OAAO,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASsF,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,YAAU,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,aAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,gBAAA,GAAgB,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,GAAS,CAAM,CAAC,yBAAsB,SAAO,GAAyB,EAAY,CAAO,GAAc,GAAsB,MAAM,GAAG,IAAO,CAAC,EAAW,YAAY,EAAG,CAAO,GAAa,GAAsB,MAAM,GAAG,IAAO,CAAC,IAAM,EAAW,EAAK,IAAI,QAAQ,OAAO,MAAM,CAAI,GAAY,OAAO,GAAG,EAAW,YAAY,CAAM,GAAY,EAAW,YAAY,EAAI,CAAO,GAAiB,GAAsB,MAAM,GAAG,IAAO,CAAC,EAAW,YAAY,EAAG,CAAO,GAAc,GAAsB,MAAM,GAAG,IAAO,CAAC,EAAW,YAAY,EAAG,CAA2D,EAAkB,EAAGW,GAAlDiF,GAA6F,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKhG,GAAS,CAAC,QAAQ,GAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAM,EAAO,MAAM,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,iBAAiBuF,EAAU,EAAW,CAAC,mBAAmB,UAA2B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,GAAGhH,GAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,OAAO,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qEAAqE,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGlH,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAKhN,GAAmB,CAAC,UAAU,gBAAgB,UAAU,EAA2B,mBAAiB,SAAS,YAAY,OAAO,GAAa,QAAQ,GAAc,UAAU,GAAiB,YAAY,EAAU,SAAS,EAAU,MAAM,CAAC,4BAA4B,yBAAyB,qCAAqC,MAAM,8BAA8B,wEAAwE,mCAAmC,MAAM,oCAAoC,MAAM,8BAA8B,QAAQ,kCAAkC,MAAM,4BAA4B,wEAAwE,4BAA4B,qBAAqB,mCAAmC,2BAA2B,CAAC,KAAK,EAAU,SAAS,CAAC,kBAAkB,CAAC,8BAA8B,wEAAwE,CAAC,UAAU,CAAC,qCAAqC,MAAM,8BAA8B,wEAAwE,CAAC,UAAU,CAAC,qCAAqC,MAAM,8BAA8B,qEAAqE,CAAC,UAAU,CAAC,8BAA8B,wEAAwE,CAAC,CAAC,GAAG8F,GAAqB,CAAC,UAAU,CAAC,QAAQ,GAAc,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAOmF,GAAI,CAAC,kFAAkF,kFAAkF,8QAA8Q,gHAAgH,oTAAoT,gKAAgK,GAAGsC,GAAgB,CAWlsP,GAAgB,GAAQvB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,aAAa,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,UAAU,QAAQ,OAAO,UAAU,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,OAAO,QAAQ,CAAC,OAAO,WAAW,QAAQ,SAAS,MAAM,MAAM,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,YAAY,QAAQ,SAAS,eAAe,MAAM,OAAO,OAAO,CAAC,MAAM,OAAO,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,OAAO,YAAY,GAAG,MAAM,YAAY,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,OAAO,YAAY,GAAG,gBAAgB,GAAM,MAAM,QAAQ,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,aAAa,YAAY,GAAG,MAAM,mBAAmB,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAM,MAAM,WAAW,KAAK,EAAY,QAAQ,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAwB6C,GAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICXxpD,SAAShI,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,uEAAh9C,IAAoQ,IAAkE,IAA4B,KAAmJ,KAA0H,KAA4H,KAAkH,KAAqH,CAAM,GAAgB,EAASzF,GAAW,CAAO,GAAuB,EAASC,GAAkB,CAAO,GAAa,EAASC,GAAQ,CAAOsD,GAAW,CAAC,YAAY,YAAY,YAAY,CAAOwD,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAO,IAAc,EAAK,EAAS,IAAiB,CAAC,OAAO,EAAK,MAAZ,CAAmB,IAAI,UAAU,OAAO,EAAS,SAAS,EAAe,IAAI,UAAU,OAAO,EAAS,SAAS,EAAe,IAAI,QAAQ,OAAO,EAAS,OAAO,EAAe,IAAI,aAAa,OAAO,EAAS,YAAY,IAAwBpB,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOxG,GAAwB,CAAC,YAAY,YAAY,OAAO,YAAY,QAAQ,YAAY,CAAOsE,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASsF,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,EAAS,CAAM,CAAC,wBAAsB,UAAO,GAAyB,EAAY,CAAO,EAAiB,EAAsB,MAAM,GAAG,IAAO,CAAC,EAAW,YAAY,EAAG,CAAkF,GAAkB,EAAGW,GAAzEiF,GAAsBC,GAA8F,CAAO,MAAoB,IAAc,YAA6C,OAAqB,IAAc,YAAuC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKjG,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAK,GAAc,CAAC,GAAG,EAAU,GAAG,EAAgB,OAAO,oFAAoF,UAAU,EAAG,GAAkB,iBAAiBuF,EAAU,EAAW,CAAC,mBAAmB,YAAY,iBAAiB,GAAsB,mBAAiB,SAAS,YAAY,OAAO,YAAY,UAAU,EAAiB,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,GAAGhH,GAAqB,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,SAAS,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,GAAwB,EAAMpE,EAAU,CAAC,SAAS,CAAC,GAAa,EAAe,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,GAAmB,OAAO,QAAQ,GAAG,GAAmB,GAAG,GAAG,EAAE,EAAE,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA4C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKrB,GAAW,CAAC,OAAO,OAAO,UAAU,QAAQ,GAAG,YAAY,UAAU,GAAK,SAAS,YAAY,UAAU,OAAO,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,YAAY,QAAQ,YAAY,MAAM,OAAO,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,EAAe,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAK2M,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,wEAAuF,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,GAAa,EAAe,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,GAAmB,OAAO,QAAQ,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,SAAsB,EAAK,GAA8B,CAAC,UAAU,0BAA2C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAK3M,GAAW,CAAC,OAAO,OAAO,UAAU,UAAU,GAAG,YAAY,UAAU,GAAK,SAAS,YAAY,UAAU,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,oBAAoB,QAAQ,YAAY,MAAM,OAAO,UAAU,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAa,EAAe,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,GAAmB,OAAO,QAAQ,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,SAAsB,EAAK,GAA8B,CAAC,UAAU,0BAA2C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKA,GAAW,CAAC,OAAO,OAAO,UAAU,gBAAgB,GAAG,YAAY,UAAU,GAAM,SAAS,YAAY,UAAU,gBAAgB,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,qBAAqB,QAAQ,YAAY,MAAM,OAAO,UAAU,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAa,EAAe,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,GAAmB,OAAO,QAAQ,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA4C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKC,GAAkB,CAAC,OAAO,OAAO,UAAU,UAAU,GAAG,YAAY,UAAU,GAAM,SAAS,YAAY,UAAU,UAAU,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,cAAc,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAa,EAAe,EAAK,EAA0B,CAAC,OAAO,GAAG,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,GAAGwF,GAAqB,CAAC,UAAU,CAAC,MAAM,GAAmB,OAAO,QAAQ,CAAC,CAAC,EAAY,EAAe,CAAC,SAAsB,EAAK,GAA8B,CAAC,UAAU,0BAA2C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKvF,GAAQ,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,OAAO,OAAO,CAAC,KAAK,SAAS,QAAQ,GAAa,EAAU,CAAC,QAAQ,YAAY,QAAQ,YAAY,CAAC,YAAY,CAAC,MAAM,OAAO,GAAGuF,GAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,EAAe,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAO/B,GAAI,CAAC,kFAAkF,kFAAkF,gRAAgR,kOAAkO,mMAAmM,wGAAwG,6DAA6D,8DAA8D,0EAA0E,GAAGsC,GAAgB,GAAGC,GAAiB,CAU5xU,GAAgB,GAAQxB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,cAAc,GAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,YAAY,UAAU,SAAS,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAgB,GAAG,GAAuB,GAAG,GAAa,GAAG,GAAwB6C,GAAkB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,uCCV1zE,IAAsC,IAA4B,CAAoCzD,GAAK,0BAAgCO,GAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAOC,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,EAASkB,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWlB,GAAS,EAAM,CAAC,OAAoB,EAAKD,GAAI,CAAC,GAAG,EAAU,IAAI,GAAG,UAAU,EAAG,eAAeiC,EAAU,CAAU,WAAa,MAAI,IAAI,23DAA23D,MAAM,CAAC,GAAG,EAAM,CAAC,CAAC,EAAG,CAAO7B,GAAI,CAAC,iCAAiCX,GAAK,2DAA2DA,GAAK,sCAAsC,CAQ9uFM,GAAK,GAAQoB,GAAUf,GAAI,eAAe,CAAC,GAAK,YAAY,YAAwBL,MCR6jB,SAAS9E,EAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,wDAAzwB,IAAwI,IAAkE,IAA4B,KAA2I,CAAMtD,GAAY,EAASuJ,GAAO,CAAOlI,GAAW,CAAC,YAAY,YAAY,YAAY,CAAOwD,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,QAAQ,IAAI,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAOpB,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOxG,GAAwB,CAAC,OAAO,YAAY,MAAM,YAAY,OAAO,YAAY,CAAOsE,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAUvnD,GAAgB,GAVuoD,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYuF,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,EAAS,CAAsC,EAAkB,EAAGW,GAA2C,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKf,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,iBAAiBuF,EAAU,EAAW,CAAC,mBAAmB,SAA0B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,GAAGhH,EAAqB,CAAC,UAAU,CAAC,mBAAmB,SAAS,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAO,OAAO,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAsB,EAAKiG,GAAO,CAAC,SAAS,GAAK,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAc,EAAK,EAAO,OAAO,CAAC,UAAU,eAAgC,mBAAiB,SAAS,YAAY,SAAsB,EAAM,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,m2HAAm2H,mBAAmB,GAAK,GAAGjG,EAAqB,CAAC,UAAU,CAAC,IAAI,kuHAAkuH,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAM,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,k1EAAk1E,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,irEAAirE,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,2SAA2S,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,mSAAmS,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,iVAAiV,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,uUAAuU,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,mrBAAmrB,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,6pBAA6pB,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,uWAAuW,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,qVAAqV,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,2RAA2R,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,0RAA0R,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,6RAA6R,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,iRAAiR,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,8NAA8N,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,2NAA2N,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,2PAA2P,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,mPAAmP,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,2TAA2T,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,+SAA+S,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,2PAA2P,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,mPAAmP,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,2SAA2S,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,+RAA+R,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,oNAAoN,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,iNAAiN,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,mTAAmT,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,2SAA2S,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,ojDAAojD,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,shDAAshD,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,6UAA6U,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,+TAA+T,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,ufAAuf,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,weAAwe,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,6RAA6R,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,iRAAiR,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,8NAA8N,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,2NAA2N,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,iUAAiU,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,2TAA2T,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,mUAAmU,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,oTAAoT,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,QAAQ,EAAE,wBAAwB,GAAM,IAAI,wfAAwf,mBAAmB,GAAK,GAAGA,EAAqB,CAAC,UAAU,CAAC,IAAI,ueAAue,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,kFAAkF,uSAAuS,gTAAgT,iJAAiJ,iTAAiT,mFAAmF,0GAA0G,yGAAyG,0GAA0G,0GAA0G,yGAAyG,uGAAuG,wGAAwG,uGAAuG,wGAAwG,yGAAyG,yGAAyG,yGAAyG,uGAAuG,wGAAwG,uGAAuG,wGAAwG,yGAAyG,wGAAwG,uGAAuG,wGAAwG,wGAAwG,wGAAwG,mIAAmI,oHAAoH,uEAAuE,8EAA8E,qGAAqG,mGAAmG,oGAAoG,0FAA0F,mGAAmG,kGAAkG,mGAAmG,kGAAkG,mGAAmG,oGAAoG,oGAAoG,mGAAmG,iGAAiG,wFAAwF,8EAA8E,mGAAmG,0FAA0F,mGAAmG,kGAAkG,yFAAyF,kGAAkG,8EAA8E,CAUjj1C,eAAe,IAAgB,GAAgB,GAAgB,YAAY,SAAS,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,KAAK,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,SAAS,QAAQ,SAAS,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,GAAGtD,GAAY,CAAC,CAAC,6BAA6B,GAAK,CAAC,2BCVnb,IAAU,UAAU,EAAE,CAAC,CAAcqG,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,CAAcoC,GAAI,CAAC,ymBAAymB,CAAc6B,GAAU,kBCAsG,SAAShH,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,2DAAj9B,IAAiK,IAAkE,IAA4B,KAAoJ,KAA0H,KAAyH,CAAMjC,GAAW,CAAC,YAAY,YAAY,CAAOwD,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,iBAAiB,UAAU,kBAAkB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOpB,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOxG,GAAwB,CAAC,YAAY,YAAY,OAAO,YAAY,CAAOsE,IAAU,CAAC,SAAO,GAAA,EAAG,OAAK,WAAS,QAAM,YAAU,cAAY,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAW,EAAM,WAAW,QAAQ,UAAU,GAAU,EAAM,WAAW,eAAe,UAAU,GAAO,EAAM,WAAW,qGAA2G,UAAU,GAAM,EAAM,UAAU,UAAU,GAAa,EAAM,WAAW,GAAK,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASsF,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,YAAU,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,aAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,GAAS,CAAyG,GAAkB,EAAGW,GAAhGiF,GAAsBC,GAAuBC,GAA8F,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKlG,GAAS,CAAC,QAAQ,GAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,GAAkB,gBAAgBuF,EAAU,EAAW,CAAC,mBAAmB,YAA6B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,gBAAgB,qEAAqE,GAAG,EAAM,CAAC,GAAGhH,GAAqB,CAAC,UAAU,CAAC,mBAAmB,SAAS,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,qGAA2G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,GAAwB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAsB,EAAK,GAAK,CAAC,KAAK,EAAU,YAAY,GAAK,OAAO,YAAY,aAAa,GAAK,UAAU,EAAE,CAAC,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAO/B,GAAI,CAAC,kFAAkF,kFAAkF,mQAAmQ,iRAAiR,qKAAqK,iRAAiR,sKAAsK,iHAAiH,GAAGsC,GAAgB,GAAGC,GAAiB,GAAGC,GAAiB,CAWznP,GAAgB,GAAQzB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,kBAAkB,GAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,YAAY,SAAS,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,qGAA2G,gBAAgB,GAAM,MAAM,QAAQ,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,eAAe,gBAAgB,GAAM,MAAM,aAAa,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,iBAAoB,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,QAAQ,gBAAgB,GAAM,YAAY,GAAG,MAAM,YAAY,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,MAAM,OAAO,KAAK,EAAY,KAAK,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAwB6C,GAAkB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,uCCXnzF,IAAsC,IAA4B,CAAoC1D,GAAK,0BAAgCO,GAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAOC,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,EAASkB,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWlB,GAAS,EAAM,CAAC,OAAoB,EAAKD,GAAI,CAAC,GAAG,EAAU,IAAI,GAAG,UAAU,EAAG,eAAeiC,EAAU,CAAU,WAAa,MAAI,IAAI,mcAAmc,MAAM,CAAC,GAAG,EAAM,CAAC,CAAC,EAAG,CAAO7B,GAAI,CAAC,iCAAiCX,GAAK,2CAA2CA,GAAK,qCAAqC,CAQryCM,GAAK,GAAQoB,GAAUf,GAAI,eAAe,CAAC,GAAK,YAAY,WAAuBL,MCRqvB,SAAS9E,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,8DAA98B,IAAiK,IAAkE,IAA4B,KAAmJ,CAAMC,GAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,CAAO,GAAW,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,CAAOsB,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,mBAAmB,UAAU,mBAAmB,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOpB,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOqB,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS9F,GAAS,EAAO,OAAO0G,EAAe,CAAOxG,GAAwB,CAAC,eAAe,YAAY,iBAAiB,YAAY,SAAS,YAAY,UAAU,YAAY,SAAS,YAAY,CAAOsE,IAAU,CAAC,SAAO,GAAA,EAAG,cAAY,OAAK,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAM,EAAM,UAAU,UAAU,GAAa,EAAM,WAAW,SAAS,QAAQtE,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASsF,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,cAAW,eAAe,YAAY,gBAAA,GAAgB,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBpE,GAAuB,EAAM,EAAS,CAA2D,EAAkB,EAAGW,GAAlDiF,GAA6F,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKhG,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMoB,GAAY,SAAsB,EAAK,GAAK,CAAC,KAAK,EAAU,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAK,SAAsB,EAAK,EAAO,EAAE,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,GAAG,EAAG,EAAkB,iBAAiBuF,EAAU,EAAW,CAAC,iBAAiB,mBAAmB,iBAAkC,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,wBAAwB,MAAM,iBAAiB,mBAAmB,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,gBAAgB,qEAAqE,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,GAAG,EAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,wBAAwB,MAAM,sBAAsB,MAAM,uBAAuB,MAAM,qBAAqB,MAAM,CAAC,kBAAkB,CAAC,wBAAwB,MAAM,sBAAsB,MAAM,uBAAuB,MAAM,qBAAqB,MAAM,gBAAgB,wEAAwE,CAAC,kBAAkB,CAAC,wBAAwB,MAAM,sBAAsB,MAAM,uBAAuB,MAAM,qBAAqB,MAAM,gBAAgB,wEAAwE,CAAC,kBAAkB,CAAC,iBAAiB,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,wEAAwE,CAAC,UAAU,CAAC,gBAAgB,2BAA2B,CAAC,UAAU,CAAC,gBAAgB,qEAAqE,CAAC,UAAU,CAAC,wBAAwB,MAAM,iBAAiB,2BAA2B,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,gBAAgB,mBAAmB,CAAC,CAAC,GAAGhH,GAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,UAAU,CAAC,mBAAmB,YAAY,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,eAAe,CAAC,UAAU,CAAC,cAAc,GAAK,mBAAmB,WAAW,CAAC,CAAC,EAAY,EAAe,CAAC,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,qEAAqE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,qEAAqE,CAAC,kBAAkB,CAAC,qBAAqB,qEAAqE,CAAC,kBAAkB,CAAC,qBAAqB,qEAAqE,CAAC,kBAAkB,CAAC,qBAAqB,2BAA2B,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGlH,GAAqB,CAAC,kBAAkB,CAAC,SAAsB,EAAKkH,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8FAA8F,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,oDAAoD,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8CAA8C,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,WAAW,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,8CAA8C,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAO/B,GAAI,CAAC,kFAAkF,kFAAkF,wZAAwZ,+JAA+J,mEAAmE,GAAGsC,GAAgB,gcAAgc,CAWltU,GAAgB,GAAQvB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,SAAS,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,KAAK,CAAC,GAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,iBAAiB,YAAY,eAAe,WAAW,WAAW,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,SAAS,YAAY,GAAG,gBAAgB,GAAM,MAAM,cAAc,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,MAAM,OAAO,KAAK,EAAY,KAAK,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAwB6C,GAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICXn6C,SAAS,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,2DAA7pC,IAA6P,IAAkE,IAA4B,KAAoJ,KAAyH,KAA6G,KAAiH,CAAM3G,GAAY,EAASkE,GAAO,CAAO,GAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,CAAOhE,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAO,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAa4E,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS,GAAS,EAAO,OAAOY,EAAe,CAAOlC,IAAU,CAAC,cAAY,cAAY,mBAAiB,SAAO,OAAK,YAAU,GAAA,EAAG,aAAW,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAY,EAAM,WAAW,qBAAqB,UAAU,GAAW,EAAM,WAAW,qEAAqE,UAAU,GAAM,EAAM,WAAWmC,GAAG,UAAU,GAAa,EAAM,WAAW,mEAAsE,UAAU,GAAa,EAAM,WAAW,GAAK,UAAU,GAAkB,EAAM,UAAU,EAAS,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAASjB,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,GAAG,GAAWpB,GAAS,EAAM,CAAM,CAAC,cAAY,aAAW,sBAAoB,kBAAgB,iBAAe,YAAU,mBAAgB,aAAW,aAAU,GAAgB,CAAC,eAAe,YAAY,mBAAgB,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiB,GAAuB,EAAM,GAAS,CAAkF,GAAkB,EAAGzD,GAAzEiF,GAAsBC,GAA8F,CAA0B,OAAZ,IAAW,CAAqB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAK,GAAS,CAAC,QAAQ,GAAS,QAAQ,GAAM,SAAsB,EAAK,GAAW,CAAC,MAAMhF,GAAY,SAAsB,EAAM,EAAO,QAAQ,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,GAAkB,gBAAgBuF,EAAU,EAAW,CAAC,mBAAmB,YAA6B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,gBAAgB,qEAAqE,GAAG,EAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,qEAAqE,CAAC,CAAC,GAAG,GAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,OAAwB,mBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,EAAU,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,SAAsB,EAAK,GAAS,CAAC,SAAS,GAAK,UAAU,gBAAgB,UAAU,EAA2B,mBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKE,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,iGAAiG,CAAC,SAAS,mEAAsE,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,GAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,GAA4B,EAAK,EAA0B,CAAC,OAAO,GAAG,GAAG,GAAmB,GAAG,GAAG,IAAI,SAAW,GAAmB,QAAQ,KAAK,GAAG,QAAQ,EAAE,GAAG,EAAE,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA4C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAK3B,GAAO,CAAC,OAAO,OAAO,UAAU,EAAc,GAAG,GAAG,YAAY,SAAS,YAAY,UAAU,iBAAiB,QAAQ,YAAY,MAAM,OAAO,GAAG,GAAqB,CAAC,kBAAkB,CAAC,UAAU,EAAc,GAAG,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAwB,EAAK,EAA0B,CAAC,OAAO,GAAG,GAAG,GAAmB,GAAG,GAAG,IAAI,SAAW,GAAmB,QAAQ,KAAK,GAAG,QAAQ,EAAE,GAAG,EAAE,SAAsB,EAAK,GAA8B,CAAC,UAAU,0BAA2C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKA,GAAO,CAAC,OAAO,OAAO,UAAU,EAAU,GAAG,YAAY,SAAS,YAAY,UAAU,UAAU,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAOJ,GAAI,CAAC,kFAAkF,gFAAgF,qRAAqR,qTAAqT,gWAAgW,oIAAoI,6SAA6S,mMAAmM,kRAAkR,iJAAiJ,GAAGsC,GAAgB,GAAGC,GAAiB,CAY9/S,GAAgB,GAAQxB,GAAUf,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,aAAa,GAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,KAAK,CAAC,GAAoB,GAAgB,CAAC,UAAU,CAAC,aAAa,6FAA6F,MAAM,aAAa,KAAK,EAAY,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,wCAAwC,SAAS,uBAAuB,CAAC,YAAY,uBAAuB,MAAM,OAAO,KAAK,EAAY,cAAc,CAAC,UAAU,CAAC,aAAa,qBAAqB,gBAAgB,GAAM,MAAM,aAAa,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,mEAAsE,gBAAgB,GAAM,MAAM,cAAc,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,YAAY,GAAG,MAAM,eAAe,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,YAAY,GAAG,MAAM,mBAAmB,KAAK,EAAY,KAAK,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG9D,GAAY,GAAG,GAAwB2G,GAAkB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICT17F,SAAwBxC,GAAa,EAAM,CAAC,GAAK,CAAC,OAAK,eAAa,OAAK,aAAW,EAAY,EAAc9C,MAC9G,CAAC,GAAM,EAAK,MAAM,CAAC,SAAS,EAAU,GAAM,GAClC,IAAI,OAAO,KAAK,IAAI,EAAE,KAAK,IAAI,EAAa,GAAG,CAAC,CAAC,CAAe,EAAO,CAAC,EAAK,EAAa,CAAC,CAAO,EAAa,GAAO,OAAO,EAAM,MAAM,QAAQ,OAAO,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,MAAM,SAAS,WAAW,GAAG,EAAa,CAAC,GAAG,GAAO,MAAM,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAK,MAAM,EAAU,WAAW,WAAW,UAAU,aAAa,aAAa,aAAa,GAAG,EAAa,EAAE,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC,SAAS,GAAe,0BAA0B,CAAC,CAAC,CAAC,mBALve,IAA2B,IAAoD,CAK0Z,GAAoB8C,GAAa,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,uLAAuL,gBAAgB,GAAK,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,eAAe,GAAK,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,aAAa,CAAC,SAAS,OAAO,QAAQ,SAAS,cAAc,UAAU,WAAW,QAAQ,CAAC,SAAS,WAAW,gBAAgB,aAAa,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,CAAC,2BCLrpC,IAAU,UAAU,CAAC,mBAAmB,eAAe,CAAC,CAAc1C,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAcoC,GAAI,CAAC,03BAA03B,g7BAAg7B,66BAA66B,CAAc6B,GAAU,yCCA9pG,IAAU,UAAU,EAAE,CAAC,CAAcjE,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,CAAcoC,GAAI,CAAC,2TAA2T,CAAc6B,GAAU,yCCAhb,IAAU,UAAU,CAAC,mBAAmB,eAAe,CAAC,CAAc,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAc7B,GAAI,CAAC,o0BAAo0B,03BAA03B,y3BAAy3B,CAAc,GAAU,qDCAj/F,IAAsC,IAA4B,CAAoCX,GAAK,0BAAgCO,GAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAOC,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,EAASkB,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWlB,GAAS,EAAM,CAAC,OAAoB,EAAKD,GAAI,CAAC,GAAG,EAAU,IAAI,GAAG,UAAU,EAAG,eAAeiC,EAAU,CAAU,WAAa,MAAI,IAAI,8dAA8d,MAAM,CAAC,GAAG,EAAM,CAAC,CAAC,EAAG,CAAO7B,GAAI,CAAC,iCAAiCX,GAAK,2CAA2CA,GAAK,qCAAqC,CAQh0CM,GAAK,GAAQoB,GAAUf,GAAI,eAAe,CAAC,GAAK,YAAY,yBAAqCL,yCCR/D,IAAsC,IAA4B,CAAoCN,GAAK,8zBAAs0BO,GAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAOC,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,EAASkB,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWlB,GAAS,EAAM,CAAC,OAAoB,EAAKD,GAAI,CAAC,GAAG,EAAU,UAAU,EAAG,eAAeiC,EAAU,CAAU,WAAa,MAAI,MAAM,CAAC,GAAG,EAAM,CAAC,CAAC,EAAG,CAAO7B,GAAI,CAAC,iCAAiCX,GAAK,yGAAyGA,GAAK,kBAAkB,CAQxqDM,GAAK,GAAQoB,GAAUf,GAAI,eAAe,CAAC,GAAK,YAAY,oBAAgCL,yCCR1D,IAAsC,IAA4B,CAAoCN,GAAK,yqBAAirBO,GAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAOC,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,EAASkB,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWlB,GAAS,EAAM,CAAC,OAAoB,EAAKD,GAAI,CAAC,GAAG,EAAU,UAAU,EAAG,eAAeiC,EAAU,CAAU,WAAa,MAAI,MAAM,CAAC,GAAG,EAAM,CAAC,CAAC,EAAG,CAAO7B,GAAI,CAAC,iCAAiCX,GAAK,yGAAyGA,GAAK,kBAAkB,CAQnhDM,GAAK,GAAQoB,GAAUf,GAAI,eAAe,CAAC,GAAK,YAAY,qBAAiCL,yCCR3D,IAAsC,IAA4B,CAAoCN,GAAK,seAA8eO,GAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAOC,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,EAASkB,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWlB,GAAS,EAAM,CAAC,OAAoB,EAAKD,GAAI,CAAC,GAAG,EAAU,UAAU,EAAG,eAAeiC,EAAU,CAAU,WAAa,MAAI,MAAM,CAAC,GAAG,EAAM,CAAC,CAAC,EAAG,CAAO7B,GAAI,CAAC,iCAAiCX,GAAK,yGAAyGA,GAAK,kBAAkB,CAQh1CM,GAAK,GAAQoB,GAAUf,GAAI,eAAe,CAAC,GAAK,YAAY,QAAoBL,yCCR9C,IAAsC,IAA4B,CAAoC,GAAK,8uCAAsvCC,GAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAOC,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,EAASkB,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAWlB,GAAS,EAAM,CAAC,OAAoB,EAAKD,GAAI,CAAC,GAAG,EAAU,UAAU,EAAG,eAAeiC,EAAU,CAAU,WAAa,MAAI,MAAM,CAAC,GAAG,EAAM,CAAC,CAAC,EAAG,CAAO7B,GAAI,CAAC,iCAAiC,GAAK,yGAAyG,GAAK,kBAAkB,CAQxlE,GAAK,GAAQe,GAAUf,GAAI,eAAe,CAAC,GAAK,YAAY,mBAA+B,MCRpG,SAAwB,GAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,SAAS,WAAW,sBAAsB,CAAC,CAAC,KAAK,SAAS,WAAW,gDAAgD,CAAC,CAAC,KAAK,UAAU,WAAW,wBAAwB,CAAC,CAAC,YAAY,sIAAsI,SAAS,CAAC,UAAU,iBAAiB,UAAU,eAAe,UAAU,cAAc,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,MAAM,CAAC,aAAa,CAAC,MAAM,GAAK,CAAC,OAAO,0BAA0B,gBAAgB,eAAe,YAAY,uEAAuE,MAAM,oBAAoB,SAAS,qBAAqB,sBAAe,GAAgB,EACnyBoD,GAAqB,CAAC,QAAU,CAAC,QAAU,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,gBAAkB,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,mBAAqB,CAAC,KAAO,WAAW,CAAC,CAAC,0ICD3L,IAAwZ,IAA8C,IAA4B,KAAqK,KAA8G,KAA4G,KAAoH,KAA2H,KAA2E,KAA4E,KAA8E,KAAyE,KAAkF,KAA6E,KAAyE,KAAyE,KAAsE,KAAsE,KAAqE,KAAsE,KAAsE,KAAsE,KAAsE,KAA+D,KAA6E,KAAuE,KAAwE,KAA4D,KAAgE,KAAuE,KAAmF,CAAM,GAAW,EAASlD,GAAM,CAAO,GAAY,EAASC,GAAO,CAAO,GAA8B,GAAwBA,GAAO,CAAO,GAAY,EAASC,GAAO,CAAO,GAAe,EAASC,GAAU,CAAO,GAAmC,GAA0B,EAAU,CAAO,GAAkB,EAASC,GAAa,CAAO,GAAgB,EAASC,GAAW,CAAO,GAAmB,EAASC,GAAc,CAAO,GAAwB,EAAS,GAAmB,CAAO,GAAe,EAASC,GAAU,CAAO,GAAqB,EAASC,GAAgB,CAAO,GAAY,EAAS,GAAO,CAAO,GAAc,EAASC,GAAS,CAAO,GAAmB,EAASC,GAAc,CAAO,GAAiB,EAASC,GAAY,CAAO,GAAY,EAASC,GAAO,CAAO,GAAY,CAAC,UAAU,wBAAwB,UAAU,gDAAgD,UAAU,sBAAsB,CAAyD,GAAkB,eAAqB,GAAkB,CAAC,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,kBAAkB,CAAO,GAAU,CAAC,QAAQ,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAO,GAAY,CAAC,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAO,GAAW,CAAC,OAAO,GAAU,aAAa,OAAO,WAAW,GAAY,QAAQ,UAAU,KAAK,SAAS,CAAgF,GAAY,CAAC,OAA3E,CAAC,QAAQ,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAsC,WAAW,GAAG,aAAa,OAAO,WAAW,GAAY,QAAQ,UAAU,KAAK,SAAS,CAAkF,GAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAA1I,CAAC,QAAQ,IAAI,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAyG,EAAE,EAAE,EAAE,EAAE,CAAO,GAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAO,IAAa,EAAM,IAAM,CAAI,MAAC,GAAO,OAAO,GAAQ,UAAkB,MAAM,CAAC,GAAG,EAAM,MAAI,EAAS,GAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAO,GAAY,CAAC,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,KAAK,SAAS,CAAO,GAAY,CAAC,OAAO,GAAW,aAAa,YAAY,WAAW,GAAY,QAAQ,WAAW,KAAK,SAAS,CAAO,GAAY,CAAC,OAAO,GAAW,OAAO,GAAM,WAAW,EAAE,UAAU,EAAE,aAAa,YAAY,WAAW,GAAY,QAAQ,WAAW,KAAK,SAAS,CAAwE,GAAY,CAAC,OAAO,GAAW,OAAO,GAAM,WAAW,EAAE,UAAU,EAAE,aAAa,YAAY,WAAnJ,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,KAAK,SAAS,CAA4H,QAAQ,WAAW,KAAK,SAAS,CAAO,IAAW,CAAC,WAAyB,IAAqB,CAAoB,KAAyB,EAAK,QAAQ,CAAC,wBAAwB,CAAC,OAAO,EAAM,CAAC,yBAAyB,GAAG,CAAC,CAAS,GAAwB,CAAC,QAAQ,YAAY,MAAM,YAAY,OAAO,YAAY,CAAO,IAAU,CAAC,SAAO,GAAA,EAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,QAAQ,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASC,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,GAAG,GAAW,GAAS,EAAM,CAAOC,EAASC,MAAkBC,GAAiB,EAAE,CAAC,EAAa,CAAC,CAAC,EAAa,CAAC,CAAC,GAAYF,EAAS,CAAC,GAAK,CAAC,EAAY,GAAqB,GAA8B,EAAQ,GAAY,GAAM,CAAoO,EAAkB,EAAG,GAA5LG,GAAsBC,GAAuBC,GAAuBC,GAAuBC,GAAuBC,GAAuBC,GAA8F,CAAO,EAAKC,EAAa,KAAK,CAAO,EAAU,GAAkB,YAAY,CAAO,EAAKA,EAAa,KAAK,CAAO,EAAW,GAAkB,YAAY,CAAc,IAAW,CAAC,IAAM,EAAW,GAAkB,YAAY,CAAO,EAAKA,EAAa,KAAK,CAAO,EAAW,GAAkB,YAAY,CAAO,GAAKA,EAAa,KAAK,CAAO,EAAW,GAAkB,YAAY,CAAO,GAAKA,EAAa,KAAK,CAAO,EAAW,GAAkB,YAAY,CAAO,GAAKA,EAAa,KAAK,CAAsB,OAArB,GAAiB,EAAE,CAAC,CAAqB,EAAK,GAA0B,SAAS,CAAC,MAAM,CAAC,iBAAiB,YAAY,qBAAkB,CAAC,SAAsB,EAAM,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAS,CAAc,EAAK,GAAU,CAAC,MAAM,gGAAgG,CAAC,CAAc,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,UAAU,EAAG,EAAkB,gBAAgBC,EAAU,CAAC,iBAAiB,GAAK,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,SAAS,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAK3B,GAAM,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,GAAM,UAAU,GAAG,SAAS,YAAY,YAAY,WAAW,OAAO,GAAK,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK4B,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,QAAQ,GAAmB,OAAO,QAAQ,UAAU,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,QAAQ,GAAmB,OAAO,QAAQ,UAAU,EAAE,GAAG,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,aAAa,GAAK,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,qCAAqC,IAAA,GAAU,QAAQ,YAAY,CAAC,CAAC,SAAsB,EAAK,GAA8B,CAAC,sBAAsB,GAAM,kBAAkB,CAAC,CAAC,OAAO,GAAG,IAAI,EAAK,OAAO,YAAY,CAAC,CAAC,oBAAoB,GAAG,qCAAqC,GAAK,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,SAAS,CAAC,UAAU,gBAAgB,mBAAmB,OAAO,GAAG,EAAU,IAAI,EAAK,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,SAAsB,EAAM,SAAS,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,cAAc,GAAK,GAAG,EAAW,IAAI,EAAK,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKC,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,mDAAmD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qBAAqB,CAAC,SAAS,kDAAqD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAO,GAAW,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAS,oKAA6K,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAK,GAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,GAA4B,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,UAAU,EAAc,GAAG,CAAC,UAAU,CAAC,UAAU,EAAc,GAAG,CAAC,CAAC,SAAsB,EAAK1B,GAAO,CAAC,OAAO,OAAO,UAAU,EAAc,GAAG,GAAG,YAAY,SAAS,YAAY,UAAU,iBAAiB,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,GAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,GAA6B,EAAK0B,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,UAAU,EAAe,GAAG,CAAC,UAAU,CAAC,UAAU,EAAe,GAAG,CAAC,CAAC,SAAsB,EAAK1B,GAAO,CAAC,OAAO,OAAO,UAAU,EAAe,GAAG,GAAG,YAAY,SAAS,YAAY,UAAU,oBAAoB,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,GAAmC,CAAC,QAAQ,GAAW,UAAU,2BAA2B,wBAAwB,UAAU,QAAQ,GAAW,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,UAAU,GAAK,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKC,GAAU,CAAC,cAAc,CAAC,cAAc,GAAM,WAAW,GAAM,OAAO,GAAM,SAAS,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,WAAW,GAAG,OAAO,GAAM,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,OAAO,GAAK,QAAQ,QAAQ,KAAK,SAAS,SAAS,SAAS,CAAC,UAAU,GAAG,KAAK,GAAG,aAAa,GAAY,CAAC,YAAY,KAAK,WAAW,KAAK,IAAI,+GAA+G,CAAC,iBAAoB,CAAC,QAAQ,EAAE,KAAK,MAAM,IAAI,QAAQ,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,KAAK,GAAK,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,KAAK,QAAQ,SAAS,sEAAsE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,QAAQ,GAAG,EAAW,IAAI,EAAK,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAsB,EAAK,UAAU,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAsB,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,YAAY,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAgB,QAAQ,EAAE,wBAAwB,GAAM,IAAI,8WAA8W,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAK0B,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,gCAAgC,SAAS,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,CAAC,SAAsB,EAAKxB,GAAa,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,OAAO,OAAO,GAAG,YAAY,aAAa,EAAE,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,KAAK,4IAA2J,UAAU,wEAAwE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAKwB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,4BAA4B,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKvB,GAAW,CAAC,OAAO,OAAO,GAAG,YAAY,UAAU,qBAAqB,SAAS,YAAY,UAAU,qEAAqE,UAAUyB,GAAG,UAAU,mEAAsE,UAAU,GAAM,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKF,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,4BAA4B,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKvB,GAAW,CAAC,OAAO,OAAO,GAAG,YAAY,UAAU,sBAAsB,SAAS,YAAY,UAAU,qEAAqE,UAAU0B,GAAoB,UAAU,gEAAsE,UAAU,GAAM,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKH,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,4BAA4B,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKvB,GAAW,CAAC,OAAO,OAAO,GAAG,YAAY,UAAU,oBAAoB,SAAS,YAAY,UAAU,mBAAmB,UAAU2B,GAAM,UAAU,kCAAkC,UAAU,GAAM,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAK,GAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,GAA6B,EAAKJ,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,4BAA4B,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,UAAU,EAAe,GAAG,CAAC,UAAU,CAAC,UAAU,EAAe,GAAG,CAAC,CAAC,SAAsB,EAAKvB,GAAW,CAAC,OAAO,OAAO,GAAG,YAAY,UAAU,kBAAkB,SAAS,YAAY,UAAU,iBAAiB,UAAU4B,GAAe,UAAU,kEAAkE,UAAU,GAAK,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,UAAU,EAAe,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,GAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,GAA6B,EAAKL,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,4BAA4B,GAAG,GAAmB,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,UAAU,EAAe,GAAG,CAAC,UAAU,CAAC,UAAU,EAAe,GAAG,CAAC,CAAC,SAAsB,EAAKvB,GAAW,CAAC,OAAO,OAAO,GAAG,YAAY,UAAU,gBAAgB,SAAS,YAAY,UAAU,qBAAqB,UAAU6B,GAAc,UAAU,oDAAuD,UAAU,GAAK,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,UAAU,EAAe,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAsB,EAAK,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAsB,EAAM,UAAU,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,YAAY,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAgB,QAAQ,EAAE,wBAAwB,GAAM,IAAI,8WAA8W,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKL,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,gCAAgC,SAAS,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,CAAC,SAAsB,EAAKtB,GAAc,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,OAAO,OAAO,GAAG,YAAY,aAAa,EAAE,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,KAAK,0JAAsK,UAAU,wEAAwE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,OAAO,SAAS,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKH,GAAU,CAAC,cAAc,CAAC,cAAc,GAAM,WAAW,GAAM,OAAO,GAAM,SAAS,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,WAAW,GAAG,OAAO,GAAM,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,OAAO,GAAK,QAAQ,QAAQ,KAAK,QAAQ,SAAS,SAAS,CAAC,UAAU,GAAG,KAAK,GAAG,aAAa,GAAY,CAAC,YAAY,KAAK,WAAW,KAAK,IAAI,gHAAgH,CAAC,2BAA8B,CAAC,QAAQ,EAAE,KAAK,MAAM,IAAI,QAAQ,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,KAAK,GAAK,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,KAAK,QAAQ,SAAS,sEAAsE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,SAAsB,EAAM,UAAU,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAK,GAAmB,CAAC,UAAU,eAAe,MAAM,wEAAwE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,QAAQ,EAAE,OAAO,EAAE,IAAI,OAAO,MAAM,CAAC,SAAS,OAAO,MAAM,OAAO,CAAC,IAAI,IAAI,KAAK,qHAAiI,WAAW,GAAM,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKyB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,0BAA0B,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,SAAS,WAAW,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,0BAA0B,SAAS,kDAAkD,UAAU,SAAS,WAAW,IAAI,cAAc,SAAS,WAAW,SAAS,CAAC,CAAC,CAAC,SAAsB,EAAK,GAAmB,CAAC,UAAU,eAAe,MAAM,wEAAwE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,0BAA0B,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,SAAS,WAAW,SAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,QAAQ,EAAE,OAAO,EAAE,IAAI,YAAY,MAAM,CAAC,SAAS,OAAO,MAAM,OAAO,CAAC,IAAI,IAAI,KAAK,8BAAiC,WAAW,GAAM,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,SAAsB,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,CAAC,SAAsB,EAAK,GAAmB,CAAC,UAAU,eAAe,MAAM,wEAAwE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,+CAA+C,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,QAAQ,EAAE,OAAO,EAAE,IAAI,YAAY,MAAM,CAAC,SAAS,OAAO,MAAM,OAAO,CAAC,IAAI,IAAI,KAAK,8GAA6H,WAAW,GAAM,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,SAAsB,EAAK,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAsB,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,YAAY,SAAsB,EAAK,EAAI,CAAC,UAAU,iBAAiB,QAAQ,EAAE,wBAAwB,GAAM,IAAI,kXAAkX,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,gCAAgC,SAAS,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,CAAC,SAAsB,EAAKtB,GAAc,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,OAAO,OAAO,GAAG,YAAY,aAAa,EAAE,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,KAAK,kHAA2H,UAAU,qEAAqE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,wFAA8F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,kBAAkB,GAAG,EAAW,IAAI,GAAK,SAAsB,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,oCAAuC,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,KAAK,WAAW,KAAK,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,IAAI,8FAA8F,OAAO,6UAA6U,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,oCAAuC,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,KAAK,WAAW,KAAK,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,IAAI,8FAA8F,OAAO,6UAA6U,CAAC,CAAC,CAAC,SAAsB,EAAKO,GAAM,CAAC,WAAW,CAAC,IAAI,oCAAuC,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,KAAK,WAAW,KAAK,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,IAAI,8FAA8F,OAAO,6UAA6U,CAAC,UAAU,iBAAiB,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,cAAc,GAAK,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKN,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAS,2CAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAMA,EAAe,CAAC,SAAS,CAAc,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,uKAAgL,CAAC,CAAC,CAAC,CAAc,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAsB,EAAK,KAAK,CAAC,UAAU,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,oJAAmK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,YAAY,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAiB,QAAQ,EAAE,wBAAwB,GAAM,IAAI,kXAAkX,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,0CAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,SAAsB,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,wCAAwC,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,kDAAwD,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,6CAAsD,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,iDAAiD,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,0CAA0C,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,4CAA4C,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,UAAU,CAAC,UAAU,gBAAgB,mBAAmB,kBAAkB,GAAG,EAAW,IAAI,GAAK,SAAsB,EAAM,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,cAAc,GAAK,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKsB,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAS,8EAAiF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAMA,EAAe,CAAC,SAAS,CAAc,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,wFAA8F,CAAC,CAAC,CAAC,CAAc,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,gHAAyH,CAAC,CAAC,CAAC,CAAc,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAsB,EAAK,KAAK,CAAC,UAAU,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,uGAAgH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,wCAA2C,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,KAAK,WAAW,KAAK,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,IAAI,6FAA6F,OAAO,0UAA0U,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,wCAA2C,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,KAAK,WAAW,KAAK,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,IAAI,6FAA6F,OAAO,0UAA0U,CAAC,CAAC,CAAC,SAAsB,EAAKO,GAAM,CAAC,WAAW,CAAC,IAAI,wCAA2C,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,KAAK,WAAW,KAAK,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,IAAI,6FAA6F,OAAO,0UAA0U,CAAC,UAAU,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,YAAY,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAiB,QAAQ,EAAE,wBAAwB,GAAM,IAAI,kXAAkX,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKN,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,iCAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,SAAsB,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,8CAAuD,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,uDAAuD,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,yCAAyC,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,8CAAiD,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKqB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,gBAAgB,GAAmB,OAAO,QAAQ,0CAA0C,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKrB,GAAU,CAAC,UAAU,OAAO,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,2EAA8E,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,YAAY,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKsB,EAAe,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,qEAAqE,CAAC,SAAS,8BAAiC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,GAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,GAA6B,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,UAAU,EAAe,GAAG,CAAC,UAAU,CAAC,UAAU,EAAe,GAAG,CAAC,CAAC,SAAsB,EAAK1B,GAAO,CAAC,OAAO,OAAO,UAAU,EAAe,GAAG,GAAG,YAAY,SAAS,YAAY,UAAU,iBAAiB,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,UAAU,CAAC,UAAU,gBAAgB,mBAAmB,eAAe,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,SAAsB,EAAK,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAsB,EAAK,MAAM,CAAC,UAAU,iBAAiB,SAAsB,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,YAAY,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,iBAAiB,QAAQ,EAAE,wBAAwB,GAAM,IAAI,8WAA8W,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAK2B,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,SAAsB,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAK,GAAO,CAAC,UAAU,SAAS,UAAU,OAAO,YAAY,CAAC,UAAU,EAAE,YAAY,GAAK,UAAU,EAAE,UAAU,GAAG,SAAS,GAAM,CAAC,IAAI,EAAE,OAAO,OAAO,YAAY,GAAG,GAAG,YAAY,SAAS,YAAY,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,eAAe,GAAM,aAAa,GAAG,WAAW,GAAG,cAAc,CAAC,WAAW,GAAK,UAAU,GAAK,CAAC,MAAM,CAAc,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,QAAQ,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,gBAAgB,GAAK,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKrB,GAAgB,CAAC,UAAU,aAAa,OAAO,OAAO,GAAG,YAAY,UAAU,eAAe,SAAS,wBAAwB,UAAU,qGAA2G,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,UAAU,GAAK,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,QAAQ,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,gBAAgB,GAAK,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKA,GAAgB,CAAC,UAAU,QAAQ,OAAO,OAAO,GAAG,YAAY,UAAU,iBAAiB,SAAS,wBAAwB,UAAU,+EAAwF,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,UAAU,GAAM,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,QAAQ,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,gBAAgB,GAAK,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKA,GAAgB,CAAC,UAAU,cAAc,OAAO,OAAO,GAAG,YAAY,UAAU,mBAAmB,SAAS,wBAAwB,UAAU,2FAA8F,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,UAAU,GAAK,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,QAAQ,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,gBAAgB,GAAK,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKA,GAAgB,CAAC,UAAU,GAAG,OAAO,OAAO,GAAG,YAAY,UAAU,kBAAkB,SAAS,wBAAwB,UAAU,+DAAqE,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,UAAU,GAAM,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,UAAU,CAAC,UAAU,gBAAgB,mBAAmB,MAAM,SAAsB,EAAK,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAsB,EAAM,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,SAAsB,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,YAAY,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAgB,QAAQ,EAAE,wBAAwB,GAAM,IAAI,8WAA8W,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKqB,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAS,mBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAS,uBAA6B,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKnB,GAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,uPAA0P,QAAQ,YAAY,UAAU,mEAAyE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKmB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKnB,GAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,oNAAmO,QAAQ,YAAY,UAAU,8CAAuD,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKmB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKnB,GAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,yNAAiP,QAAQ,YAAY,UAAU,kCAAqC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKmB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKnB,GAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,gPAA+P,QAAQ,YAAY,UAAU,8CAA8C,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKmB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKnB,GAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,2LAAuM,QAAQ,YAAY,UAAU,8CAA8C,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKmB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKnB,GAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,sQAA8R,QAAQ,YAAY,UAAU,+CAA+C,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKmB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKnB,GAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,+JAAkK,QAAQ,YAAY,UAAU,4CAA+C,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAKmB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,GAAG,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKnB,GAAS,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,wPAAoQ,QAAQ,YAAY,UAAU,4BAA4B,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,UAAU,CAAC,UAAU,iBAAiB,mBAAmB,iBAAiB,GAAG,EAAW,IAAI,GAAK,SAAsB,EAAK,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,UAAU,SAAsB,EAAM,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,mBAAmB,YAAY,SAAS,CAAc,EAAK,EAAI,CAAC,UAAU,gBAAgB,QAAQ,EAAE,wBAAwB,GAAM,IAAI,gXAAgX,mBAAmB,GAAK,CAAC,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKoB,EAAe,CAAC,SAAsB,EAAK,aAAa,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,gCAAgC,SAAS,iBAAiB,GAAK,iBAAiB,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,CAAC,CAAC,SAAsB,EAAKtB,GAAc,CAAC,KAAK,CAAC,WAAW,2CAA2C,SAAS,iDAAiD,UAAU,SAAS,WAAW,IAAI,cAAc,UAAU,WAAW,SAAS,CAAC,OAAO,OAAO,GAAG,YAAY,aAAa,EAAE,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,KAAK,kKAA2K,UAAU,wEAAwE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,gBAAgB,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAsB,EAAK,GAAK,CAAC,KAAK,iCAAiC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAK,UAAU,EAAE,CAAC,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAKnB,GAAc,CAAC,SAAS,GAAM,UAAU,iBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKmB,EAAe,CAAC,SAAsB,EAAK,KAAK,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,CAAC,SAAsB,EAAK,GAAK,CAAC,KAAK,8CAA8C,YAAY,GAAK,OAAO,YAAY,aAAa,GAAK,UAAU,EAAE,CAAC,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAKnB,GAAc,CAAC,SAAS,GAAM,UAAU,iBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,SAAsB,EAAKkB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,kBAAkB,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,GAAmB,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,SAAsB,EAAK,EAA0B,CAAC,OAAO,IAAI,MAAM,YAAY,GAAmB,OAAO,QAAQ,oCAAoC,GAAG,GAAmB,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAKA,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,QAAQ,YAAY,CAAC,CAAC,SAAsB,EAAKjB,GAAY,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,MAAM,OAAO,CAAC,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,mBAAmB,UAAU,CAAC,CAAc,EAAM,SAAS,CAAC,UAAU,iBAAiB,mBAAmB,SAAS,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,iBAAiB,SAAS,CAAc,EAAKiB,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,SAAsB,EAAKC,EAAe,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAsB,EAAK,GAAK,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,UAAU,EAAE,CAAC,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAsB,EAAK,GAAK,CAAC,KAAK,CAAC,KAAK,aAAa,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,UAAU,EAAE,CAAC,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAKD,EAAkB,CAAC,WAAW,EAAY,UAAU,CAAC,UAAU,CAAC,SAAsB,EAAKC,EAAe,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAsB,EAAK,GAAK,CAAC,KAAK,8CAA8C,YAAY,GAAK,OAAO,YAAY,aAAa,GAAK,UAAU,EAAE,CAAC,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAsB,EAAK,GAAK,CAAC,KAAK,8CAA8C,YAAY,GAAK,OAAO,YAAY,aAAa,GAAK,UAAU,EAAE,CAAC,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,SAAsB,EAAK,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,IAAI,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,2BAA8B,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,UAAU,gBAAgB,SAAsB,EAAKjB,GAAO,CAAC,SAAS,GAAM,UAAU,gBAAgB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAO,GAAI,CAAC,kFAAkF,gFAAgF,6gBAA6gB,kOAAkO,qKAAqK,0WAA0W,qVAAqV,+SAA+S,yTAAyT,8qBAA8qB,2PAA2P,oQAAoQ,oQAAoQ,0WAA0W,2MAA2M,wUAAwU,4VAA4V,uZAAuZ,mbAAmb,ieAAie,wSAAwS,4aAA4a,+kBAA+kB,4aAA4a,uUAAuU,2LAA2L,oJAAoJ,4VAA4V,8HAA8H,+VAA+V,6TAA6T,wRAAwR,mKAAmK,qRAAqR,0HAA0H,6QAA6Q,2WAA2W,4SAA4S,gPAAgP,2NAA2N,mZAAmZ,4VAA4V,6UAA6U,4PAA4P,gWAAgW,suBAAsuB,mVAAmV,mQAAmQ,kSAAkS,oVAAoV,wZAAwZ,wXAAwX,uiBAAuiB,mQAAmQ,kaAAka,mPAAmP,2WAA2W,yGAAyG,uNAAuN,4YAA4Y,qVAAqV,qTAAqT,yTAAyT,qSAAqS,4UAA4U,4YAA4Y,4SAA4S,6SAA6S,2JAA2J,oKAAoK,0NAA0N,qVAAqV,+SAA+S,2RAA2R,kMAAkM,8SAA8S,iPAAiP,4SAA4S,qIAAqI,GAAGwB,GAAgB,GAAGC,GAAiB,GAAGC,GAAiB,GAAGC,GAAiB,GAAGC,GAAiB,GAAGC,GAAiB,GAAGC,GAAiB,8MAA8M,gcAAgc,u3BAAu3B,qhGAAqhG,CAa194G,GAAgB,GAAQ7B,GAAU,GAAI,eAAe,IAAgB,GAAgB,GAAgB,YAAY,+BAA+B,GAAgB,aAAa,CAAC,OAAO,MAAM,MAAM,KAAK,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,IAAI,wFAAwF,OAAO,MAAM,CAAC,CAAC,cAAc,aAAa,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,kGAAkG,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAW,GAAG,GAAY,GAAG,GAAY,GAAG,GAAe,GAAG,GAAkB,GAAG,GAAgB,GAAG,GAAmB,GAAG,GAAwB,GAAG,GAAe,GAAG,GAAqB,GAAG,GAAY,GAAG,GAAc,GAAG,GAAmB,GAAG,GAAiB,GAAG,GAAY,GAAG,GAAwB8B,GAAkB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,GAAG,GAAwBC,GAAmB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,CAC//FC,GAAqB,CAAC,QAAU,CAAC,MAAQ,CAAC,KAAO,SAAS,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,QAAU,CAAC,KAAO,iBAAiB,KAAO,kBAAkB,MAAQ,EAAE,CAAC,YAAc,CAAC,yBAA2B,OAAO,qBAAuB,oWAAga,qBAAuB,OAAO,yBAA2B,QAAQ,sBAAwB,QAAQ,6BAA+B,OAAO,oCAAsC,4JAA0L,uBAAyB,GAAG,4BAA8B,OAAO,qBAAuB,OAAO,kBAAoB,OAAO,sBAAwB,IAAI,CAAC,CAAC,mBAAqB,CAAC,KAAO,WAAW,CAAC,CAAC,8BCfnpC,IAA4B,IAA4B,CAAM,QAAkB,MAAoB,CAAC,IAAI,EAAU,SAAS,cAAc,sBAAsB,CAAI,EAAW,EAAU,aAAa,UAAU,UAAU,EAAO,EAAU,SAAS,cAAc,OAAO,CAAC,EAAU,aAAa,OAAO,SAAS,CAAC,EAAU,aAAa,UAAU,UAAU,CAAC,SAAS,KAAK,YAAY,EAAU,GAAI,EAAE,CAAC,CAAqB,EAAK,MAAM,CAAC,UAAU,0BAA0B,MAAM,CAAC,QAAQ,OAAO,OAAO,QAAQ,WAAW,SAAS,eAAe,SAAS,gBAAgB,uBAAuB,WAAW,0BAA0B,SAAS,wBAAwB,UAAU,aAAa,oBAAoB,iBAAiB,qBAAqB,mBAAmB,cAAc,qBAAqB,CAAC,SAAsB,EAAM,OAAO,CAAC,MAAM,CAAC,UAAU,aAAa,WAAW,sBAAsB,WAAW,IAAI,SAAS,QAAQ,MAAM,OAAO,QAAQ,OAAO,WAAW,SAAS,cAAc,SAAS,QAAQ,SAAS,SAAS,UAAU,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,MAAM,CAAC,cAAc,SAAS,MAAM,uBAAuB,aAAa,OAAO,CAAC,SAAsB,EAAK,OAAO,CAAC,EAAE,yEAAyE,KAAK,eAAe,CAAC,CAAC,CAAC,CAAc,EAAK,KAAK,CAAC,MAAM,CAAC,OAAO,aAAa,SAAS,yBAAyB,MAAM,uBAAuB,UAAU,SAAS,CAAC,SAAS,iBAAiB,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,yBAAyB,aAAa,OAAO,WAAW,QAAQ,UAAU,SAAS,CAAC,SAAS,sEAAsE,CAAC,CAAc,EAAK,IAAI,CAAC,KAAK,IAAI,KAAK,SAAS,MAAM,CAAC,gBAAgB,oBAAoB,MAAM,UAAU,YAAY,MAAM,aAAa,MAAM,aAAa,MAAM,WAAW,OAAO,OAAO,OAAO,eAAe,OAAO,cAAc,WAAW,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAgI79D,GAAU,GAAQ,GAhIw9D,CAAC;;;;;;;;OAQl/D;;;;;;;OAOA;;;;;;;OAOA;;;;;;;OAOA;;;;;;;;OAQA;;;;;;;;;OASA;;;;;;;;OAQA;;;;;;;;OAQA;;;;;;;OAOA;;;;;;;OAOA;;;;;;;OAOA;;;;;;;;OAQA;;;;;;;;;OASA;;;;;;;;OAQA;;;;;;;OAOA;;;;;;;OAOA;;;;;;OAMA,CAA0C,IAAgB,GACpD,GAAqB,CAAC,QAAU,CAAC,QAAU,CAAC,KAAO,iBAAiB,KAAO,YAAY,MAAQ,EAAE,CAAC,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,mBAAqB,CAAC,KAAO,WAAW,CAAC,CAAC"}