{"version":3,"file":"supplier_profile-BH8xdKLw.js","sources":["../../../node_modules/lodash-es/isEmpty.js","../../../node_modules/@tanstack/query-core/build/lib/subscribable.mjs","../../../node_modules/@tanstack/query-core/build/lib/utils.mjs","../../../node_modules/@tanstack/query-core/build/lib/focusManager.mjs","../../../node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","../../../node_modules/@tanstack/query-core/build/lib/retryer.mjs","../../../node_modules/@tanstack/query-core/build/lib/logger.mjs","../../../node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","../../../node_modules/@tanstack/query-core/build/lib/removable.mjs","../../../node_modules/@tanstack/query-core/build/lib/query.mjs","../../../node_modules/@tanstack/query-core/build/lib/queryCache.mjs","../../../node_modules/@tanstack/query-core/build/lib/mutation.mjs","../../../node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","../../../node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","../../../node_modules/@tanstack/query-core/build/lib/queryClient.mjs","../../../node_modules/@tanstack/query-core/build/lib/queryObserver.mjs","../../../node_modules/@tanstack/query-core/build/lib/infiniteQueryObserver.mjs","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/@tanstack/react-query/build/lib/useSyncExternalStore.mjs","../../../node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs","../../../node_modules/@tanstack/react-query/build/lib/isRestoring.mjs","../../../node_modules/@tanstack/react-query/build/lib/QueryErrorResetBoundary.mjs","../../../node_modules/@tanstack/react-query/build/lib/utils.mjs","../../../node_modules/@tanstack/react-query/build/lib/errorBoundaryUtils.mjs","../../../node_modules/@tanstack/react-query/build/lib/suspense.mjs","../../../node_modules/@tanstack/react-query/build/lib/useBaseQuery.mjs","../../../node_modules/@tanstack/react-query/build/lib/useInfiniteQuery.mjs","../../../app/javascript/components/supplier_show/prop_shapes/supplier.ts","../../../app/javascript/components/supplier_show/Navigation.jsx","../../../app/javascript/components/supplier_show/SidebarCTABox.jsx","../../../app/javascript/components/supplier_show/UploadCustomersCTABox.jsx","../../../app/javascript/components/supplier_show/ContactButton.jsx","../../../app/javascript/components/supplier_show/UnclaimedCTABox.jsx","../../../app/javascript/components/supplier_show/ReviewCreateButton.jsx","../../../app/javascript/components/supplier_show/prop_shapes/list.ts","../../../app/javascript/components/supplier_show/list_selector/FoundationModal.jsx","../../../app/javascript/components/supplier_show/list_selector/ListForm.jsx","../../../app/javascript/components/supplier_show/ListSelector.jsx","../../../app/javascript/components/supplier_show/UpgradeToPremiumCTABox.jsx","../../../app/javascript/components/supplier_show/Sidebar.jsx","../../../app/javascript/components/supplier_show/prop_shapes/reviewMetadata.ts","../../../app/javascript/components/supplier_show/ExpandableHeader.jsx","../../../app/javascript/components/supplier_show/Section.jsx","../../../app/javascript/components/supplier_show/OverviewDetailItem.jsx","../../../app/javascript/components/supplier_show/OverviewDetailItems.jsx","../../../app/javascript/components/supplier_show/OverviewAbout.jsx","../../../app/assets/images/suppliers/facebook.png","../../../app/assets/images/suppliers/linkedin.png","../../../app/javascript/components/SocialLink.tsx","../../../app/javascript/components/supplier_show/Overview.jsx","../../../app/javascript/components/supplier_show/OverviewSection.jsx","../../../app/javascript/components/supplier_show/prop_shapes/commodity_code.ts","../../../app/javascript/components/supplier_show/CommodityCodes.jsx","../../../app/javascript/components/supplier_show/prop_shapes/commodity_codes.ts","../../../app/javascript/components/supplier_show/CommodityCodeSection.jsx","../../../app/javascript/components/supplier_show/prop_shapes/contract_vehicle.ts","../../../app/javascript/components/supplier_show/ContractVehicles.jsx","../../../app/javascript/components/supplier_show/prop_shapes/contract_vehicles.ts","../../../app/javascript/components/supplier_show/ContractVehicleSection.jsx","../../../app/javascript/components/supplier_show/RecentPostsSection.jsx","../../../app/javascript/components/supplier_show/ServiceArea.jsx","../../../app/javascript/components/supplier_show/prop_shapes/service_area.ts","../../../app/javascript/components/supplier_show/ServiceAreaSection.jsx","../../../app/javascript/components/supplier_show/prop_shapes/autoPubCondensedReview.ts","../../../app/javascript/components/supplier_show/AutoPubCondensedReview.jsx","../../../app/javascript/components/supplier_shared/OneClickReview/OneClickReview.tsx","../../../app/javascript/components/supplier_show/ReviewOneClickRatingArea.jsx","../../../app/javascript/components/supplier_show/hidden_reviews/PlaceholderReviews.tsx","../../../app/javascript/components/supplier_show/hidden_reviews/CallToActionBox.tsx","../../../app/javascript/components/supplier_show/hidden_reviews/CtaHeading.tsx","../../../app/assets/images/where-are-reviews-logo.png","../../../app/javascript/components/supplier_show/hidden_reviews/HiddenReviewsText.tsx","../../../app/javascript/components/supplier_show/hidden_reviews/JoinButton.tsx","../../../app/javascript/components/supplier_show/hidden_reviews/HiddenReviews.tsx","../../../app/javascript/components/supplier_show/RecentPerformance.tsx","../../../app/javascript/components/supplier_show/Reviews.jsx","../../../app/javascript/components/supplier_show/ReviewRepliesCount.tsx","../../../app/javascript/components/supplier_show/ReviewSection.jsx","../../../app/javascript/components/supplier_shared/EditButtonLink.tsx","../../../app/javascript/components/supplier_show/Base.jsx","../../../app/javascript/packs/supplier_profile.js"],"sourcesContent":["import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","class Subscribable {\n constructor() {\n this.listeners = new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n const identity = {\n listener\n };\n this.listeners.add(identity);\n this.onSubscribe();\n return () => {\n this.listeners.delete(identity);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.size > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n const changed = this.focused !== focused;\n\n if (changed) {\n this.focused = focused;\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nconst onlineEvents = ['online', 'offline'];\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n onlineEvents.forEach(event => {\n window.addEventListener(event, listener, false);\n });\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach(event => {\n window.removeEventListener(event, listener);\n });\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n const changed = this.online !== online;\n\n if (changed) {\n this.online = online;\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\"Missing queryFn for queryKey '\" + this.options.queryHash + \"'\");\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config, _this$cache$config$on2, _this$cache$config2;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, this.state.data, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on3, _this$cache$config3, _this$cache$config$on4, _this$cache$config4;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error(this.queryHash + \" data is undefined\"));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on3 = (_this$cache$config3 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on3.call(_this$cache$config3, data, this);\n (_this$cache$config$on4 = (_this$cache$config4 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on4.call(_this$cache$config4, data, this.state.error, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState,\n fetchStatus: 'idle'\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.defaultOptions = config.defaultOptions;\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, data, null, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c7, _this$mutationCache$c8, _this$options$onError, _this$options4, _this$mutationCache$c9, _this$mutationCache$c10, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c7 = (_this$mutationCache$c8 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c7.call(_this$mutationCache$c8, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c9 = (_this$mutationCache$c10 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c9.call(_this$mutationCache$c10, undefined, error, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject(\"Missing queryFn for queryKey '\" + context.options.queryHash + \"'\"));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { canFetch, isCancelledError } from './retryer.mjs';\n\nclass QueryObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.options = options;\n this.trackedProps = new Set();\n this.selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n\n bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n }\n\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n\n shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n }\n\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n }\n\n destroy() {\n this.listeners = new Set();\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n this.currentQuery.removeObserver(this);\n }\n\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryOptions(options);\n\n if (process.env.NODE_ENV !== 'production' && typeof (options == null ? void 0 : options.isDataEqual) !== 'undefined') {\n this.client.getLogger().error(\"The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option\");\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this\n });\n }\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n const mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n const nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n }\n\n getOptimisticResult(options) {\n const query = this.client.getQueryCache().build(this.client, options);\n const result = this.createResult(query, options);\n\n if (shouldAssignObserverCurrentProperties(this, result, options)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult everytime\n // an observer reads an optimistic value.\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.currentResult = result;\n this.currentResultOptions = this.options;\n this.currentResultState = this.currentQuery.state;\n }\n\n return result;\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach(key => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n\n getCurrentQuery() {\n return this.currentQuery;\n }\n\n remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n }\n\n refetch({\n refetchPage,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n refetchPage\n }\n });\n }\n\n fetchOptimistic(options) {\n const defaultedOptions = this.client.defaultQueryOptions(options);\n const query = this.client.getQueryCache().build(this.client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n\n fetch(fetchOptions) {\n var _fetchOptions$cancelR;\n\n return this.executeFetch({ ...fetchOptions,\n cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true\n }).then(() => {\n this.updateResult();\n return this.currentResult;\n });\n }\n\n executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n let promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions != null && fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n updateStaleTimeout() {\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n const timeout = time + 1;\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n\n computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n }\n\n updateRefetchInterval(nextInterval) {\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.executeFetch();\n }\n }, this.currentRefetchInterval);\n }\n\n updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n }\n\n clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n }\n\n clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n }\n\n createResult(query, options) {\n const prevQuery = this.currentQuery;\n const prevOptions = this.options;\n const prevResult = this.currentResult;\n const prevResultState = this.currentResultState;\n const prevResultOptions = this.currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n const {\n state\n } = query;\n let {\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n fetchStatus,\n status\n } = state;\n let isPreviousData = false;\n let isPlaceholderData = false;\n let data; // Optimistically set result in fetching state if needed\n\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle';\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && status === 'loading') {\n let placeholderData; // Memoize placeholder data\n\n if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n const isFetching = fetchStatus === 'fetching';\n const isLoading = status === 'loading';\n const isError = status === 'error';\n const result = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n }\n\n updateResult(notifyOptions) {\n const prevResult = this.currentResult;\n const nextResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify and update result if something has changed\n\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n\n this.currentResult = nextResult; // Determine which callbacks to trigger\n\n const defaultNotifyOptions = {\n cache: true\n };\n\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n\n const {\n notifyOnChangeProps\n } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === 'function' ? notifyOnChangeProps() : notifyOnChangeProps;\n\n if (notifyOnChangePropsValue === 'all' || !notifyOnChangePropsValue && !this.trackedProps.size) {\n return true;\n }\n\n const includedProps = new Set(notifyOnChangePropsValue != null ? notifyOnChangePropsValue : this.trackedProps);\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error');\n }\n\n return Object.keys(this.currentResult).some(key => {\n const typedKey = key;\n const changed = this.currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify({ ...defaultNotifyOptions,\n ...notifyOptions\n });\n }\n\n updateQuery() {\n const query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n const prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n }\n\n onQueryUpdate(action) {\n const notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n }\n\n notify(notifyOptions) {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;\n\n (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);\n (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);\n } else if (notifyOptions.onError) {\n var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;\n\n (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);\n (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, this.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n this.listeners.forEach(({\n listener\n }) => {\n listener(this.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n }\n\n}\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n} // this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\n\n\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult, options) {\n // it is important to keep this condition like this for three reasons:\n // 1. It will get removed in the v5\n // 2. it reads: don't update the properties if we want to keep the previous\n // data.\n // 3. The opposite condition (!options.keepPreviousData) would fallthrough\n // and will result in a bad decision\n if (options.keepPreviousData) {\n return false;\n } // this means we want to put some placeholder data when pending and queryKey\n // changed.\n\n\n if (options.placeholderData !== undefined) {\n // re-assign properties only if current data is placeholder data\n // which means that data did not arrive yet, so, if there is some cached data\n // we need to \"prepare\" to receive it\n return optimisticResult.isPlaceholderData;\n } // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n\n\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n } // basically, just keep previous properties if nothing changed\n\n\n return false;\n}\n\nexport { QueryObserver };\n//# sourceMappingURL=queryObserver.mjs.map\n","import { QueryObserver } from './queryObserver.mjs';\nimport { infiniteQueryBehavior, hasNextPage, hasPreviousPage } from './infiniteQueryBehavior.mjs';\n\nclass InfiniteQueryObserver extends QueryObserver {\n // Type override\n // Type override\n // Type override\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(client, options) {\n super(client, options);\n }\n\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n\n setOptions(options, notifyOptions) {\n super.setOptions({ ...options,\n behavior: infiniteQueryBehavior()\n }, notifyOptions);\n }\n\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n\n fetchNextPage({\n pageParam,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n fetchMore: {\n direction: 'forward',\n pageParam\n }\n }\n });\n }\n\n fetchPreviousPage({\n pageParam,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n fetchMore: {\n direction: 'backward',\n pageParam\n }\n }\n });\n }\n\n createResult(query, options) {\n var _state$fetchMeta, _state$fetchMeta$fetc, _state$fetchMeta2, _state$fetchMeta2$fet, _state$data, _state$data2;\n\n const {\n state\n } = query;\n const result = super.createResult(query, options);\n const {\n isFetching,\n isRefetching\n } = result;\n const isFetchingNextPage = isFetching && ((_state$fetchMeta = state.fetchMeta) == null ? void 0 : (_state$fetchMeta$fetc = _state$fetchMeta.fetchMore) == null ? void 0 : _state$fetchMeta$fetc.direction) === 'forward';\n const isFetchingPreviousPage = isFetching && ((_state$fetchMeta2 = state.fetchMeta) == null ? void 0 : (_state$fetchMeta2$fet = _state$fetchMeta2.fetchMore) == null ? void 0 : _state$fetchMeta2$fet.direction) === 'backward';\n return { ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, (_state$data = state.data) == null ? void 0 : _state$data.pages),\n hasPreviousPage: hasPreviousPage(options, (_state$data2 = state.data) == null ? void 0 : _state$data2.pages),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n }\n\n}\n\nexport { InfiniteQueryObserver };\n//# sourceMappingURL=infiniteQueryObserver.mjs.map\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use client';\nimport { useSyncExternalStore as useSyncExternalStore$1 } from 'use-sync-external-store/shim/index.js';\n\nconst useSyncExternalStore = useSyncExternalStore$1;\n\nexport { useSyncExternalStore };\n//# sourceMappingURL=useSyncExternalStore.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(context, contextSharing) {\n if (context) {\n return context;\n }\n\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst IsRestoringContext = /*#__PURE__*/React.createContext(false);\nconst useIsRestoring = () => React.useContext(IsRestoringContext);\nconst IsRestoringProvider = IsRestoringContext.Provider;\n\nexport { IsRestoringProvider, useIsRestoring };\n//# sourceMappingURL=isRestoring.mjs.map\n","'use client';\nimport * as React from 'react';\n\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\n\nconst QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nconst useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext); // COMPONENT\n\nconst QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};\n\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary };\n//# sourceMappingURL=QueryErrorResetBoundary.mjs.map\n","function shouldThrowError(_useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params);\n }\n\n return !!_useErrorBoundary;\n}\n\nexport { shouldThrowError };\n//# sourceMappingURL=utils.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { shouldThrowError } from './utils.mjs';\n\nconst ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nconst useClearResetErrorBoundary = errorResetBoundary => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nconst getHasError = ({\n result,\n errorResetBoundary,\n useErrorBoundary,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(useErrorBoundary, [result.error, query]);\n};\n\nexport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary };\n//# sourceMappingURL=errorBoundaryUtils.mjs.map\n","const ensureStaleTime = defaultedOptions => {\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n }\n }\n};\nconst willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nconst shouldSuspend = (defaultedOptions, result, isRestoring) => (defaultedOptions == null ? void 0 : defaultedOptions.suspense) && willFetch(result, isRestoring);\nconst fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).then(({\n data\n}) => {\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n}).catch(error => {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n});\n\nexport { ensureStaleTime, fetchOptimistic, shouldSuspend, willFetch };\n//# sourceMappingURL=suspense.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { notifyManager } from '@tanstack/query-core';\nimport { useSyncExternalStore } from './useSyncExternalStore.mjs';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary.mjs';\nimport { useQueryClient } from './QueryClientProvider.mjs';\nimport { useIsRestoring } from './isRestoring.mjs';\nimport { ensurePreventErrorBoundaryRetry, useClearResetErrorBoundary, getHasError } from './errorBoundaryUtils.mjs';\nimport { ensureStaleTime, shouldSuspend, fetchOptimistic } from './suspense.mjs';\n\nfunction useBaseQuery(options, Observer) {\n const queryClient = useQueryClient({\n context: options.context\n });\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = queryClient.defaultQueryOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions._optimisticResults = isRestoring ? 'isRestoring' : 'optimistic'; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n ensureStaleTime(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(() => new Observer(queryClient, defaultedOptions));\n const result = observer.getOptimisticResult(defaultedOptions);\n useSyncExternalStore(React.useCallback(onStoreChange => {\n const unsubscribe = isRestoring ? () => undefined : observer.subscribe(notifyManager.batchCalls(onStoreChange)); // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n\n observer.updateResult();\n return unsubscribe;\n }, [observer, isRestoring]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n React.useEffect(() => {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n } // Handle error boundary\n\n\n if (getHasError({\n result,\n errorResetBoundary,\n useErrorBoundary: defaultedOptions.useErrorBoundary,\n query: observer.getCurrentQuery()\n })) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\n\nexport { useBaseQuery };\n//# sourceMappingURL=useBaseQuery.mjs.map\n","'use client';\nimport { parseQueryArgs, InfiniteQueryObserver } from '@tanstack/query-core';\nimport { useBaseQuery } from './useBaseQuery.mjs';\n\nfunction useInfiniteQuery(arg1, arg2, arg3) {\n const options = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(options, InfiniteQueryObserver);\n}\n\nexport { useInfiniteQuery };\n//# sourceMappingURL=useInfiniteQuery.mjs.map\n","import PropTypes from 'prop-types'\n\nconst socialShape = PropTypes.shape({\n platform: PropTypes.string.isRequired,\n link: PropTypes.string.isRequired\n})\n\nexport default PropTypes.shape({\n address: PropTypes.string,\n canEdit: PropTypes.bool,\n claimed: PropTypes.bool.isRequired,\n contactMethod: PropTypes.shape({\n contactConfigured: PropTypes.bool.isRequired,\n contactByEmail: PropTypes.bool,\n link: PropTypes.string\n }).isRequired,\n coverUrl: PropTypes.string,\n description: PropTypes.string,\n facebookUrl: PropTypes.string,\n id: PropTypes.number.isRequired,\n linkedinUrl: PropTypes.string,\n logoUrl: PropTypes.string,\n name: PropTypes.string.isRequired,\n phone: PropTypes.string,\n pro: PropTypes.bool.isRequired,\n rating: PropTypes.number.isRequired,\n reviewCount: PropTypes.number.isRequired,\n socialMedia: PropTypes.arrayOf(socialShape),\n reviewsSummary: PropTypes.string,\n reviewsSummaryLastUpdatedAt: PropTypes.string,\n website: PropTypes.string\n})\n","// TODO: CONVERT TO TYPESCRIPT\nimport React from 'react'\n\nconst Navigation = ({ shouldShowRecentPosts }) => {\n const renderLink = ({ title, anchor }) => (\n
  • {title}
  • \n )\n\n return (\n \n )\n}\n\nexport default Navigation\n","// TODO: CONVERT TO TYPESCRIPT\nimport React from 'react'\n\nfunction SidebarCTABox ({ children, className }) {\n return (\n
    \n
    \n {children}\n
    \n
    \n )\n}\n\nfunction SidebarCTABoxHeader ({ children }) {\n return (\n
    \n {children}\n
    \n )\n}\n\nfunction SidebarCTABoxBody ({ children }) {\n return (\n
    \n {children}\n
    \n )\n}\n\nfunction SidebarCTABoxLink ({ href, text }) {\n return (\n
    \n \n \n {text}\n \n \n \n
    \n )\n}\n\nexport { SidebarCTABox, SidebarCTABoxHeader, SidebarCTABoxBody, SidebarCTABoxLink }\n","import React from 'react'\nimport { SidebarCTABox, SidebarCTABoxHeader, SidebarCTABoxLink } from './SidebarCTABox'\n\nfunction UploadCustomersCTABox () {\n return (\n \n \n Procurated will help you get reviews from your SLED customers.\n \n \n \n )\n}\n\nexport default UploadCustomersCTABox\n","import React from 'react'\nimport TrackedLink from './TrackedLink'\n\nconst ContactButton = ({ contactByEmail, link, supplierId, trackingKey, className, text }) => {\n return (\n \n {text || 'Contact Us'}\n \n )\n}\n\nexport default ContactButton\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { SidebarCTABox, SidebarCTABoxHeader, SidebarCTABoxLink, SidebarCTABoxBody } from './SidebarCTABox'\nimport { editSupplierOnboarding } from '../routes/path'\n\nconst UnclaimedCTABox = ({ className, supplierId }) => {\n return (\n \n \n Is this your business?\n \n This business profile is currently unmanaged. Keeping this profile up to date helps government buyers find your profile and make informed decisions when preparing to spend.\n \n \n )\n}\n\nUnclaimedCTABox.propTypes = {\n className: PropTypes.string,\n supplierId: PropTypes.number.isRequired\n}\n\nexport default UnclaimedCTABox\n","// TODO: CONVERT TO TYPESCRIPT\nimport React, { useContext } from 'react'\nimport PropTypes from 'prop-types'\nimport { texasVptsReportPath } from 'components/routes/external'\nimport { createReviewPath, reviewWithSupplierPath } from 'components/routes/path'\nimport { AuthContext, USER_TYPES, verifiedAgencyUser } from 'components/common/auth/AuthContext'\n\nconst ReviewCreateButton = ({ supplierId, className, text }) => {\n const authContext = useContext(AuthContext)\n\n const renderButton = (href, dataMethod, theText) => (\n \n {theText}\n \n )\n\n const renderButtonForUser = () => {\n if (authContext.isTxVpts) {\n return renderButton(texasVptsReportPath(), 'post', 'Submit a Vendor Performance Report')\n } else if (verifiedAgencyUser(authContext)) {\n return renderButton(createReviewPath(supplierId), 'post', text)\n } else if (authContext.userType === USER_TYPES.UNAUTHED) {\n return renderButton(reviewWithSupplierPath(supplierId), 'get', text)\n } else {\n return null\n }\n }\n\n return (\n renderButtonForUser()\n )\n}\n\nReviewCreateButton.propTypes = {\n supplierId: PropTypes.number.isRequired,\n className: PropTypes.string\n}\n\nexport default ReviewCreateButton\n","import PropTypes from 'prop-types'\n\nexport default PropTypes.shape({\n name: PropTypes.string.isRequired,\n suppliers: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.number.isRequired\n })).isRequired\n})\n","// TODO: CONVERT TO TYPESCRIPT\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\nconst FoundationModal = ({ modalId, classes, children }) => {\n const modal = () => $(`#${modalId}`)\n\n const close = () => {\n modal().foundation('close')\n }\n\n const combinedClasses = () => (['reveal', classes].join(' '))\n\n return (\n
    \n \n {children}\n
    \n )\n}\n\nFoundationModal.propTypes = {\n modalId: PropTypes.string.isRequired,\n classes: PropTypes.string,\n children: PropTypes.node.isRequired\n}\n\nexport default FoundationModal\n","// TODO: CONVERT TO TYPESCRIPT\n/* global errorPanel */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { Formik, Form, Field, ErrorMessage } from 'formik'\n\nconst ListForm = ({ supplier, onCreateList }) => {\n const validate = (values) => {\n const errors = {}\n\n if (!values.name) {\n errors.name = 'Required'\n }\n\n return errors\n }\n\n const closeModal = () => {\n $('#lists-modal').foundation('close')\n }\n\n return (\n <>\n
    \n

    Create a New List

    \n

    Give your new list a name and we'll add {supplier.name} to it.

    \n
    \n
    \n {\n onCreateList(values.name, supplier.id)\n .then(() => {\n closeModal()\n actions.resetForm()\n })\n .catch(() => {\n errorPanel(\n 'List could not be created. Please try again or contact Support.'\n )\n })\n }}\n validate={validate}\n >\n
    \n \n \n \n
    \n \n \n
    \n \n \n
    \n \n )\n}\n\nListForm.propTypes = {\n supplier: PropTypes.shape({ id: PropTypes.number }).isRequired,\n onCreateList: PropTypes.func.isRequired\n}\n\nexport default ListForm\n","import React, { useState, useEffect, useRef } from 'react'\nimport PropTypes from 'prop-types'\nimport ListShape from './prop_shapes/list'\nimport { addSupplierToListPath, listsPath, removeSupplierFromListPath } from '../routes/api'\nimport { api } from 'components/api'\nimport FoundationModal from './list_selector/FoundationModal'\nimport ListForm from './list_selector/ListForm'\n\nfunction useListenForOutsideClicks (\n domNodeRef,\n { shouldListen, onClickOutside } = { shouldListen: true, onClickOutside: () => {} }\n) {\n // Keep a ref to the current callback so we don't have to call useEffect every time the function ref changes.\n // This ensures we always call the latest callback.\n const callbackRef = useRef(onClickOutside)\n callbackRef.current = onClickOutside\n\n useEffect(() => {\n // Don't create a listener if we shouldn't be listening.\n if (!shouldListen) return\n\n const isInCreateListModal = (element) => {\n return !!document.getElementById('lists-modal')?.contains(element)\n }\n\n const isInListSelector = (element) => {\n return !!(domNodeRef?.current && domNodeRef.current.contains(element))\n }\n\n // Keeping the listener inside the useEffect ensures that `document.removeEventListener` is called with the correct\n // function reference.\n const listenForOutsideClicks = (e) => {\n if (domNodeRef?.current && (!isInListSelector(e.target) && !isInCreateListModal(e.target))) {\n callbackRef.current()\n }\n }\n\n document.addEventListener('click', listenForOutsideClicks)\n\n return () => {\n document.removeEventListener('click', listenForOutsideClicks)\n }\n }, [shouldListen])\n}\n\nexport const ListSelector = (props) => {\n const listSelectorRef = useRef()\n const [dropdownVisible, setDropdownVisible] = useState(false)\n\n useListenForOutsideClicks(listSelectorRef, {\n shouldListen: dropdownVisible,\n onClickOutside: () => {\n // Clicking outside the list selector should *close* the dropdown.\n setDropdownVisible(false)\n props.onClose && props.onClose()\n }\n })\n\n const handleDropdownButtonClick = () => {\n setDropdownVisible(!dropdownVisible)\n if (dropdownVisible) {\n props.onClose && props.onClose()\n } else {\n props.onOpen && props.onOpen()\n }\n }\n\n const handleCreateNewListClick = () => {\n $('#lists-modal').foundation('open')\n }\n\n const handleSupplierSelection = (e) => {\n const clickedListId = e.target.name\n const selectedList = props.lists.find(\n (list) => typeof list.id === 'number' ? list.id === parseInt(clickedListId) : list.id === clickedListId\n )\n\n if (props.onSelectList) props.onSelectList(selectedList)\n }\n\n const includesSupplier = (list, supplier) => {\n return list.suppliers.find((listSupplier) => listSupplier.id === supplier.id) !== undefined\n }\n\n const renderListsDropdown = (lists, supplier) => {\n return (\n
    \n
    \n {\n lists.map((list) => {\n const selected = includesSupplier(list, supplier)\n\n return (\n
    \n \n
    \n )\n })\n }\n
    \n \n
    \n )\n }\n\n return (\n <>\n
    \n
    \n \n {dropdownVisible &&\n renderListsDropdown(props.lists, props.supplier)}\n
    \n
    \n \n \n \n \n )\n}\n\nListSelector.propTypes = {\n supplier: PropTypes.shape({ id: PropTypes.number }),\n lists: PropTypes.arrayOf(ListShape),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onSelectList: PropTypes.func,\n onCreateList: PropTypes.func\n}\n\n// Hook for all the API calls that handles race conditions. Rules are this:\n// - When `getLists()` is called, only the last result is used.\n// - When there are any in-flight mutations, the results of `getLists` is discarded.\n// - After all in-flight mutations are done, `getLists` is called to make sure the latest results are used.\nfunction useListsApi () {\n // It's necessary to keep track of the current promise because there might be race conditions when calling the API\n // multiple times.\n const currentFetchPromise = useRef(null)\n // If this count is zero, there are no in-flight mutations.\n const mutationCount = useRef(0)\n const componentIsMounted = useRef(true)\n\n const [isLoading, setIsLoading] = useState(false)\n const [lists, setLists] = useState(null)\n\n const getLists = () => {\n // There are in-flight mutations, so we don't want to fetch the latest lists.\n // Latest lists will be re-fetched after the mutations are done.\n if (mutationCount.current > 0 || !componentIsMounted.current) return\n\n const currentFetchReference = api.get({ url: listsPath() }).then(({ data }) => data)\n currentFetchPromise.current = currentFetchReference\n\n if (lists === null) setIsLoading(true)\n\n // Only updates the lists when this is the latest call and when there aren't any other mutations in progress.\n currentFetchReference\n .then(lists => {\n // This promise was the last called promise, we can modify the list + set loading to false.\n if (currentFetchPromise.current === currentFetchReference && mutationCount.current === 0) {\n if (componentIsMounted.current) {\n setLists(lists)\n setIsLoading(false)\n }\n currentFetchPromise.current = null\n }\n })\n }\n\n // Update function that's functional setState, but looks up the id of the list before setting it.\n // We do this because the reference to the list might be out of date, always want to use the latest one.\n const updateListWithId = (id, updateFunc) => {\n if (!componentIsMounted.current) return\n setLists(lists => lists.map(list => list.id === id ? updateFunc(list) : list))\n }\n\n // Wraps the mutations in a promise that updates the `mutationCount` ref.\n // When the promise resolves and the `mutatioNCount` is 0, we refetch the lists.\n // Does this on both `then` and `catch`.\n const refetchAfterAllMutationsFinish = (mutation) => {\n mutationCount.current = mutationCount.current + 1\n\n const handlePromiseResult = (data) => {\n mutationCount.current = mutationCount.current - 1\n if (mutationCount.current === 0) {\n getLists()\n }\n return data\n }\n\n // If there is an in-flight fetch, it needs to be discarded. It will return out-of-date data.\n if (currentFetchPromise.current !== null) currentFetchPromise.current = null\n\n return mutation.then(handlePromiseResult).catch(handlePromiseResult)\n }\n\n const addSupplierToList = (selectedList, supplier) => {\n return refetchAfterAllMutationsFinish(\n api.patchWithCsrf({\n url: addSupplierToListPath(selectedList.id),\n data: {\n supplier_id: supplier.id\n }\n })\n .then(({ data }) => data)\n )\n }\n\n const removeSupplierFromList = (selectedList, supplier) => {\n return refetchAfterAllMutationsFinish(\n api.patchWithCsrf({\n url: removeSupplierFromListPath(selectedList.id),\n data: { supplier_id: supplier.id }\n })\n .then(({ data }) => data)\n )\n }\n\n const createListWithSupplier = (listName, supplierId) => {\n return refetchAfterAllMutationsFinish(\n api.postWithCsrf({\n url: listsPath(),\n data: {\n list: {\n name: listName,\n supplier_ids: [\n supplierId\n ]\n }\n }\n })\n .then(({ data }) => data)\n )\n }\n\n return {\n isLoading,\n lists: lists || [],\n getLists,\n addSupplierToList,\n removeSupplierFromList,\n updateListWithId,\n createListWithSupplier\n }\n}\nconst ListSelectorWithApiCall = (props) => {\n const { lists, getLists, addSupplierToList, removeSupplierFromList, updateListWithId, createListWithSupplier } = useListsApi()\n\n const listHasSupplier = (list, supplier) => list.suppliers.find(listSupplier => listSupplier.id === supplier.id) !== undefined\n\n const toggleSupplierInList = (list, supplier) => {\n if (listHasSupplier(list, supplier)) {\n return { ...list, suppliers: list.suppliers.filter(listSupplier => listSupplier.id !== supplier.id) }\n } else {\n return { ...list, suppliers: [...list.suppliers, { ...supplier }] }\n }\n }\n\n const optimisticallyUpdateLists = (selectedList) => {\n updateListWithId(selectedList.id, (foundList) => toggleSupplierInList(foundList, props.supplier))\n\n if (listHasSupplier(selectedList, props.supplier)) {\n removeSupplierFromList(selectedList, props.supplier)\n } else {\n addSupplierToList(selectedList, props.supplier)\n }\n }\n\n return (\n getLists()}\n onSelectList={(list) => optimisticallyUpdateLists(list)}\n onCreateList={createListWithSupplier}\n />\n )\n}\n\nListSelectorWithApiCall.propTypes = {\n supplier: PropTypes.shape({ id: PropTypes.number })\n}\n\nexport default ListSelectorWithApiCall\n","import React from 'react'\nimport { SidebarCTABox, SidebarCTABoxHeader, SidebarCTABoxLink } from './SidebarCTABox'\n\nfunction UpgradeToPremiumCTABox () {\n return (\n \n \n Contact Sales to upgrade your account and engage more government buyers.\n \n \n \n )\n}\n\nexport default UpgradeToPremiumCTABox\n","import React, { useContext } from 'react'\nimport PropTypes from 'prop-types'\nimport SupplierShape from './prop_shapes/supplier'\nimport { AuthContext, USER_TYPES, USER_STATES } from 'components/common/auth/AuthContext'\n\nimport Navigation from './Navigation'\nimport UploadCustomersCTABox from './UploadCustomersCTABox'\nimport ContactButton from './ContactButton'\nimport UnclaimedCTABox from './UnclaimedCTABox'\nimport ReviewCreateButton from './ReviewCreateButton'\nimport ListSelector from './ListSelector'\nimport UpgradeToPremiumCTABox from './UpgradeToPremiumCTABox'\n\nconst Sidebar = ({ supplier, shouldShowRecentPosts }) => {\n const authContext = useContext(AuthContext)\n\n const renderContactButton = () => {\n if (supplier.pro && supplier.contactMethod.contactConfigured) {\n const { pro, contactMethod, id } = supplier\n return (\n
    \n \n
    \n )\n }\n }\n\n const renderReviewButton = () => (\n ]\n }\n />\n )\n\n const renderListsSelector = () => {\n return (\n \n )\n }\n\n const renderSidebarCTA = (authContext, pro) => {\n if (!authContext.isOwner) {\n return null\n }\n\n if (pro) {\n return \n } else {\n return \n }\n }\n\n return (\n \n \n )\n}\n\nSidebar.propTypes = {\n supplier: SupplierShape,\n shouldShowRecentPosts: PropTypes.bool\n}\n\nexport default Sidebar\n","import PropTypes from 'prop-types'\nimport StarRatingsShape from './star_ratings'\n\nconst reviewCountsShape = PropTypes.shape({\n 1: PropTypes.number,\n 2: PropTypes.number,\n 3: PropTypes.number,\n 4: PropTypes.number,\n 5: PropTypes.number\n})\n\nexport default PropTypes.shape({\n rating: PropTypes.number.isRequired,\n review_count: PropTypes.number.isRequired,\n review_counts: reviewCountsShape.isRequired,\n star_ratings: StarRatingsShape.isRequired,\n visible_review_count: PropTypes.number.isRequired,\n review_replies_count: PropTypes.number.isRequired\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Callout } from 'components/common/callout'\nimport ReviewMetadataShape from 'components/supplier_show/prop_shapes/reviewMetadata'\n\nconst ExpandableHeader = (props) => {\n const renderToggleButton = () => {\n return (\n \n )\n }\n\n const handleClick = () => props.locked ? handleLockedClick() : props.handleClick()\n\n const handleLockedClick = () => {\n localStorage.setItem('redirect_to', window.location.href)\n $('#locked-modal').foundation('open')\n }\n\n const renderTitleContent = () => {\n if (props.locked) {\n return (\n \n \n {props.title}\n \n )\n } else {\n return props.title\n }\n }\n\n const renderSecondaryCallout = () => {\n if (props.secondaryCallout) {\n return (\n
    \n {props.secondaryCallout}\n
    \n )\n } else {\n return null\n }\n }\n\n const renderTitle = () => (\n
    \n

    {renderTitleContent()}

    \n
    \n )\n\n const renderCountData = () => (\n
    \n
    \n \n
    \n {renderSecondaryCallout()}\n
    \n )\n\n const renderActions = () => (\n
    \n {props.editButton}\n {props.rightCallout}\n
    \n )\n\n const renderSingleline = () => (\n
    \n {renderTitle()}\n {renderCountData()}\n
    \n {renderActions()}\n
    \n )\n\n const renderMultiline = () => (\n
    \n
    \n {renderTitle()}\n
    \n
    \n {renderCountData()}\n {renderActions()}\n
    \n
    \n )\n\n return (\n
    \n {props.multiline ? renderMultiline() : renderSingleline()}\n
    \n {renderToggleButton()}\n
    \n
    \n )\n}\n\nExpandableHeader.propTypes = {\n title: PropTypes.string,\n callout: PropTypes.oneOfType([\n PropTypes.string.isRequired,\n PropTypes.object.isRequired\n ]),\n secondaryCallout: PropTypes.element,\n expanded: PropTypes.bool.isRequired,\n handleClick: PropTypes.func.isRequired,\n locked: PropTypes.bool.isRequired,\n editButton: PropTypes.element,\n rightCallout: PropTypes.node,\n idText: PropTypes.string,\n metadata: ReviewMetadataShape,\n multiline: PropTypes.bool\n}\n\nExpandableHeader.defaultProps = {\n locked: false,\n multiline: false\n}\n\nexport default ExpandableHeader\n","import React, { useState, useContext, createContext, useMemo } from 'react'\nimport PropTypes from 'prop-types'\nimport ExpandableHeader from './ExpandableHeader'\nimport LoadingDots from '../LoadingDots'\n\nconst SectionContext = createContext({\n isLocked: false,\n showContent: true,\n onExpandClick: () => {}\n})\n\nexport function ExpandedContent (props) {\n const { showContent } = useContext(SectionContext)\n\n if (showContent) return props.children\n return null\n}\n\nExpandedContent.propTypes = {\n children: PropTypes.node\n}\n\nexport function SectionHeader (props) {\n const { isLocked, onExpandClick, showContent } = useContext(SectionContext)\n\n return (\n \n )\n}\n\nSectionHeader.propTypes = {\n callout: ExpandableHeader.propTypes.callout,\n children: PropTypes.node,\n rightCallout: ExpandableHeader.propTypes.rightCallout\n}\n\nexport function ViewMoreButton ({ show, onViewMore }) {\n if (!show) { return null }\n\n const [isLoading, setIsLoading] = useState(false)\n\n const handleViewMoreClick = async (e) => {\n setIsLoading(true)\n await onViewMore(e)\n setIsLoading(false)\n }\n\n return (\n <>\n
    \n\n \n\n \n View More\n \n
    \n \n )\n}\n\nViewMoreButton.propTypes = {\n show: PropTypes.bool,\n onViewMore: PropTypes.func\n}\n\nViewMoreButton.defaultProps = {\n show: false\n}\n\nconst Section = (props) => {\n const [expanded, setExpanded] = useState(props.expanded)\n const isLocked = props.locked\n\n const contextValue = useMemo(() => {\n let showContent = true\n\n if (props.expandable) {\n showContent = expanded\n }\n\n const toggleExpanded = () => {\n setExpanded(prev => !prev)\n }\n\n return {\n showContent,\n isLocked,\n onExpandClick: toggleExpanded\n }\n }, [expanded, props.expandable, isLocked])\n\n const classNameList = () => {\n let list = [\n 'section',\n 'pro-rounded',\n 'pro-closest-shadow'\n ]\n\n if (props.padded) {\n list = [...list, 'pro-padded']\n }\n\n return list.join(' ')\n }\n\n return (\n \n
    \n {props.children}\n
    \n
    \n )\n}\n\nSection.propTypes = {\n children: PropTypes.node,\n expandable: PropTypes.bool,\n expanded: PropTypes.bool,\n idText: PropTypes.string,\n locked: PropTypes.bool,\n padded: PropTypes.bool\n}\n\nSection.defaultProps = {\n expanded: false\n}\n\nexport default Section\n","// TODO: CONVERT TO TYPESCRIPT\nimport React from 'react'\n\nconst OverviewDetailItem = ({ title, value }) => {\n const renderedValue = () => {\n if (value) {\n return ({value})\n } else {\n return (Not available)\n }\n }\n\n return (\n
    \n

    {title}

    \n {renderedValue()}\n
    \n )\n}\n\nexport default OverviewDetailItem\n","import React from 'react'\nimport OverviewDetailItem from './OverviewDetailItem'\n\nconst OverviewDetailItems = ({ supplier: { foundingYear, employeeCount, annualRevenue, duns } }) => {\n if (foundingYear || employeeCount || annualRevenue || duns) {\n return (\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n )\n } else {\n return (<>)\n }\n}\n\nexport default OverviewDetailItems\n","import React from 'react'\nimport SupplierShape from './prop_shapes/supplier'\nimport SupplierDesignations from '../supplier_shared/SupplierDesignations'\nimport { isEmpty } from 'lodash-es'\n\nconst OverviewAbout = ({ supplier: { description, pro, designations, claimed } }) => {\n const renderTags = () => {\n const designationTitles = designations.map(designation => designation.name)\n\n const fullDesignations = () => {\n if (pro) {\n return ['Pro'].concat(designationTitles)\n } else if (claimed) {\n return ['Claimed'].concat(designationTitles)\n } else {\n return designationTitles\n }\n }\n\n return \n }\n\n const renderAboutContent = () => (\n
    \n

    About Us

    \n

    {description}

    \n
    \n )\n\n if (description || pro || claimed || !isEmpty(designations)) {\n return (\n
    \n {description ? renderAboutContent() : null}\n {(pro || claimed || designations.length > 0) ? renderTags() : null}\n
    \n )\n } else {\n return (\n <>\n )\n }\n}\n\nOverviewAbout.propTypes = {\n supplier: SupplierShape\n}\n\nexport default OverviewAbout\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import React from 'react'\nimport PropTypes from 'prop-types'\nimport FacebookIcon from 'images/suppliers/facebook.png'\nimport LinkedinIcon from 'images/suppliers/linkedin.png'\n\nexport interface LinkProps {\n platform: 'facebook' | 'linkedin'\n}\n\nexport const SocialLink = ({ platform }: LinkProps): React.ReactElement => {\n const iconFor = (): string => {\n switch (platform) {\n case 'facebook':\n return FacebookIcon\n case 'linkedin':\n return LinkedinIcon\n }\n }\n\n return (\n {platform\n )\n}\n\nSocialLink.propTypes = {\n platform: PropTypes.string.isRequired\n}\n","import React, { useState } from 'react'\nimport { isEmpty } from 'lodash-es'\nimport OverviewDetailItems from './OverviewDetailItems'\nimport OverviewAbout from './OverviewAbout'\nimport ContactButton from './ContactButton'\nimport { SocialLink } from 'components/SocialLink'\nimport TrackedLink from './TrackedLink'\nimport { IconVariant, SupplierIcon } from 'components//supplier_shared/supplier_icon'\nimport { StarRating } from 'components/review_ratings'\nimport { ReviewCount } from 'components/common/rating'\n\nconst Overview = ({\n supplier, supplier: {\n name,\n address,\n phone,\n website,\n contactMethod,\n pro,\n id,\n rating,\n reviewCount,\n logoUrl,\n socialMedia\n }\n}) => {\n const [displayPhone, setDisplayPhone] = useState(false)\n\n const renderAddress = () => {\n if (address) {\n return (\n
    \n {address}\n
    \n )\n }\n }\n\n const renderPhone = () => {\n const handlePhoneClick = () => setDisplayPhone(true)\n\n if (phone) {\n return (\n
    \n {displayPhone\n ? (\n \n {phone}\n \n )\n : (\n \n View Phone Number\n \n )}\n
    \n )\n }\n }\n\n const renderWebsite = () => {\n if (website) {\n return (\n
    \n \n Website\n \n
    \n )\n }\n }\n\n const renderSocial = () => {\n if (!(isEmpty(socialMedia))) {\n return (\n
    \n {socialMedia.map(platform => renderSocialLink(platform))}\n
    \n )\n }\n }\n\n const renderSocialLink = ({ link, platform }) => (\n \n \n \n )\n\n const renderStarRating = () => {\n return (\n
    \n }>\n \n \n
    \n )\n }\n\n const renderContactButton = () => {\n if (pro && contactMethod.contactConfigured) {\n return (\n
    \n \n
    \n )\n }\n }\n\n return (\n <>\n
    \n
    \n
    \n \n
    \n
    \n

    {name}

    \n {renderAddress()}\n
    \n {renderPhone()}\n {renderWebsite()}\n {renderSocial()}\n
    \n
    \n {renderContactButton()}\n {renderStarRating()}\n
    \n
    \n
    \n
    \n \n \n \n )\n}\n\nexport default Overview\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport SupplierShape from './prop_shapes/supplier'\nimport Section from './Section'\nimport Overview from './Overview'\n\nconst OverviewSection = ({ supplier, editButton }) => {\n return (\n
    \n {editButton && (\n
    \n

    Edit or add key information

    \n {editButton}\n
    \n )}\n \n
    \n )\n}\n\nOverviewSection.propTypes = {\n editButton: PropTypes.element,\n supplier: SupplierShape\n}\n\nexport default OverviewSection\n","import PropTypes from 'prop-types'\n\nexport default PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired\n})\n","// TODO: CONVERT TO TYPESCRIPT\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport CommodityCodeShape from './prop_shapes/commodity_code'\n\nclass CommodityCodes extends React.Component {\n renderCommodityCode = commodityCode => (\n \n {commodityCode.name}\n \n )\n\n render () {\n return (\n
    \n
    \n {this.props.commodityCodes.map(cc => this.renderCommodityCode(cc))}\n
    \n
    \n )\n }\n}\n\nCommodityCodes.propTypes = {\n commodityCodes: PropTypes.arrayOf(CommodityCodeShape)\n}\n\nexport default CommodityCodes\n","import PropTypes from 'prop-types'\nimport CommodityCodeShape from 'components/supplier_show/prop_shapes/commodity_code'\nexport default PropTypes.shape({\n count: PropTypes.number,\n items: PropTypes.arrayOf(CommodityCodeShape)\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Section, { ExpandedContent, SectionHeader } from './Section'\nimport pluralize from 'pluralize'\nimport CommodityCodes from './CommodityCodes'\nimport CommodityCodesShape from './prop_shapes/commodity_codes'\n\nconst CommodityCodeSection = ({ commodityCodes: { count, items }, editButton }) => {\n const calloutText = () => {\n if (count > 0) {\n return `${count} ${pluralize('Commodity', count).toUpperCase()}`\n } else {\n return ''\n }\n }\n\n return (\n \n \n Commodities\n \n\n \n \n \n \n )\n}\n\nCommodityCodeSection.propTypes = {\n commodityCodes: CommodityCodesShape,\n editButton: PropTypes.element\n}\n\nexport default CommodityCodeSection\n","import PropTypes from 'prop-types'\n\nexport default PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired\n})\n","// TODO: CONVERT TO TYPESCRIPT\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport ContractVehicleShape from './prop_shapes/contract_vehicle'\n\nclass ContractVehicles extends React.Component {\n renderContractVehicle = contractVehicle => (\n \n {contractVehicle.name}\n \n )\n\n render () {\n return (\n
    \n
    \n {this.props.contractVehicles.map(cv => this.renderContractVehicle(cv))}\n
    \n
    \n )\n }\n}\n\nContractVehicles.propTypes = {\n contractVehicles: PropTypes.arrayOf(ContractVehicleShape)\n}\n\nexport default ContractVehicles\n","import PropTypes from 'prop-types'\nimport ContractVehicleShape from 'components/supplier_show/prop_shapes/contract_vehicle'\n\nexport default PropTypes.shape({\n count: PropTypes.number,\n items: PropTypes.arrayOf(ContractVehicleShape)\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Section, { ExpandedContent, SectionHeader } from './Section'\nimport pluralize from 'pluralize'\nimport ContractVehicles from './ContractVehicles'\nimport ContractVehiclesShape from './prop_shapes/contract_vehicles'\n\nconst ContractVehicleSection = ({ contractVehicles: { count, items }, editButton }) => {\n const calloutText = () => {\n if (count > 0) {\n return `${count} ${pluralize('Contract Vehicle', count).toUpperCase()}`\n } else {\n return ''\n }\n }\n\n return (\n \n \n Contract Vehicles\n \n\n \n \n \n \n )\n}\n\nContractVehicleSection.propTypes = {\n contractVehicles: ContractVehiclesShape.isRequired,\n editButton: PropTypes.element\n}\n\nContractVehicleSection.defaultProps = {\n contractVehicles: []\n}\n\nexport default ContractVehicleSection\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport Section, { ExpandedContent, SectionHeader, ViewMoreButton } from './Section'\nimport pluralize from 'pluralize'\nimport { api } from 'components/api'\nimport TiledListItemShape from './prop_shapes/tiledListItem'\nimport { supplierPostsPath } from '../routes/api'\nimport TiledListItems from './TiledListItems'\n\nconst RecentPostsSection = (props) => {\n const [recentPostsPages, setRecentPostsPages] = useState([props.recentPosts])\n const [nextPage, setNextPage] = useState(props.nextPage)\n\n const loadMorePosts = async () => {\n try {\n const response = await api.get({\n url: supplierPostsPath(props.supplierId),\n params: {\n page: nextPage\n }\n })\n\n setRecentPostsPages([...recentPostsPages, response.data.userPosts])\n setNextPage(response.data.nextPage)\n } catch (e) {\n console.error(e)\n }\n }\n\n const calloutText = ({ totalPostsCount }) => {\n return totalPostsCount > 0 ? `${totalPostsCount} ${pluralize('Post', totalPostsCount).toUpperCase()}` : ''\n }\n\n const groupWithinPageByWidth = (recentPostsPages) => {\n return recentPostsPages.flatMap((recentPosts) => {\n return [\n ...recentPosts.filter((post) => !post.fullWidth),\n ...recentPosts.filter((post) => post.fullWidth)\n ]\n })\n }\n\n return (\n \n \n Recent Posts\n \n\n \n \n \n\n \n \n )\n}\n\nRecentPostsSection.propTypes = {\n totalPostsCount: PropTypes.number.isRequired,\n recentPosts: PropTypes.arrayOf(TiledListItemShape).isRequired,\n supplierId: PropTypes.number.isRequired,\n nextPage: PropTypes.number,\n editButton: PropTypes.element\n}\n\nRecentPostsSection.defaultProps = {\n totalPostsCount: 0,\n recentPosts: []\n}\n\nexport default RecentPostsSection\n","// TODO: CONVERT TO TYPESCRIPT\nimport React from 'react'\nclass ServiceArea extends React.Component {\n renderState = (state, counties = [], totalCountiesInState) => (\n
    \n \n {state}\n \n {counties.length === totalCountiesInState\n ? (\n \n Entire State\n \n )\n : (\n counties.map((county) => (\n \n {county}\n \n ))\n )}\n
    \n )\n\n renderNational = () => {\n return (\n
    {this.renderState('United States')}
    \n )\n }\n\n renderCanada = () => {\n return
    {this.renderState('Canada')}
    \n }\n\n render () {\n const { national, canada, counties_by_state: countiesByState = {} } = this.props.serviceAreas\n\n return (\n
    \n {national\n ? this.renderNational()\n : Object.keys(countiesByState).map((state) =>\n this.renderState(\n countiesByState[state].state_name,\n countiesByState[state].counties,\n countiesByState[state].total_counties_in_state\n )\n )}\n {canada ? this.renderCanada() : ''}\n
    \n )\n }\n}\n\nexport default ServiceArea\n","import PropTypes from 'prop-types'\n\nexport default PropTypes.shape({\n counties_by_state: PropTypes.object.isRequired,\n national: PropTypes.bool,\n canada: PropTypes.bool\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Section, { ExpandedContent, SectionHeader } from './Section'\nimport pluralize from 'pluralize'\nimport ServiceArea from './ServiceArea'\nimport ServiceAreaShape from './prop_shapes/service_area'\n\nconst ServiceAreaSection = (props) => {\n function calloutText (serviceArea) {\n const keys = Object.keys(serviceArea.counties_by_state || {})\n\n const dc = keys.includes('DC')\n const count = dc ? keys.length - 1 : keys.length\n\n if (serviceArea.national) {\n return 'NATIONAL'\n } else if (count > 0) {\n return `${count} ${pluralize('State', count).toUpperCase()} ${\n count && dc ? ' and ' : ''\n } ${dc ? 'D.C.' : ''}`\n } else if (dc) {\n return 'D.C.'\n } else {\n return ''\n }\n }\n\n return (\n \n \n Service Area\n \n\n \n \n \n \n )\n}\n\nServiceAreaSection.propTypes = {\n serviceArea: ServiceAreaShape,\n editButton: PropTypes.element\n}\n\nexport default ServiceAreaSection\n","import PropTypes from 'prop-types'\n\nexport default PropTypes.shape({\n count: PropTypes.number.isRequired,\n rating: PropTypes.number.isRequired,\n star_rating: PropTypes.number.isRequired\n})\n","// TODO: CONVERT TO TYPESCRIPT\nimport React from 'react'\nimport AutoPubCondensedReviewShape from './prop_shapes/autoPubCondensedReview'\nimport Const from '../Consts'\nimport { OverallRating } from 'components/review_ratings'\nimport pluralize from 'pluralize'\n\nfunction AuthorInfo (props) {\n const { count } = props\n\n return (\n
    \n
    \n
    \n
    {pluralize('Additional Qualified Reviewer', count)}
    \n
    \n
    \n
    \n )\n}\n\nfunction AutoPubCondensedReview (props) {\n const { count, starRating, rating } = props\n return (\n <>\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n + {count} {pluralize('rating', count)} from additional Qualified Reviewers averaging {rating} stars.\n
    \n
    \n \n )\n}\n\nAutoPubCondensedReview.propTypes = {\n autoPubCondensedReview: AutoPubCondensedReviewShape\n}\n\nexport default AutoPubCondensedReview\n","import React, { useState, useContext } from 'react'\nimport { texasVptsReportPath } from 'components/routes/external'\nimport { createReviewWithRatingPath, reviewWithRatingPath } from 'components/routes/path'\nimport { AuthContext, USER_TYPES } from 'components/common/auth/AuthContext'\n\nexport interface OneClickReviewProps {\n supplierId: string\n}\n\nconst OneClickReview: React.FC = ({ supplierId }) => {\n const authContext = useContext(AuthContext)\n\n const [filled, setFilled] = useState(0)\n\n const ratingArray = (): number[] => Array.from({ length: 5 }, (_, i) => i + 1)\n\n const linkPath = (rating: number): string => {\n if (authContext.isTxVpts) {\n return texasVptsReportPath()\n } else if (authContext.userType === USER_TYPES.UNAUTHED) {\n return reviewWithRatingPath(supplierId, rating)\n } else {\n return createReviewWithRatingPath(supplierId, rating)\n }\n }\n\n const renderStar = (rating: number): React.ReactElement => {\n return (\n setFilledValue(rating)}\n onMouseLeave={clearFilledValue}\n href={linkPath(rating)}\n data-method={authContext.userType === USER_TYPES.UNAUTHED ? 'get' : 'post'}\n data-testid={`star-${rating}`}\n >\n \n \n )\n }\n\n const setFilledValue = (rating: number): void => {\n setFilled(rating)\n }\n\n const clearFilledValue = (): void => {\n setFilled(0)\n }\n\n return (\n
    \n {ratingArray().map(item => renderStar(item))}\n
    \n )\n}\n\nexport default OneClickReview\n","import React from 'react'\nimport { IconVariant, SupplierIcon } from 'components/supplier_shared/supplier_icon'\nimport OneClickReview from '../supplier_shared/OneClickReview/OneClickReview'\n\nconst ReviewOneClickRatingArea = ({ supplier: { id, logoUrl, name } }) => {\n return (\n <>\n
    \n
    \n
    \n \n
    \n
    \n

    What overall rating would you give {name}?

    \n
    \n
    \n
    \n
    \n \n

    Start your review of {name}

    \n
    \n \n )\n}\n\nexport default ReviewOneClickRatingArea\n","import React from 'react'\n\nexport interface PlaceholderReviewsProps {\n children?: React.ReactNode\n}\n\nconst PlaceholderReviews: React.FC = ({ children }) => {\n const placeholders = new Array(3).fill(0).map((_, i) => (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n\n
    \n \n \n \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n ))\n\n return (\n
    \n
    {placeholders}
    \n
    \n {children}\n
    \n
    \n )\n}\n\nexport default PlaceholderReviews\n","import React from 'react'\n\nexport interface CallToActionBoxProps {\n icon: React.ReactNode\n children: React.ReactNode\n actions?: React.ReactNode\n}\n\nexport const CallToActionBox: React.FC = ({ icon, children, actions }) => (\n
    \n
    \n
    \n {icon}\n
    \n
    \n {children}\n
    \n
    \n {\n actions !== undefined && (\n
    \n {actions}\n
    \n )\n }\n
    \n)\n","import React from 'react'\n\nexport const CtaHeading: React.FC<{ children?: React.ReactNode }> = ({ children }) => (\n
    {children}
    \n)\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAlCAYAAADWSWD3AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAATJSURBVHgBvVlRcuNEEO0eOQm14cNHMCdYb9U67N86FyD2H0VBrD2BNydwfALsE8QGiuJP8cJ/lL+Q7Ie5gW6AP6AKkmia7rHkjLSSLTkyryoVSaOZeerp6X7TRiiJpuvVa4/QBISmQqibhxrm9zWYzyfdAP4HYNEXhey+rvUJ9XvuVM96hwB90OH07sfuBHaIQqSPTn/rEYajPLKfDoqTfzE8Y8svYAfYSPro9NcBoD7PbqWArVvP+ZjgHvXxLlymtq6x9Z3npgkTkE9Iw4+Trh8/e+N6DQ3gAqke3zaix409ci74/zFUjFxLsw839kldWSQAUZ/9PumO8voY8qk+QHp4+0P3HCqEyms4CKGTmBz1cB1hwQ27gmKX4MvgqZ/qyyaGCpFLmpTqW7fB7aSYtYS4Rv3OelTfWxqgMmSSbrleEywrc5gbQgks/Z2C1STKeQsVIpO0frTcgvEAcAllQXS9Gg+oCRUik/Qq00XYMt4G8UXR+F4UqshL22wksojydaVJJpu0A3P7loN56eVV6Lx8uqPdk76bdOe2dRxyelACEuM5CbVXk2iaQYXIdw/S09UlkPva9dpQEFEmXAGdLTbyGuSSdhQkEokidSEWhA1o9T58j5aVRTzdVKw/1gqmo1PvnDPawHq04KwzuleP43REef2t10bHGdiEGSZDbiItfR1n6YL6IRzf/dydw7akBa1Tb4KoPvFp0c4qCmuR/zaS7fyBTFj2R+a433hNrNVOcvT5nLQePzjgZ6nEQnqaiY+YeB+KI2Ay3TRhc+oJwUXlnKRWJBfiXmEYTj/+9KQqC59cOLW7SMZVGnnviHVZCY5fAIx8y31kLxyQ6ot8XZdoTP/89oCtP2TrXxYmHUOiiNLQ5pDwUiaIJlpoDK8POd37KV/Pkrh5pF6gfvU3QEdxiKWclRC33EhalvSzf6B+88t2EUA2mXIM6U0IbqcnX8Q3RptrkEAgYqthv1jLm0h2MwudDhLU9QFHkt7MfCXpcIYh+A/7EMQR5M3XPEENmuiot2z5jixjfLjFmkQcKI0o4rhyzVFsAlYwSJCWpZTEIJuEhGJqIHmOSrUluu/T8kMEOmqPuSnLLx1xHXgeIheMESibsPhe0V29DhqfllMs9lzBZOsYNmZgLJ21WWQixan8UYE4vkzaZA1yQms+yvQBvFQqmbb52Zy2NIbsKSKrL9EfhvQB4YASzo6Xhxi+86eJSODz36jNg/zFY4n0jN2Al3+xxwkhL/MRhdfsk23YAuaoZokNYoPUjCIjdG3Ct9OvunmDRCHNhxLQvFqKYABbgPeQ3S+Qo5za0/DefklxZQgqhkyEUjIrCVN3SVYEjPJUuIyDS5Ce3eyoiBhiWOpwLB6QtjJ7yUQuxFtWpxKOyT7sCGWsbYqdpDxIForGsUETelpXfJZLA3lzbwp/ViRbGVNKcXahqNDBtiqYmM3qL69dMnGaMCNwkOziD2CrN/szVlax+IGKIRUnu2AZKcaLAl0zDxH4Ze/DFVWQBTdgwWXfV7aglyoWpvzWhrjEIVLXz6i5KPEzsAuGu4FsrCv7jCkHBFOstA7QS7JGk5/dTTvHfk6RyOgQkYEhQBv1Rs37LBBBkPXTRiRDXU5Ci885rPkbKlr/AYp8MAUEQenoAAAAAElFTkSuQmCC\"","import React, { useContext } from 'react'\nimport { AuthContext, USER_TYPES } from 'components/common/auth/AuthContext'\n\nexport interface HiddenReviewsTextProps {\n procuratedPromisePath: string\n}\n\nexport const HiddenReviewsText: React.FC = ({ procuratedPromisePath }) => {\n const authState = useContext(AuthContext)\n\n return authState.userType === USER_TYPES.UNAUTHED || authState.userType === USER_TYPES.SUPPLIER_USER\n ? (\n

    \n Written reviews are only visible to our community of logged-in government users and\n the suppliers the review writers choose to share their reviews with. This creates a\n space where buyers can feel comfortable sharing their honest experiences and to praise\n and provide actionable feedback to their suppliers. For more on this, check out the{' '}\n \n Procurated Promise\n .\n

    \n )\n : (\n

    \n An individual review appears on your view of your supplier profile when the author\n explicitly chooses to make their review visible to you. This option creates a space\n where buyers can feel comfortable sharing their honest experiences with each other, and\n consider this as a channel to share praise and actionable feedback with you. For more\n on why we do this, check out the{' '}\n \n Procurated Promise\n .\n

    \n )\n}\n","import React from 'react'\n\nexport interface JoinButtonProps {\n children?: React.ReactNode\n}\n\nexport const JoinButton: React.FC = ({ children }) => (\n \n {children}\n \n)\n","import React from 'react'\nimport PlaceholderReviews from './PlaceholderReviews'\n\nimport { CallToActionBox } from 'components/supplier_show/hidden_reviews/CallToActionBox'\nimport { CtaHeading } from 'components/supplier_show/hidden_reviews/CtaHeading'\n\nimport WhereAreReviewsIcon from 'images/where-are-reviews-logo.png'\n\nimport { HiddenReviewsText, HiddenReviewsTextProps } from './HiddenReviewsText'\nimport { JoinButton } from './JoinButton'\n\nexport interface HiddenReviewsProps extends HiddenReviewsTextProps {}\n\nexport const HiddenReviews: React.FC = (props) => {\n const icon = Where are reviews icon\n const actions = Join and Read Reviews\n\n return (\n \n \n \n Where are the reviews?\n \n \n \n \n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Tooltip from 'components/common/tooltip/Tooltip'\nimport AiLabel from '../../../assets/images/ai_label.svg'\n\ninterface RecentPerformanceProps {\n reviewsSummary: string\n reviewsSummaryLastUpdatedAt: string\n}\n\nexport const RecentPerformance: React.FC = ({ reviewsSummary, reviewsSummaryLastUpdatedAt }) => {\n const tooltipAnchorEl = (\n AI generated indicator\n )\n\n const tooltipContentEl = (\n \n This summary was created by providing a robust sampling of reviews from the past 12 months into an artificial intelligence program.\n \n )\n\n return (\n
    \n
    \n
    \n
    Recent Performance
    \n \n
    \n
    \n Last Updated: {reviewsSummaryLastUpdatedAt}\n
    \n
    \n
    \n
    \n )\n}\n\nRecentPerformance.propTypes = {\n reviewsSummary: PropTypes.string.isRequired,\n reviewsSummaryLastUpdatedAt: PropTypes.string.isRequired\n}\n","import React, { useContext } from 'react'\nimport PropTypes from 'prop-types'\nimport Const from '../Consts'\nimport { AuthContext, USER_TYPES, verifiedAgencyUser } from 'components/common/auth/AuthContext'\nimport ReviewShape from './prop_shapes/review'\nimport ReviewMetadataShape from './prop_shapes/reviewMetadata'\nimport SupplierShape from './prop_shapes/supplier'\nimport AutoPubCondensedReviewShape from './prop_shapes/autoPubCondensedReview'\nimport AutoPubCondensedReview from './AutoPubCondensedReview'\nimport ReviewOneClickRatingArea from './ReviewOneClickRatingArea'\nimport { StarRating } from '../review_ratings'\nimport { ReviewTiles } from '../review_tiles'\nimport { HiddenReviews } from './hidden_reviews'\nimport { RecentPerformance } from './RecentPerformance'\n\nconst RatingRow = ({ children, label }) => {\n return (\n
    \n
    \n
    \n \n {label}\n \n
    \n
    \n {children}\n
    \n
    \n
    \n )\n}\n\nRatingRow.propTypes = {\n children: PropTypes.node,\n label: PropTypes.string.isRequired\n}\n\nconst Reviews = (props) => {\n const authContext = useContext(AuthContext)\n const viewingAsSupplier = () => authContext.userType === USER_TYPES.SUPPLIER_USER\n\n const showAutoCondensedReviews = () => {\n return !!props.autoPubCondensedReview && verifiedAgencyUser(authContext)\n }\n\n const autoPubCondensedReviews = showAutoCondensedReviews() ? props.autoPubCondensedReview.auto_pub_condensed_reviews : null\n\n const renderRatings = () => {\n return Object.entries(Const.OTHER_RATING_TYPES).map(([key, label]) => {\n const starAmount = props.metadata.star_ratings[key]\n const canSeeReviews = verifiedAgencyUser(authContext) || authContext.isOwner\n\n return (\n
    \n \n \n \n
    \n )\n })\n }\n\n const renderFilters = () => (\n
    \n {props.reviewFilters}\n
    \n )\n\n const renderRealReviews = () => (\n <>\n {renderFilters()}\n \n \n )\n\n const renderReviews = () => {\n if (verifiedAgencyUser(authContext) || authContext.isOwner || authContext.userIsGooglebot) {\n return renderRealReviews()\n } else {\n return \n }\n }\n\n const renderStarPercentage = (rating) => {\n const percentage = (((props.metadata.review_counts[rating] || 0) / props.metadata.review_count || 0) * 100).toFixed()\n const styling = {\n width: `${percentage}%`\n }\n return (\n
    \n
    {rating} star
    \n
    \n \n
    \n
    \n
    \n
    \n {percentage}%\n
    \n
    \n )\n }\n\n const renderStarPercentages = () => {\n return [5, 4, 3, 2, 1].map((rating) => {\n return (\n
    \n {renderStarPercentage(rating)}\n
    \n )\n })\n }\n\n const renderRecentPerformance = () => {\n if (props.supplier.reviewsSummary) {\n return (\n \n )\n }\n }\n\n return (\n <>\n
    \n {props.reviewButtons}\n
    \n\n {authContext.isOwner &&\n
    \n
    \n \n
    \n
    \n Reviews made visible to you by buyers on Procurated are not allowed to be copied, shared, or distributed.\n See our Terms for additional information.\n
    \n
    }\n
    \n
    \n
    Overall Rating
    \n
    \n
    \n
    \n
    \n {props.metadata.review_count > 0 ? `${props.metadata.rating} out of 5` : ''}\n
    \n
    \n {props.metadata.review_count} total ratings & reviews\n
    \n\n
    \n {renderStarPercentages()}\n
    \n
    \n
    \n {renderRatings()}\n
    \n {renderRecentPerformance()}\n {viewingAsSupplier() ? null : }\n
    \n\n
    \n\n {renderReviews()}\n\n {showAutoCondensedReviews() &&\n }\n \n )\n}\n\nReviews.propTypes = {\n autoPubCondensedReview: AutoPubCondensedReviewShape,\n callout: PropTypes.string.isRequired,\n metadata: ReviewMetadataShape.isRequired,\n procuratedPromisePath: PropTypes.string.isRequired,\n reviewButtons: PropTypes.node,\n reviewFilters: PropTypes.node,\n reviews: PropTypes.arrayOf(ReviewShape),\n supplier: SupplierShape.isRequired\n}\n\nexport default Reviews\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport interface ReviewRepliesCountProps {\n count: number\n}\n\nconst ReviewRepliesCount = ({ count }: ReviewRepliesCountProps): React.ReactElement => {\n const renderCount = count < 0 ? 0 : count\n const renderCountText = renderCount === 1 ? 'REPLY' : 'REPLIES'\n\n return (\n
    \n \n {renderCount} {renderCountText} \n
    \n
    \n )\n}\n\nReviewRepliesCount.propTypes = {\n count: PropTypes.number.isRequired\n}\n\nexport default ReviewRepliesCount\n","import React, { useState, useContext, useRef } from 'react'\nimport PropTypes from 'prop-types'\nimport Section, { ExpandedContent, SectionHeader, ViewMoreButton } from './Section'\nimport Reviews from './Reviews'\nimport pluralize from 'pluralize'\nimport { api } from 'components/api'\nimport { AuthContext, isSupplierOwner, showPublicOnly, USER_TYPES } from 'components/common/auth/AuthContext'\nimport SupplierShape from './prop_shapes/supplier'\nimport ReviewMetadataShape from './prop_shapes/reviewMetadata'\nimport { supplierReviewsPath } from 'components/routes/api'\nimport ReviewCreateButton from './ReviewCreateButton'\nimport { ReviewVisibilityCallout } from 'components/common/callout'\nimport ReviewRepliesCount from 'components/supplier_show/ReviewRepliesCount'\nimport { useInfiniteQuery } from '@tanstack/react-query'\nimport { ReviewFiltersContainer } from 'components/review_tiles/filters/ReviewFiltersContainer'\n\nexport function reviewRequestData (supplier) {\n return {\n address: 'reviews@procurated.com',\n subject: 'Requesting Supplier Reviews on Procurated',\n body: 'I am requesting additional reviews from members of the procurement community for this supplier: ' +\n supplier.procuratedUrl\n }\n}\n\nexport const baseReviewFetcher = async (url, lastReviewId) => {\n const response = await api.get({ url, params: { last_review_id: lastReviewId } })\n return response.data\n}\n\nexport function ReviewSection (props) {\n const reviewFetcher = props.reviewFetcher ?? baseReviewFetcher\n const { metadata, supplier, procuratedPromisePath } = props\n const authContext = useContext(AuthContext)\n\n const [reviewFilterParams, setReviewFilterParams] = useState('')\n // pagesState is used to hold the last response data while updating to the new response\n // this avoids the response data being empty and rendering an empty list while updating\n const pagesState = useRef([])\n\n const showQualifiedAutopubReviews = () => {\n // This continues a pre-existing hack where a boolean is returned true only if there is no reply or shared query\n const paramObj = reviewFilterParams || {}\n const noReplyParams = !('replied_to' in (paramObj))\n const noSharedParams = !('shared' in (paramObj))\n\n return noReplyParams && noSharedParams\n }\n\n const getLastReviewId = (lastPage) => lastPage?.reviews[lastPage.reviews.length - 1]?.id\n\n const handleReviewFiltersQuery = (params) => {\n setReviewFilterParams(params)\n }\n const reviewFilters = \n\n const reviewFilterQuery = new URLSearchParams(reviewFilterParams).toString()\n const supplierReviewsPathWithFilters = () => `${supplierReviewsPath(supplier.id)}?${reviewFilterQuery}`\n\n // Query for paginated reviews\n const fetchReviews = ({ pageParam: lastReviewId }) => {\n return reviewFetcher(supplierReviewsPathWithFilters(), lastReviewId)\n }\n\n const { data, fetchNextPage, isLoading } = useInfiniteQuery({\n queryKey: ['newReviews', reviewFilterParams],\n queryFn: fetchReviews,\n getNextPageParam: getLastReviewId\n })\n\n const pages = data?.pages ?? pagesState.current\n pagesState.current = pages\n const fetchedReviews = pages.filter(Boolean).map(x => x?.reviews).flat()\n const lastPage = pages.length > 0 ? pages[pages.length - 1] : {}\n const hasNextPage = lastPage?.has_next_page\n const showLoadMoreButton = hasNextPage && !isLoading\n\n const fetchedAutoPubReviews = () => {\n if (showQualifiedAutopubReviews() && !hasNextPage) {\n return pages.find(x => x?.auto_pub_condensed_reviews)\n }\n }\n\n // Render elements\n function callout () {\n const baseString = `${metadata.review_count} ${pluralize('REVIEW', metadata.review_count)}`\n if (authContext.isOwner) {\n return `${baseString}, ${metadata.visible_review_count} VISIBLE`\n } else {\n return baseString\n }\n }\n\n function renderRightCallout () {\n if (authContext.userType === USER_TYPES.AGENCY_USER) {\n const uriData = reviewRequestData(supplier)\n const supplierPageURI = `mailto:${uriData.address}?` +\n `subject=${encodeURIComponent(uriData.subject)}&body=${encodeURIComponent(uriData.body)}`\n return (\n <>\n \n Request Review\n \n {writeAReviewButton()}\n \n )\n } else if (authContext.userType === USER_TYPES.UNAUTHED) {\n return writeAReviewButton()\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n function writeAReviewButton () {\n return (\n Write a Review }\n />\n )\n }\n\n const reviewRepliesCount = metadata?.review_replies_count || 0\n const renderReviewRepliesCount = () => \n\n return (\n \n {renderRightCallout()}
    }\n idText='reviews'\n multiline={isSupplierOwner(authContext)}\n {...props}\n >\n Reviews & Ratings\n \n\n \n \n \n\n \n \n )\n}\n\nReviewSection.propTypes = {\n supplier: SupplierShape.isRequired,\n metadata: ReviewMetadataShape.isRequired,\n procuratedPromisePath: PropTypes.string.isRequired,\n reviewFetcher: PropTypes.func\n}\n\nexport default ReviewSection\n","import React from 'react'\n\nexport interface EditButtonLinkProps {\n to?: string\n label: string | React.ReactElement\n}\n\nexport const EditButtonLink: React.FC = ({ to, label }) => (\n \n {label} \n \n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\n\nimport { businessInfoPath, businessInfoUpdatePath, businessInfoCommodityPath, businessInfoServiceAreaPath } from 'components/routes/path'\nimport { AuthContext, USER_TYPES, USER_STATES, canEditSupplier, canReplyToReview } from 'components/common/auth/AuthContext'\nimport { FeatureContext } from 'components/FeatureContext'\nimport Sidebar from './Sidebar'\nimport OverviewSection from './OverviewSection'\nimport CommodityCodeSection from './CommodityCodeSection'\nimport ContractVehicleSection from './ContractVehicleSection'\nimport RecentPostsSection from './RecentPostsSection'\nimport ServiceAreaSection from './ServiceAreaSection'\nimport ReviewSection from './ReviewSection'\nimport CommodityCodesShape from './prop_shapes/commodity_codes'\nimport SupplierShape from './prop_shapes/supplier'\nimport ContractVehiclesShape from './prop_shapes/contract_vehicles'\nimport TiledListItemShape from './prop_shapes/tiledListItem'\nimport ServiceAreaShape from './prop_shapes/service_area'\nimport ReviewMetadata from './prop_shapes/reviewMetadata'\nimport UnclaimedCTABox from './UnclaimedCTABox'\nimport ReviewCreateButton from './ReviewCreateButton'\nimport { EditButtonLink } from '../supplier_shared/EditButtonLink'\n\nconst queryClient = new QueryClient()\n\nconst Base = ({\n commodityCodes,\n contractVehicles,\n featureFlags,\n procuratedPromisePath,\n recentPosts,\n recentPostsNextPage,\n reviewMetadata,\n serviceArea,\n supplier,\n userState,\n userTxVpts,\n userType,\n userIsGooglebot\n}) => {\n const user = {\n canReplyToReview: canReplyToReview({ userType }, supplier),\n isOwner: canEditSupplier({ userType }, supplier),\n isTxVpts: userTxVpts,\n userState,\n userType,\n userIsGooglebot\n }\n\n const showForSupplierOwner = (element) => {\n if (user.isOwner) return element\n\n return null\n }\n\n const shouldShowUnclaimedCTABox = user.userType === USER_TYPES.UNAUTHED && !supplier.claimed\n const shouldShowReviewButton = user.userType === USER_TYPES.AGENCY_USER || user.userType === USER_TYPES.UNAUTHED\n const shouldShowRecentPosts = supplier.pro && (recentPosts?.length > 0 || user.isOwner)\n\n return (\n \n \n \n
    \n supplier cover\n\n
    \n
    \n
    \n \n
    \n\n
    \n )}\n />\n\n {shouldShowReviewButton &&\n Write a review for this supplier }\n />}\n\n )}\n />\n\n {shouldShowRecentPosts &&\n )}\n />}\n\n )\n }\n />\n\n )\n }\n />\n\n \n {shouldShowUnclaimedCTABox && }\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )\n}\n\nBase.propTypes = {\n commodityCodes: CommodityCodesShape,\n contractVehicles: ContractVehiclesShape,\n featureFlags: PropTypes.object,\n procuratedPromisePath: PropTypes.string.isRequired,\n recentPosts: PropTypes.arrayOf(TiledListItemShape),\n recentPostsNextPage: PropTypes.number,\n reviewMetadata: ReviewMetadata.isRequired,\n serviceArea: ServiceAreaShape,\n supplier: SupplierShape,\n userState: PropTypes.oneOf(Object.values(USER_STATES)),\n userTxVpts: PropTypes.bool,\n userType: PropTypes.oneOf(Object.values(USER_TYPES)),\n userIsGooglebot: PropTypes.bool\n}\n\nBase.defaultProps = {\n userState: USER_STATES.UNVERIFIED,\n userType: USER_TYPES.UNAUTHED,\n userIsGooglebot: false\n}\n\nexport default Base\n","// Entry point for the supplier profile page. See react_components.js for documentation.\nimport LockedModal from 'components/authentication_modals/LockedModal'\nimport SignInModal from 'components/authentication_modals/SignInModal'\nimport SignUpModal from 'components/authentication_modals/SignUpModal'\nimport Base from 'components/supplier_show/Base'\n\nimport ReactRailsUJS from 'react_ujs'\n\nconst components = {\n 'authentication_modals/LockedModal': LockedModal,\n 'authentication_modals/SignInModal': SignInModal,\n 'authentication_modals/SignUpModal': SignUpModal,\n 'supplier_show/Base': Base\n}\n\nfunction componentLoadPathContext (fileToImport) {\n return components[fileToImport.replace(/^\\.\\//, '')]\n}\n\nReactRailsUJS.useContext(componentLoadPathContext)\n"],"names":["mapTag","setTag","objectProto","hasOwnProperty","isEmpty","value","isArrayLike","isArray","isBuffer","isTypedArray","isArguments","tag","getTag","isPrototype","baseKeys","key","Subscribable","listener","identity","isServer","noop","functionalUpdate","updater","input","isValidTimeout","timeUntilStale","updatedAt","staleTime","parseQueryArgs","arg1","arg2","arg3","isQueryKey","parseFilterArgs","matchQuery","filters","query","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","fetching","mutationKey","hashQueryKey","options","_","val","isPlainObject","result","a","b","partialDeepEqual","replaceEqualDeep","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","i","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","scheduleMicrotask","callback","getAbortController","replaceData","prevData","data","FocusManager","onFocus","_this$cleanup","setup","_this$cleanup2","focused","focusManager","onlineEvents","OnlineManager","onOnline","event","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","outerResolve","outerReject","cancel","cancelOptions","reject","cancelRetry","continueRetry","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","error","_config$retry","_config$retryDelay","retry","retryDelay","delay","shouldRetry","defaultLogger","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","batch","flush","schedule","batchCalls","args","originalQueue","fn","notifyManager","Removable","newCacheTime","Query","getDefaultState","newData","state","setStateOptions","_this$retryer","observer","_this$retryer2","x","_this$retryer3","fetchOptions","_this$options$behavio","_context$fetchOptions","_this$retryer4","abortController","queryFnContext","addSignalProperty","object","fetchFn","context","_context$fetchOptions2","onError","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","action","reducer","_action$meta","_action$dataUpdatedAt","hasData","initialDataUpdatedAt","QueryCache","client","_options$queryHash","queryHash","queryInMap","Mutation","_this$retryer$continu","executeMutation","_this$options$retry","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","_this$mutationCache$c7","_this$mutationCache$c8","_this$options$onError","_this$options4","_this$mutationCache$c9","_this$mutationCache$c10","_this$options$onSettl2","_this$options5","MutationCache","_this$resuming","pausedMutations","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","refetchPage","fetchMore","pageParam","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","newPageParams","cancelled","_context$signal","_context$signal2","queryFn","buildNewPages","pages","param","page","previous","fetchPage","manual","queryFnResult","getNextPageParam","getPreviousPageParam","hasNextPage","nextPageParam","hasPreviousPage","previousPageParam","QueryClient","_this$unsubscribeFocu","_this$unsubscribeOnli","_this$queryCache$find","parsedOptions","cachedData","queryKeyOrFilters","defaultedOptions","_this$queryCache$find2","queryCache","refetchFilters","promises","_ref","_filters$refetchType","_options$cancelRefetc","firstMatchingDefaults","QueryObserver","shouldFetchOnMount","shouldFetchOn","notifyOptions","prevOptions","prevQuery","mounted","shouldFetchOptionally","nextRefetchInterval","shouldAssignObserverCurrentProperties","trackedResult","_fetchOptions$cancelR","_this$options$refetch","nextInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","prevQueryResult","dataUpdatedAt","errorUpdatedAt","status","isPreviousData","isPlaceholderData","fetchOnMount","fetchOptionally","selectError","placeholderData","isFetching","isLoading","isError","isStale","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","shouldLoadOnMount","field","optimisticResult","InfiniteQueryObserver","_state$fetchMeta","_state$fetchMeta$fetc","_state$fetchMeta2","_state$fetchMeta2$fet","_state$data","_state$data2","isRefetching","React","require$$0","is","y","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","shimModule","useSyncExternalStore","defaultContext","React.createContext","QueryClientSharingContext","getQueryClientContext","contextSharing","useQueryClient","queryClient","React.useContext","QueryClientProvider","children","React.useEffect","Context","React.createElement","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","_useErrorBoundary","params","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","useErrorBoundary","ensureStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","React.useState","React.useCallback","onStoreChange","unsubscribe","useInfiniteQuery","socialShape","PropTypes","SupplierShape","Navigation","shouldShowRecentPosts","renderLink","title","anchor","jsx","jsxs","SidebarCTABox","className","SidebarCTABoxHeader","SidebarCTABoxBody","SidebarCTABoxLink","href","text","UploadCustomersCTABox","ContactButton","contactByEmail","link","supplierId","trackingKey","TrackedLink","UnclaimedCTABox","editSupplierOnboarding","ReviewCreateButton","authContext","useContext","AuthContext","renderButton","dataMethod","theText","texasVptsReportPath","verifiedAgencyUser","createReviewPath","USER_TYPES","reviewWithSupplierPath","ListShape","FoundationModal","modalId","classes","modal","close","combinedClasses","ListForm","supplier","onCreateList","validate","values","errors","closeModal","Fragment","Formik","actions","Form","ErrorMessage","Field","useListenForOutsideClicks","domNodeRef","shouldListen","onClickOutside","callbackRef","useRef","isInCreateListModal","element","isInListSelector","listenForOutsideClicks","e","ListSelector","props","listSelectorRef","dropdownVisible","setDropdownVisible","handleDropdownButtonClick","handleCreateNewListClick","handleSupplierSelection","clickedListId","selectedList","list","includesSupplier","listSupplier","renderListsDropdown","lists","selected","useListsApi","currentFetchPromise","mutationCount","componentIsMounted","setIsLoading","setLists","getLists","currentFetchReference","api","listsPath","updateListWithId","id","updateFunc","refetchAfterAllMutationsFinish","handlePromiseResult","addSupplierToListPath","removeSupplierFromListPath","listName","ListSelectorWithApiCall","addSupplierToList","removeSupplierFromList","createListWithSupplier","listHasSupplier","toggleSupplierInList","optimisticallyUpdateLists","foundList","UpgradeToPremiumCTABox","Sidebar","renderContactButton","pro","contactMethod","renderReviewButton","renderListsSelector","renderSidebarCTA","USER_STATES","reviewCountsShape","ReviewMetadata","StarRatingsShape","ExpandableHeader","renderToggleButton","handleClick","handleLockedClick","renderTitleContent","renderSecondaryCallout","renderTitle","renderCountData","Callout","renderActions","renderSingleline","renderMultiline","ReviewMetadataShape","SectionContext","createContext","ExpandedContent","showContent","SectionHeader","isLocked","onExpandClick","ViewMoreButton","show","onViewMore","handleViewMoreClick","LoadingDots","Section","expanded","setExpanded","contextValue","useMemo","prev","classNameList","OverviewDetailItem","renderedValue","OverviewDetailItems","foundingYear","employeeCount","annualRevenue","duns","OverviewAbout","description","designations","claimed","renderTags","designationTitles","designation","fullDesignations","SupplierDesignations","renderAboutContent","FacebookIcon","LinkedinIcon","SocialLink","platform","iconFor","Overview","name","address","phone","website","rating","reviewCount","logoUrl","socialMedia","displayPhone","setDisplayPhone","renderAddress","renderPhone","handlePhoneClick","renderWebsite","renderSocial","renderSocialLink","renderStarRating","ReviewCount","StarRating","SupplierIcon","IconVariant","OverviewSection","editButton","CommodityCodeShape","CommodityCodes","commodityCode","cc","CommodityCodesShape","CommodityCodeSection","count","items","calloutText","pluralize","ContractVehicleShape","ContractVehicles","contractVehicle","cv","ContractVehiclesShape","ContractVehicleSection","RecentPostsSection","recentPostsPages","setRecentPostsPages","nextPage","setNextPage","loadMorePosts","response","supplierPostsPath","totalPostsCount","groupWithinPageByWidth","recentPosts","post","TiledListItems","TiledListItemShape","ServiceArea","counties","totalCountiesInState","county","national","canada","countiesByState","ServiceAreaShape","ServiceAreaSection","serviceArea","keys","dc","AutoPubCondensedReviewShape","AuthorInfo","AutoPubCondensedReview","starRating","OverallRating","Const","OneClickReview","filled","setFilled","ratingArray","linkPath","reviewWithRatingPath","createReviewWithRatingPath","renderStar","setFilledValue","clearFilledValue","item","ReviewOneClickRatingArea","PlaceholderReviews","placeholders","CallToActionBox","icon","CtaHeading","WhereAreReviewsIcon","HiddenReviewsText","procuratedPromisePath","authState","JoinButton","HiddenReviews","RecentPerformance","reviewsSummary","reviewsSummaryLastUpdatedAt","tooltipAnchorEl","AiLabel","tooltipContentEl","Tooltip","RatingRow","label","Reviews","viewingAsSupplier","showAutoCondensedReviews","autoPubCondensedReviews","renderRatings","starAmount","canSeeReviews","renderFilters","renderRealReviews","ReviewTiles","renderReviews","renderStarPercentage","percentage","styling","renderStarPercentages","renderRecentPerformance","ReviewShape","ReviewRepliesCount","renderCount","renderCountText","reviewRequestData","baseReviewFetcher","url","lastReviewId","ReviewSection","reviewFetcher","metadata","reviewFilterParams","setReviewFilterParams","pagesState","showQualifiedAutopubReviews","paramObj","noReplyParams","noSharedParams","getLastReviewId","lastPage","handleReviewFiltersQuery","reviewFilters","ReviewFiltersContainer","reviewFilterQuery","supplierReviewsPathWithFilters","supplierReviewsPath","fetchReviews","fetchNextPage","fetchedReviews","showLoadMoreButton","fetchedAutoPubReviews","callout","baseString","renderRightCallout","uriData","supplierPageURI","writeAReviewButton","ReviewVisibilityCallout","reviewRepliesCount","renderReviewRepliesCount","showPublicOnly","isSupplierOwner","EditButtonLink","to","Base","commodityCodes","contractVehicles","featureFlags","recentPostsNextPage","reviewMetadata","userState","userTxVpts","userType","userIsGooglebot","user","canReplyToReview","canEditSupplier","showForSupplierOwner","shouldShowUnclaimedCTABox","shouldShowReviewButton","FeatureContext","businessInfoPath","businessInfoUpdatePath","businessInfoServiceAreaPath","businessInfoCommodityPath","components","LockedModal","SignInModal","SignUpModal","componentLoadPathContext","fileToImport","ReactRailsUJS"],"mappings":"k0CAUA,IAAIA,GAAS,eACTC,GAAS,eAGTC,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAmCjC,SAASE,GAAQC,EAAO,CACtB,GAAIA,GAAS,KACX,MAAO,GAET,GAAIC,GAAYD,CAAK,IAChBE,GAAQF,CAAK,GAAK,OAAOA,GAAS,UAAY,OAAOA,EAAM,QAAU,YACpEG,GAASH,CAAK,GAAKI,GAAaJ,CAAK,GAAKK,GAAYL,CAAK,GAC/D,MAAO,CAACA,EAAM,OAEhB,IAAIM,EAAMC,GAAOP,CAAK,EACtB,GAAIM,GAAOX,IAAUW,GAAOV,GAC1B,MAAO,CAACI,EAAM,KAEhB,GAAIQ,GAAYR,CAAK,EACnB,MAAO,CAACS,GAAST,CAAK,EAAE,OAE1B,QAASU,KAAOV,EACd,GAAIF,GAAe,KAAKE,EAAOU,CAAG,EAChC,MAAO,GAGX,MAAO,EACT,CC1EA,MAAMC,CAAa,CACjB,aAAc,CACZ,KAAK,UAAY,IAAI,IACrB,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,CAC7C,CAEE,UAAUC,EAAU,CAClB,MAAMC,EAAW,CACf,SAAAD,CACD,EACD,YAAK,UAAU,IAAIC,CAAQ,EAC3B,KAAK,YAAa,EACX,IAAM,CACX,KAAK,UAAU,OAAOA,CAAQ,EAC9B,KAAK,cAAe,CACrB,CACL,CAEE,cAAe,CACb,OAAO,KAAK,UAAU,KAAO,CACjC,CAEE,aAAc,CAChB,CAEE,eAAgB,CAClB,CAEA,CC1BA,MAAMC,EAAW,OAAO,OAAW,KAAe,SAAU,OAC5D,SAASC,GAAO,CAEhB,CACA,SAASC,GAAiBC,EAASC,EAAO,CACxC,OAAO,OAAOD,GAAY,WAAaA,EAAQC,CAAK,EAAID,CAC1D,CACA,SAASE,GAAenB,EAAO,CAC7B,OAAO,OAAOA,GAAU,UAAYA,GAAS,GAAKA,IAAU,GAC9D,CASA,SAASoB,GAAeC,EAAWC,EAAW,CAC5C,OAAO,KAAK,IAAID,GAAaC,GAAa,GAAK,KAAK,IAAK,EAAE,CAAC,CAC9D,CACA,SAASC,EAAeC,EAAMC,EAAMC,EAAM,CACxC,OAAKC,GAAWH,CAAI,EAIhB,OAAOC,GAAS,WACX,CAAE,GAAGC,EACV,SAAUF,EACV,QAASC,CACV,EAGI,CAAE,GAAGA,EACV,SAAUD,CACX,EAZQA,CAaX,CAwBA,SAASI,EAAgBJ,EAAMC,EAAMC,EAAM,CACzC,OAAOC,GAAWH,CAAI,EAAI,CAAC,CAAE,GAAGC,EAC9B,SAAUD,CACX,EAAEE,CAAI,EAAI,CAACF,GAAQ,CAAA,EAAIC,CAAI,CAC9B,CAMA,SAASI,GAAWC,EAASC,EAAO,CAClC,KAAM,CACJ,KAAAC,EAAO,MACP,MAAAC,EACA,YAAAC,EACA,UAAAC,EACA,SAAAC,EACA,MAAAC,CACJ,EAAMP,EAEJ,GAAIH,GAAWS,CAAQ,GACrB,GAAIH,GACF,GAAIF,EAAM,YAAcO,GAAsBF,EAAUL,EAAM,OAAO,EACnE,MAAO,WAEA,CAACQ,GAAgBR,EAAM,SAAUK,CAAQ,EAClD,MAAO,GAIX,GAAIJ,IAAS,MAAO,CAClB,MAAMQ,EAAWT,EAAM,SAAU,EAMjC,GAJIC,IAAS,UAAY,CAACQ,GAItBR,IAAS,YAAcQ,EACzB,MAAO,EAEb,CAUE,MARI,SAAOH,GAAU,WAAaN,EAAM,QAAO,IAAOM,GAIlD,OAAOH,EAAgB,KAAeA,IAAgBH,EAAM,MAAM,aAIlEI,GAAa,CAACA,EAAUJ,CAAK,EAKnC,CACA,SAASU,GAAcX,EAASY,EAAU,CACxC,KAAM,CACJ,MAAAT,EACA,SAAAU,EACA,UAAAR,EACA,YAAAS,CACJ,EAAMd,EAEJ,GAAIH,GAAWiB,CAAW,EAAG,CAC3B,GAAI,CAACF,EAAS,QAAQ,YACpB,MAAO,GAGT,GAAIT,GACF,GAAIY,EAAaH,EAAS,QAAQ,WAAW,IAAMG,EAAaD,CAAW,EACzE,MAAO,WAEA,CAACL,GAAgBG,EAAS,QAAQ,YAAaE,CAAW,EACnE,MAAO,EAEb,CAME,MAJI,SAAOD,GAAa,WAAaD,EAAS,MAAM,SAAW,YAAcC,GAIzER,GAAa,CAACA,EAAUO,CAAQ,EAKtC,CACA,SAASJ,GAAsBF,EAAUU,EAAS,CAEhD,OAD2CA,GAAQ,gBAAmBD,GACxDT,CAAQ,CACxB,CAMA,SAASS,EAAaT,EAAU,CAC9B,OAAO,KAAK,UAAUA,EAAU,CAACW,EAAGC,IAAQC,GAAcD,CAAG,EAAI,OAAO,KAAKA,CAAG,EAAE,KAAM,EAAC,OAAO,CAACE,EAAQxC,KACvGwC,EAAOxC,CAAG,EAAIsC,EAAItC,CAAG,EACdwC,GACN,CAAA,CAAE,EAAIF,CAAG,CACd,CAKA,SAAST,GAAgBY,EAAGC,EAAG,CAC7B,OAAOC,GAAiBF,EAAGC,CAAC,CAC9B,CAKA,SAASC,GAAiBF,EAAGC,EAAG,CAC9B,OAAID,IAAMC,EACD,GAGL,OAAOD,GAAM,OAAOC,EACf,GAGLD,GAAKC,GAAK,OAAOD,GAAM,UAAY,OAAOC,GAAM,SAC3C,CAAC,OAAO,KAAKA,CAAC,EAAE,KAAK1C,GAAO,CAAC2C,GAAiBF,EAAEzC,CAAG,EAAG0C,EAAE1C,CAAG,CAAC,CAAC,EAG/D,EACT,CAOA,SAAS4C,GAAiBH,EAAGC,EAAG,CAC9B,GAAID,IAAMC,EACR,OAAOD,EAGT,MAAMI,EAAQC,GAAaL,CAAC,GAAKK,GAAaJ,CAAC,EAE/C,GAAIG,GAASN,GAAcE,CAAC,GAAKF,GAAcG,CAAC,EAAG,CACjD,MAAMK,EAAQF,EAAQJ,EAAE,OAAS,OAAO,KAAKA,CAAC,EAAE,OAC1CO,EAASH,EAAQH,EAAI,OAAO,KAAKA,CAAC,EAClCO,EAAQD,EAAO,OACfE,EAAOL,EAAQ,CAAA,EAAK,CAAE,EAC5B,IAAIM,EAAa,EAEjB,QAASC,EAAI,EAAGA,EAAIH,EAAOG,IAAK,CAC9B,MAAMpD,EAAM6C,EAAQO,EAAIJ,EAAOI,CAAC,EAChCF,EAAKlD,CAAG,EAAI4C,GAAiBH,EAAEzC,CAAG,EAAG0C,EAAE1C,CAAG,CAAC,EAEvCkD,EAAKlD,CAAG,IAAMyC,EAAEzC,CAAG,GACrBmD,GAER,CAEI,OAAOJ,IAAUE,GAASE,IAAeJ,EAAQN,EAAIS,CACzD,CAEE,OAAOR,CACT,CAKA,SAASW,GAAoBZ,EAAGC,EAAG,CACjC,GAAID,GAAK,CAACC,GAAKA,GAAK,CAACD,EACnB,MAAO,GAGT,UAAWzC,KAAOyC,EAChB,GAAIA,EAAEzC,CAAG,IAAM0C,EAAE1C,CAAG,EAClB,MAAO,GAIX,MAAO,EACT,CACA,SAAS8C,GAAaxD,EAAO,CAC3B,OAAO,MAAM,QAAQA,CAAK,GAAKA,EAAM,SAAW,OAAO,KAAKA,CAAK,EAAE,MACrE,CAEA,SAASiD,GAAce,EAAG,CACxB,GAAI,CAACC,GAAmBD,CAAC,EACvB,MAAO,GAIT,MAAME,EAAOF,EAAE,YAEf,GAAI,OAAOE,EAAS,IAClB,MAAO,GAIT,MAAMC,EAAOD,EAAK,UAOlB,MALI,GAACD,GAAmBE,CAAI,GAKxB,CAACA,EAAK,eAAe,eAAe,EAM1C,CAEA,SAASF,GAAmBD,EAAG,CAC7B,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,iBAC/C,CAEA,SAASrC,GAAW3B,EAAO,CACzB,OAAO,MAAM,QAAQA,CAAK,CAC5B,CAIA,SAASoE,GAAMC,EAAS,CACtB,OAAO,IAAI,QAAQC,GAAW,CAC5B,WAAWA,EAASD,CAAO,CAC/B,CAAG,CACH,CAMA,SAASE,GAAkBC,EAAU,CACnCJ,GAAM,CAAC,EAAE,KAAKI,CAAQ,CACxB,CACA,SAASC,IAAqB,CAC5B,GAAI,OAAO,iBAAoB,WAC7B,OAAO,IAAI,eAIf,CACA,SAASC,GAAYC,EAAUC,EAAM9B,EAAS,CAE5C,OAAIA,EAAQ,aAAe,MAAQA,EAAQ,YAAY6B,EAAUC,CAAI,EAC5DD,EACE,OAAO7B,EAAQ,mBAAsB,WACvCA,EAAQ,kBAAkB6B,EAAUC,CAAI,EACtC9B,EAAQ,oBAAsB,GAEhCQ,GAAiBqB,EAAUC,CAAI,EAGjCA,CACT,CCzTA,MAAMC,WAAqBlE,CAAa,CACtC,aAAc,CACZ,MAAO,EAEP,KAAK,MAAQmE,GAAW,CAGtB,GAAI,CAAChE,GAAY,OAAO,iBAAkB,CACxC,MAAMF,EAAW,IAAMkE,IAGvB,cAAO,iBAAiB,mBAAoBlE,EAAU,EAAK,EAC3D,OAAO,iBAAiB,QAASA,EAAU,EAAK,EACzC,IAAM,CAEX,OAAO,oBAAoB,mBAAoBA,CAAQ,EACvD,OAAO,oBAAoB,QAASA,CAAQ,CAC7C,CACT,CAGK,CACL,CAEE,aAAc,CACP,KAAK,SACR,KAAK,iBAAiB,KAAK,KAAK,CAEtC,CAEE,eAAgB,CACd,GAAI,CAAC,KAAK,eAAgB,CACxB,IAAImE,GAEHA,EAAgB,KAAK,UAAY,MAAgBA,EAAc,KAAK,IAAI,EACzE,KAAK,QAAU,MACrB,CACA,CAEE,iBAAiBC,EAAO,CACtB,IAAIC,EAEJ,KAAK,MAAQD,GACZC,EAAiB,KAAK,UAAY,MAAgBA,EAAe,KAAK,IAAI,EAC3E,KAAK,QAAUD,EAAME,GAAW,CAC1B,OAAOA,GAAY,UACrB,KAAK,WAAWA,CAAO,EAEvB,KAAK,QAAS,CAEtB,CAAK,CACL,CAEE,WAAWA,EAAS,CACF,KAAK,UAAYA,IAG/B,KAAK,QAAUA,EACf,KAAK,QAAS,EAEpB,CAEE,SAAU,CACR,KAAK,UAAU,QAAQ,CAAC,CACtB,SAAAtE,CACN,IAAU,CACJA,EAAU,CAChB,CAAK,CACL,CAEE,WAAY,CACV,OAAI,OAAO,KAAK,SAAY,UACnB,KAAK,QAIV,OAAO,SAAa,IACf,GAGF,CAAC,OAAW,UAAW,WAAW,EAAE,SAAS,SAAS,eAAe,CAChF,CAEA,CACA,MAAMuE,GAAe,IAAIN,GCpFnBO,GAAe,CAAC,SAAU,SAAS,EACzC,MAAMC,WAAsB1E,CAAa,CACvC,aAAc,CACZ,MAAO,EAEP,KAAK,MAAQ2E,GAAY,CAGvB,GAAI,CAACxE,GAAY,OAAO,iBAAkB,CACxC,MAAMF,EAAW,IAAM0E,IAGvB,OAAAF,GAAa,QAAQG,GAAS,CAC5B,OAAO,iBAAiBA,EAAO3E,EAAU,EAAK,CACxD,CAAS,EACM,IAAM,CAEXwE,GAAa,QAAQG,GAAS,CAC5B,OAAO,oBAAoBA,EAAO3E,CAAQ,CACtD,CAAW,CACF,CACT,CAGK,CACL,CAEE,aAAc,CACP,KAAK,SACR,KAAK,iBAAiB,KAAK,KAAK,CAEtC,CAEE,eAAgB,CACd,GAAI,CAAC,KAAK,eAAgB,CACxB,IAAImE,GAEHA,EAAgB,KAAK,UAAY,MAAgBA,EAAc,KAAK,IAAI,EACzE,KAAK,QAAU,MACrB,CACA,CAEE,iBAAiBC,EAAO,CACtB,IAAIC,EAEJ,KAAK,MAAQD,GACZC,EAAiB,KAAK,UAAY,MAAgBA,EAAe,KAAK,IAAI,EAC3E,KAAK,QAAUD,EAAMQ,GAAU,CACzB,OAAOA,GAAW,UACpB,KAAK,UAAUA,CAAM,EAErB,KAAK,SAAU,CAEvB,CAAK,CACL,CAEE,UAAUA,EAAQ,CACA,KAAK,SAAWA,IAG9B,KAAK,OAASA,EACd,KAAK,SAAU,EAErB,CAEE,UAAW,CACT,KAAK,UAAU,QAAQ,CAAC,CACtB,SAAA5E,CACN,IAAU,CACJA,EAAU,CAChB,CAAK,CACL,CAEE,UAAW,CACT,OAAI,OAAO,KAAK,QAAW,UAClB,KAAK,OAGV,OAAO,UAAc,KAAe,OAAO,UAAU,OAAW,IAC3D,GAGF,UAAU,MACrB,CAEA,CACA,MAAM6E,GAAgB,IAAIJ,GCrF1B,SAASK,GAAkBC,EAAc,CACvC,OAAO,KAAK,IAAI,IAAO,GAAKA,EAAc,GAAK,CACjD,CAEA,SAASC,GAASC,EAAa,CAC7B,OAAQA,GAAoC,YAAc,SAAWJ,GAAc,SAAQ,EAAK,EAClG,CACA,MAAMK,EAAe,CACnB,YAAYhD,EAAS,CACnB,KAAK,OAAoCA,GAAQ,OACjD,KAAK,OAAoCA,GAAQ,MACrD,CAEA,CACA,SAASiD,GAAiB/F,EAAO,CAC/B,OAAOA,aAAiB8F,EAC1B,CACA,SAASE,GAAcC,EAAQ,CAC7B,IAAIC,EAAmB,GACnBP,EAAe,EACfQ,EAAa,GACbC,EACAC,EACAC,EACJ,MAAMC,EAAU,IAAI,QAAQ,CAACC,EAAcC,IAAgB,CACzDJ,EAAiBG,EACjBF,EAAgBG,CACpB,CAAG,EAEKC,EAASC,GAAiB,CACzBR,IACHS,EAAO,IAAId,GAAea,CAAa,CAAC,EACxCV,EAAO,OAAS,MAAgBA,EAAO,MAAO,EAEjD,EAEKY,EAAc,IAAM,CACxBX,EAAmB,EACpB,EAEKY,EAAgB,IAAM,CAC1BZ,EAAmB,EACpB,EAEKa,EAAc,IAAM,CAAC5B,GAAa,UAAW,GAAIc,EAAO,cAAgB,UAAY,CAACR,GAAc,SAAU,EAE7GnB,EAAUtE,GAAS,CAClBmG,IACHA,EAAa,GACbF,EAAO,WAAa,MAAgBA,EAAO,UAAUjG,CAAK,EAC5BoG,IAAY,EAC1CC,EAAerG,CAAK,EAEvB,EAEK4G,EAAS5G,GAAS,CACjBmG,IACHA,EAAa,GACbF,EAAO,SAAW,MAAgBA,EAAO,QAAQjG,CAAK,EACxBoG,IAAY,EAC1CE,EAActG,CAAK,EAEtB,EAEKgH,EAAQ,IACL,IAAI,QAAQC,GAAmB,CACpCb,EAAapG,GAAS,CACpB,MAAMkH,EAAcf,GAAc,CAACY,EAAa,EAEhD,OAAIG,GACFD,EAAgBjH,CAAK,EAGhBkH,CACR,EAEDjB,EAAO,SAAW,MAAgBA,EAAO,QAAS,CACxD,CAAK,EAAE,KAAK,IAAM,CACZG,EAAa,OAERD,GACHF,EAAO,YAAc,MAAgBA,EAAO,WAAY,CAEhE,CAAK,EAIGkB,EAAM,IAAM,CAEhB,GAAIhB,EACF,OAGF,IAAIiB,EAEJ,GAAI,CACFA,EAAiBnB,EAAO,GAAI,CAC7B,OAAQoB,EAAO,CACdD,EAAiB,QAAQ,OAAOC,CAAK,CAC3C,CAEI,QAAQ,QAAQD,CAAc,EAAE,KAAK9C,CAAO,EAAE,MAAM+C,GAAS,CAC3D,IAAIC,EAAeC,EAGnB,GAAIpB,EACF,OAIF,MAAMqB,GAASF,EAAgBrB,EAAO,QAAU,KAAOqB,EAAgB,EACjEG,GAAcF,EAAqBtB,EAAO,aAAe,KAAOsB,EAAqB7B,GACrFgC,EAAQ,OAAOD,GAAe,WAAaA,EAAW9B,EAAc0B,CAAK,EAAII,EAC7EE,EAAcH,IAAU,IAAQ,OAAOA,GAAU,UAAY7B,EAAe6B,GAAS,OAAOA,GAAU,YAAcA,EAAM7B,EAAc0B,CAAK,EAEnJ,GAAInB,GAAoB,CAACyB,EAAa,CAEpCf,EAAOS,CAAK,EACZ,MACR,CAEM1B,IAEAM,EAAO,QAAU,MAAgBA,EAAO,OAAON,EAAc0B,CAAK,EAElEjD,GAAMsD,CAAK,EACV,KAAK,IAAM,CACV,GAAIX,EAAW,EACb,OAAOC,EAAO,CAIxB,CAAO,EAAE,KAAK,IAAM,CACRd,EACFU,EAAOS,CAAK,EAEZF,EAAK,CAEf,CAAO,CACP,CAAK,CACL,EAGE,OAAIvB,GAASK,EAAO,WAAW,EAC7BkB,EAAK,EAELH,EAAO,EAAC,KAAKG,CAAG,EAGX,CACL,QAAAZ,EACA,OAAAG,EACA,SAAU,IAC0CN,IAAY,EACzCG,EAAU,QAAQ,QAAS,EAElD,YAAAM,EACA,cAAAC,CACD,CACH,CCnKA,MAAMc,GAAgB,QCEtB,SAASC,IAAsB,CAC7B,IAAIC,EAAQ,CAAE,EACVC,EAAe,EAEfC,EAAWxD,GAAY,CACzBA,EAAU,CACX,EAEGyD,EAAgBzD,GAAY,CAC9BA,EAAU,CACX,EAED,MAAM0D,EAAQ1D,GAAY,CACxB,IAAItB,EACJ6E,IAEA,GAAI,CACF7E,EAASsB,EAAU,CACzB,QAAc,CACRuD,IAEKA,GACHI,EAAO,CAEf,CAEI,OAAOjF,CACR,EAEKkF,EAAW5D,GAAY,CACvBuD,EACFD,EAAM,KAAKtD,CAAQ,EAEnBD,GAAkB,IAAM,CACtByD,EAASxD,CAAQ,CACzB,CAAO,CAEJ,EAMK6D,EAAa7D,GACV,IAAI8D,IAAS,CAClBF,EAAS,IAAM,CACb5D,EAAS,GAAG8D,CAAI,CACxB,CAAO,CACF,EAGGH,EAAQ,IAAM,CAClB,MAAMI,EAAgBT,EACtBA,EAAQ,CAAE,EAENS,EAAc,QAChBhE,GAAkB,IAAM,CACtB0D,EAAc,IAAM,CAClBM,EAAc,QAAQ/D,GAAY,CAChCwD,EAASxD,CAAQ,CAC7B,CAAW,CACX,CAAS,CACT,CAAO,CAEJ,EAoBD,MAAO,CACL,MAAA0D,EACA,WAAAG,EACA,SAAAD,EACA,kBAjBwBI,GAAM,CAC9BR,EAAWQ,CACZ,EAgBC,uBAT6BA,GAAM,CACnCP,EAAgBO,CACjB,CAQA,CACH,CAEA,MAAMC,EAAgBZ,GAAqB,EC7F3C,MAAMa,EAAU,CACd,SAAU,CACR,KAAK,eAAgB,CACzB,CAEE,YAAa,CACX,KAAK,eAAgB,EAEjBvH,GAAe,KAAK,SAAS,IAC/B,KAAK,UAAY,WAAW,IAAM,CAChC,KAAK,eAAgB,CAC7B,EAAS,KAAK,SAAS,EAEvB,CAEE,gBAAgBwH,EAAc,CAE5B,KAAK,UAAY,KAAK,IAAI,KAAK,WAAa,EAAGA,IAAsC7H,EAAW,IAAW,EAAI,GAAK,IAAI,CAC5H,CAEE,gBAAiB,CACX,KAAK,YACP,aAAa,KAAK,SAAS,EAC3B,KAAK,UAAY,OAEvB,CAEA,CCtBA,MAAM8H,WAAcF,EAAU,CAC5B,YAAYzC,EAAQ,CACZ,MAAA,EACN,KAAK,oBAAsB,GAC3B,KAAK,eAAiBA,EAAO,eACxB,KAAA,WAAWA,EAAO,OAAO,EAC9B,KAAK,UAAY,CAAC,EAClB,KAAK,MAAQA,EAAO,MACf,KAAA,OAASA,EAAO,QAAU2B,GAC/B,KAAK,SAAW3B,EAAO,SACvB,KAAK,UAAYA,EAAO,UACxB,KAAK,aAAeA,EAAO,OAAS4C,GAAgB,KAAK,OAAO,EAChE,KAAK,MAAQ,KAAK,aAClB,KAAK,WAAW,CAAA,CAGlB,IAAI,MAAO,CACT,OAAO,KAAK,QAAQ,IAAA,CAGtB,WAAW/F,EAAS,CAClB,KAAK,QAAU,CAAE,GAAG,KAAK,eACvB,GAAGA,CACL,EACK,KAAA,gBAAgB,KAAK,QAAQ,SAAS,CAAA,CAG7C,gBAAiB,CACX,CAAC,KAAK,UAAU,QAAU,KAAK,MAAM,cAAgB,QAClD,KAAA,MAAM,OAAO,IAAI,CACxB,CAGF,QAAQgG,EAAShG,EAAS,CACxB,MAAM8B,EAAOF,GAAY,KAAK,MAAM,KAAMoE,EAAS,KAAK,OAAO,EAE/D,YAAK,SAAS,CACZ,KAAAlE,EACA,KAAM,UACN,cAA0C9B,GAAQ,UAClD,OAAmCA,GAAQ,MAAA,CAC5C,EACM8B,CAAA,CAGT,SAASmE,EAAOC,EAAiB,CAC/B,KAAK,SAAS,CACZ,KAAM,WACN,MAAAD,EACA,gBAAAC,CAAA,CACD,CAAA,CAGH,OAAOlG,EAAS,CACV,IAAAmG,EAEJ,MAAM1C,EAAU,KAAK,QACrB,OAAC0C,EAAgB,KAAK,UAAY,MAAgBA,EAAc,OAAOnG,CAAO,EACvEyD,EAAUA,EAAQ,KAAKxF,CAAI,EAAE,MAAMA,CAAI,EAAI,QAAQ,QAAQ,CAAA,CAGpE,SAAU,CACR,MAAM,QAAQ,EACd,KAAK,OAAO,CACV,OAAQ,EAAA,CACT,CAAA,CAGH,OAAQ,CACN,KAAK,QAAQ,EACR,KAAA,SAAS,KAAK,YAAY,CAAA,CAGjC,UAAW,CACT,OAAO,KAAK,UAAU,QAAiBmI,EAAS,QAAQ,UAAY,EAAK,CAAA,CAG3E,YAAa,CACX,OAAO,KAAK,kBAAkB,EAAI,GAAK,CAAC,KAAK,SAAS,CAAA,CAGxD,SAAU,CACR,OAAO,KAAK,MAAM,eAAiB,CAAC,KAAK,MAAM,eAAiB,KAAK,UAAU,KAAKA,GAAYA,EAAS,mBAAmB,OAAO,CAAA,CAGrI,cAAc5H,EAAY,EAAG,CAC3B,OAAO,KAAK,MAAM,eAAiB,CAAC,KAAK,MAAM,eAAiB,CAACF,GAAe,KAAK,MAAM,cAAeE,CAAS,CAAA,CAGrH,SAAU,CACJ,IAAA6H,EAEJ,MAAMD,EAAW,KAAK,UAAU,KAAUE,GAAAA,EAAE,0BAA0B,EAElEF,GACFA,EAAS,QAAQ,CACf,cAAe,EAAA,CAChB,GAIFC,EAAiB,KAAK,UAAY,MAAgBA,EAAe,SAAS,CAAA,CAG7E,UAAW,CACL,IAAAE,EAEJ,MAAMH,EAAW,KAAK,UAAU,KAAUE,GAAAA,EAAE,wBAAwB,EAEhEF,GACFA,EAAS,QAAQ,CACf,cAAe,EAAA,CAChB,GAIFG,EAAiB,KAAK,UAAY,MAAgBA,EAAe,SAAS,CAAA,CAG7E,YAAYH,EAAU,CACf,KAAK,UAAU,SAASA,CAAQ,IAC9B,KAAA,UAAU,KAAKA,CAAQ,EAE5B,KAAK,eAAe,EACpB,KAAK,MAAM,OAAO,CAChB,KAAM,gBACN,MAAO,KACP,SAAAA,CAAA,CACD,EACH,CAGF,eAAeA,EAAU,CACnB,KAAK,UAAU,SAASA,CAAQ,IAClC,KAAK,UAAY,KAAK,UAAU,OAAOE,GAAKA,IAAMF,CAAQ,EAErD,KAAK,UAAU,SAGd,KAAK,UACH,KAAK,oBACP,KAAK,QAAQ,OAAO,CAClB,OAAQ,EAAA,CACT,EAED,KAAK,QAAQ,YAAY,GAI7B,KAAK,WAAW,GAGlB,KAAK,MAAM,OAAO,CAChB,KAAM,kBACN,MAAO,KACP,SAAAA,CAAA,CACD,EACH,CAGF,mBAAoB,CAClB,OAAO,KAAK,UAAU,MAAA,CAGxB,YAAa,CACN,KAAK,MAAM,eACd,KAAK,SAAS,CACZ,KAAM,YAAA,CACP,CACH,CAGF,MAAMpG,EAASwG,EAAc,CAC3B,IAAIC,EAAuBC,EAEvB,GAAA,KAAK,MAAM,cAAgB,QAC7B,GAAI,KAAK,MAAM,eAAiBF,GAAgB,MAAQA,EAAa,cAEnE,KAAK,OAAO,CACV,OAAQ,EAAA,CACT,UACQ,KAAK,QAAS,CACnB,IAAAG,EAGJ,OAACA,EAAiB,KAAK,UAAY,MAAgBA,EAAe,cAAc,EAEzE,KAAK,OAAA,EAWZ,GANA3G,GACF,KAAK,WAAWA,CAAO,EAKrB,CAAC,KAAK,QAAQ,QAAS,CACzB,MAAMoG,EAAW,KAAK,UAAU,KAAUE,GAAAA,EAAE,QAAQ,OAAO,EAEvDF,GACG,KAAA,WAAWA,EAAS,OAAO,CAClC,CASF,MAAMQ,EAAkBjF,GAAmB,EAErCkF,EAAiB,CACrB,SAAU,KAAK,SACf,UAAW,OACX,KAAM,KAAK,IACb,EAIMC,EAA8BC,GAAA,CAC3B,OAAA,eAAeA,EAAQ,SAAU,CACtC,WAAY,GACZ,IAAK,IAAM,CACT,GAAIH,EACF,YAAK,oBAAsB,GACpBA,EAAgB,MAGlB,CACT,CACD,CACH,EAEAE,EAAkBD,CAAc,EAEhC,MAAMG,EAAU,IACT,KAAK,QAAQ,SAIlB,KAAK,oBAAsB,GACpB,KAAK,QAAQ,QAAQH,CAAc,GAJjC,QAAQ,OAAO,iCAAmC,KAAK,QAAQ,UAAY,GAAG,EAQnFI,EAAU,CACd,aAAAT,EACA,QAAS,KAAK,QACd,SAAU,KAAK,SACf,MAAO,KAAK,MACZ,QAAAQ,CACF,EAMA,GALAF,EAAkBG,CAAO,GACxBR,EAAwB,KAAK,QAAQ,WAAa,MAAgBA,EAAsB,QAAQQ,CAAO,EAExG,KAAK,YAAc,KAAK,MAEpB,KAAK,MAAM,cAAgB,QAAU,KAAK,MAAM,cAAgBP,EAAwBO,EAAQ,eAAiB,KAAO,OAASP,EAAsB,MAAO,CAC5J,IAAAQ,EAEJ,KAAK,SAAS,CACZ,KAAM,QACN,MAAOA,EAAyBD,EAAQ,eAAiB,KAAO,OAASC,EAAuB,IAAA,CACjG,CAAA,CAGH,MAAMC,EAAmB5C,GAAA,CASnB,GAPEtB,GAAiBsB,CAAK,GAAKA,EAAM,QACrC,KAAK,SAAS,CACZ,KAAM,QACN,MAAAA,CAAA,CACD,EAGC,CAACtB,GAAiBsB,CAAK,EAAG,CACxB,IAAA6C,EAAuBC,EAAoBC,EAAwBC,GAGtEH,GAAyBC,EAAqB,KAAK,MAAM,QAAQ,UAAY,MAAgBD,EAAsB,KAAKC,EAAoB9C,EAAO,IAAI,GACvJ+C,GAA0BC,EAAsB,KAAK,MAAM,QAAQ,YAAc,MAAgBD,EAAuB,KAAKC,EAAqB,KAAK,MAAM,KAAMhD,EAAO,IAAI,CAI/K,CAGG,KAAK,sBAER,KAAK,WAAW,EAGlB,KAAK,qBAAuB,EAC9B,EAGA,YAAK,QAAUrB,GAAc,CAC3B,GAAI+D,EAAQ,QACZ,MAA0CL,GAAgB,MAAM,KAAKA,CAAe,EACpF,UAAmB9E,GAAA,CACb,IAAA0F,EAAwBC,EAAqBC,EAAwBC,EAErE,GAAA,OAAO7F,EAAS,IAAa,CAK/BqF,EAAQ,IAAI,MAAM,KAAK,UAAY,oBAAoB,CAAC,EACxD,MAAA,CAGF,KAAK,QAAQrF,CAAI,GAEhB0F,GAA0BC,EAAsB,KAAK,MAAM,QAAQ,YAAc,MAAgBD,EAAuB,KAAKC,EAAqB3F,EAAM,IAAI,GAC5J4F,GAA0BC,EAAsB,KAAK,MAAM,QAAQ,YAAc,MAAgBD,EAAuB,KAAKC,EAAqB7F,EAAM,KAAK,MAAM,MAAO,IAAI,EAE1K,KAAK,sBAER,KAAK,WAAW,EAGlB,KAAK,qBAAuB,EAC9B,EACA,QAAAqF,EACA,OAAQ,CAACtE,EAAc0B,IAAU,CAC/B,KAAK,SAAS,CACZ,KAAM,SACN,aAAA1B,EACA,MAAA0B,CAAA,CACD,CACH,EACA,QAAS,IAAM,CACb,KAAK,SAAS,CACZ,KAAM,OAAA,CACP,CACH,EACA,WAAY,IAAM,CAChB,KAAK,SAAS,CACZ,KAAM,UAAA,CACP,CACH,EACA,MAAO0C,EAAQ,QAAQ,MACvB,WAAYA,EAAQ,QAAQ,WAC5B,YAAaA,EAAQ,QAAQ,WAAA,CAC9B,EACI,KAAA,QAAU,KAAK,QAAQ,QACrB,KAAK,OAAA,CAGd,SAASW,EAAQ,CACf,MAAMC,EAAmB5B,GAAA,CACvB,IAAI6B,EAAcC,EAElB,OAAQH,EAAO,KAAM,CACnB,IAAK,SACI,MAAA,CAAE,GAAG3B,EACV,kBAAmB2B,EAAO,aAC1B,mBAAoBA,EAAO,KAC7B,EAEF,IAAK,QACI,MAAA,CAAE,GAAG3B,EACV,YAAa,QACf,EAEF,IAAK,WACI,MAAA,CAAE,GAAGA,EACV,YAAa,UACf,EAEF,IAAK,QACI,MAAA,CAAE,GAAGA,EACV,kBAAmB,EACnB,mBAAoB,KACpB,WAAY6B,EAAeF,EAAO,OAAS,KAAOE,EAAe,KACjE,YAAahF,GAAS,KAAK,QAAQ,WAAW,EAAI,WAAa,SAC/D,GAAI,CAACmD,EAAM,eAAiB,CAC1B,MAAO,KACP,OAAQ,SAAA,CAEZ,EAEF,IAAK,UACI,MAAA,CAAE,GAAGA,EACV,KAAM2B,EAAO,KACb,gBAAiB3B,EAAM,gBAAkB,EACzC,eAAgB8B,EAAwBH,EAAO,gBAAkB,KAAOG,EAAwB,KAAK,IAAI,EACzG,MAAO,KACP,cAAe,GACf,OAAQ,UACR,GAAI,CAACH,EAAO,QAAU,CACpB,YAAa,OACb,kBAAmB,EACnB,mBAAoB,IAAA,CAExB,EAEF,IAAK,QACH,MAAMrD,EAAQqD,EAAO,MAErB,OAAI3E,GAAiBsB,CAAK,GAAKA,EAAM,QAAU,KAAK,YAC3C,CAAE,GAAG,KAAK,YACf,YAAa,MACf,EAGK,CAAE,GAAG0B,EACV,MAAA1B,EACA,iBAAkB0B,EAAM,iBAAmB,EAC3C,eAAgB,KAAK,IAAI,EACzB,kBAAmBA,EAAM,kBAAoB,EAC7C,mBAAoB1B,EACpB,YAAa,OACb,OAAQ,OACV,EAEF,IAAK,aACI,MAAA,CAAE,GAAG0B,EACV,cAAe,EACjB,EAEF,IAAK,WACI,MAAA,CAAE,GAAGA,EACV,GAAG2B,EAAO,KACZ,CAAA,CAEN,EAEK,KAAA,MAAQC,EAAQ,KAAK,KAAK,EAC/BlC,EAAc,MAAM,IAAM,CACnB,KAAA,UAAU,QAAoBS,GAAA,CACjCA,EAAS,cAAcwB,CAAM,CAAA,CAC9B,EACD,KAAK,MAAM,OAAO,CAChB,MAAO,KACP,KAAM,UACN,OAAAA,CAAA,CACD,CAAA,CACF,CAAA,CAGL,CAEA,SAAS7B,GAAgB/F,EAAS,CAC1B,MAAA8B,EAAO,OAAO9B,EAAQ,aAAgB,WAAaA,EAAQ,cAAgBA,EAAQ,YACnFgI,EAAU,OAAOlG,EAAS,IAC1BmG,EAAuBD,EAAU,OAAOhI,EAAQ,sBAAyB,WAAaA,EAAQ,qBAAA,EAAyBA,EAAQ,qBAAuB,EACrJ,MAAA,CACL,KAAA8B,EACA,gBAAiB,EACjB,cAAekG,EAAUC,GAAsD,KAAK,MAAQ,EAC5F,MAAO,KACP,iBAAkB,EAClB,eAAgB,EAChB,kBAAmB,EACnB,mBAAoB,KACpB,UAAW,KACX,cAAe,GACf,OAAQD,EAAU,UAAY,UAC9B,YAAa,MACf,CACF,CCjdA,MAAME,WAAmBrK,CAAa,CACpC,YAAYsF,EAAQ,CAClB,MAAO,EACP,KAAK,OAASA,GAAU,CAAE,EAC1B,KAAK,QAAU,CAAE,EACjB,KAAK,WAAa,CAAE,CACxB,CAEE,MAAMgF,EAAQnI,EAASiG,EAAO,CAC5B,IAAImC,EAEJ,MAAM9I,EAAWU,EAAQ,SACnBqI,GAAaD,EAAqBpI,EAAQ,YAAc,KAAOoI,EAAqB5I,GAAsBF,EAAUU,CAAO,EACjI,IAAIf,EAAQ,KAAK,IAAIoJ,CAAS,EAE9B,OAAKpJ,IACHA,EAAQ,IAAI6G,GAAM,CAChB,MAAO,KACP,OAAQqC,EAAO,UAAW,EAC1B,SAAA7I,EACA,UAAA+I,EACA,QAASF,EAAO,oBAAoBnI,CAAO,EAC3C,MAAAiG,EACA,eAAgBkC,EAAO,iBAAiB7I,CAAQ,CACxD,CAAO,EACD,KAAK,IAAIL,CAAK,GAGTA,CACX,CAEE,IAAIA,EAAO,CACJ,KAAK,WAAWA,EAAM,SAAS,IAClC,KAAK,WAAWA,EAAM,SAAS,EAAIA,EACnC,KAAK,QAAQ,KAAKA,CAAK,EACvB,KAAK,OAAO,CACV,KAAM,QACN,MAAAA,CACR,CAAO,EAEP,CAEE,OAAOA,EAAO,CACZ,MAAMqJ,EAAa,KAAK,WAAWrJ,EAAM,SAAS,EAE9CqJ,IACFrJ,EAAM,QAAS,EACf,KAAK,QAAU,KAAK,QAAQ,OAAOqH,GAAKA,IAAMrH,CAAK,EAE/CqJ,IAAerJ,GACjB,OAAO,KAAK,WAAWA,EAAM,SAAS,EAGxC,KAAK,OAAO,CACV,KAAM,UACN,MAAAA,CACR,CAAO,EAEP,CAEE,OAAQ,CACN0G,EAAc,MAAM,IAAM,CACxB,KAAK,QAAQ,QAAQ1G,GAAS,CAC5B,KAAK,OAAOA,CAAK,CACzB,CAAO,CACP,CAAK,CACL,CAEE,IAAIoJ,EAAW,CACb,OAAO,KAAK,WAAWA,CAAS,CACpC,CAEE,QAAS,CACP,OAAO,KAAK,OAChB,CAEE,KAAK3J,EAAMC,EAAM,CACf,KAAM,CAACK,CAAO,EAAIF,EAAgBJ,EAAMC,CAAI,EAE5C,OAAI,OAAOK,EAAQ,MAAU,MAC3BA,EAAQ,MAAQ,IAGX,KAAK,QAAQ,KAAKC,GAASF,GAAWC,EAASC,CAAK,CAAC,CAChE,CAEE,QAAQP,EAAMC,EAAM,CAClB,KAAM,CAACK,CAAO,EAAIF,EAAgBJ,EAAMC,CAAI,EAC5C,OAAO,OAAO,KAAKK,CAAO,EAAE,OAAS,EAAI,KAAK,QAAQ,OAAOC,GAASF,GAAWC,EAASC,CAAK,CAAC,EAAI,KAAK,OAC7G,CAEE,OAAOwD,EAAO,CACZkD,EAAc,MAAM,IAAM,CACxB,KAAK,UAAU,QAAQ,CAAC,CACtB,SAAA7H,CACR,IAAY,CACJA,EAAS2E,CAAK,CACtB,CAAO,CACP,CAAK,CACL,CAEE,SAAU,CACRkD,EAAc,MAAM,IAAM,CACxB,KAAK,QAAQ,QAAQ1G,GAAS,CAC5BA,EAAM,QAAS,CACvB,CAAO,CACP,CAAK,CACL,CAEE,UAAW,CACT0G,EAAc,MAAM,IAAM,CACxB,KAAK,QAAQ,QAAQ1G,GAAS,CAC5BA,EAAM,SAAU,CACxB,CAAO,CACP,CAAK,CACL,CAEA,CCrHA,MAAMsJ,WAAiB3C,EAAU,CAC/B,YAAYzC,EAAQ,CACZ,MAAA,EACN,KAAK,eAAiBA,EAAO,eAC7B,KAAK,WAAaA,EAAO,WACzB,KAAK,cAAgBA,EAAO,cACvB,KAAA,OAASA,EAAO,QAAU2B,GAC/B,KAAK,UAAY,CAAC,EACb,KAAA,MAAQ3B,EAAO,OAAS4C,GAAgB,EACxC,KAAA,WAAW5C,EAAO,OAAO,EAC9B,KAAK,WAAW,CAAA,CAGlB,WAAWnD,EAAS,CAClB,KAAK,QAAU,CAAE,GAAG,KAAK,eACvB,GAAGA,CACL,EACK,KAAA,gBAAgB,KAAK,QAAQ,SAAS,CAAA,CAG7C,IAAI,MAAO,CACT,OAAO,KAAK,QAAQ,IAAA,CAGtB,SAASiG,EAAO,CACd,KAAK,SAAS,CACZ,KAAM,WACN,MAAAA,CAAA,CACD,CAAA,CAGH,YAAYG,EAAU,CACf,KAAK,UAAU,SAASA,CAAQ,IAC9B,KAAA,UAAU,KAAKA,CAAQ,EAE5B,KAAK,eAAe,EACpB,KAAK,cAAc,OAAO,CACxB,KAAM,gBACN,SAAU,KACV,SAAAA,CAAA,CACD,EACH,CAGF,eAAeA,EAAU,CACvB,KAAK,UAAY,KAAK,UAAU,OAAOE,GAAKA,IAAMF,CAAQ,EAC1D,KAAK,WAAW,EAChB,KAAK,cAAc,OAAO,CACxB,KAAM,kBACN,SAAU,KACV,SAAAA,CAAA,CACD,CAAA,CAGH,gBAAiB,CACV,KAAK,UAAU,SACd,KAAK,MAAM,SAAW,UACxB,KAAK,WAAW,EAEX,KAAA,cAAc,OAAO,IAAI,EAElC,CAGF,UAAW,CACT,IAAIoC,EAAuBrC,EAE3B,OAAQqC,GAAyBrC,EAAgB,KAAK,UAAY,KAAO,OAASA,EAAc,SAAA,IAAe,KAAOqC,EAAwB,KAAK,QAAQ,CAAA,CAG7J,MAAM,SAAU,CACd,MAAMC,EAAkB,IAAM,CACxB,IAAAC,EAEJ,YAAK,QAAUxF,GAAc,CAC3B,GAAI,IACG,KAAK,QAAQ,WAIX,KAAK,QAAQ,WAAW,KAAK,MAAM,SAAS,EAH1C,QAAQ,OAAO,qBAAqB,EAK/C,OAAQ,CAACL,EAAc0B,IAAU,CAC/B,KAAK,SAAS,CACZ,KAAM,SACN,aAAA1B,EACA,MAAA0B,CAAA,CACD,CACH,EACA,QAAS,IAAM,CACb,KAAK,SAAS,CACZ,KAAM,OAAA,CACP,CACH,EACA,WAAY,IAAM,CAChB,KAAK,SAAS,CACZ,KAAM,UAAA,CACP,CACH,EACA,OAAQmE,EAAsB,KAAK,QAAQ,QAAU,KAAOA,EAAsB,EAClF,WAAY,KAAK,QAAQ,WACzB,YAAa,KAAK,QAAQ,WAAA,CAC3B,EACM,KAAK,QAAQ,OACtB,EAEMC,EAAW,KAAK,MAAM,SAAW,UAEnC,GAAA,CACF,IAAIC,EAAwBC,EAAwBC,EAAuBC,EAAgBC,EAAwBC,EAAwBC,EAAuBC,EAElK,GAAI,CAACR,EAAU,CACT,IAAAS,EAAuBC,EAAwBC,EAAuBC,EAE1E,KAAK,SAAS,CACZ,KAAM,UACN,UAAW,KAAK,QAAQ,SAAA,CACzB,EAED,OAAQH,GAAyBC,EAAyB,KAAK,cAAc,QAAQ,WAAa,KAAO,OAASD,EAAsB,KAAKC,EAAwB,KAAK,MAAM,UAAW,IAAI,GAC/L,MAAMpC,EAAU,OAAQqC,GAAyBC,EAAgB,KAAK,SAAS,WAAa,KAAO,OAASD,EAAsB,KAAKC,EAAe,KAAK,MAAM,SAAS,GAEtKtC,IAAY,KAAK,MAAM,SACzB,KAAK,SAAS,CACZ,KAAM,UACN,QAAAA,EACA,UAAW,KAAK,MAAM,SAAA,CACvB,CACH,CAGI,MAAAnF,EAAO,MAAM2G,EAAgB,EAEnC,cAAQG,GAA0BC,EAAyB,KAAK,cAAc,QAAQ,YAAc,KAAO,OAASD,EAAuB,KAAKC,EAAwB/G,EAAM,KAAK,MAAM,UAAW,KAAK,MAAM,QAAS,IAAI,GAC5N,OAAQgH,GAAyBC,EAAiB,KAAK,SAAS,YAAc,KAAO,OAASD,EAAsB,KAAKC,EAAgBjH,EAAM,KAAK,MAAM,UAAW,KAAK,MAAM,OAAO,GAEvL,OAAQkH,GAA0BC,EAAyB,KAAK,cAAc,QAAQ,YAAc,KAAO,OAASD,EAAuB,KAAKC,EAAwBnH,EAAM,KAAM,KAAK,MAAM,UAAW,KAAK,MAAM,QAAS,IAAI,GAClO,OAAQoH,GAAyBC,EAAiB,KAAK,SAAS,YAAc,KAAO,OAASD,EAAsB,KAAKC,EAAgBrH,EAAM,KAAM,KAAK,MAAM,UAAW,KAAK,MAAM,OAAO,GAC7L,KAAK,SAAS,CACZ,KAAM,UACN,KAAAA,CAAA,CACD,EACMA,QACAyC,EAAO,CACV,GAAA,CACF,IAAIiF,EAAwBC,EAAwBC,EAAuBC,EAAgBC,EAAwBC,EAAyBC,EAAwBC,EAGpK,aAAQP,GAA0BC,EAAyB,KAAK,cAAc,QAAQ,UAAY,KAAO,OAASD,EAAuB,KAAKC,EAAwBlF,EAAO,KAAK,MAAM,UAAW,KAAK,MAAM,QAAS,IAAI,GAM3N,OAAQmF,GAAyBC,EAAiB,KAAK,SAAS,UAAY,KAAO,OAASD,EAAsB,KAAKC,EAAgBpF,EAAO,KAAK,MAAM,UAAW,KAAK,MAAM,OAAO,GAEtL,OAAQqF,GAA0BC,EAA0B,KAAK,cAAc,QAAQ,YAAc,KAAO,OAASD,EAAuB,KAAKC,EAAyB,OAAWtF,EAAO,KAAK,MAAM,UAAW,KAAK,MAAM,QAAS,IAAI,GAC1O,OAAQuF,GAA0BC,EAAiB,KAAK,SAAS,YAAc,KAAO,OAASD,EAAuB,KAAKC,EAAgB,OAAWxF,EAAO,KAAK,MAAM,UAAW,KAAK,MAAM,OAAO,GAC/LA,CAAA,QACN,CACA,KAAK,SAAS,CACZ,KAAM,QACN,MAAAA,CAAA,CACD,CAAA,CACH,CACF,CAGF,SAASqD,EAAQ,CACf,MAAMC,EAAmB5B,GAAA,CACvB,OAAQ2B,EAAO,KAAM,CACnB,IAAK,SACI,MAAA,CAAE,GAAG3B,EACV,aAAc2B,EAAO,aACrB,cAAeA,EAAO,KACxB,EAEF,IAAK,QACI,MAAA,CAAE,GAAG3B,EACV,SAAU,EACZ,EAEF,IAAK,WACI,MAAA,CAAE,GAAGA,EACV,SAAU,EACZ,EAEF,IAAK,UACI,MAAA,CAAE,GAAGA,EACV,QAAS2B,EAAO,QAChB,KAAM,OACN,aAAc,EACd,cAAe,KACf,MAAO,KACP,SAAU,CAAC9E,GAAS,KAAK,QAAQ,WAAW,EAC5C,OAAQ,UACR,UAAW8E,EAAO,SACpB,EAEF,IAAK,UACI,MAAA,CAAE,GAAG3B,EACV,KAAM2B,EAAO,KACb,aAAc,EACd,cAAe,KACf,MAAO,KACP,OAAQ,UACR,SAAU,EACZ,EAEF,IAAK,QACI,MAAA,CAAE,GAAG3B,EACV,KAAM,OACN,MAAO2B,EAAO,MACd,aAAc3B,EAAM,aAAe,EACnC,cAAe2B,EAAO,MACtB,SAAU,GACV,OAAQ,OACV,EAEF,IAAK,WACI,MAAA,CAAE,GAAG3B,EACV,GAAG2B,EAAO,KACZ,CAAA,CAEN,EAEK,KAAA,MAAQC,EAAQ,KAAK,KAAK,EAC/BlC,EAAc,MAAM,IAAM,CACnB,KAAA,UAAU,QAAoBS,GAAA,CACjCA,EAAS,iBAAiBwB,CAAM,CAAA,CACjC,EACD,KAAK,cAAc,OAAO,CACxB,SAAU,KACV,KAAM,UACN,OAAAA,CAAA,CACD,CAAA,CACF,CAAA,CAGL,CACA,SAAS7B,IAAkB,CAClB,MAAA,CACL,QAAS,OACT,KAAM,OACN,MAAO,KACP,aAAc,EACd,cAAe,KACf,SAAU,GACV,OAAQ,OACR,UAAW,MACb,CACF,CC3PA,MAAMiE,WAAsBnM,CAAa,CACvC,YAAYsF,EAAQ,CAClB,MAAO,EACP,KAAK,OAASA,GAAU,CAAE,EAC1B,KAAK,UAAY,CAAE,EACnB,KAAK,WAAa,CACtB,CAEE,MAAMgF,EAAQnI,EAASiG,EAAO,CAC5B,MAAMrG,EAAW,IAAI2I,GAAS,CAC5B,cAAe,KACf,OAAQJ,EAAO,UAAW,EAC1B,WAAY,EAAE,KAAK,WACnB,QAASA,EAAO,uBAAuBnI,CAAO,EAC9C,MAAAiG,EACA,eAAgBjG,EAAQ,YAAcmI,EAAO,oBAAoBnI,EAAQ,WAAW,EAAI,MAC9F,CAAK,EACD,YAAK,IAAIJ,CAAQ,EACVA,CACX,CAEE,IAAIA,EAAU,CACZ,KAAK,UAAU,KAAKA,CAAQ,EAC5B,KAAK,OAAO,CACV,KAAM,QACN,SAAAA,CACN,CAAK,CACL,CAEE,OAAOA,EAAU,CACf,KAAK,UAAY,KAAK,UAAU,OAAO0G,GAAKA,IAAM1G,CAAQ,EAC1D,KAAK,OAAO,CACV,KAAM,UACN,SAAAA,CACN,CAAK,CACL,CAEE,OAAQ,CACN+F,EAAc,MAAM,IAAM,CACxB,KAAK,UAAU,QAAQ/F,GAAY,CACjC,KAAK,OAAOA,CAAQ,CAC5B,CAAO,CACP,CAAK,CACL,CAEE,QAAS,CACP,OAAO,KAAK,SAChB,CAEE,KAAKZ,EAAS,CACZ,OAAI,OAAOA,EAAQ,MAAU,MAC3BA,EAAQ,MAAQ,IAGX,KAAK,UAAU,KAAKY,GAAYD,GAAcX,EAASY,CAAQ,CAAC,CAC3E,CAEE,QAAQZ,EAAS,CACf,OAAO,KAAK,UAAU,OAAOY,GAAYD,GAAcX,EAASY,CAAQ,CAAC,CAC7E,CAEE,OAAO6C,EAAO,CACZkD,EAAc,MAAM,IAAM,CACxB,KAAK,UAAU,QAAQ,CAAC,CACtB,SAAA7H,CACR,IAAY,CACJA,EAAS2E,CAAK,CACtB,CAAO,CACP,CAAK,CACL,CAEE,uBAAwB,CACtB,IAAIwH,EAEJ,YAAK,WAAaA,EAAiB,KAAK,WAAa,KAAOA,EAAiB,QAAQ,QAAS,GAAE,KAAK,IAAM,CACzG,MAAMC,EAAkB,KAAK,UAAU,OAAO5D,GAAKA,EAAE,MAAM,QAAQ,EACnE,OAAOX,EAAc,MAAM,IAAMuE,EAAgB,OAAO,CAACzG,EAAS7D,IAAa6D,EAAQ,KAAK,IAAM7D,EAAS,SAAU,EAAC,MAAM3B,CAAI,CAAC,EAAG,QAAQ,QAAO,CAAE,CAAC,CAC5J,CAAK,EAAE,KAAK,IAAM,CACZ,KAAK,SAAW,MACtB,CAAK,EACM,KAAK,QAChB,CAEA,CCzFA,SAASkM,IAAwB,CAC/B,MAAO,CACL,QAASlD,GAAW,CAClBA,EAAQ,QAAU,IAAM,CACtB,IAAIP,EAAuBQ,EAAwBkD,EAAwBC,EAAwBC,EAAqBC,EAExH,MAAMC,GAAe9D,EAAwBO,EAAQ,eAAiB,OAAiBC,EAAyBR,EAAsB,OAAS,KAAlE,OAAkFQ,EAAuB,YAChLuD,GAAaL,EAAyBnD,EAAQ,eAAiB,OAAiBoD,EAAyBD,EAAuB,OAAS,KAAnE,OAAmFC,EAAuB,UAChLK,EAAyCD,GAAU,UACnDE,EAAmDF,GAAU,YAAe,UAC5EG,EAAuDH,GAAU,YAAe,WAChFI,IAAaP,EAAsBrD,EAAQ,MAAM,OAAS,KAAO,OAASqD,EAAoB,QAAU,CAAE,EAC1GQ,IAAkBP,EAAuBtD,EAAQ,MAAM,OAAS,KAAO,OAASsD,EAAqB,aAAe,CAAE,EAC5H,IAAIQ,EAAgBD,EAChBE,EAAY,GAEhB,MAAMlE,EAAoBC,GAAU,CAClC,OAAO,eAAeA,EAAQ,SAAU,CACtC,WAAY,GACZ,IAAK,IAAM,CACT,IAAIkE,EAEJ,IAAKA,EAAkBhE,EAAQ,SAAW,MAAQgE,EAAgB,QAChED,EAAY,OACP,CACL,IAAIE,GAEHA,EAAmBjE,EAAQ,SAAW,MAAgBiE,EAAiB,iBAAiB,QAAS,IAAM,CACtGF,EAAY,EAC9B,CAAiB,CACjB,CAEc,OAAO/D,EAAQ,MAC7B,CACA,CAAW,CACX,EAGckE,EAAUlE,EAAQ,QAAQ,UAAY,IAAM,QAAQ,OAAO,iCAAmCA,EAAQ,QAAQ,UAAY,GAAG,GAE7HmE,EAAgB,CAACC,EAAOC,EAAOC,EAAMC,KACzCT,EAAgBS,EAAW,CAACF,EAAO,GAAGP,CAAa,EAAI,CAAC,GAAGA,EAAeO,CAAK,EACxEE,EAAW,CAACD,EAAM,GAAGF,CAAK,EAAI,CAAC,GAAGA,EAAOE,CAAI,GAIhDE,EAAY,CAACJ,EAAOK,EAAQJ,EAAOE,IAAa,CACpD,GAAIR,EACF,OAAO,QAAQ,OAAO,WAAW,EAGnC,GAAI,OAAOM,EAAU,KAAe,CAACI,GAAUL,EAAM,OACnD,OAAO,QAAQ,QAAQA,CAAK,EAG9B,MAAMxE,EAAiB,CACrB,SAAUI,EAAQ,SAClB,UAAWqE,EACX,KAAMrE,EAAQ,QAAQ,IACvB,EACDH,EAAkBD,CAAc,EAChC,MAAM8E,EAAgBR,EAAQtE,CAAc,EAE5C,OADgB,QAAQ,QAAQ8E,CAAa,EAAE,KAAKJ,IAAQH,EAAcC,EAAOC,EAAOC,GAAMC,CAAQ,CAAC,CAExG,EAED,IAAI/H,EAEJ,GAAI,CAACoH,EAAS,OACZpH,EAAUgI,EAAU,EAAE,UAEfd,EAAoB,CAC3B,MAAMe,EAAS,OAAOhB,EAAc,IAC9BY,EAAQI,EAAShB,EAAYkB,GAAiB3E,EAAQ,QAAS4D,CAAQ,EAC7EpH,EAAUgI,EAAUZ,EAAUa,EAAQJ,CAAK,CAC5C,SACQV,EAAwB,CAC/B,MAAMc,EAAS,OAAOhB,EAAc,IAC9BY,EAAQI,EAAShB,EAAYmB,GAAqB5E,EAAQ,QAAS4D,CAAQ,EACjFpH,EAAUgI,EAAUZ,EAAUa,EAAQJ,EAAO,EAAI,CAClD,KACI,CACHP,EAAgB,CAAE,EAClB,MAAMW,EAAS,OAAOzE,EAAQ,QAAQ,iBAAqB,IAG3DxD,GAF6B+G,GAAeK,EAAS,CAAC,EAAIL,EAAYK,EAAS,CAAC,EAAG,EAAGA,CAAQ,EAAI,IAEjEY,EAAU,CAAA,EAAIC,EAAQZ,EAAc,CAAC,CAAC,EAAI,QAAQ,QAAQM,EAAc,CAAE,EAAEN,EAAc,CAAC,EAAGD,EAAS,CAAC,CAAC,CAAC,EAE3I,QAAS7J,EAAI,EAAGA,EAAI6J,EAAS,OAAQ7J,IACnCyC,EAAUA,EAAQ,KAAK4H,GAAS,CAG9B,GAF4Bb,GAAeK,EAAS7J,CAAC,EAAIwJ,EAAYK,EAAS7J,CAAC,EAAGA,EAAG6J,CAAQ,EAAI,GAExE,CACvB,MAAMS,EAAQI,EAASZ,EAAc9J,CAAC,EAAI4K,GAAiB3E,EAAQ,QAASoE,CAAK,EACjF,OAAOI,EAAUJ,EAAOK,EAAQJ,CAAK,CACrD,CAEc,OAAO,QAAQ,QAAQF,EAAcC,EAAOP,EAAc9J,CAAC,EAAG6J,EAAS7J,CAAC,CAAC,CAAC,CACxF,CAAa,CAEb,CAMQ,OAJqByC,EAAQ,KAAK4H,IAAU,CAC1C,MAAAA,EACA,WAAYN,CACtB,EAAU,CAEH,CACP,CACG,CACH,CACA,SAASa,GAAiB5L,EAASqL,EAAO,CACxC,OAAOrL,EAAQ,kBAAoB,KAAO,OAASA,EAAQ,iBAAiBqL,EAAMA,EAAM,OAAS,CAAC,EAAGA,CAAK,CAC5G,CACA,SAASQ,GAAqB7L,EAASqL,EAAO,CAC5C,OAAOrL,EAAQ,sBAAwB,KAAO,OAASA,EAAQ,qBAAqBqL,EAAM,CAAC,EAAGA,CAAK,CACrG,CAMA,SAASS,GAAY9L,EAASqL,EAAO,CACnC,GAAIrL,EAAQ,kBAAoB,MAAM,QAAQqL,CAAK,EAAG,CACpD,MAAMU,EAAgBH,GAAiB5L,EAASqL,CAAK,EACrD,OAAO,OAAOU,EAAkB,KAAeA,IAAkB,MAAQA,IAAkB,EAC/F,CAGA,CAMA,SAASC,GAAgBhM,EAASqL,EAAO,CACvC,GAAIrL,EAAQ,sBAAwB,MAAM,QAAQqL,CAAK,EAAG,CACxD,MAAMY,EAAoBJ,GAAqB7L,EAASqL,CAAK,EAC7D,OAAO,OAAOY,EAAsB,KAAeA,IAAsB,MAAQA,IAAsB,EAC3G,CAGA,CCpIA,MAAMC,EAAY,CAChB,YAAY/I,EAAS,GAAI,CACvB,KAAK,WAAaA,EAAO,YAAc,IAAI+E,GAC3C,KAAK,cAAgB/E,EAAO,eAAiB,IAAI6G,GAC5C,KAAA,OAAS7G,EAAO,QAAU2B,GAC1B,KAAA,eAAiB3B,EAAO,gBAAkB,CAAC,EAChD,KAAK,cAAgB,CAAC,EACtB,KAAK,iBAAmB,CAAC,EACzB,KAAK,WAAa,CAIlB,CAGF,OAAQ,CACD,KAAA,aACD,KAAK,aAAe,IACnB,KAAA,iBAAmBd,GAAa,UAAU,IAAM,CAC/CA,GAAa,cACf,KAAK,sBAAsB,EAC3B,KAAK,WAAW,QAAQ,EAC1B,CACD,EACI,KAAA,kBAAoBM,GAAc,UAAU,IAAM,CACjDA,GAAc,aAChB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,SAAS,EAC3B,CACD,EAAA,CAGH,SAAU,CACR,IAAIwJ,EAAuBC,EAEtB,KAAA,aACD,KAAK,aAAe,KACvBD,EAAwB,KAAK,mBAAqB,MAAgBA,EAAsB,KAAK,IAAI,EAClG,KAAK,iBAAmB,QACvBC,EAAwB,KAAK,oBAAsB,MAAgBA,EAAsB,KAAK,IAAI,EACnG,KAAK,kBAAoB,OAAA,CAG3B,WAAW1N,EAAMC,EAAM,CACrB,KAAM,CAACK,CAAO,EAAIF,EAAgBJ,EAAMC,CAAI,EAC5C,OAAAK,EAAQ,YAAc,WACf,KAAK,WAAW,QAAQA,CAAO,EAAE,MAAA,CAG1C,WAAWA,EAAS,CACX,OAAA,KAAK,cAAc,QAAQ,CAAE,GAAGA,EACrC,SAAU,EACX,CAAA,EAAE,MAAA,CAGL,aAAaM,EAAUN,EAAS,CAC1B,IAAAqN,EAEI,OAAAA,EAAwB,KAAK,WAAW,KAAK/M,EAAUN,CAAO,IAAM,KAAO,OAASqN,EAAsB,MAAM,IAAA,CAG1H,gBAAgB3N,EAAMC,EAAMC,EAAM,CAChC,MAAM0N,EAAgB7N,EAAeC,EAAMC,EAAMC,CAAI,EAC/C2N,EAAa,KAAK,aAAaD,EAAc,QAAQ,EAC3D,OAAOC,EAAa,QAAQ,QAAQA,CAAU,EAAI,KAAK,WAAWD,CAAa,CAAA,CAGjF,eAAeE,EAAmB,CAChC,OAAO,KAAK,cAAc,EAAE,QAAQA,CAAiB,EAAE,IAAI,CAAC,CAC1D,SAAAlN,EACA,MAAA2G,CAAA,IACI,CACJ,MAAMnE,EAAOmE,EAAM,KACZ,MAAA,CAAC3G,EAAUwC,CAAI,CAAA,CACvB,CAAA,CAGH,aAAaxC,EAAUnB,EAAS6B,EAAS,CACvC,MAAMf,EAAQ,KAAK,WAAW,KAAKK,CAAQ,EACrCuC,EAAoC5C,GAAM,MAAM,KAChD6C,EAAO5D,GAAiBC,EAAS0D,CAAQ,EAE3C,GAAA,OAAOC,EAAS,IACX,OAGH,MAAAwK,EAAgB7N,EAAea,CAAQ,EACvCmN,EAAmB,KAAK,oBAAoBH,CAAa,EAC/D,OAAO,KAAK,WAAW,MAAM,KAAMG,CAAgB,EAAE,QAAQ3K,EAAM,CAAE,GAAG9B,EACtE,OAAQ,EAAA,CACT,CAAA,CAGH,eAAewM,EAAmBrO,EAAS6B,EAAS,CAC3C,OAAA2F,EAAc,MAAM,IAAM,KAAK,gBAAgB,QAAQ6G,CAAiB,EAAE,IAAI,CAAC,CACpF,SAAAlN,CAAA,IACI,CAACA,EAAU,KAAK,aAAaA,EAAUnB,EAAS6B,CAAO,CAAC,CAAC,CAAC,CAAA,CAGlE,cAAcV,EAAUN,EAAS,CAC3B,IAAA0N,EAEI,OAAAA,EAAyB,KAAK,WAAW,KAAKpN,EAAUN,CAAO,IAAM,KAAO,OAAS0N,EAAuB,KAAA,CAGtH,cAAchO,EAAMC,EAAM,CACxB,KAAM,CAACK,CAAO,EAAIF,EAAgBJ,EAAMC,CAAI,EACtCgO,EAAa,KAAK,WACxBhH,EAAc,MAAM,IAAM,CACxBgH,EAAW,QAAQ3N,CAAO,EAAE,QAAiBC,GAAA,CAC3C0N,EAAW,OAAO1N,CAAK,CAAA,CACxB,CAAA,CACF,CAAA,CAGH,aAAaP,EAAMC,EAAMC,EAAM,CAC7B,KAAM,CAACI,EAASgB,CAAO,EAAIlB,EAAgBJ,EAAMC,EAAMC,CAAI,EACrD+N,EAAa,KAAK,WAClBC,EAAiB,CACrB,KAAM,SACN,GAAG5N,CACL,EACO,OAAA2G,EAAc,MAAM,KACzBgH,EAAW,QAAQ3N,CAAO,EAAE,QAAiBC,GAAA,CAC3CA,EAAM,MAAM,CAAA,CACb,EACM,KAAK,eAAe2N,EAAgB5M,CAAO,EACnD,CAAA,CAGH,cAActB,EAAMC,EAAMC,EAAM,CACxB,KAAA,CAACI,EAAS6E,EAAgB,CAAE,CAAA,EAAI/E,EAAgBJ,EAAMC,EAAMC,CAAI,EAElE,OAAOiF,EAAc,OAAW,MAClCA,EAAc,OAAS,IAGzB,MAAMgJ,EAAWlH,EAAc,MAAM,IAAM,KAAK,WAAW,QAAQ3G,CAAO,EAAE,IAAaC,GAAAA,EAAM,OAAO4E,CAAa,CAAC,CAAC,EAC9G,OAAA,QAAQ,IAAIgJ,CAAQ,EAAE,KAAK5O,CAAI,EAAE,MAAMA,CAAI,CAAA,CAGpD,kBAAkBS,EAAMC,EAAMC,EAAM,CAClC,KAAM,CAACI,EAASgB,CAAO,EAAIlB,EAAgBJ,EAAMC,EAAMC,CAAI,EACpD,OAAA+G,EAAc,MAAM,IAAM,CAC/B,IAAImH,EAAMC,EAMN,GAJJ,KAAK,WAAW,QAAQ/N,CAAO,EAAE,QAAiBC,GAAA,CAChDA,EAAM,WAAW,CAAA,CAClB,EAEGD,EAAQ,cAAgB,OAC1B,OAAO,QAAQ,QAAQ,EAGzB,MAAM4N,EAAiB,CAAE,GAAG5N,EAC1B,MAAO8N,GAAQC,EAAuB/N,EAAQ,cAAgB,KAAO+N,EAAuB/N,EAAQ,OAAS,KAAO8N,EAAO,QAC7H,EACO,OAAA,KAAK,eAAeF,EAAgB5M,CAAO,CAAA,CACnD,CAAA,CAGH,eAAetB,EAAMC,EAAMC,EAAM,CAC/B,KAAM,CAACI,EAASgB,CAAO,EAAIlB,EAAgBJ,EAAMC,EAAMC,CAAI,EACrDiO,EAAWlH,EAAc,MAAM,IAAM,KAAK,WAAW,QAAQ3G,CAAO,EAAE,UAAgB,CAACC,EAAM,YAAY,EAAE,IAAaA,GAAA,CACxH,IAAA+N,EAEG,OAAA/N,EAAM,MAAM,OAAW,CAAE,GAAGe,EACjC,eAAgBgN,EAAmDhN,GAAQ,gBAAkB,KAAOgN,EAAwB,GAC5H,KAAM,CACJ,YAAahO,EAAQ,WAAA,CACvB,CACD,CAAA,CACF,CAAC,EACF,IAAIyE,EAAU,QAAQ,IAAIoJ,CAAQ,EAAE,KAAK5O,CAAI,EAE7C,OAAM+B,GAAW,MAAQA,EAAQ,eACrByD,EAAAA,EAAQ,MAAMxF,CAAI,GAGvBwF,CAAA,CAGT,WAAW/E,EAAMC,EAAMC,EAAM,CAC3B,MAAM0N,EAAgB7N,EAAeC,EAAMC,EAAMC,CAAI,EAC/C6N,EAAmB,KAAK,oBAAoBH,CAAa,EAE3D,OAAOG,EAAiB,MAAU,MACpCA,EAAiB,MAAQ,IAG3B,MAAMxN,EAAQ,KAAK,WAAW,MAAM,KAAMwN,CAAgB,EAC1D,OAAOxN,EAAM,cAAcwN,EAAiB,SAAS,EAAIxN,EAAM,MAAMwN,CAAgB,EAAI,QAAQ,QAAQxN,EAAM,MAAM,IAAI,CAAA,CAG3H,cAAcP,EAAMC,EAAMC,EAAM,CACvB,OAAA,KAAK,WAAWF,EAAMC,EAAMC,CAAI,EAAE,KAAKX,CAAI,EAAE,MAAMA,CAAI,CAAA,CAGhE,mBAAmBS,EAAMC,EAAMC,EAAM,CACnC,MAAM0N,EAAgB7N,EAAeC,EAAMC,EAAMC,CAAI,EACrD,OAAA0N,EAAc,SAAWnC,GAAsB,EACxC,KAAK,WAAWmC,CAAa,CAAA,CAGtC,sBAAsB5N,EAAMC,EAAMC,EAAM,CAC/B,OAAA,KAAK,mBAAmBF,EAAMC,EAAMC,CAAI,EAAE,KAAKX,CAAI,EAAE,MAAMA,CAAI,CAAA,CAGxE,uBAAwB,CACf,OAAA,KAAK,cAAc,sBAAsB,CAAA,CAGlD,eAAgB,CACd,OAAO,KAAK,UAAA,CAGd,kBAAmB,CACjB,OAAO,KAAK,aAAA,CAGd,WAAY,CACV,OAAO,KAAK,MAAA,CAGd,mBAAoB,CAClB,OAAO,KAAK,cAAA,CAGd,kBAAkB+B,EAAS,CACzB,KAAK,eAAiBA,CAAA,CAGxB,iBAAiBV,EAAUU,EAAS,CAC5B,MAAAI,EAAS,KAAK,cAAc,KAAKkG,GAAKvG,EAAaT,CAAQ,IAAMS,EAAauG,EAAE,QAAQ,CAAC,EAE3FlG,EACFA,EAAO,eAAiBJ,EAExB,KAAK,cAAc,KAAK,CACtB,SAAAV,EACA,eAAgBU,CAAA,CACjB,CACH,CAGF,iBAAiBV,EAAU,CACzB,GAAI,CAACA,EACI,OAIH,MAAA2N,EAAwB,KAAK,cAAc,QAAUxN,GAAgBH,EAAUgH,EAAE,QAAQ,CAAC,EAWzF,OAAyC2G,GAAsB,cAAA,CAGxE,oBAAoBnN,EAAaE,EAAS,CAClC,MAAAI,EAAS,KAAK,iBAAiB,KAAKkG,GAAKvG,EAAaD,CAAW,IAAMC,EAAauG,EAAE,WAAW,CAAC,EAEpGlG,EACFA,EAAO,eAAiBJ,EAExB,KAAK,iBAAiB,KAAK,CACzB,YAAAF,EACA,eAAgBE,CAAA,CACjB,CACH,CAGF,oBAAoBF,EAAa,CAC/B,GAAI,CAACA,EACI,OAIH,MAAAmN,EAAwB,KAAK,iBAAiB,QAAUxN,GAAgBK,EAAawG,EAAE,WAAW,CAAC,EAWlG,OAAyC2G,GAAsB,cAAA,CAGxE,oBAAoBjN,EAAS,CACvB,GAAAA,GAAW,MAAQA,EAAQ,WACtB,OAAAA,EAGT,MAAMyM,EAAmB,CAAE,GAAG,KAAK,eAAe,QAChD,GAAG,KAAK,iBAA4CzM,GAAQ,QAAQ,EACpE,GAAGA,EACH,WAAY,EACd,EAEA,MAAI,CAACyM,EAAiB,WAAaA,EAAiB,WAClDA,EAAiB,UAAYjN,GAAsBiN,EAAiB,SAAUA,CAAgB,GAI5F,OAAOA,EAAiB,mBAAuB,MAChCA,EAAA,mBAAqBA,EAAiB,cAAgB,UAGrE,OAAOA,EAAiB,iBAAqB,MAC9BA,EAAA,iBAAmB,CAAC,CAACA,EAAiB,UAGlDA,CAAA,CAGT,uBAAuBzM,EAAS,CAC1B,OAAAA,GAAW,MAAQA,EAAQ,WACtBA,EAGF,CAAE,GAAG,KAAK,eAAe,UAC9B,GAAG,KAAK,oBAA+CA,GAAQ,WAAW,EAC1E,GAAGA,EACH,WAAY,EACd,CAAA,CAGF,OAAQ,CACN,KAAK,WAAW,MAAM,EACtB,KAAK,cAAc,MAAM,CAAA,CAG7B,CC1VA,MAAMkN,WAAsBrP,CAAa,CACvC,YAAYsK,EAAQnI,EAAS,CACrB,MAAA,EACN,KAAK,OAASmI,EACd,KAAK,QAAUnI,EACV,KAAA,iBAAmB,IACxB,KAAK,YAAc,KACnB,KAAK,YAAY,EACjB,KAAK,WAAWA,CAAO,CAAA,CAGzB,aAAc,CACZ,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,CAAA,CAGvC,aAAc,CACR,KAAK,UAAU,OAAS,IACrB,KAAA,aAAa,YAAY,IAAI,EAE9BmN,GAAmB,KAAK,aAAc,KAAK,OAAO,GACpD,KAAK,aAAa,EAGpB,KAAK,aAAa,EACpB,CAGF,eAAgB,CACT,KAAK,gBACR,KAAK,QAAQ,CACf,CAGF,wBAAyB,CACvB,OAAOC,GAAc,KAAK,aAAc,KAAK,QAAS,KAAK,QAAQ,kBAAkB,CAAA,CAGvF,0BAA2B,CACzB,OAAOA,GAAc,KAAK,aAAc,KAAK,QAAS,KAAK,QAAQ,oBAAoB,CAAA,CAGzF,SAAU,CACH,KAAA,cAAgB,IACrB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EACrB,KAAA,aAAa,eAAe,IAAI,CAAA,CAGvC,WAAWpN,EAASqN,EAAe,CACjC,MAAMC,EAAc,KAAK,QACnBC,EAAY,KAAK,aAenB,GAdJ,KAAK,QAAU,KAAK,OAAO,oBAAoBvN,CAAO,EAMjDiB,GAAoBqM,EAAa,KAAK,OAAO,GAC3C,KAAA,OAAO,cAAc,EAAE,OAAO,CACjC,KAAM,yBACN,MAAO,KAAK,aACZ,SAAU,IAAA,CACX,EAGC,OAAO,KAAK,QAAQ,QAAY,KAAe,OAAO,KAAK,QAAQ,SAAY,UAC3E,MAAA,IAAI,MAAM,kCAAkC,EAI/C,KAAK,QAAQ,WACX,KAAA,QAAQ,SAAWA,EAAY,UAGtC,KAAK,YAAY,EACX,MAAAE,EAAU,KAAK,aAAa,EAE9BA,GAAWC,GAAsB,KAAK,aAAcF,EAAW,KAAK,QAASD,CAAW,GAC1F,KAAK,aAAa,EAIpB,KAAK,aAAaD,CAAa,EAE3BG,IAAY,KAAK,eAAiBD,GAAa,KAAK,QAAQ,UAAYD,EAAY,SAAW,KAAK,QAAQ,YAAcA,EAAY,YACxI,KAAK,mBAAmB,EAGpB,MAAAI,EAAsB,KAAK,uBAAuB,EAEpDF,IAAY,KAAK,eAAiBD,GAAa,KAAK,QAAQ,UAAYD,EAAY,SAAWI,IAAwB,KAAK,yBAC9H,KAAK,sBAAsBA,CAAmB,CAChD,CAGF,oBAAoB1N,EAAS,CACrB,MAAAf,EAAQ,KAAK,OAAO,gBAAgB,MAAM,KAAK,OAAQe,CAAO,EAC9DI,EAAS,KAAK,aAAanB,EAAOe,CAAO,EAE/C,OAAI2N,GAAsC,KAAMvN,EAAQJ,CAAO,IAgB7D,KAAK,cAAgBI,EACrB,KAAK,qBAAuB,KAAK,QAC5B,KAAA,mBAAqB,KAAK,aAAa,OAGvCA,CAAA,CAGT,kBAAmB,CACjB,OAAO,KAAK,aAAA,CAGd,YAAYA,EAAQ,CAClB,MAAMwN,EAAgB,CAAC,EACvB,cAAO,KAAKxN,CAAM,EAAE,QAAexC,GAAA,CAC1B,OAAA,eAAegQ,EAAehQ,EAAK,CACxC,aAAc,GACd,WAAY,GACZ,IAAK,KACE,KAAA,aAAa,IAAIA,CAAG,EAClBwC,EAAOxC,CAAG,EACnB,CACD,CAAA,CACF,EACMgQ,CAAA,CAGT,iBAAkB,CAChB,OAAO,KAAK,YAAA,CAGd,QAAS,CACP,KAAK,OAAO,cAAA,EAAgB,OAAO,KAAK,YAAY,CAAA,CAGtD,QAAQ,CACN,YAAApD,EACA,GAAGxK,CACL,EAAI,GAAI,CACN,OAAO,KAAK,MAAM,CAAE,GAAGA,EACrB,KAAM,CACJ,YAAAwK,CAAA,CACF,CACD,CAAA,CAGH,gBAAgBxK,EAAS,CACvB,MAAMyM,EAAmB,KAAK,OAAO,oBAAoBzM,CAAO,EAC1Df,EAAQ,KAAK,OAAO,gBAAgB,MAAM,KAAK,OAAQwN,CAAgB,EAC7E,OAAAxN,EAAM,qBAAuB,GACtBA,EAAM,QAAQ,KAAK,IAAM,KAAK,aAAaA,EAAOwN,CAAgB,CAAC,CAAA,CAG5E,MAAMjG,EAAc,CACd,IAAAqH,EAEJ,OAAO,KAAK,aAAa,CAAE,GAAGrH,EAC5B,eAAgBqH,EAAwBrH,EAAa,gBAAkB,KAAOqH,EAAwB,EAAA,CACvG,EAAE,KAAK,KACN,KAAK,aAAa,EACX,KAAK,cACb,CAAA,CAGH,aAAarH,EAAc,CAEzB,KAAK,YAAY,EAEjB,IAAI/C,EAAU,KAAK,aAAa,MAAM,KAAK,QAAS+C,CAAY,EAEhE,OAAMA,GAAgB,MAAQA,EAAa,eAC/B/C,EAAAA,EAAQ,MAAMxF,CAAI,GAGvBwF,CAAA,CAGT,oBAAqB,CAGf,GAFJ,KAAK,kBAAkB,EAEnBzF,GAAY,KAAK,cAAc,SAAW,CAACK,GAAe,KAAK,QAAQ,SAAS,EAClF,OAMF,MAAMkD,EAHOjD,GAAe,KAAK,cAAc,cAAe,KAAK,QAAQ,SAAS,EAG7D,EAClB,KAAA,eAAiB,WAAW,IAAM,CAChC,KAAK,cAAc,SACtB,KAAK,aAAa,GAEnBiD,CAAO,CAAA,CAGZ,wBAAyB,CACnB,IAAAuM,EAEJ,OAAO,OAAO,KAAK,QAAQ,iBAAoB,WAAa,KAAK,QAAQ,gBAAgB,KAAK,cAAc,KAAM,KAAK,YAAY,GAAKA,EAAwB,KAAK,QAAQ,kBAAoB,KAAOA,EAAwB,EAAA,CAGlO,sBAAsBC,EAAc,CAClC,KAAK,qBAAqB,EAC1B,KAAK,uBAAyBA,EAE1B,EAAA/P,GAAY,KAAK,QAAQ,UAAY,IAAS,CAACK,GAAe,KAAK,sBAAsB,GAAK,KAAK,yBAA2B,KAI7H,KAAA,kBAAoB,YAAY,IAAM,EACrC,KAAK,QAAQ,6BAA+BgE,GAAa,cAC3D,KAAK,aAAa,CACpB,EACC,KAAK,sBAAsB,EAAA,CAGhC,cAAe,CACb,KAAK,mBAAmB,EACnB,KAAA,sBAAsB,KAAK,wBAAwB,CAAA,CAG1D,mBAAoB,CACd,KAAK,iBACP,aAAa,KAAK,cAAc,EAChC,KAAK,eAAiB,OACxB,CAGF,sBAAuB,CACjB,KAAK,oBACP,cAAc,KAAK,iBAAiB,EACpC,KAAK,kBAAoB,OAC3B,CAGF,aAAapD,EAAOe,EAAS,CAC3B,MAAMuN,EAAY,KAAK,aACjBD,EAAc,KAAK,QACnBU,EAAa,KAAK,cAClBC,EAAkB,KAAK,mBACvBC,EAAoB,KAAK,qBACzBC,EAAclP,IAAUsO,EACxBa,EAAoBD,EAAclP,EAAM,MAAQ,KAAK,yBACrDoP,EAAkBF,EAAc,KAAK,cAAgB,KAAK,oBAC1D,CACJ,MAAAlI,CAAA,EACEhH,EACA,GAAA,CACF,cAAAqP,EACA,MAAA/J,EACA,eAAAgK,EACA,YAAAnP,EACA,OAAAoP,CAAA,EACEvI,EACAwI,EAAiB,GACjBC,EAAoB,GACpB5M,EAEJ,GAAI9B,EAAQ,mBAAoB,CACxB,MAAAwN,EAAU,KAAK,aAAa,EAC5BmB,EAAe,CAACnB,GAAWL,GAAmBlO,EAAOe,CAAO,EAC5D4O,EAAkBpB,GAAWC,GAAsBxO,EAAOsO,EAAWvN,EAASsN,CAAW,GAE3FqB,GAAgBC,KAClBxP,EAAc0D,GAAS7D,EAAM,QAAQ,WAAW,EAAI,WAAa,SAE5DqP,IACME,EAAA,YAITxO,EAAQ,qBAAuB,gBACnBZ,EAAA,OAChB,CAIE,GAAAY,EAAQ,kBAAoB,CAACiG,EAAM,eAAiBoI,GAAmB,MAAQA,EAAgB,WAAaG,IAAW,QACzH1M,EAAOuM,EAAgB,KACvBC,EAAgBD,EAAgB,cAChCG,EAASH,EAAgB,OACRI,EAAA,WAEVzO,EAAQ,QAAU,OAAOiG,EAAM,KAAS,IAE3C,GAAA+H,GAAc/H,EAAM,OAA6CgI,GAAgB,MAASjO,EAAQ,SAAW,KAAK,SACpH8B,EAAO,KAAK,iBAER,IAAA,CACF,KAAK,SAAW9B,EAAQ,OACjB8B,EAAA9B,EAAQ,OAAOiG,EAAM,IAAI,EAChCnE,EAAOF,GAA0CoM,GAAW,KAAMlM,EAAM9B,CAAO,EAC/E,KAAK,aAAe8B,EACpB,KAAK,YAAc,WACZ+M,EAAa,CAKpB,KAAK,YAAcA,CAAA,MAKvB/M,EAAOmE,EAAM,KAIX,GAAA,OAAOjG,EAAQ,gBAAoB,KAAe,OAAO8B,EAAS,KAAe0M,IAAW,UAAW,CACrG,IAAAM,EAEA,GAAAd,GAAc,MAAQA,EAAW,mBAAqBhO,EAAQ,kBAA0DkO,GAAkB,gBAC5IY,EAAkBd,EAAW,aAE7Bc,EAAkB,OAAO9O,EAAQ,iBAAoB,WAAaA,EAAQ,gBAAA,EAAoBA,EAAQ,gBAElGA,EAAQ,QAAU,OAAO8O,EAAoB,IAC3C,GAAA,CACgBA,EAAA9O,EAAQ,OAAO8O,CAAe,EAChD,KAAK,YAAc,WACZD,EAAa,CAKpB,KAAK,YAAcA,CAAA,CAKrB,OAAOC,EAAoB,MACpBN,EAAA,UACT1M,EAAOF,GAA0CoM,GAAW,KAAMc,EAAiB9O,CAAO,EACtE0O,EAAA,GACtB,CAGE,KAAK,cACPnK,EAAQ,KAAK,YACbzC,EAAO,KAAK,aACZyM,EAAiB,KAAK,IAAI,EACjBC,EAAA,SAGX,MAAMO,EAAa3P,IAAgB,WAC7B4P,EAAYR,IAAW,UACvBS,EAAUT,IAAW,QA4BpB,MA3BQ,CACb,OAAAA,EACA,YAAApP,EACA,UAAA4P,EACA,UAAWR,IAAW,UACtB,QAAAS,EACA,iBAAkBD,GAAaD,EAC/B,KAAAjN,EACA,cAAAwM,EACA,MAAA/J,EACA,eAAAgK,EACA,aAActI,EAAM,kBACpB,cAAeA,EAAM,mBACrB,iBAAkBA,EAAM,iBACxB,UAAWA,EAAM,gBAAkB,GAAKA,EAAM,iBAAmB,EACjE,oBAAqBA,EAAM,gBAAkBmI,EAAkB,iBAAmBnI,EAAM,iBAAmBmI,EAAkB,iBAC7H,WAAAW,EACA,aAAcA,GAAc,CAACC,EAC7B,eAAgBC,GAAWhJ,EAAM,gBAAkB,EACnD,SAAU7G,IAAgB,SAC1B,kBAAAsP,EACA,eAAAD,EACA,eAAgBQ,GAAWhJ,EAAM,gBAAkB,EACnD,QAASiJ,GAAQjQ,EAAOe,CAAO,EAC/B,QAAS,KAAK,QACd,OAAQ,KAAK,MACf,CACO,CAGT,aAAaqN,EAAe,CAC1B,MAAMW,EAAa,KAAK,cAClBmB,EAAa,KAAK,aAAa,KAAK,aAAc,KAAK,OAAO,EAIhE,GAHC,KAAA,mBAAqB,KAAK,aAAa,MAC5C,KAAK,qBAAuB,KAAK,QAE7BlO,GAAoBkO,EAAYnB,CAAU,EAC5C,OAGF,KAAK,cAAgBmB,EAErB,MAAMC,EAAuB,CAC3B,MAAO,EACT,EAEMC,EAAwB,IAAM,CAClC,GAAI,CAACrB,EACI,MAAA,GAGH,KAAA,CACJ,oBAAAsB,GACE,KAAK,QACHC,EAA2B,OAAOD,GAAwB,WAAaA,EAAwB,EAAAA,EAErG,GAAIC,IAA6B,OAAS,CAACA,GAA4B,CAAC,KAAK,aAAa,KACjF,MAAA,GAGT,MAAMC,EAAgB,IAAI,IAAID,GAA8D,KAAK,YAAY,EAEzG,OAAA,KAAK,QAAQ,kBACfC,EAAc,IAAI,OAAO,EAGpB,OAAO,KAAK,KAAK,aAAa,EAAE,KAAY5R,GAAA,CACjD,MAAM6R,EAAW7R,EAEV,OADS,KAAK,cAAc6R,CAAQ,IAAMzB,EAAWyB,CAAQ,GAClDD,EAAc,IAAIC,CAAQ,CAAA,CAC7C,CACH,EAEsCpC,GAAc,YAAe,IAASgC,MAC1ED,EAAqB,UAAY,IAGnC,KAAK,OAAO,CAAE,GAAGA,EACf,GAAG/B,CAAA,CACJ,CAAA,CAGH,aAAc,CACN,MAAApO,EAAQ,KAAK,OAAO,cAAA,EAAgB,MAAM,KAAK,OAAQ,KAAK,OAAO,EAErE,GAAAA,IAAU,KAAK,aACjB,OAGF,MAAMsO,EAAY,KAAK,aACvB,KAAK,aAAetO,EACpB,KAAK,yBAA2BA,EAAM,MACtC,KAAK,oBAAsB,KAAK,cAE5B,KAAK,iBACsBsO,GAAU,eAAe,IAAI,EAC1DtO,EAAM,YAAY,IAAI,EACxB,CAGF,cAAc2I,EAAQ,CACpB,MAAMyF,EAAgB,CAAC,EAEnBzF,EAAO,OAAS,UACJyF,EAAA,UAAY,CAACzF,EAAO,OACzBA,EAAO,OAAS,SAAW,CAAC3E,GAAiB2E,EAAO,KAAK,IAClEyF,EAAc,QAAU,IAG1B,KAAK,aAAaA,CAAa,EAE3B,KAAK,gBACP,KAAK,aAAa,CACpB,CAGF,OAAOA,EAAe,CACpB1H,EAAc,MAAM,IAAM,CAExB,GAAI0H,EAAc,UAAW,CACvB,IAAAvE,EAAuBS,EAAeL,EAAuBH,GAEhED,GAAyBS,EAAgB,KAAK,SAAS,YAAc,MAAgBT,EAAsB,KAAKS,EAAe,KAAK,cAAc,IAAI,GACtJL,GAAyBH,EAAiB,KAAK,SAAS,YAAc,MAAgBG,EAAsB,KAAKH,EAAgB,KAAK,cAAc,KAAM,IAAI,CAAA,SACtJsE,EAAc,QAAS,CAC5B,IAAA3D,EAAuBP,EAAgBW,EAAwBH,GAElED,GAAyBP,EAAiB,KAAK,SAAS,UAAY,MAAgBO,EAAsB,KAAKP,EAAgB,KAAK,cAAc,KAAK,GACvJW,GAA0BH,EAAiB,KAAK,SAAS,YAAc,MAAgBG,EAAuB,KAAKH,EAAgB,OAAW,KAAK,cAAc,KAAK,CAAA,CAIrK0D,EAAc,WACX,KAAA,UAAU,QAAQ,CAAC,CACtB,SAAAvP,CAAA,IACI,CACJA,EAAS,KAAK,aAAa,CAAA,CAC5B,EAICuP,EAAc,OACX,KAAA,OAAO,cAAc,EAAE,OAAO,CACjC,MAAO,KAAK,aACZ,KAAM,wBAAA,CACP,CACH,CACD,CAAA,CAGL,CAEA,SAASqC,GAAkBzQ,EAAOe,EAAS,CACzC,OAAOA,EAAQ,UAAY,IAAS,CAACf,EAAM,MAAM,eAAiB,EAAEA,EAAM,MAAM,SAAW,SAAWe,EAAQ,eAAiB,GACjI,CAEA,SAASmN,GAAmBlO,EAAOe,EAAS,CAC1C,OAAO0P,GAAkBzQ,EAAOe,CAAO,GAAKf,EAAM,MAAM,cAAgB,GAAKmO,GAAcnO,EAAOe,EAASA,EAAQ,cAAc,CACnI,CAEA,SAASoN,GAAcnO,EAAOe,EAAS2P,EAAO,CACxC,GAAA3P,EAAQ,UAAY,GAAO,CAC7B,MAAM9C,EAAQ,OAAOyS,GAAU,WAAaA,EAAM1Q,CAAK,EAAI0Q,EAC3D,OAAOzS,IAAU,UAAYA,IAAU,IAASgS,GAAQjQ,EAAOe,CAAO,CAAA,CAGjE,MAAA,EACT,CAEA,SAASyN,GAAsBxO,EAAOsO,EAAWvN,EAASsN,EAAa,CACrE,OAAOtN,EAAQ,UAAY,KAAUf,IAAUsO,GAAaD,EAAY,UAAY,MAAW,CAACtN,EAAQ,UAAYf,EAAM,MAAM,SAAW,UAAYiQ,GAAQjQ,EAAOe,CAAO,CAC/K,CAEA,SAASkP,GAAQjQ,EAAOe,EAAS,CACxB,OAAAf,EAAM,cAAce,EAAQ,SAAS,CAC9C,CAIA,SAAS2N,GAAsCvH,EAAUwJ,EAAkB5P,EAAS,CAOlF,OAAIA,EAAQ,iBACH,GAKLA,EAAQ,kBAAoB,OAIvB4P,EAAiB,kBAKrB,CAAA3O,GAAoBmF,EAAS,iBAAiB,EAAGwJ,CAAgB,CAMxE,CC7jBA,MAAMC,WAA8B3C,EAAc,CAKhD,YAAY/E,EAAQnI,EAAS,CAC3B,MAAMmI,EAAQnI,CAAO,CACzB,CAEE,aAAc,CACZ,MAAM,YAAa,EACnB,KAAK,cAAgB,KAAK,cAAc,KAAK,IAAI,EACjD,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,CAC7D,CAEE,WAAWA,EAASqN,EAAe,CACjC,MAAM,WAAW,CAAE,GAAGrN,EACpB,SAAUmK,GAAqB,CAChC,EAAEkD,CAAa,CACpB,CAEE,oBAAoBrN,EAAS,CAC3B,OAAAA,EAAQ,SAAWmK,GAAuB,EACnC,MAAM,oBAAoBnK,CAAO,CAC5C,CAEE,cAAc,CACZ,UAAA0K,EACA,GAAG1K,CACJ,EAAG,GAAI,CACN,OAAO,KAAK,MAAM,CAAE,GAAGA,EACrB,KAAM,CACJ,UAAW,CACT,UAAW,UACX,UAAA0K,CACV,CACA,CACA,CAAK,CACL,CAEE,kBAAkB,CAChB,UAAAA,EACA,GAAG1K,CACJ,EAAG,GAAI,CACN,OAAO,KAAK,MAAM,CAAE,GAAGA,EACrB,KAAM,CACJ,UAAW,CACT,UAAW,WACX,UAAA0K,CACV,CACA,CACA,CAAK,CACL,CAEE,aAAazL,EAAOe,EAAS,CAC3B,IAAI8P,EAAkBC,EAAuBC,EAAmBC,EAAuBC,EAAaC,EAEpG,KAAM,CACJ,MAAAlK,CACN,EAAQhH,EACEmB,EAAS,MAAM,aAAanB,EAAOe,CAAO,EAC1C,CACJ,WAAA+O,EACA,aAAAqB,CACN,EAAQhQ,EACEuK,EAAqBoE,KAAgBe,EAAmB7J,EAAM,YAAc,OAAiB8J,EAAwBD,EAAiB,YAAc,KAAjE,OAAiFC,EAAsB,aAAe,UACzMnF,EAAyBmE,KAAgBiB,EAAoB/J,EAAM,YAAc,OAAiBgK,EAAwBD,EAAkB,YAAc,KAAlE,OAAkFC,EAAsB,aAAe,WACrN,MAAO,CAAE,GAAG7P,EACV,cAAe,KAAK,cACpB,kBAAmB,KAAK,kBACxB,YAAa0L,GAAY9L,GAAUkQ,EAAcjK,EAAM,OAAS,KAAO,OAASiK,EAAY,KAAK,EACjG,gBAAiBlE,GAAgBhM,GAAUmQ,EAAelK,EAAM,OAAS,KAAO,OAASkK,EAAa,KAAK,EAC3G,mBAAAxF,EACA,uBAAAC,EACA,aAAcwF,GAAgB,CAACzF,GAAsB,CAACC,CACvD,CACL,CAEA;;;;;;;;GCtEA,IAAIyF,EAAQC,EACZ,SAASC,GAAGjK,EAAGkK,EAAG,CAChB,OAAQlK,IAAMkK,IAAYlK,IAAN,GAAW,EAAIA,IAAM,EAAIkK,IAAQlK,IAAMA,GAAKkK,IAAMA,CACxE,CACA,IAAIC,GAA0B,OAAO,OAAO,IAA7B,WAAkC,OAAO,GAAKF,GAC3DG,GAAWL,EAAM,SACjBM,GAAYN,EAAM,UAClBO,GAAkBP,EAAM,gBACxBQ,GAAgBR,EAAM,cACxB,SAASS,GAAuBC,EAAWC,EAAa,CACtD,IAAI9T,EAAQ8T,EAAa,EACvBC,EAAYP,GAAS,CAAE,KAAM,CAAE,MAAOxT,EAAO,YAAa8T,CAAW,EAAI,EACzEE,EAAOD,EAAU,CAAC,EAAE,KACpBE,EAAcF,EAAU,CAAC,EAC3B,OAAAL,GACE,UAAY,CACVM,EAAK,MAAQhU,EACbgU,EAAK,YAAcF,EACnBI,GAAuBF,CAAI,GAAKC,EAAY,CAAE,KAAMD,CAAI,CAAE,CAC3D,EACD,CAACH,EAAW7T,EAAO8T,CAAW,CAC/B,EACDL,GACE,UAAY,CACV,OAAAS,GAAuBF,CAAI,GAAKC,EAAY,CAAE,KAAMD,CAAI,CAAE,EACnDH,EAAU,UAAY,CAC3BK,GAAuBF,CAAI,GAAKC,EAAY,CAAE,KAAMD,CAAI,CAAE,CAClE,CAAO,CACF,EACD,CAACH,CAAS,CACX,EACDF,GAAc3T,CAAK,EACZA,CACT,CACA,SAASkU,GAAuBF,EAAM,CACpC,IAAIG,EAAoBH,EAAK,YAC7BA,EAAOA,EAAK,MACZ,GAAI,CACF,IAAII,EAAYD,EAAmB,EACnC,MAAO,CAACZ,GAASS,EAAMI,CAAS,CACjC,MAAe,CACd,MAAO,EACX,CACA,CACA,SAASC,GAAuBR,EAAWC,EAAa,CACtD,OAAOA,EAAa,CACtB,CACA,IAAIQ,GACc,OAAO,OAAvB,KACgB,OAAO,OAAO,SAA9B,KACgB,OAAO,OAAO,SAAS,cAAvC,IACID,GACAT,GACsBW,GAAA,qBACfpB,EAAM,uBAAjB,OAAwCA,EAAM,qBAAuBmB,GC9D9DE,GAAA,QAAUpB,qBCAnB,MAAMqB,GAAuBJ,GAAsB,qBCA7CK,GAAoCC,EAAA,cAAc,MAAS,EAC3DC,GAA+CD,EAAA,cAAc,EAAK,EAQxE,SAASE,GAAsB9K,EAAS+K,EAAgB,CACtD,OAAI/K,IAIA+K,GAAkB,OAAO,OAAW,KACjC,OAAO,0BACV,OAAO,wBAA0BJ,IAG5B,OAAO,yBAGTA,GACT,CAEA,MAAMK,GAAiB,CAAC,CACtB,QAAAhL,CACF,EAAI,KAAO,CACH,MAAAiL,EAAcC,EAAAA,WAAiBJ,GAAsB9K,EAASkL,EAAM,WAAWL,EAAyB,CAAC,CAAC,EAEhH,GAAI,CAACI,EACG,MAAA,IAAI,MAAM,wDAAwD,EAGnE,OAAAA,CACT,EACME,GAAsB,CAAC,CAC3B,OAAAjK,EACA,SAAAkK,EACA,QAAApL,EACA,eAAA+K,EAAiB,EACnB,IAAM,CACJM,EAAAA,UAAgB,KACdnK,EAAO,MAAM,EACN,IAAM,CACXA,EAAO,QAAQ,CACjB,GACC,CAACA,CAAM,CAAC,EAML,MAAAoK,EAAUR,GAAsB9K,EAAS+K,CAAc,EACzC,OAAAQ,EAAoB,cAAAV,GAA0B,SAAU,CAC1E,MAAO,CAAC7K,GAAW+K,CAAA,EACLQ,EAAoB,cAAAD,EAAQ,SAAU,CACpD,MAAOpK,CACT,EAAGkK,CAAQ,CAAC,CACd,EC3DMI,GAAkCZ,EAAmB,cAAC,EAAK,EAC3Da,GAAiB,IAAMP,EAAgB,WAACM,EAAkB,EACpCA,GAAmB,SCF/C,SAASE,IAAc,CACrB,IAAIC,EAAU,GACd,MAAO,CACL,WAAY,IAAM,CAChBA,EAAU,EACX,EACD,MAAO,IAAM,CACXA,EAAU,EACX,EACD,QAAS,IACAA,CAEV,CACH,CAEA,MAAMC,GAA8ChB,EAAAA,cAAoBc,GAAW,CAAE,EAE/EG,GAA6B,IAAMX,aAAiBU,EAA8B,ECpBxF,SAASE,GAAiBC,EAAmBC,EAAQ,CAEnD,OAAI,OAAOD,GAAsB,WACxBA,EAAkB,GAAGC,CAAM,EAG7B,CAAC,CAACD,CACX,CCHA,MAAME,GAAkC,CAAClT,EAASmT,IAAuB,EACnEnT,EAAQ,UAAYA,EAAQ,oBAEzBmT,EAAmB,YACtBnT,EAAQ,aAAe,IAG7B,EACMoT,GAA6BD,GAAsB,CACvDb,EAAAA,UAAgB,IAAM,CACpBa,EAAmB,WAAY,CACnC,EAAK,CAACA,CAAkB,CAAC,CACzB,EACME,GAAc,CAAC,CACnB,OAAAjT,EACA,mBAAA+S,EACA,iBAAAG,EACA,MAAArU,CACF,IACSmB,EAAO,SAAW,CAAC+S,EAAmB,QAAS,GAAI,CAAC/S,EAAO,YAAc2S,GAAiBO,EAAkB,CAAClT,EAAO,MAAOnB,CAAK,CAAC,ECvBpIsU,GAAkB9G,GAAoB,CACtCA,EAAiB,UAGf,OAAOA,EAAiB,WAAc,WACxCA,EAAiB,UAAY,IAGnC,EACM+G,GAAY,CAACpT,EAAQqT,IAAgBrT,EAAO,WAAaA,EAAO,YAAc,CAACqT,EAC/EC,GAAgB,CAACjH,EAAkBrM,EAAQqT,IAAqDhH,GAAiB,UAAa+G,GAAUpT,EAAQqT,CAAW,EAC3JE,GAAkB,CAAClH,EAAkBrG,EAAU+M,IAAuB/M,EAAS,gBAAgBqG,CAAgB,EAAE,KAAK,CAAC,CAC3H,KAAA3K,CACF,IAAM,CACJ2K,EAAiB,WAAa,MAAgBA,EAAiB,UAAU3K,CAAI,EAC7E2K,EAAiB,WAAa,MAAgBA,EAAiB,UAAU3K,EAAM,IAAI,CACrF,CAAC,EAAE,MAAMyC,GAAS,CAChB4O,EAAmB,WAAY,EAC/B1G,EAAiB,SAAW,MAAgBA,EAAiB,QAAQlI,CAAK,EAC1EkI,EAAiB,WAAa,MAAgBA,EAAiB,UAAU,OAAWlI,CAAK,CAC3F,CAAC,ECVD,SAASqP,GAAa5T,EAAS6T,EAAU,CACvC,MAAM3B,EAAcD,GAAe,CACjC,QAASjS,EAAQ,OACrB,CAAG,EACKyT,EAAcf,GAAgB,EAC9BS,EAAqBL,GAA4B,EACjDrG,EAAmByF,EAAY,oBAAoBlS,CAAO,EAEhEyM,EAAiB,mBAAqBgH,EAAc,cAAgB,aAEhEhH,EAAiB,UACnBA,EAAiB,QAAU9G,EAAc,WAAW8G,EAAiB,OAAO,GAG1EA,EAAiB,YACnBA,EAAiB,UAAY9G,EAAc,WAAW8G,EAAiB,SAAS,GAG9EA,EAAiB,YACnBA,EAAiB,UAAY9G,EAAc,WAAW8G,EAAiB,SAAS,GAGlF8G,GAAgB9G,CAAgB,EAChCyG,GAAgCzG,EAAkB0G,CAAkB,EACpEC,GAA2BD,CAAkB,EAC7C,KAAM,CAAC/M,CAAQ,EAAI0N,EAAc,SAAC,IAAM,IAAID,EAAS3B,EAAazF,CAAgB,CAAC,EAC7ErM,EAASgG,EAAS,oBAAoBqG,CAAgB,EAgB5D,GAfAkF,GAAqBoC,EAAiB,YAACC,GAAiB,CACtD,MAAMC,EAAcR,EAAc,IAAA,GAAkBrN,EAAS,UAAUT,EAAc,WAAWqO,CAAa,CAAC,EAG9G,OAAA5N,EAAS,aAAc,EAChB6N,CACX,EAAK,CAAC7N,EAAUqN,CAAW,CAAC,EAAG,IAAMrN,EAAS,mBAAoB,IAAMA,EAAS,kBAAkB,EACjGkM,EAAAA,UAAgB,IAAM,CAGpBlM,EAAS,WAAWqG,EAAkB,CACpC,UAAW,EACjB,CAAK,CACL,EAAK,CAACA,EAAkBrG,CAAQ,CAAC,EAE3BsN,GAAcjH,EAAkBrM,EAAQqT,CAAW,EACrD,MAAME,GAAgBlH,EAAkBrG,EAAU+M,CAAkB,EAItE,GAAIE,GAAY,CACd,OAAAjT,EACA,mBAAA+S,EACA,iBAAkB1G,EAAiB,iBACnC,MAAOrG,EAAS,gBAAe,CACnC,CAAG,EACC,MAAMhG,EAAO,MAIf,OAAQqM,EAAiB,oBAAqDrM,EAA/BgG,EAAS,YAAYhG,CAAM,CAC5E,CChEA,SAAS8T,GAAiBxV,EAAMC,EAAMC,EAAM,CAC1C,MAAMoB,EAAUvB,EAAeC,EAAMC,EAAMC,CAAI,EAC/C,OAAOgV,GAAa5T,EAAS6P,EAAqB,CACpD,CCLA,MAAMsE,GAAcC,EAAU,MAAM,CAClC,SAAUA,EAAU,OAAO,WAC3B,KAAMA,EAAU,OAAO,UACzB,CAAC,EAEcC,EAAAD,EAAU,MAAM,CAC7B,QAASA,EAAU,OACnB,QAASA,EAAU,KACnB,QAASA,EAAU,KAAK,WACxB,cAAeA,EAAU,MAAM,CAC7B,kBAAmBA,EAAU,KAAK,WAClC,eAAgBA,EAAU,KAC1B,KAAMA,EAAU,MACjB,CAAA,EAAE,WACH,SAAUA,EAAU,OACpB,YAAaA,EAAU,OACvB,YAAaA,EAAU,OACvB,GAAIA,EAAU,OAAO,WACrB,YAAaA,EAAU,OACvB,QAASA,EAAU,OACnB,KAAMA,EAAU,OAAO,WACvB,MAAOA,EAAU,OACjB,IAAKA,EAAU,KAAK,WACpB,OAAQA,EAAU,OAAO,WACzB,YAAaA,EAAU,OAAO,WAC9B,YAAaA,EAAU,QAAQD,EAAW,EAC1C,eAAgBC,EAAU,OAC1B,4BAA6BA,EAAU,OACvC,QAASA,EAAU,MACrB,CAAC,EC5BKE,GAAa,CAAC,CAAE,sBAAAC,KAA4B,CAChD,MAAMC,EAAa,CAAC,CAAE,MAAAC,EAAO,OAAAC,KAC3BC,EAAA,IAAC,KAAG,CAAA,SAAAA,EAAA,IAAC,IAAE,CAAA,KAAM,IAAMD,EAAS,UAAM,CAAA,EAAI,EAItC,OAAAE,OAAC,KAAG,CAAA,UAAU,yBAAyB,gBAAa,GAAC,MAAO,CAAE,UAAW,MAAA,EACtE,SAAA,CAAAJ,EAAW,CAAE,MAAO,WAAY,OAAQ,mBAAoB,EAC5DA,EAAW,CAAE,MAAO,oBAAqB,OAAQ,oBAAqB,EACtED,GAAyBC,EAAW,CAAE,MAAO,eAAgB,OAAQ,eAAgB,EACrFA,EAAW,CAAE,MAAO,eAAgB,OAAQ,eAAgB,EAC5DA,EAAW,CAAE,MAAO,cAAe,OAAQ,kBAAmB,EAC9DA,EAAW,CAAE,MAAO,oBAAqB,OAAQ,SAAW,CAAA,CAAA,EAC/D,CAEJ,ECfA,SAASK,GAAe,CAAE,SAAAxC,EAAU,UAAAyC,GAAa,CAE7C,OAAAH,EAAAA,IAAC,MAAI,CAAA,UAAW,mBAAmBG,CAAS,GAC1C,SAAAH,EAAA,IAAC,MAAI,CAAA,UAAU,0BACZ,SAAAtC,CACH,CAAA,EACF,CAEJ,CAEA,SAAS0C,GAAqB,CAAE,SAAA1C,GAAY,CAC1C,OACGsC,EAAAA,IAAA,MAAA,CAAI,UAAU,oCACZ,SAAAtC,CACH,CAAA,CAEJ,CAEA,SAAS2C,GAAmB,CAAE,SAAA3C,GAAY,CACxC,OACGsC,EAAAA,IAAA,MAAA,CAAI,UAAU,kCACZ,SAAAtC,CACH,CAAA,CAEJ,CAEA,SAAS4C,GAAmB,CAAE,KAAAC,EAAM,KAAAC,GAAQ,CAExC,OAAAR,EAAAA,IAAC,MAAI,CAAA,UAAU,uBACb,SAAAC,EAAA,KAAC,KAAE,KAAAM,EAAY,OAAO,SAAS,IAAI,aACjC,SAAA,CAACP,EAAA,IAAA,OAAA,CAAK,UAAU,gDACb,SACHQ,EAAA,EACAR,EAAAA,IAAC,IAAE,CAAA,UAAU,gCAAiC,CAAA,CAAA,CAAA,CAChD,CACF,CAAA,CAEJ,CCrCA,SAASS,IAAyB,CAChC,cACGP,GACC,CAAA,SAAA,CAAAF,EAAAA,IAACI,IAAoB,SAErB,gEAAA,CAAA,EACAJ,EAAA,IAACM,GAAA,CACC,KAAK,4CACL,KAAK,YAAA,CAAA,CACP,EACF,CAEJ,CCZA,MAAMI,GAAgB,CAAC,CAAE,eAAAC,EAAgB,KAAAC,EAAM,WAAAC,EAAY,YAAAC,EAAa,UAAAX,EAAW,KAAAK,KAE/ER,EAAA,IAACe,EAAA,CACC,IAAKJ,EAAiB,UAAUC,CAAI,GAAKA,EACzC,WAAAC,EACA,UAAWC,EACX,YAAa,mCAAmCX,CAAS,GACzD,OAAQQ,EAAiB,QAAU,SAElC,SAAQH,GAAA,YAAA,CACX,ECREQ,GAAkB,CAAC,CAAE,UAAAb,EAAW,WAAAU,KAElCZ,OAACC,IAAc,UAAAC,EACb,SAAA,CAAAH,EAAAA,IAACI,IAAoB,SAErB,wBAAA,CAAA,EACAJ,EAAAA,IAACK,IAAkB,SAA4K,8KAAA,CAAA,EAC/LL,EAAA,IAACM,GAAA,CACC,KAAK,iCACL,KAAMW,GAAuBJ,CAAU,CAAA,CAAA,CACzC,EACF,EAIJG,GAAgB,UAAY,CAC1B,UAAWvB,EAAU,OACrB,WAAYA,EAAU,OAAO,UAC/B,EChBA,MAAMyB,GAAqB,CAAC,CAAE,WAAAL,EAAY,UAAAV,EAAW,KAAAK,KAAW,CACxD,MAAAW,EAAcC,aAAWC,CAAW,EAEpCC,EAAe,CAACf,EAAMgB,EAAYC,IACtCxB,EAAA,IAAC,IAAA,CACC,KAAAO,EACA,cAAagB,EACb,UAAW,iDAAiDpB,CAAS,GAEpE,SAAAqB,CAAA,CACH,EAeF,OAXML,EAAY,SACPG,EAAaG,KAAuB,OAAQ,oCAAoC,EAC9EC,EAAmBP,CAAW,EAChCG,EAAaK,GAAiBd,CAAU,EAAG,OAAQL,CAAI,EACrDW,EAAY,WAAaS,EAAW,SACtCN,EAAaO,GAAuBhB,CAAU,EAAG,MAAOL,CAAI,EAE5D,IAOb,EAEAU,GAAmB,UAAY,CAC7B,WAAYzB,EAAU,OAAO,WAC7B,UAAWA,EAAU,MACvB,ECtCA,MAAeqC,GAAArC,EAAU,MAAM,CAC7B,KAAMA,EAAU,OAAO,WACvB,UAAWA,EAAU,QAAQA,EAAU,MAAM,CAC3C,GAAIA,EAAU,OAAO,UACtB,CAAA,CAAC,EAAE,UACN,CAAC,ECHKsC,GAAkB,CAAC,CAAE,QAAAC,EAAS,QAAAC,EAAS,SAAAvE,KAAe,CAC1D,MAAMwE,EAAQ,IAAM,EAAE,IAAIF,CAAO,EAAE,EAE7BG,EAAQ,IAAM,CACZD,EAAA,EAAE,WAAW,OAAO,CAC5B,EAEME,EAAkB,IAAO,CAAC,SAAUH,CAAO,EAAE,KAAK,GAAG,EAGzD,OAAAhC,OAAC,OAAI,UAAWmC,EAAA,EAAmB,GAAIJ,EAAS,cAAW,GACzD,SAAA,CAAAhC,MAAC,SAAO,CAAA,UAAU,eAAe,aAAW,cAAc,KAAK,SAAS,QAASmC,EAC/E,SAACnC,EAAAA,IAAA,OAAA,CAAK,cAAY,OAAO,YAAO,CAAA,EAClC,EACCtC,CAAA,EACH,CAEJ,EAEAqE,GAAgB,UAAY,CAC1B,QAAStC,EAAU,OAAO,WAC1B,QAASA,EAAU,OACnB,SAAUA,EAAU,KAAK,UAC3B,ECpBA,MAAM4C,GAAW,CAAC,CAAE,SAAAC,EAAU,aAAAC,KAAmB,CACzC,MAAAC,EAAYC,GAAW,CAC3B,MAAMC,EAAS,CAAC,EAEZ,OAACD,EAAO,OACVC,EAAO,KAAO,YAGTA,CACT,EAEMC,EAAa,IAAM,CACrB,EAAA,cAAc,EAAE,WAAW,OAAO,CACtC,EAEA,OAEI1C,EAAA,KAAA2C,WAAA,CAAA,SAAA,CAAC3C,EAAAA,KAAA,MAAA,CAAI,UAAU,iEACb,SAAA,CAACD,EAAA,IAAA,KAAA,CAAG,UAAU,aAAa,SAAiB,oBAAA,EAC5CC,EAAAA,KAAC,IAAE,CAAA,UAAU,sCAAsC,SAAA,CAAA,2CAAyCqC,EAAS,KAAK,SAAA,CAAO,CAAA,CAAA,EACnH,EACAtC,EAAAA,IAAC,MAAI,CAAA,UAAU,8BACb,SAAAA,EAAA,IAAC6C,GAAA,CACC,cAAe,CACb,KAAM,EACR,EACA,SAAU,CAACJ,EAAQK,IAAY,CAC7BP,EAAaE,EAAO,KAAMH,EAAS,EAAE,EAClC,KAAK,IAAM,CACCK,EAAA,EACXG,EAAQ,UAAU,CAAA,CACnB,EACA,MAAM,IAAM,CACX,WACE,iEACF,CAAA,CACD,CACL,EACA,SAAAN,EAEA,gBAACO,GACC,CAAA,SAAA,CAAA/C,MAAC,QAAM,CAAA,QAAQ,OAAO,UAAU,+CAA+C,SAAI,OAAA,EACnFA,EAAAA,IAACgD,GAAa,CAAA,KAAK,MAAO,CAAA,EAC1BhD,EAAA,IAACiD,GAAA,CACC,GAAG,OACH,KAAK,OACL,YAAY,YACZ,UAAU,YAAA,CACZ,EACAhD,EAAAA,KAAC,MAAI,CAAA,UAAU,oCACb,SAAA,CAAAD,EAAAA,IAAC,UAAO,UAAU,4DAA4D,KAAK,SAAS,QAAS2C,EAAY,SAEjH,QAAA,CAAA,EACC1C,EAAA,KAAA,SAAA,CAAO,KAAK,SAAS,UAAU,uBAAuB,SAAA,CAAA,cAErDD,EAAAA,IAAC,IAAE,CAAA,UAAU,qCAAsC,CAAA,CAAA,CACrD,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CAEJ,CAAA,CAAA,EACF,CAEJ,EAEAqC,GAAS,UAAY,CACnB,SAAU5C,EAAU,MAAM,CAAE,GAAIA,EAAU,MAAQ,CAAA,EAAE,WACpD,aAAcA,EAAU,KAAK,UAC/B,ECnEA,SAASyD,GACPC,EACA,CAAE,aAAAC,EAAc,eAAAC,GAAmB,CAAE,aAAc,GAAM,eAAgB,IAAM,CAAC,GAChF,CAGM,MAAAC,EAAcC,SAAOF,CAAc,EACzCC,EAAY,QAAUD,EAEtBrH,EAAAA,UAAU,IAAM,CAEd,GAAI,CAACoH,EAAc,OAEb,MAAAI,EAAuBC,GACpB,CAAC,CAAC,SAAS,eAAe,aAAa,GAAG,SAASA,CAAO,EAG7DC,EAAoBD,GACjB,CAAC,EAAEN,GAAY,SAAWA,EAAW,QAAQ,SAASM,CAAO,GAKhEE,EAA0BC,GAAM,CAChCT,GAAY,SAAY,CAACO,EAAiBE,EAAE,MAAM,GAAK,CAACJ,EAAoBI,EAAE,MAAM,GACtFN,EAAY,QAAQ,CAExB,EAES,gBAAA,iBAAiB,QAASK,CAAsB,EAElD,IAAM,CACF,SAAA,oBAAoB,QAASA,CAAsB,CAC9D,CAAA,EACC,CAACP,CAAY,CAAC,CACnB,CAEa,MAAAS,GAAgBC,GAAU,CACrC,MAAMC,EAAkBR,EAAAA,OAAO,EACzB,CAACS,EAAiBC,CAAkB,EAAIlI,EAAAA,SAAS,EAAK,EAE5DmH,GAA0Ba,EAAiB,CACzC,aAAcC,EACd,eAAgB,IAAM,CAEpBC,EAAmB,EAAK,EAClBH,EAAA,SAAWA,EAAM,QAAQ,CAAA,CACjC,CACD,EAED,MAAMI,EAA4B,IAAM,CACtCD,EAAmB,CAACD,CAAe,EAC/BA,EACIF,EAAA,SAAWA,EAAM,QAAQ,EAEzBA,EAAA,QAAUA,EAAM,OAAO,CAEjC,EAEMK,EAA2B,IAAM,CACnC,EAAA,cAAc,EAAE,WAAW,MAAM,CACrC,EAEMC,EAA2BR,GAAM,CAC/B,MAAAS,EAAgBT,EAAE,OAAO,KACzBU,EAAeR,EAAM,MAAM,KAC9BS,GAAS,OAAOA,EAAK,IAAO,SAAWA,EAAK,KAAO,SAASF,CAAa,EAAIE,EAAK,KAAOF,CAC5F,EAEIP,EAAM,cAAoBA,EAAA,aAAaQ,CAAY,CACzD,EAEME,EAAmB,CAACD,EAAMjC,IACvBiC,EAAK,UAAU,KAAME,GAAiBA,EAAa,KAAOnC,EAAS,EAAE,IAAM,OAG9EoC,EAAsB,CAACC,EAAOrC,IAEhCrC,EAAA,KAAC,MAAI,CAAA,UAAU,iBACb,SAAA,CAAAD,MAAC,OAAI,UAAU,kBAEX,SAAM2E,EAAA,IAAKJ,GAAS,CACZ,MAAAK,EAAWJ,EAAiBD,EAAMjC,CAAQ,EAEhD,aACG,MAAkB,CAAA,UAAWsC,EAAW,WAAa,GACpD,gBAAC,QACE,CAAA,SAAA,CAAKL,EAAA,KACNvE,EAAA,IAAC,QAAA,CACC,KAAK,WACL,KAAMuE,EAAK,GACX,QAASK,EACT,SAAUR,CAAA,CAAA,CACZ,EACF,CAAA,EATQG,EAAK,EAUf,CAEH,CAAA,EAEL,EACCtE,EAAA,KAAA,SAAA,CAAO,UAAU,4BAA4B,QAASkE,EAA0B,SAAA,CAAA,kBAE/EnE,EAAAA,IAAC,IAAE,CAAA,UAAU,yBAA0B,CAAA,CAAA,CACzC,CAAA,CAAA,EACF,EAIJ,OAEIC,EAAA,KAAA2C,WAAA,CAAA,SAAA,CAAA5C,EAAA,IAAC,MAAI,CAAA,UAAW,sCAAsCgE,EAAkB,OAAS,QAAQ,GAAI,IAAKD,EAChG,SAAA9D,EAAA,KAAC,MAAI,CAAA,UAAU,YACb,SAAA,CAAAA,EAAA,KAAC,SAAO,CAAA,UAAU,qBAAqB,QAASiE,EAA2B,SAAA,CAAA,uBAEzElE,EAAAA,IAAC,IAAE,CAAA,UAAU,yBAA0B,CAAA,CAAA,EACzC,EACCgE,GACCU,EAAoBZ,EAAM,MAAOA,EAAM,QAAQ,CAAA,CAAA,CACnD,CACF,CAAA,EACC9D,EAAA,IAAA+B,GAAA,CAAgB,QAAQ,cAAc,QAAQ,0BAC7C,SAAA/B,EAAAA,IAACqC,GAAS,CAAA,SAAUyB,EAAM,SAAU,aAAcA,EAAM,aAAc,CACxE,CAAA,CAAA,EACF,CAEJ,EAEAD,GAAa,UAAY,CACvB,SAAUpE,EAAU,MAAM,CAAE,GAAIA,EAAU,OAAQ,EAClD,MAAOA,EAAU,QAAQqC,EAAS,EAClC,OAAQrC,EAAU,KAClB,QAASA,EAAU,KACnB,aAAcA,EAAU,KACxB,aAAcA,EAAU,IAC1B,EAMA,SAASoF,IAAe,CAGhB,MAAAC,EAAsBvB,SAAO,IAAI,EAEjCwB,EAAgBxB,SAAO,CAAC,EACxByB,EAAqBzB,SAAO,EAAI,EAEhC,CAAClJ,EAAW4K,CAAY,EAAIlJ,EAAAA,SAAS,EAAK,EAC1C,CAAC4I,EAAOO,CAAQ,EAAInJ,EAAAA,SAAS,IAAI,EAEjCoJ,EAAW,IAAM,CAGrB,GAAIJ,EAAc,QAAU,GAAK,CAACC,EAAmB,QAAS,OAE9D,MAAMI,EAAwBC,EAAI,IAAI,CAAE,IAAKC,IAAa,CAAA,EAAE,KAAK,CAAC,CAAE,KAAAnY,CAAA,IAAWA,CAAI,EACnF2X,EAAoB,QAAUM,EAE1BT,IAAU,MAAMM,EAAa,EAAI,EAIlCG,EAAA,KAAKT,GAAS,CAETG,EAAoB,UAAYM,GAAyBL,EAAc,UAAY,IACjFC,EAAmB,UACrBE,EAASP,CAAK,EACdM,EAAa,EAAK,GAEpBH,EAAoB,QAAU,KAChC,CACD,CACL,EAIMS,EAAmB,CAACC,EAAIC,IAAe,CACtCT,EAAmB,SACxBE,EAASP,GAASA,EAAM,IAAYJ,GAAAA,EAAK,KAAOiB,EAAKC,EAAWlB,CAAI,EAAIA,CAAI,CAAC,CAC/E,EAKMmB,EAAkCza,GAAa,CACrC8Z,EAAA,QAAUA,EAAc,QAAU,EAE1C,MAAAY,EAAuBxY,IACb4X,EAAA,QAAUA,EAAc,QAAU,EAC5CA,EAAc,UAAY,GACnBI,EAAA,EAEJhY,GAIT,OAAI2X,EAAoB,UAAY,OAAMA,EAAoB,QAAU,MAEjE7Z,EAAS,KAAK0a,CAAmB,EAAE,MAAMA,CAAmB,CACrE,EAyCO,MAAA,CACL,UAAAtL,EACA,MAAOsK,GAAS,CAAC,EACjB,SAAAQ,EACA,kBA3CwB,CAACb,EAAchC,IAChCoD,EACLL,EAAI,cAAc,CAChB,IAAKO,GAAsBtB,EAAa,EAAE,EAC1C,KAAM,CACJ,YAAahC,EAAS,EAAA,CAEzB,CAAA,EACE,KAAK,CAAC,CAAE,KAAAnV,KAAWA,CAAI,CAC5B,EAmCA,uBAhC6B,CAACmX,EAAchC,IACrCoD,EACLL,EAAI,cAAc,CAChB,IAAKQ,GAA2BvB,EAAa,EAAE,EAC/C,KAAM,CAAE,YAAahC,EAAS,EAAG,CAClC,CAAA,EACE,KAAK,CAAC,CAAE,KAAAnV,KAAWA,CAAI,CAC5B,EA0BA,iBAAAoY,EACA,uBAxB6B,CAACO,EAAUjF,IACjC6E,EACLL,EAAI,aAAa,CACf,IAAKC,GAAU,EACf,KAAM,CACJ,KAAM,CACJ,KAAMQ,EACN,aAAc,CACZjF,CAAA,CACF,CACF,CAEH,CAAA,EACE,KAAK,CAAC,CAAE,KAAA1T,KAAWA,CAAI,CAC5B,CAWF,CACF,CACA,MAAM4Y,GAA2BjC,GAAU,CACnC,KAAA,CAAE,MAAAa,EAAO,SAAAQ,EAAU,kBAAAa,EAAmB,uBAAAC,EAAwB,iBAAAV,EAAkB,uBAAAW,GAA2BrB,GAAY,EAEvHsB,EAAkB,CAAC5B,EAAMjC,IAAaiC,EAAK,UAAU,KAAKE,GAAgBA,EAAa,KAAOnC,EAAS,EAAE,IAAM,OAE/G8D,EAAuB,CAAC7B,EAAMjC,IAC9B6D,EAAgB5B,EAAMjC,CAAQ,EACzB,CAAE,GAAGiC,EAAM,UAAWA,EAAK,UAAU,OAAOE,GAAgBA,EAAa,KAAOnC,EAAS,EAAE,CAAE,EAE7F,CAAE,GAAGiC,EAAM,UAAW,CAAC,GAAGA,EAAK,UAAW,CAAE,GAAGjC,CAAS,CAAC,CAAE,EAIhE+D,EAA6B/B,GAAiB,CACjCiB,EAAAjB,EAAa,GAAKgC,GAAcF,EAAqBE,EAAWxC,EAAM,QAAQ,CAAC,EAE5FqC,EAAgB7B,EAAcR,EAAM,QAAQ,EACvBmC,EAAA3B,EAAcR,EAAM,QAAQ,EAEjCkC,EAAA1B,EAAcR,EAAM,QAAQ,CAElD,EAGE,OAAA9D,EAAA,IAAC6D,GAAA,CACE,GAAGC,EACJ,MAAAa,EACA,OAAQ,IAAMQ,EAAS,EACvB,aAAeZ,GAAS8B,EAA0B9B,CAAI,EACtD,aAAc2B,CAAA,CAChB,CAEJ,EAEAH,GAAwB,UAAY,CAClC,SAAUtG,EAAU,MAAM,CAAE,GAAIA,EAAU,MAAQ,CAAA,CACpD,ECpSA,SAAS8G,IAA0B,CACjC,cACGrG,GACC,CAAA,SAAA,CAAAF,EAAAA,IAACI,IAAoB,SAErB,0EAAA,CAAA,EACAJ,EAAA,IAACM,GAAA,CACC,KAAK,oDACL,KAAK,eAAA,CAAA,CACP,EACF,CAEJ,CCFA,MAAMkG,GAAU,CAAC,CAAE,SAAAlE,EAAU,sBAAA1C,KAA4B,CACjD,MAAAuB,EAAcC,aAAWC,CAAW,EAEpCoF,EAAsB,IAAM,CAChC,GAAInE,EAAS,KAAOA,EAAS,cAAc,kBAAmB,CAC5D,KAAM,CAAE,IAAAoE,EAAK,cAAAC,EAAe,GAAAnB,CAAO,EAAAlD,EACnC,aACG,MAAI,CAAA,MAAO,CAAE,UAAW,QACvB,SAAAtC,EAAA,IAACU,GAAA,CACC,IAAAgG,EACA,eAAgBC,EAAc,eAC9B,KAAMA,EAAc,KACpB,WAAYnB,EACZ,kBAAmBmB,EAAc,kBACjC,YAAY,kCACZ,UAAU,gCACV,KAAK,kBAAA,CAAA,EAET,CAAA,CAGN,EAEMC,EAAqB,IACzB5G,EAAA,IAACkB,GAAA,CACC,UAAU,0FACV,WAAYoB,EAAS,GACrB,KACE,CAAC,oCAAqCtC,MAAC,KAAE,UAAU,aAAA,EAAkB,oBAAqB,CAAE,CAAA,CAEhG,EAGI6G,EAAsB,IAExB7G,MAAC6D,IAAa,SAAAvB,EAAoB,EAIhCwE,EAAmB,CAAC3F,EAAauF,IAChCvF,EAAY,QAIbuF,QACMjG,GAAsB,EAAA,QAEtB8F,GAAuB,EAAA,EANxB,KAUX,aACG,MAAI,CAAA,wBAAqB,GAAC,GAAG,UAAU,cAAY,UAClD,SAAAtG,EAAA,KAAC,MAAA,CACC,UAAU,SACV,cAAW,GACX,kBAAgB,IAChB,MAAO,CAAE,MAAO,MAAO,EACvB,kBAAgB,uBAChB,kBAAgB,wBAEhB,SAAA,CAAAD,MAACL,IAAW,sBAAAC,EAA8C,EAExDuB,EAAY,WAAaS,EAAW,aAE/B3B,EAAAA,KAAA2C,EAAAA,SAAA,CAAA,SAAA,CAAoB6D,EAAA,EACpBG,EAAmB,EACnBzF,EAAY,YAAc4F,GAAY,UAAYF,EAAoB,CAAA,EACzE,EAIF1F,EAAY,WAAaS,EAAW,eAE/B3B,EAAAA,KAAA2C,EAAAA,SAAA,CAAA,SAAA,CAAoB6D,EAAA,EACpBK,EAAiB3F,EAAamB,EAAS,GAAG,CAAA,EAC7C,EAIFnB,EAAY,WAAaS,EAAW,UAE/B3B,EAAAA,KAAA2C,EAAAA,SAAA,CAAA,SAAA,CAAoB6D,EAAA,EACpBG,EAAmB,EACnB,CAACtE,EAAS,SAAWtC,EAAAA,IAACgB,IAAgB,UAAU,uBAAuB,WAAYsB,EAAS,EAAI,CAAA,CAAA,CACnG,CAAA,CAAA,CAAA,CAAA,EAIR,CAEJ,EAEAkE,GAAQ,UAAY,CAClB,SAAU9G,EACV,sBAAuBD,EAAU,IACnC,EC1GA,MAAMuH,GAAoBvH,EAAU,MAAM,CACxC,EAAGA,EAAU,OACb,EAAGA,EAAU,OACb,EAAGA,EAAU,OACb,EAAGA,EAAU,OACb,EAAGA,EAAU,MACf,CAAC,EAEcwH,GAAAxH,EAAU,MAAM,CAC7B,OAAQA,EAAU,OAAO,WACzB,aAAcA,EAAU,OAAO,WAC/B,cAAeuH,GAAkB,WACjC,aAAcE,GAAiB,WAC/B,qBAAsBzH,EAAU,OAAO,WACvC,qBAAsBA,EAAU,OAAO,UACzC,CAAC,ECbK0H,EAAoBrD,GAAU,CAClC,MAAMsD,EAAqB,IAEtBpH,EAAA,IAAA,SAAA,CAAO,QAASqH,EAAa,UAAU,oBACtC,SAAArH,EAAA,IAAC,IAAA,CACC,UAAW,qBAAqB8D,EAAM,SAAW,WAAa,SAAS,GACvE,MAAOA,EAAM,SAAW,WAAa,QAAA,CAAA,EAEzC,EAIEuD,EAAc,IAAMvD,EAAM,OAASwD,EAAkB,EAAIxD,EAAM,YAAY,EAE3EwD,EAAoB,IAAM,CAC9B,aAAa,QAAQ,cAAe,OAAO,SAAS,IAAI,EACtD,EAAA,eAAe,EAAE,WAAW,MAAM,CACtC,EAEMC,EAAqB,IACrBzD,EAAM,OAEN7D,EAAA,KAAC,OAAK,CAAA,QAASqH,EACb,SAAA,CAAArH,EAAA,KAAC,OAAK,CAAA,MAAO,CAAE,cAAe,QAAY,EAAA,SAAA,CAAAD,EAAA,IAAC,IAAE,CAAA,UAAU,wBAAwB,cAAY,OAAO,EAAE,GAAA,EAAC,EACrGA,MAAC,QAAK,MAAO,CAAE,cAAe,UAAa,WAAM,KAAM,CAAA,CAAA,EACzD,EAGK8D,EAAM,MAIX0D,EAAyB,IACzB1D,EAAM,iBAEN9D,EAAAA,IAAC,MACE,CAAA,SAAA8D,EAAM,gBACT,CAAA,EAGK,KAIL2D,EAAc,IACjBzH,EAAAA,IAAA,MAAA,CACC,eAAC,KAAG,CAAA,UAAU,8BAA8B,cAAa,GAAG8D,EAAM,MAAM,UAAY,SAAAyD,GAAqB,CAAA,EAC3G,EAGIG,EAAkB,IACrBzH,OAAA,MAAA,CAAI,UAAU,+BACb,SAAA,CAAAD,EAAAA,IAAC,OACC,SAACA,MAAA2H,GAAA,CAAQ,QAAS7D,EAAM,OAAS,CAAA,EACnC,EACC0D,EAAuB,CAAA,EAC1B,EAGII,EAAgB,IACnB3H,OAAA,MAAA,CAAI,UAAU,4BACZ,SAAA,CAAM6D,EAAA,WACNA,EAAM,YAAA,EACT,EAGI+D,EAAmB,IACtB5H,OAAA,MAAA,CAAI,UAAU,4BACZ,SAAA,CAAYwH,EAAA,EACZC,EAAgB,EACjB1H,EAAAA,IAAC,MAAI,CAAA,UAAU,6BAA8B,CAAA,EAC5C4H,EAAc,CAAA,EACjB,EAGIE,EAAkB,IACrB7H,OAAA,MAAA,CAAI,UAAU,4BACb,SAAA,CAACD,EAAAA,IAAA,MAAA,CACE,WACH,CAAA,CAAA,EACAC,EAAAA,KAAC,MAAI,CAAA,UAAU,gCACZ,SAAA,CAAgByH,EAAA,EAChBE,EAAc,CAAA,CACjB,CAAA,CAAA,EACF,EAIA,OAAA3H,EAAA,KAAC,MAAI,CAAA,UAAU,oBACZ,SAAA,CAAM6D,EAAA,UAAYgE,EAAgB,EAAID,EAAiB,EACvD7H,EAAA,IAAA,MAAA,CAAI,UAAU,kCACZ,YACH,CAAA,CAAA,EACF,CAEJ,EAEAmH,EAAiB,UAAY,CAC3B,MAAO1H,EAAU,OACjB,QAASA,EAAU,UAAU,CAC3BA,EAAU,OAAO,WACjBA,EAAU,OAAO,UAAA,CAClB,EACD,iBAAkBA,EAAU,QAC5B,SAAUA,EAAU,KAAK,WACzB,YAAaA,EAAU,KAAK,WAC5B,OAAQA,EAAU,KAAK,WACvB,WAAYA,EAAU,QACtB,aAAcA,EAAU,KACxB,OAAQA,EAAU,OAClB,SAAUsI,GACV,UAAWtI,EAAU,IACvB,EAEA0H,EAAiB,aAAe,CAC9B,OAAQ,GACR,UAAW,EACb,ECrHA,MAAMa,GAAiBC,EAAAA,cAAc,CACnC,SAAU,GACV,YAAa,GACb,cAAe,IAAM,CAAA,CACvB,CAAC,EAEM,SAASC,EAAiBpE,EAAO,CACtC,KAAM,CAAE,YAAAqE,CAAA,EAAgB/G,EAAA,WAAW4G,EAAc,EAE7C,OAAAG,EAAoBrE,EAAM,SACvB,IACT,CAEAoE,EAAgB,UAAY,CAC1B,SAAUzI,EAAU,IACtB,EAEO,SAAS2I,EAAetE,EAAO,CACpC,KAAM,CAAE,SAAAuE,EAAU,cAAAC,EAAe,YAAAH,CAAY,EAAI/G,EAAAA,WAAW4G,EAAc,EAGxE,OAAAhI,EAAA,IAACmH,EAAA,CACC,OAAQkB,EACR,YAAaC,EACb,SAAUH,EACV,MAAOrE,EAAM,SACZ,GAAGA,CAAA,CACN,CAEJ,CAEAsE,EAAc,UAAY,CACxB,QAASjB,EAAiB,UAAU,QACpC,SAAU1H,EAAU,KACpB,aAAc0H,EAAiB,UAAU,YAC3C,EAEO,SAASoB,GAAgB,CAAE,KAAAC,EAAM,WAAAC,GAAc,CACpD,GAAI,CAACD,EAAe,OAAA,KAEpB,KAAM,CAACnO,EAAW4K,CAAY,EAAIlJ,EAAAA,SAAS,EAAK,EAE1C2M,EAAsB,MAAO9E,GAAM,CACvCqB,EAAa,EAAI,EACjB,MAAMwD,EAAW7E,CAAC,EAClBqB,EAAa,EAAK,CACpB,EAEA,OAEIjF,EAAA,IAAA4C,WAAA,CAAA,SAAA3C,EAAAA,KAAC,MAAI,CAAA,UAAU,uCAEb,SAAA,CAACD,EAAAA,IAAA2I,GAAA,CAAY,KAAMtO,CAAW,CAAA,EAE9B2F,EAAA,IAAC,SAAA,CACC,QAAS0I,EACT,UAAU,4EACX,SAAA,WAAA,CAAA,CAED,CAAA,CACF,CACF,CAAA,CAEJ,CAEAH,GAAe,UAAY,CACzB,KAAM9I,EAAU,KAChB,WAAYA,EAAU,IACxB,EAEA8I,GAAe,aAAe,CAC5B,KAAM,EACR,EAEA,MAAMK,EAAW9E,GAAU,CACzB,KAAM,CAAC+E,EAAUC,CAAW,EAAI/M,EAAAA,SAAS+H,EAAM,QAAQ,EACjDuE,EAAWvE,EAAM,OAEjBiF,EAAeC,EAAAA,QAAQ,IAAM,CACjC,IAAIb,EAAc,GAElB,OAAIrE,EAAM,aACMqE,EAAAU,GAOT,CACL,YAAAV,EACA,SAAAE,EACA,cAPqB,IAAM,CACfS,EAAAG,GAAQ,CAACA,CAAI,CAC3B,CAMA,GACC,CAACJ,EAAU/E,EAAM,WAAYuE,CAAQ,CAAC,EAEnCa,EAAgB,IAAM,CAC1B,IAAI3E,EAAO,CACT,UACA,cACA,oBACF,EAEA,OAAIT,EAAM,SACDS,EAAA,CAAC,GAAGA,EAAM,YAAY,GAGxBA,EAAK,KAAK,GAAG,CACtB,EAGE,OAAAvE,MAACgI,GAAe,SAAf,CAAwB,MAAOe,EAC9B,SAAA/I,EAAA,IAAC,MAAI,CAAA,UAAWkJ,EAAc,EAAG,GAAIpF,EAAM,OAAQ,uBAAsBA,EAAM,OAAQ,cAAaA,EAAM,OACvG,SAAMA,EAAA,QAAA,CACT,CACF,CAAA,CAEJ,EAEA8E,EAAQ,UAAY,CAClB,SAAUnJ,EAAU,KACpB,WAAYA,EAAU,KACtB,SAAUA,EAAU,KACpB,OAAQA,EAAU,OAClB,OAAQA,EAAU,KAClB,OAAQA,EAAU,IACpB,EAEAmJ,EAAQ,aAAe,CACrB,SAAU,EACZ,ECpIA,MAAMO,EAAqB,CAAC,CAAE,MAAArJ,EAAO,MAAAvX,KAAY,CAC/C,MAAM6gB,EAAgB,IAChB7gB,EACOyX,EAAAA,IAAA,OAAA,CAAK,UAAU,QAAS,SAAMzX,EAAA,EAE9ByX,EAAAA,IAAA,OAAA,CAAK,UAAU,cAAc,SAAa,gBAAA,EAKrD,OAAAC,EAAA,KAAC,MAAI,CAAA,UAAU,4CACb,SAAA,CAACD,EAAA,IAAA,KAAA,CAAG,UAAU,4CAA6C,SAAMF,EAAA,EAChEsJ,EAAc,CAAA,EACjB,CAEJ,ECfMC,GAAsB,CAAC,CAAE,SAAU,CAAE,aAAAC,EAAc,cAAAC,EAAe,cAAAC,EAAe,KAAAC,CAAK,KACtFH,GAAgBC,GAAiBC,GAAiBC,EAEjDxJ,EAAAA,KAAA,MAAA,CAAI,UAAU,SAAS,GAAG,wBACzB,SAAA,CAACD,EAAAA,IAAA,MAAA,CAAI,UAAU,yDACb,SAAAA,EAAA,IAACmJ,EAAA,CACC,MAAM,UACN,MAAOG,CAAA,CAAA,EAEX,EACAtJ,EAAAA,IAAC,MAAI,CAAA,UAAU,yDACb,SAAAA,EAAA,IAACmJ,EAAA,CACC,MAAM,cACN,MAAOM,CAAA,CAAA,EAEX,EACAzJ,EAAAA,IAAC,MAAI,CAAA,UAAU,qCACb,SAAAA,EAAA,IAACmJ,EAAA,CACC,MAAM,eACN,MAAOI,CAAA,CAAA,EAEX,EACAvJ,EAAAA,IAAC,MAAI,CAAA,UAAU,wBACb,SAAAA,EAAA,IAACmJ,EAAA,CACC,MAAM,iBACN,MAAOK,GAAiB,EAAA,CAAA,CAE5B,CAAA,CAAA,EACF,EAGQxJ,EAAA,IAAA4C,EAAA,SAAA,EAAA,EC7BR8G,GAAgB,CAAC,CAAE,SAAU,CAAE,YAAAC,EAAa,IAAAjD,EAAK,aAAAkD,EAAc,QAAAC,CAAQ,KAAQ,CACnF,MAAMC,EAAa,IAAM,CACvB,MAAMC,EAAoBH,EAAa,IAAII,GAAeA,EAAY,IAAI,EAEpEC,EAAmB,IACnBvD,EACK,CAAC,KAAK,EAAE,OAAOqD,CAAiB,EAC9BF,EACF,CAAC,SAAS,EAAE,OAAOE,CAAiB,EAEpCA,EAIX,aAAQG,GAAqB,CAAA,aAAcD,IAAoB,gBAAe,GAAC,CACjF,EAEME,EAAqB,IACxBlK,OAAA,MAAA,CAAI,UAAU,WACb,SAAA,CAACD,EAAA,IAAA,KAAA,CAAG,UAAU,aAAa,SAAQ,WAAA,EAClCA,EAAA,IAAA,IAAA,CAAE,UAAU,uBAAwB,SAAY2J,CAAA,CAAA,CAAA,EACnD,EAGF,OAAIA,GAAejD,GAAOmD,GAAW,CAACvhB,GAAQshB,CAAY,EAEtD3J,EAAA,KAAC,MAAI,CAAA,UAAU,6DACZ,SAAA,CAAA0J,EAAcQ,IAAuB,KACpCzD,GAAOmD,GAAWD,EAAa,OAAS,EAAKE,IAAe,IAAA,EAChE,EAIE9J,EAAA,IAAA4C,EAAA,SAAA,EAAA,CAGR,EAEA8G,GAAc,UAAY,CACxB,SAAUhK,CACZ,EC7CA,MAAe0K,GAAA,i0ECAAC,GAAA,i0ECSFC,GAAa,CAAC,CAAE,SAAAC,KAA8C,CACzE,MAAMC,EAAU,IAAc,CAC5B,OAAQD,EAAU,CAChB,IAAK,WACI,OAAAH,GACT,IAAK,WACI,OAAAC,EAAA,CAEb,EAGE,OAAArK,MAAC,OAAI,IAAKwK,EAAA,EAAW,UAAU,cAAc,IAAKD,EAAW,OAAS,CAAA,CAE1E,EAEAD,GAAW,UAAY,CACrB,SAAU7K,EAAU,OAAO,UAC7B,ECfA,MAAMgL,GAAW,CAAC,CAChB,SAAAnI,EAAU,SAAU,CAClB,KAAAoI,EACA,QAAAC,EACA,MAAAC,EACA,QAAAC,EACA,cAAAlE,EACA,IAAAD,EACA,GAAAlB,EACA,OAAAsF,EACA,YAAAC,EACA,QAAAC,EACA,YAAAC,CAAA,CAEJ,IAAM,CACJ,KAAM,CAACC,EAAcC,CAAe,EAAIpP,EAAAA,SAAS,EAAK,EAEhDqP,EAAgB,IAAM,CAC1B,GAAIT,EAEA,OAAA1K,EAAA,KAAC,MAAI,CAAA,UAAU,4BACb,SAAA,CAACD,EAAAA,IAAA,IAAA,CAAE,UAAU,sCAAuC,CAAA,EAAE,IAAE2K,CAAA,EAC1D,CAGN,EAEMU,EAAc,IAAM,CAClB,MAAAC,EAAmB,IAAMH,EAAgB,EAAI,EAEnD,GAAIP,EACF,OACG5K,EAAAA,IAAA,MAAA,CAAI,UAAU,cACZ,SAEGkL,EAAAjL,EAAA,KAAC,IAAA,CACC,KAAM,OAAO2K,CAAK,GAClB,UAAU,gBAEV,SAAA,CAAC5K,EAAAA,IAAA,IAAA,CAAE,UAAU,8CAA+C,CAAA,EAAG4K,CAAA,CAAA,CAAA,EAIjE3K,EAAA,KAACc,EAAA,CACC,WAAYyE,EACZ,UAAU,sBACV,sBAAuB8F,EACvB,YAAY,gBAGZ,SAAA,CAACtL,EAAAA,IAAA,IAAA,CAAE,UAAU,8CAA+C,CAAA,EAAE,mBAAA,CAAA,EAF1D,YAAA,EAKZ,CAGN,EAEMuL,EAAgB,IAAM,CAC1B,GAAIV,EAEA,OAAA7K,EAAAA,IAAC,MAAI,CAAA,UAAU,cACb,SAAAC,EAAA,KAACc,EAAA,CACC,IAAK8J,EACL,WAAYrF,EACZ,UAAU,wBACV,YAAY,gBAGZ,SAAA,CAACxF,EAAAA,IAAA,IAAA,CAAE,UAAU,6CAA8C,CAAA,EAAE,SAAA,CAAA,EAFzD,UAAA,EAIR,CAGN,EAEMwL,EAAe,IAAM,CACrB,GAAA,CAAEljB,GAAQ2iB,CAAW,EAErB,OAAAjL,EAAA,IAAC,MAAI,CAAA,UAAU,cACZ,SAAAiL,EAAY,IAAgBV,GAAAkB,EAAiBlB,CAAQ,CAAC,CACzD,CAAA,CAGN,EAEMkB,EAAmB,CAAC,CAAE,KAAA7K,EAAM,SAAA2J,CAChC,IAAAvK,EAAA,IAACe,EAAA,CACC,IAAKH,EACL,WAAY4E,EACZ,UAAW,yBAAyB+E,CAAQ,GAC5C,YAAY,cAGZ,SAAAvK,EAAA,IAACsK,IAAW,SAAAC,CAAoB,CAAA,CAAA,EAF3B,eAAeA,CAAQ,EAG9B,EAGImB,EAAmB,UAEpB,MAAI,CAAA,UAAU,8BACb,SAAA1L,EAAAA,IAAC2L,IAAY,YAAAZ,EAA0B,IAAI,WAAW,kCAAmB,CAAA,EACvE,SAAA/K,MAAC4L,GAAW,CAAA,OAAAd,EAAgB,EAC9B,CACF,CAAA,EAIErE,EAAsB,IAAM,CAC5B,GAAAC,GAAOC,EAAc,kBAErB,OAAA3G,EAAAA,IAAC,MAAI,CAAA,UAAU,cACb,SAAAA,EAAA,IAACU,GAAA,CACC,IAAAgG,EACA,eAAgBC,EAAc,eAC9B,KAAMA,EAAc,KACpB,WAAYnB,EACZ,kBAAmBmB,EAAc,kBACjC,YAAY,kCAAA,CAAA,EAEhB,CAGN,EAEA,OAEI1G,EAAA,KAAA2C,WAAA,CAAA,SAAA,CAAA5C,EAAAA,IAAC,OAAI,UAAU,yBACb,SAACC,EAAA,KAAA,MAAA,CAAI,UAAU,kCACb,SAAA,CAACD,EAAA,IAAA,MAAA,CAAI,UAAU,+CACb,SAACA,EAAAA,IAAA6L,GAAA,CAAa,QAASC,GAAY,OAAQ,GAAAtG,EAAQ,KAAAkF,EAAY,QAAAM,CAAkB,CAAA,EACnF,EACA/K,EAAAA,KAAC,MAAI,CAAA,UAAU,4BACb,SAAA,CAACD,EAAA,IAAA,KAAA,CAAG,UAAU,gDAAiD,SAAK0K,EAAA,EACnEU,EAAc,EACfnL,EAAAA,KAAC,MAAI,CAAA,UAAU,qCACZ,SAAA,CAAYoL,EAAA,EACZE,EAAc,EACdC,EAAa,CAAA,EAChB,EACAvL,EAAAA,KAAC,MAAI,CAAA,UAAU,uBACZ,SAAA,CAAoBwG,EAAA,EACpBiF,EAAiB,CAAA,CACpB,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CACF,CACF,CAAA,EACA1L,EAAA,IAAC0J,GAAA,CACC,SAAApH,CAAA,CACF,EACAtC,EAAA,IAACqJ,GAAA,CACC,SAAA/G,CAAA,CAAA,CACF,EACF,CAEJ,EChKMyJ,GAAkB,CAAC,CAAE,SAAAzJ,EAAU,WAAA0J,KAEjC/L,EAAA,KAAC2I,EAAQ,CAAA,OAAO,mBACb,SAAA,CACCoD,GAAA/L,EAAA,KAAC,MAAI,CAAA,UAAU,sBACb,SAAA,CAAAD,EAAAA,IAAC,MAAG,SAA2B,6BAAA,CAAA,EAC9BgM,CAAA,EACH,EAEFhM,MAACyK,IAAS,SAAAnI,CAAoB,CAAA,CAAA,EAChC,EAIJyJ,GAAgB,UAAY,CAC1B,WAAYtM,EAAU,QACtB,SAAUC,CACZ,ECrBA,MAAeuM,GAAAxM,EAAU,MAAM,CAC7B,GAAIA,EAAU,OAAO,WACrB,KAAMA,EAAU,OAAO,UACzB,CAAC,ECAD,MAAMyM,WAAuBxQ,GAAM,SAAU,CAC3C,oBACEyQ,GAAAnM,EAAAA,IAAC,OAAK,CAAA,UAAU,iBACb,SAAAmM,EAAc,IADqB,EAAA,iBAAiBA,EAAc,EAAE,EAEvE,EAGF,QAAU,CACR,aACG,MAAI,CAAA,UAAU,UACb,SAACnM,EAAAA,IAAA,MAAA,CAAI,UAAU,gBACZ,SAAA,KAAK,MAAM,eAAe,IAAUoM,GAAA,KAAK,oBAAoBA,CAAE,CAAC,CACnE,CAAA,EACF,CAAA,CAGN,CAEAF,GAAe,UAAY,CACzB,eAAgBzM,EAAU,QAAQwM,EAAkB,CACtD,ECvBA,MAAeI,GAAA5M,EAAU,MAAM,CAC7B,MAAOA,EAAU,OACjB,MAAOA,EAAU,QAAQwM,EAAkB,CAC7C,CAAC,ECEKK,GAAuB,CAAC,CAAE,eAAgB,CAAE,MAAAC,EAAO,MAAAC,CAAA,EAAS,WAAAR,KAAiB,CACjF,MAAMS,EAAc,IACdF,EAAQ,EACH,GAAGA,CAAK,IAAIG,EAAU,YAAaH,CAAK,EAAE,aAAa,GAEvD,GAKT,OAAAtM,EAAA,KAAC2I,EAAA,CACC,WAAU,GACV,OAAO,kBACP,OAAM,GAEN,SAAA,CAAA5I,EAAA,IAACoI,EAAA,CACC,QAASqE,EAAY,EACrB,OAAO,kBACP,WAAAT,EACD,SAAA,aAAA,CAED,QAEC9D,EACC,CAAA,SAAAlI,EAAA,IAACkM,GAAA,CACC,eAAgBM,CAAA,CAAA,CAEpB,CAAA,CAAA,CAAA,CACF,CAEJ,EAEAF,GAAqB,UAAY,CAC/B,eAAgBD,GAChB,WAAY5M,EAAU,OACxB,ECxCA,MAAekN,GAAAlN,EAAU,MAAM,CAC7B,GAAIA,EAAU,OAAO,WACrB,KAAMA,EAAU,OAAO,UACzB,CAAC,ECAD,MAAMmN,WAAyBlR,GAAM,SAAU,CAC7C,sBACEmR,GAAA7M,EAAAA,IAAC,OAAK,CAAA,UAAU,iBACb,SAAA6M,EAAgB,IADmB,EAAA,mBAAmBA,EAAgB,EAAE,EAE3E,EAGF,QAAU,CACR,aACG,MAAI,CAAA,UAAU,UACb,SAAC7M,EAAAA,IAAA,MAAA,CAAI,UAAU,gBACZ,SAAA,KAAK,MAAM,iBAAiB,IAAU8M,GAAA,KAAK,sBAAsBA,CAAE,CAAC,CACvE,CAAA,EACF,CAAA,CAGN,CAEAF,GAAiB,UAAY,CAC3B,iBAAkBnN,EAAU,QAAQkN,EAAoB,CAC1D,ECtBA,MAAeI,GAAAtN,EAAU,MAAM,CAC7B,MAAOA,EAAU,OACjB,MAAOA,EAAU,QAAQkN,EAAoB,CAC/C,CAAC,ECCKK,GAAyB,CAAC,CAAE,iBAAkB,CAAE,MAAAT,EAAO,MAAAC,CAAA,EAAS,WAAAR,KAAiB,CACrF,MAAMS,EAAc,IACdF,EAAQ,EACH,GAAGA,CAAK,IAAIG,EAAU,mBAAoBH,CAAK,EAAE,aAAa,GAE9D,GAKT,OAAAtM,EAAA,KAAC2I,EAAA,CACC,WAAU,GACV,OAAO,oBACP,OAAM,GAEN,SAAA,CAAA5I,EAAA,IAACoI,EAAA,CACC,QAASqE,EAAY,EACrB,OAAO,oBACP,WAAAT,EACD,SAAA,mBAAA,CAED,QAEC9D,EACC,CAAA,SAAAlI,EAAA,IAAC4M,GAAA,CACC,iBAAkBJ,CAAA,CAAA,CAEtB,CAAA,CAAA,CAAA,CACF,CAEJ,EAEAQ,GAAuB,UAAY,CACjC,iBAAkBD,GAAsB,WACxC,WAAYtN,EAAU,OACxB,EAEAuN,GAAuB,aAAe,CACpC,iBAAkB,CAAA,CACpB,ECrCA,MAAMC,GAAsBnJ,GAAU,CAC9B,KAAA,CAACoJ,EAAkBC,CAAmB,EAAIpR,WAAS,CAAC+H,EAAM,WAAW,CAAC,EACtE,CAACsJ,EAAUC,CAAW,EAAItR,EAAAA,SAAS+H,EAAM,QAAQ,EAEjDwJ,EAAgB,SAAY,CAC5B,GAAA,CACI,MAAAC,EAAW,MAAMlI,EAAI,IAAI,CAC7B,IAAKmI,GAAkB1J,EAAM,UAAU,EACvC,OAAQ,CACN,KAAMsJ,CAAA,CACR,CACD,EAEDD,EAAoB,CAAC,GAAGD,EAAkBK,EAAS,KAAK,SAAS,CAAC,EACtDF,EAAAE,EAAS,KAAK,QAAQ,QAC3B3J,EAAG,CACV,QAAQ,MAAMA,CAAC,CAAA,CAEnB,EAEM6I,EAAc,CAAC,CAAE,gBAAAgB,KACdA,EAAkB,EAAI,GAAGA,CAAe,IAAIf,EAAU,OAAQe,CAAe,EAAE,YAAa,CAAA,GAAK,GAGpGC,EAA0BR,GACvBA,EAAiB,QAASS,GACxB,CACL,GAAGA,EAAY,OAAQC,GAAS,CAACA,EAAK,SAAS,EAC/C,GAAGD,EAAY,OAAQC,GAASA,EAAK,SAAS,CAChD,CACD,EAID,OAAA3N,EAAA,KAAC2I,EAAA,CACC,WAAU,GACV,SAAQ,GACR,OAAO,eACP,OAAM,GAEN,SAAA,CAAA5I,EAAA,IAACoI,EAAA,CACC,QAASqE,EAAY3I,CAAK,EAC1B,OAAO,eACP,WAAYA,EAAM,WACnB,SAAA,cAAA,CAED,QAECoE,EACC,CAAA,SAAAlI,EAAA,IAAC6N,GAAA,CACC,UAAWH,EAAuBR,CAAgB,EAClD,WAAYpJ,EAAM,UAAA,CAAA,EAEtB,EAEC9D,EAAA,IAAAuI,GAAA,CAAe,KAAM6E,EAAU,WAAYE,CAAe,CAAA,CAAA,CAAA,CAC7D,CAEJ,EAEAL,GAAmB,UAAY,CAC7B,gBAAiBxN,EAAU,OAAO,WAClC,YAAaA,EAAU,QAAQqO,EAAkB,EAAE,WACnD,WAAYrO,EAAU,OAAO,WAC7B,SAAUA,EAAU,OACpB,WAAYA,EAAU,OACxB,EAEAwN,GAAmB,aAAe,CAChC,gBAAiB,EACjB,YAAa,CAAA,CACf,EC9EA,MAAMc,WAAoBrS,GAAM,SAAU,CACxC,YAAc,CAACpK,EAAO0c,EAAW,CAAA,EAAIC,WAClC,MACC,CAAA,SAAA,CAAAjO,EAAAA,IAAC,QAAK,UAAU,kBACb,SADoC1O,CAAA,EAAA,SAASA,CAAK,EAErD,EACC0c,EAAS,SAAWC,EAEhBjO,EAAA,IAAA,OAAA,CAAK,UAAU,iBAA8C,SAAxB,cAAA,EAAA,UAAU1O,CAAK,OAErD,EAGE0c,EAAS,IAAKE,GACXlO,EAAA,IAAA,OAAA,CAAK,UAAU,iBACb,SADmCkO,CAAA,EAAA,UAAU5c,CAAK,IAAI4c,CAAM,EAE/D,CACD,CAfC,CAAA,EAAA,SAAS5c,CAAK,EAiBxB,EAGF,eAAiB,UAEZ,MAAI,CAAA,UAAU,gBAAiB,SAAK,KAAA,YAAY,eAAe,EAAE,EAItE,aAAe,UACL,MAAI,CAAA,UAAU,gBAAiB,SAAK,KAAA,YAAY,QAAQ,EAAE,EAGpE,QAAU,CACF,KAAA,CAAE,SAAA6c,EAAU,OAAAC,EAAQ,kBAAmBC,EAAkB,EAAO,EAAA,KAAK,MAAM,aAEjF,OACGpO,EAAAA,KAAA,MAAA,CAAI,GAAG,gBAAgB,UAAU,UAC/B,SAAA,CAAAkO,EACG,KAAK,eAAe,EACpB,OAAO,KAAKE,CAAe,EAAE,IAAK/c,GAClC,KAAK,YACH+c,EAAgB/c,CAAK,EAAE,WACvB+c,EAAgB/c,CAAK,EAAE,SACvB+c,EAAgB/c,CAAK,EAAE,uBAAA,CAE3B,EACD8c,EAAS,KAAK,eAAiB,EAAA,EAClC,CAAA,CAGN,CClDA,MAAeE,GAAA7O,EAAU,MAAM,CAC7B,kBAAmBA,EAAU,OAAO,WACpC,SAAUA,EAAU,KACpB,OAAQA,EAAU,IACpB,CAAC,ECCK8O,GAAsBzK,GAAU,CACpC,SAAS2I,EAAa+B,EAAa,CACjC,MAAMC,EAAO,OAAO,KAAKD,EAAY,mBAAqB,CAAA,CAAE,EAEtDE,EAAKD,EAAK,SAAS,IAAI,EACvBlC,EAAQmC,EAAKD,EAAK,OAAS,EAAIA,EAAK,OAE1C,OAAID,EAAY,SACP,WACEjC,EAAQ,EACV,GAAGA,CAAK,IAAIG,EAAU,QAASH,CAAK,EAAE,YAAa,CAAA,IACxDA,GAASmC,EAAK,QAAU,EAC1B,IAAIA,EAAK,OAAS,EAAE,GACXA,EACF,OAEA,EACT,CAIA,OAAAzO,EAAA,KAAC2I,EAAA,CACC,WAAU,GACV,OAAO,eACP,OAAM,GAEN,SAAA,CAAA5I,EAAA,IAACoI,EAAA,CACC,QAASqE,EAAY3I,EAAM,WAAW,EACtC,OAAO,eACP,WAAYA,EAAM,WACnB,SAAA,cAAA,CAED,QAECoE,EACC,CAAA,SAAAlI,EAAA,IAAC+N,IAAY,aAAcjK,EAAM,YAAa,CAChD,CAAA,CAAA,CAAA,CACF,CAEJ,EAEAyK,GAAmB,UAAY,CAC7B,YAAaD,GACb,WAAY7O,EAAU,OACxB,ECjDA,MAAekP,GAAAlP,EAAU,MAAM,CAC7B,MAAOA,EAAU,OAAO,WACxB,OAAQA,EAAU,OAAO,WACzB,YAAaA,EAAU,OAAO,UAChC,CAAC,ECCD,SAASmP,GAAY9K,EAAO,CACpB,KAAA,CAAE,MAAAyI,GAAUzI,EAGhB,OAAA9D,EAAA,IAAC,OAAI,UAAU,SACb,eAAC,MAAI,CAAA,UAAU,YACb,SAAAA,EAAA,IAAC,MAAI,CAAA,UAAU,iBACb,SAACA,EAAA,IAAA,MAAA,CAAI,UAAU,wBAAyB,SAAA0M,EAAU,gCAAiCH,CAAK,CAAA,CAAE,CAC5F,CAAA,CAAA,CACF,CACF,CAAA,CAEJ,CAEA,SAASsC,GAAwB/K,EAAO,CACtC,KAAM,CAAE,MAAAyI,EAAO,WAAAuC,EAAY,OAAAhE,CAAW,EAAAhH,EACtC,OAEI9D,EAAA,IAAA4C,WAAA,CAAA,SAAA3C,EAAAA,KAAC,MAAI,CAAA,UAAU,6DACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,SACb,SAAA,CAAAD,EAAAA,IAAC,OAAI,UAAU,wCACb,SAACA,EAAA,IAAA4O,GAAA,CAAW,MAAArC,CAAc,CAAA,EAC5B,EACAvM,EAAAA,IAAC,OAAI,UAAU,8BACb,eAAC,MAAI,CAAA,UAAU,uBACb,SAAAA,EAAAA,IAAC,MAAI,CAAA,UAAU,sCACb,SAACA,EAAAA,IAAA+O,GAAA,CAAc,YAAaC,GAAM,aAAa,eAAgB,MAAOF,CAAY,CAAA,CACpF,CAAA,CACF,CAAA,CACF,CAAA,CAAA,EACF,QACC,KAAG,EAAA,EACJ7O,EAAAA,KAAC,MAAI,CAAA,UAAU,kDAAkD,SAAA,CAAA,KAC5DsM,EAAM,IAAEG,EAAU,SAAUH,CAAK,EAAE,kDAAgDzB,EAAO,SAAA,CAC/F,CAAA,CAAA,CAAA,CACF,CACF,CAAA,CAEJ,CAEA+D,GAAuB,UAAY,CACjC,uBAAwBF,EAC1B,ECxCA,MAAMM,GAAgD,CAAC,CAAE,WAAApO,KAAiB,CAClE,MAAAM,EAAcC,aAAWC,CAAW,EAEpC,CAAC6N,EAAQC,CAAS,EAAIpT,EAAAA,SAAS,CAAC,EAEhCqT,EAAc,IAAgB,MAAM,KAAK,CAAE,OAAQ,CAAE,EAAG,CAAC9jB,EAAGe,IAAMA,EAAI,CAAC,EAEvEgjB,EAAYvE,GACZ3J,EAAY,SACPM,GAAoB,EAClBN,EAAY,WAAaS,EAAW,SACtC0N,GAAqBzO,EAAYiK,CAAM,EAEvCyE,GAA2B1O,EAAYiK,CAAM,EAIlD0E,EAAc1E,GAEhB9K,EAAA,IAAC,IAAA,CACC,UAAW,sBAAsB8K,CAAM,GAEvC,aAAc,IAAM2E,EAAe3E,CAAM,EACzC,aAAc4E,EACd,KAAML,EAASvE,CAAM,EACrB,cAAa3J,EAAY,WAAaS,EAAW,SAAW,MAAQ,OACpE,cAAa,QAAQkJ,CAAM,GAE3B,SAAA9K,EAAA,IAAC,KAAE,UAAW,cAAckP,EAASpE,EAAS,UAAY,EAAE,EAAI,CAAA,CAAA,EAP3D,QAAQA,CAAM,EAQrB,EAIE2E,EAAkB3E,GAAyB,CAC/CqE,EAAUrE,CAAM,CAClB,EAEM4E,EAAmB,IAAY,CACnCP,EAAU,CAAC,CACb,EAGE,OAAAnP,EAAA,IAAC,MAAI,CAAA,UAAU,cACZ,SAAAoP,IAAc,IAAYO,GAAAH,EAAWG,CAAI,CAAC,CAC7C,CAAA,CAEJ,ECnDMC,GAA2B,CAAC,CAAE,SAAU,CAAE,GAAApK,EAAI,QAAAwF,EAAS,KAAAN,CAAK,KAG5DzK,EAAA,KAAA2C,WAAA,CAAA,SAAA,CAAA5C,EAAAA,IAAC,OAAI,UAAU,8CACb,SAACC,EAAA,KAAA,MAAA,CAAI,UAAU,oCACb,SAAA,CAACD,EAAA,IAAA,MAAA,CAAI,UAAU,cACb,SAACA,EAAAA,IAAA6L,GAAA,CAAa,QAASC,GAAY,OAAQ,GAAAtG,EAAQ,KAAAkF,EAAY,QAAAM,CAAkB,CAAA,EACnF,QACC,MAAI,CAAA,UAAU,YACb,SAAC/K,EAAA,KAAA,IAAA,CAAE,UAAU,8CAA8C,SAAA,CAAA,sCAAoCD,EAAA,IAAA,OAAA,CAAK,UAAU,qBAAsB,SAAK0K,EAAA,EAAO,GAAA,CAAA,CAAC,CACnJ,CAAA,CAAA,CAAA,CACF,CACF,CAAA,EACAzK,EAAAA,KAAC,MAAI,CAAA,UAAU,gDACb,SAAA,CAACD,EAAAA,IAAAiP,GAAA,CAAe,WAAYzJ,CAAI,CAAA,EAChCvF,EAAAA,KAAC,IAAE,CAAA,UAAU,sDAAsD,SAAA,CAAA,wBAAsByK,CAAA,CAAK,CAAA,CAAA,CAChG,CAAA,CAAA,EACF,ECfEmF,GAAwD,CAAC,CAAE,SAAAnS,KAAe,CAC9E,MAAMoS,EAAe,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAACxkB,EAAG,WAC/C,MACC,CAAA,SAAA,CAAC2U,EAAAA,KAAA,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAD,EAAAA,IAAC,OAAI,UAAU,yBACb,eAAC,MAAI,CAAA,UAAU,gDAAgD,CACjE,CAAA,EACAA,EAAAA,IAAC,OAAI,UAAU,iCACb,eAAC,MAAI,CAAA,UAAU,uCAAuC,CACxD,CAAA,EACAC,EAAAA,KAAC,MAAI,CAAA,UAAU,8BACb,SAAA,CAACD,EAAAA,IAAA,MAAA,CAAI,UAAU,uDAAwD,CAAA,EACvEA,EAAAA,IAAC,MAAI,CAAA,UAAU,6DAA8D,CAAA,CAAA,EAC/E,EACAC,EAAAA,KAAC,MAAI,CAAA,UAAU,iCACb,SAAA,CAAAD,EAAA,IAAC,MAAA,CACC,UAAU,kGAAA,CACZ,EACAA,EAAA,IAAC,MAAA,CACC,UAAU,4EAAA,CACZ,EACAA,EAAA,IAAC,MAAA,CACC,UAAU,kGAAA,CACZ,EACAA,EAAA,IAAC,MAAA,CACC,UAAU,4EAAA,CAAA,CACZ,EACF,EAEAC,EAAAA,KAAC,MAAI,CAAA,UAAU,iCACb,SAAA,CAAAD,EAAA,IAAC,MAAA,CACC,UAAU,kGAAA,CACZ,EACAA,EAAA,IAAC,MAAA,CACC,UAAU,4EAAA,CACZ,EACAA,EAAA,IAAC,MAAA,CACC,UAAU,kGAAA,CACZ,EACAA,EAAA,IAAC,MAAA,CACC,UAAU,4EAAA,CAAA,CACZ,CACF,CAAA,CAAA,EACF,EAEAC,EAAAA,KAAC,MAAI,CAAA,UAAU,8BACb,SAAA,CAACD,EAAAA,IAAA,MAAA,CAAI,UAAU,+BAAgC,CAAA,EAC/CA,EAAAA,IAAC,OAAI,UAAU,0BACb,eAAC,MAAI,CAAA,UAAU,sCAAuC,CAAA,CACxD,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,EAhDQ,CAiDV,CACD,EAGC,OAAAC,EAAA,KAAC,MAAI,CAAA,UAAU,4BACb,SAAA,CAACD,EAAA,IAAA,MAAA,CAAI,UAAU,uBAAwB,SAAa8P,EAAA,EACnD9P,EAAAA,IAAA,MAAA,CAAI,UAAU,8BACZ,SAAAtC,CACH,CAAA,CAAA,EACF,CAEJ,EC5DaqS,GAAkD,CAAC,CAAE,KAAAC,EAAM,SAAAtS,EAAU,QAAAoF,KAChF7C,EAAA,KAAC,MAAI,CAAA,UAAU,qBACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,UACb,SAAA,CAACD,EAAA,IAAA,MAAA,CAAI,UAAU,eACZ,SACHgQ,EAAA,EACChQ,EAAAA,IAAA,MAAA,CAAI,UAAU,kBACZ,SAAAtC,CACH,CAAA,CAAA,EACF,EAEEoF,IAAY,QACV9C,EAAAA,IAAC,MAAI,CAAA,UAAU,kBACZ,SACH8C,CAAA,CAAA,CAAA,EAGN,ECvBWmN,GAAuD,CAAC,CAAE,SAAAvS,CAAA,IACpEsC,EAAA,IAAA,MAAA,CAAI,UAAU,wCAAyC,SAAAtC,EAAS,ECHpDwS,GAAA,ywDCOFC,GAAsD,CAAC,CAAE,sBAAAC,KAA4B,CAC1F,MAAAC,EAAYjP,aAAWC,CAAW,EAEjC,OAAAgP,EAAU,WAAazO,EAAW,UAAYyO,EAAU,WAAazO,EAAW,cAEnF3B,EAAAA,KAAC,IAAE,CAAA,SAAA,CAAA,qVAImF,IACpFD,EAAA,IAAC,IAAA,CACC,KAAMoQ,EACN,OAAO,SAAS,IAAI,aACrB,SAAA,oBAAA,CAED,EAAI,GACN,CAAA,CAAA,SAGC,IAAE,CAAA,SAAA,CAAA,wXAKgC,IACjCpQ,EAAA,IAAC,IAAA,CACC,KAAMoQ,EACN,OAAO,SACP,IAAI,aACL,SAAA,oBAAA,CAED,EAAI,GAAA,EACN,CAEN,ECnCaE,GAAwC,CAAC,CAAE,SAAA5S,CAAS,IAC9DsC,EAAA,IAAA,IAAA,CAAE,UAAU,kFAAkF,YAAU,gBACtG,SAAAtC,CACH,CAAA,ECIW6S,GAA+CzM,GAAU,CACpE,MAAMkM,EAAQhQ,EAAA,IAAA,MAAA,CAAI,IAAKkQ,GAAqB,IAAI,yBAAyB,EACnEpN,EAAW9C,EAAAA,IAAAsQ,GAAA,CAAW,SAAqB,uBAAA,CAAA,EAEjD,OACGtQ,EAAA,IAAA6P,GAAA,CACC,SAAC5P,EAAAA,KAAA8P,GAAA,CAAgB,KAAAC,EAAY,QAAAlN,EAC3B,SAAA,CAAA9C,EAAAA,IAACiQ,IAAW,SAEZ,wBAAA,CAAA,EACAjQ,MAACmQ,GAAmB,CAAA,GAAGrM,CAAO,CAAA,CAAA,CAAA,CAChC,CACF,CAAA,CAEJ,ECjBa0M,GAAsD,CAAC,CAAE,eAAAC,EAAgB,4BAAAC,KAAkC,CACtH,MAAMC,EACH3Q,EAAA,IAAA,MAAA,CAAI,IAAK4Q,GAAS,IAAI,yBAAyB,EAG5CC,EACH7Q,EAAAA,IAAA,OAAA,CAAK,SAEN,qIAAA,CAAA,EAIA,OAAAC,EAAA,KAAC,MAAI,CAAA,UAAU,6CACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,gDACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,oDACb,SAAA,CAAAD,EAAAA,IAAC,OAAI,SAAkB,oBAAA,CAAA,EACtBA,EAAA,IAAA8Q,GAAA,CAAQ,OAAQH,EAAiB,QAASE,CAAkB,CAAA,CAAA,EAC/D,EACA5Q,EAAAA,KAAC,MAAI,CAAA,UAAU,uEAAuE,SAAA,CAAA,iBACrEyQ,CAAA,CACjB,CAAA,CAAA,EACF,EACA1Q,MAAC,OAAI,UAAU,sCAAsC,wBAAyB,CAAE,OAAQyQ,EAAkB,CAAA,CAAA,EAC5G,CAEJ,EAEAD,GAAkB,UAAY,CAC5B,eAAgB/Q,EAAU,OAAO,WACjC,4BAA6BA,EAAU,OAAO,UAChD,ECzBA,MAAMsR,GAAY,CAAC,CAAE,SAAArT,EAAU,MAAAsT,KAE1BhR,EAAA,IAAA,MAAA,CACC,SAACC,EAAAA,KAAA,MAAA,CAAI,UAAU,yBACb,SAAA,CAACD,EAAAA,IAAA,MAAA,CAAI,UAAU,qEACb,SAAAA,EAAA,IAAC,QAAK,UAAU,mBACb,WACH,CACF,CAAA,EACCA,EAAAA,IAAA,MAAA,CAAI,UAAU,iCACZ,SAAAtC,CACH,CAAA,CAAA,CAAA,CACF,CACF,CAAA,EAIJqT,GAAU,UAAY,CACpB,SAAUtR,EAAU,KACpB,MAAOA,EAAU,OAAO,UAC1B,EAEA,MAAMwR,GAAWnN,GAAU,CACnB,MAAA3C,EAAcC,aAAWC,CAAW,EACpC6P,EAAoB,IAAM/P,EAAY,WAAaS,EAAW,cAE9DuP,EAA2B,IACxB,CAAC,CAACrN,EAAM,wBAA0BpC,EAAmBP,CAAW,EAGnEiQ,EAA0BD,EAA6B,EAAArN,EAAM,uBAAuB,2BAA6B,KAEjHuN,EAAgB,IACb,OAAO,QAAQrC,GAAM,kBAAkB,EAAE,IAAI,CAAC,CAAC/lB,EAAK+nB,CAAK,IAAM,CACpE,MAAMM,EAAaxN,EAAM,SAAS,aAAa7a,CAAG,EAC5CsoB,EAAgB7P,EAAmBP,CAAW,GAAKA,EAAY,QAErE,aACG,MACC,CAAA,SAAAnB,EAAA,IAAC+Q,IAAU,MAAAC,EACT,SAAAhR,EAAA,IAAC4L,IAAW,OAAQ0F,EAAY,QAAS,CAACC,EAAe,UAAU,eAAA,CAAgB,CACrF,CAAA,GAHQ,UAAUtoB,CAAG,EAIvB,CAAA,CAEH,EAGGuoB,EAAgB,IACpBxR,EAAA,IAAC,OAAI,UAAU,+DACZ,WAAM,cACT,EAGIyR,EAAoB,IAErBxR,EAAAA,KAAA2C,EAAA,SAAA,CAAA,SAAA,CAAc4O,EAAA,EACdxR,EAAAA,IAAA0R,GAAA,CAAY,QAAS5N,EAAM,OAAS,CAAA,CAAA,EACvC,EAGI6N,EAAgB,IAChBjQ,EAAmBP,CAAW,GAAKA,EAAY,SAAWA,EAAY,gBACjEsQ,EAAkB,EAElBzR,MAACuQ,GAAe,CAAA,GAAGzM,CAAO,CAAA,EAI/B8N,EAAwB9G,GAAW,CACvC,MAAM+G,KAAgB/N,EAAM,SAAS,cAAcgH,CAAM,GAAK,GAAKhH,EAAM,SAAS,cAAgB,GAAK,KAAK,QAAQ,EAC9GgO,EAAU,CACd,MAAO,GAAGD,CAAU,GACtB,EAEE,OAAA5R,EAAA,KAAC,MAAI,CAAA,UAAU,sCACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,4DAA6D,SAAA,CAAA6K,EAAO,OAAA,EAAK,EACxF9K,EAAAA,IAAC,MAAI,CAAA,UAAU,wBACb,SAAAA,EAAA,IAAC,MAAA,CACC,UAAU,wBACV,SAAS,IACT,gBAAe6R,EACf,gBAAc,IACd,iBAAgB,GAAGA,CAAU,WAC7B,gBAAc,MAEd,SAAC7R,EAAA,IAAA,MAAA,CAAI,UAAU,iBAAiB,MAAO8R,CAAS,CAAA,CAAA,CAAA,EAEpD,EACA7R,EAAAA,KAAC,MAAI,CAAA,UAAU,uEACZ,SAAA,CAAA4R,EAAW,GAAA,CACd,CAAA,CAAA,EACF,CAEJ,EAEME,EAAwB,IACrB,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EAAE,IAAKjH,SAEvB,MACE,CAAA,SAAA8G,EAAqB9G,CAAM,CADpB,EAAA,UAAUA,CAAM,EAE1B,CAEH,EAGGkH,EAA0B,IAAM,CAChC,GAAAlO,EAAM,SAAS,eAEf,OAAA9D,EAAA,IAACwQ,GAAA,CACC,eAAgB1M,EAAM,SAAS,eAC/B,4BAA6BA,EAAM,SAAS,2BAAA,CAC9C,CAGN,EAEA,OAEI7D,EAAA,KAAA2C,WAAA,CAAA,SAAA,CAAA5C,EAAA,IAAC,MAAI,CAAA,UAAU,6CACZ,SAAA8D,EAAM,cACT,EAEC3C,EAAY,SACVlB,OAAA,MAAA,CAAI,UAAU,gCACb,SAAA,CAAAD,EAAAA,IAAC,OAAI,UAAU,cACb,eAAC,IAAE,CAAA,UAAU,8DAA8D,CAC7E,CAAA,EACAC,EAAAA,KAAC,MAAI,CAAA,UAAU,YAAY,SAAA,CAAA,qHAEhBD,EAAA,IAAA,IAAA,CAAE,KAAK,SAAS,SAAK,QAAA,EAAI,8BAAA,CACpC,CAAA,CAAA,EACF,EACFC,EAAAA,KAAC,MAAI,CAAA,UAAU,oEACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,oDACb,SAAA,CAACD,EAAA,IAAA,MAAA,CAAI,UAAU,uBAAuB,SAAc,iBAAA,EACnDA,EAAA,IAAA,MAAA,CAAI,UAAU,oDACb,SAACA,EAAA,IAAA,MAAA,CAAI,UAAW,qBAAqB8D,EAAM,SAAS,aAAa,cAAc,EAAI,CAAA,EACrF,EACC9D,EAAA,IAAA,MAAA,CAAI,UAAU,sDACZ,SAAM8D,EAAA,SAAS,aAAe,EAAI,GAAGA,EAAM,SAAS,MAAM,YAAc,GAC3E,EACA7D,EAAAA,KAAC,MAAI,CAAA,UAAU,sCACZ,SAAA,CAAA6D,EAAM,SAAS,aAAa,0BAAA,EAC/B,EAEC9D,EAAA,IAAA,MAAA,CAAI,UAAU,eACZ,YACH,CAAA,CAAA,EACF,EACCA,EAAA,IAAA,MAAA,CAAI,UAAU,oDACZ,aACH,EACCgS,EAAwB,EACxBd,IAAsB,WAAQtB,GAAyB,CAAA,SAAU9L,EAAM,QAAU,CAAA,CAAA,EACpF,EAEA9D,EAAAA,IAAC,KAAG,CAAA,UAAU,kCAAmC,CAAA,EAEhD2R,EAAc,EAEdR,EACC,GAAAnR,EAAA,IAAC6O,GAAA,CACC,MAAOuC,GAAyB,MAChC,WAAYA,GAAyB,YACrC,OAAQA,GAAyB,MAAA,CAAA,CACnC,EACJ,CAEJ,EAEAH,GAAQ,UAAY,CAClB,uBAAwBtC,GACxB,QAASlP,EAAU,OAAO,WAC1B,SAAUsI,GAAoB,WAC9B,sBAAuBtI,EAAU,OAAO,WACxC,cAAeA,EAAU,KACzB,cAAeA,EAAU,KACzB,QAASA,EAAU,QAAQwS,EAAW,EACtC,SAAUvS,EAAc,UAC1B,EC3LA,MAAMwS,GAAqB,CAAC,CAAE,MAAA3F,KAAyD,CAC/E,MAAA4F,EAAc5F,EAAQ,EAAI,EAAIA,EAC9B6F,EAAkBD,IAAgB,EAAI,QAAU,UAGpD,OAAAnS,EAAAA,IAAC,MAAI,CAAA,UAAU,iCACb,SAAAC,EAAA,KAAC,MAAA,CACC,UAAU,uBACV,eAAY,GACZ,gBAAc,SACd,iBAAe,OACf,MAAM,2DAEL,SAAA,CAAAkS,EAAY,IAAEC,EAAgB,IAACpS,EAAAA,IAAC,IAAE,CAAA,UAAU,wBAAyB,CAAA,CAAA,CAAA,CAAA,EAE1E,CAEJ,EAEAkS,GAAmB,UAAY,CAC7B,MAAOzS,EAAU,OAAO,UAC1B,ECZO,SAAS4S,GAAmB/P,EAAU,CACpC,MAAA,CACL,QAAS,yBACT,QAAS,4CACT,KAAM,mGACJA,EAAS,aACb,CACF,CAEa,MAAAgQ,GAAoB,MAAOC,EAAKC,KAC1B,MAAMnN,EAAI,IAAI,CAAE,IAAAkN,EAAK,OAAQ,CAAE,eAAgBC,CAAa,EAAG,GAChE,KAGX,SAASC,GAAe3O,EAAO,CAC9B,MAAA4O,EAAgB5O,EAAM,eAAiBwO,GACvC,CAAE,SAAAK,EAAU,SAAArQ,EAAU,sBAAA8N,CAA0B,EAAAtM,EAChD3C,EAAcC,aAAWC,CAAW,EAEpC,CAACuR,EAAoBC,CAAqB,EAAI9W,EAAAA,SAAS,EAAE,EAGzD+W,EAAavP,EAAO,OAAA,EAAE,EAEtBwP,EAA8B,IAAM,CAElC,MAAAC,EAAWJ,GAAsB,CAAC,EAClCK,GAAgB,EAAE,eAAiBD,GACnCE,GAAiB,EAAE,WAAaF,GAEtC,OAAOC,IAAiBC,EAC1B,EAEMC,EAAmBC,GAAaA,GAAU,QAAQA,EAAS,QAAQ,OAAS,CAAC,GAAG,GAEhFC,EAA4B/U,GAAW,CAC3CuU,EAAsBvU,CAAM,CAC9B,EACMgV,EAAgBtT,EAAAA,IAACuT,GAAuB,CAAA,mBAAoBF,CAA0B,CAAA,EAEtFG,EAAoB,IAAI,gBAAgBZ,CAAkB,EAAE,SAAS,EACrEa,EAAiC,IAAM,GAAGC,GAAoBpR,EAAS,EAAE,CAAC,IAAIkR,CAAiB,GAG/FG,EAAe,CAAC,CAAE,UAAWnB,KAC1BE,EAAce,EAA+B,EAAGjB,CAAY,EAG/D,CAAE,KAAArlB,EAAM,cAAAymB,EAAe,UAAAvZ,CAAA,EAAckF,GAAiB,CAC1D,SAAU,CAAC,aAAcqT,CAAkB,EAC3C,QAASe,EACT,iBAAkBR,CAAA,CACnB,EAEKzc,EAAQvJ,GAAM,OAAS2lB,EAAW,QACxCA,EAAW,QAAUpc,EACf,MAAAmd,EAAiBnd,EAAM,OAAO,OAAO,EAAE,IAAS/E,GAAAA,GAAG,OAAO,EAAE,KAAK,EAEjEwF,GADWT,EAAM,OAAS,EAAIA,EAAMA,EAAM,OAAS,CAAC,EAAI,CAAC,IACjC,cACxBod,EAAqB3c,GAAe,CAACkD,EAErC0Z,EAAwB,IAAM,CAC9B,GAAAhB,EAAA,GAAiC,CAAC5b,EACpC,OAAOT,EAAM,KAAU/E,GAAAA,GAAG,0BAA0B,CAExD,EAGA,SAASqiB,GAAW,CACZ,MAAAC,EAAa,GAAGtB,EAAS,YAAY,IAAIjG,EAAU,SAAUiG,EAAS,YAAY,CAAC,GACzF,OAAIxR,EAAY,QACP,GAAG8S,CAAU,KAAKtB,EAAS,oBAAoB,WAE/CsB,CACT,CAGF,SAASC,GAAsB,CACzB,GAAA/S,EAAY,WAAaS,EAAW,YAAa,CAC7C,MAAAuS,EAAU9B,GAAkB/P,CAAQ,EACpC8R,GAAkB,UAAUD,EAAQ,OAAO,YACpC,mBAAmBA,EAAQ,OAAO,CAAC,SAAS,mBAAmBA,EAAQ,IAAI,CAAC,GACzF,OAEIlU,EAAA,KAAA2C,WAAA,CAAA,SAAA,CAAA5C,EAAA,IAAC,IAAA,CACC,UAAU,wEACV,KAAMoU,GACP,SAAA,gBAAA,CAED,EACCC,EAAmB,CAAA,EACtB,CAEO,KAAA,QAAAlT,EAAY,WAAaS,EAAW,SACtCyS,EAAmB,EAGxBrU,EAAA,IAAA4C,EAAA,SAAA,CACE,eAAC0R,GAAwB,CAAA,YAAahS,EAAS,IAAK,KAAMA,EAAS,IAAA,CAAM,CAC3E,CAAA,CAEJ,CAGF,SAAS+R,GAAsB,CAE3B,OAAArU,EAAA,IAACkB,GAAA,CACC,WAAYoB,EAAS,GACrB,KAAQrC,EAAA,KAAA2C,WAAA,CAAA,SAAA,CAAA,kBAAe5C,EAAAA,IAAC,IAAE,CAAA,UAAU,aAAc,CAAA,CAAA,CAAE,CAAA,CAAA,CACtD,CAAA,CAIE,MAAAuU,GAAqB5B,GAAU,sBAAwB,EACvD6B,GAA2B,IAAOxU,EAAA,IAAAkS,GAAA,CAAmB,MAAOqC,GAAoB,EAGpF,OAAAtU,EAAA,KAAC2I,EAAA,CACC,WAAU,GACV,SAAQ,GACR,OAAO,UACP,OAAQ6L,GAAetT,CAAW,EAElC,SAAA,CAAAnB,EAAA,IAACoI,EAAA,CACC,QAAS4L,EAAQ,EACjB,iBAAkBQ,GAAyB,EAC3C,aAAexU,EAAAA,IAAA,MAAA,CAAI,UAAU,sBAAuB,aAAqB,EACzE,OAAO,UACP,UAAW0U,GAAgBvT,CAAW,EACrC,GAAG2C,EACL,SAAA,mBAAA,CAED,QAECoE,EACC,CAAA,SAAAlI,EAAA,IAACiR,GAAA,CACC,QAAS+C,EAAQ,EACjB,SAAArB,EACA,QAASkB,EACT,uBAAwBE,EAAsB,EAC9C,sBAAA3D,EACA,cAAe8D,EAAmB,EAClC,SAAA5R,EACA,cAAAgR,CAAA,CAAA,EAEJ,EAECtT,EAAA,IAAAuI,GAAA,CAAe,KAAMuL,EAAoB,WAAYF,CAAe,CAAA,CAAA,CAAA,CACvE,CAEJ,CAEAnB,GAAc,UAAY,CACxB,SAAU/S,EAAc,WACxB,SAAUqI,GAAoB,WAC9B,sBAAuBtI,EAAU,OAAO,WACxC,cAAeA,EAAU,IAC3B,ECtKa,MAAAkV,EAAgD,CAAC,CAAE,GAAAC,EAAI,MAAA5D,CAClE,IAAA/Q,EAAA,KAAC,IAAE,CAAA,UAAU,2FAA2F,KAAM2U,EAC3G,SAAA,CAAA5D,EAAM,IAAEhR,EAAA,IAAA,IAAA,CAAE,UAAU,oBAAoB,cAAW,EAAC,CAAA,CAAA,EACvD,ECcIzC,GAAc,IAAIhG,GAElBsd,GAAO,CAAC,CACZ,eAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,sBAAA5E,EACA,YAAAzC,EACA,oBAAAsH,EACA,eAAAC,EACA,YAAA1G,EACA,SAAAlM,EACA,UAAA6S,EACA,WAAAC,EACA,SAAAC,EACA,gBAAAC,CACF,IAAM,CACJ,MAAMC,EAAO,CACX,iBAAkBC,GAAiB,CAAE,SAAAH,CAAA,EAAY/S,CAAQ,EACzD,QAASmT,GAAgB,CAAE,SAAAJ,CAAA,EAAY/S,CAAQ,EAC/C,SAAU8S,EACV,UAAAD,EACA,SAAAE,EACA,gBAAAC,CACF,EAEMI,EAAwBjS,GACxB8R,EAAK,QAAgB9R,EAElB,KAGHkS,EAA4BJ,EAAK,WAAa3T,EAAW,UAAY,CAACU,EAAS,QAC/EsT,EAAyBL,EAAK,WAAa3T,EAAW,aAAe2T,EAAK,WAAa3T,EAAW,SAClGhC,EAAwB0C,EAAS,MAAQqL,GAAa,OAAS,GAAK4H,EAAK,SAE/E,OACGvV,EAAAA,IAAAvC,GAAA,CAAoB,OAAQF,GAC3B,SAACyC,MAAA6V,GAAe,SAAf,CAAwB,MAAOb,EAC9B,SAAChV,EAAAA,IAAAqB,EAAY,SAAZ,CAAqB,MAAOkU,EAC3B,SAACtV,EAAAA,KAAA,MAAA,CAAI,UAAW,iBAAiBsV,EAAK,WAAa3T,EAAW,SAAW,2BAA6B,EAAE,GAAI,GAAG,iBAC7G,SAAA,CAAA5B,MAAC,OAAI,IAAKsC,EAAS,SAAU,UAAU,cAAc,IAAI,iBAAiB,QAEzE,MAAI,CAAA,UAAU,mBACb,SAACrC,EAAA,KAAA,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAD,EAAAA,IAAC,OAAI,UAAU,4CACb,eAACwG,GAAQ,CAAA,SAAAlE,EAAoB,sBAAA1C,EAA8C,CAC7E,CAAA,EAEAK,EAAAA,KAAC,MAAI,CAAA,UAAU,2CACb,SAAA,CAAAD,EAAA,IAAC+L,GAAA,CACC,SAAAzJ,EACA,WAAYoT,EAAqB1V,MAAC2U,EAAe,CAAA,GAAImB,GAAiBxT,EAAS,IAAI,EAAG,MAAM,cAAA,CAAe,CAAE,CAAA,CAC/G,EAECsT,GACC5V,EAAA,IAACkB,GAAA,CACC,UAAU,kDACV,WAAYoB,EAAS,GACrB,YAAO,IAAE,CAAA,SAAA,CAAA,oCAAiCtC,EAAAA,IAAC,IAAE,CAAA,UAAU,aAAc,CAAA,CAAA,CAAE,CAAA,CAAA,CACzE,EAEFA,EAAA,IAACgN,GAAA,CACC,iBAAA+H,EACA,WAAYW,EAAqB1V,MAAC2U,EAAe,CAAA,GAAImB,GAAiBxT,EAAS,IAAI,EAAG,MAAM,oBAAA,CAAqB,CAAE,CAAA,CACrH,EAEC1C,GACCI,EAAA,IAACiN,GAAA,CACC,WAAY3K,EAAS,GACrB,gBAAiBA,EAAS,gBAC1B,YAAAqL,EACA,SAAUsH,EACV,WAAYS,EAAqB1V,MAAC2U,EAAe,CAAA,GAAIoB,GAAuBzT,EAAS,IAAI,EAAG,MAAM,gBAAA,CAAiB,CAAE,CAAA,CACvH,EAEFtC,EAAA,IAACuO,GAAA,CACC,YAAAC,EACA,WACEkH,EAAqB1V,MAAC2U,EAAe,CAAA,GAAIqB,GAA4B1T,EAAS,IAAI,EAAG,MAAM,wBAAA,CAAyB,CAAE,CAAA,CAE1H,EAEAtC,EAAA,IAACsM,GAAA,CACC,eAAAwI,EACA,WACEY,EAAqB1V,MAAC2U,EAAe,CAAA,GAAIsB,GAA0B3T,EAAS,IAAI,EAAG,MAAM,sBAAA,CAAuB,CAAE,CAAA,CAEtH,EAEAtC,EAAA,IAACyS,GAAA,CACC,SAAAnQ,EACA,SAAU4S,EACV,sBAAA9E,CAAA,CACF,EACCuF,GAA8B3V,EAAAA,IAAAgB,GAAA,CAAgB,UAAU,iBAAiB,WAAYsB,EAAS,EAAI,CAAA,CAAA,CACrG,CAAA,CAAA,CAAA,CACF,CACF,CAAA,CAAA,EACF,CAAA,CACF,CACF,CAAA,EACF,CAEJ,EAEAuS,GAAK,UAAY,CACf,eAAgBxI,GAChB,iBAAkBU,GAClB,aAActN,EAAU,OACxB,sBAAuBA,EAAU,OAAO,WACxC,YAAaA,EAAU,QAAQqO,EAAkB,EACjD,oBAAqBrO,EAAU,OAC/B,eAAgBwH,GAAe,WAC/B,YAAaqH,GACb,SAAU5O,EACV,UAAWD,EAAU,MAAM,OAAO,OAAOsH,EAAW,CAAC,EACrD,WAAYtH,EAAU,KACtB,SAAUA,EAAU,MAAM,OAAO,OAAOmC,CAAU,CAAC,EACnD,gBAAiBnC,EAAU,IAC7B,EAEAoV,GAAK,aAAe,CAClB,UAAW9N,GAAY,WACvB,SAAUnF,EAAW,SACrB,gBAAiB,EACnB,EC9IA,MAAMsU,GAAa,CACjB,oCAAqCC,GACrC,oCAAqCC,GACrC,oCAAqCC,GACrC,qBAAsBxB,EACxB,EAEA,SAASyB,GAA0BC,EAAc,CAC/C,OAAOL,GAAWK,EAAa,QAAQ,QAAS,EAAE,CAAC,CACrD,CAEAC,GAAc,WAAWF,EAAwB","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}