@asteby/storefront-react 0.13.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/account-server.cjs +41 -8
- package/dist/account-server.cjs.map +1 -1
- package/dist/account-server.d.cts +2 -2
- package/dist/account-server.d.ts +2 -2
- package/dist/account-server.js +42 -9
- package/dist/account-server.js.map +1 -1
- package/dist/account.cjs +3 -1
- package/dist/account.cjs.map +1 -1
- package/dist/account.d.cts +2 -2
- package/dist/account.d.ts +2 -2
- package/dist/account.js +3 -1
- package/dist/account.js.map +1 -1
- package/dist/checkout.cjs +20 -2
- package/dist/checkout.cjs.map +1 -1
- package/dist/checkout.d.cts +20 -3
- package/dist/checkout.d.ts +20 -3
- package/dist/checkout.js +20 -3
- package/dist/checkout.js.map +1 -1
- package/dist/{types-HcEUd9hW.d.cts → types-D7pVK0GK.d.cts} +5 -0
- package/dist/{types-HcEUd9hW.d.ts → types-D7pVK0GK.d.ts} +5 -0
- package/package.json +2 -2
package/dist/checkout.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/checkout/fields.tsx","../src/checkout/address-fields.tsx","../src/context.tsx","../src/locale.ts","../src/checkout/order-summary.tsx","../src/checkout/brands/logos.generated.ts","../src/checkout/brands.ts","../src/checkout/brand-mark.tsx","../src/checkout/recommend.ts","../src/checkout/delivery.ts","../src/checkout/delivery-options.tsx"],"names":["useRef","useState","useEffect","jsxs","jsx","ES","EN","Fragment","useId","fill","createContext","useContext","formatMoney","costOf","daysOf","norm","useSyncExternalStore","useMemo"],"mappings":"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","file":"checkout.cjs","sourcesContent":["/**\n * Form fields of a checkout with inline validation: a labelled field that shows its own error under it, a focusable\n * error summary for the submit, and one hook that reads the browser's own constraint validation (`required`, `type`,\n * `pattern`, `minLength`...) so the rules stay in the HTML and the page keeps working without JavaScript (then the\n * browser explains the errors itself).\n *\n * WCAG 2.2: errors are identified in text next to the field (3.3.1), linked with `aria-describedby` and `aria-invalid`,\n * and the summary takes focus and links to every field (3.3.1 / 2.4.3). Validation runs when the buyer leaves a field\n * that has a value, and clears as soon as it is fixed: it never nags while typing.\n */\nimport { useEffect, useRef, useState, type InputHTMLAttributes, type ReactNode, type RefObject, type SelectHTMLAttributes } from 'react'\n\nexport type FieldMessages = {\n valueMissing: string\n /** Required radio group (delivery, payment). */\n choiceMissing: string\n email: string\n tel: string\n pattern: string\n /** `{n}` = minimum length. */\n tooShort: string\n /** A field the server rejected. */\n server: string\n /** Error summary title, `{n}` = number of fields. */\n summaryOne: string\n summaryMany: string\n optional: string\n}\n\nconst ES: FieldMessages = {\n valueMissing: 'Completa este campo.',\n choiceMissing: 'Elige una opción.',\n email: 'Escribe un correo válido, por ejemplo nombre@correo.com.',\n tel: 'Escribe un teléfono válido.',\n pattern: 'Revisa el formato.',\n tooShort: 'Escribe al menos {n} caracteres.',\n server: 'Revisa este campo.',\n summaryOne: 'Revisa 1 campo para continuar',\n summaryMany: 'Revisa {n} campos para continuar',\n optional: '(opcional)',\n}\n\nconst EN: FieldMessages = {\n valueMissing: 'Fill in this field.',\n choiceMissing: 'Choose an option.',\n email: 'Enter a valid email, like name@example.com.',\n tel: 'Enter a valid phone number.',\n pattern: 'Check the format.',\n tooShort: 'Enter at least {n} characters.',\n server: 'Check this field.',\n summaryOne: 'Check 1 field to continue',\n summaryMany: 'Check {n} fields to continue',\n optional: '(optional)',\n}\n\n/** Messages for a locale (`es*` default, `en*`), with optional overrides. */\nexport function fieldMessages(locale?: string | null, overrides?: Partial<FieldMessages> | null): FieldMessages {\n const base = (locale ?? 'es-MX').toLowerCase().startsWith('en') ? EN : ES\n return overrides ? { ...base, ...overrides } : base\n}\n\n/** Field name -> error text. */\nexport type FieldErrors = Record<string, string>\n\nexport type ErrorSummaryItem = { name: string; id: string; label: string; message: string }\n\ntype Control = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement\n\nconst isControl = (el: EventTarget | null): el is Control =>\n !!el && typeof (el as Element).tagName === 'string' && ['INPUT', 'SELECT', 'TEXTAREA'].includes((el as Element).tagName) && !!(el as Control).name\n\n/**\n * The error text for a control, from its validity. A control can bring its own text with `data-sf-error` (any\n * failure) or `title` (pattern mismatch, the HTML convention).\n */\nexport function validationMessage(el: Control, m: FieldMessages = ES): string | null {\n const v = el.validity\n if (!v || v.valid) return null\n const own = el.getAttribute('data-sf-error')\n if (own) return own\n if (v.valueMissing) return el instanceof HTMLInputElement && (el.type === 'radio' || el.type === 'checkbox') ? m.choiceMissing : m.valueMissing\n if (v.typeMismatch && el instanceof HTMLInputElement) return el.type === 'email' ? m.email : el.type === 'tel' ? m.tel : m.pattern\n if (v.patternMismatch) return el.getAttribute('title') || (el instanceof HTMLInputElement && el.type === 'tel' ? m.tel : m.pattern)\n if (v.tooShort && el instanceof HTMLInputElement) return m.tooShort.replace('{n}', String(el.minLength))\n return el.validationMessage || m.pattern\n}\n\n/** Visible name of a control: its `<label>`, `aria-label`, or the legend of its group (radios). */\nfunction labelOf(el: Control): string {\n if (el instanceof HTMLInputElement && el.type === 'radio') {\n const legend = el.closest('fieldset')?.querySelector('legend')\n if (legend?.textContent) return legend.textContent.trim()\n }\n const text = el.labels?.[0]?.getAttribute('data-sf-label') ?? el.labels?.[0]?.textContent ?? el.getAttribute('aria-label') ?? el.name\n return text.trim()\n}\n\nexport type UseFieldErrorsOptions = {\n locale?: string\n messages?: Partial<FieldMessages>\n /** Fields the server rejected (e.g. from the action), shown with `serverMessages[name]` or the generic text. */\n serverFields?: Iterable<string> | null\n serverMessages?: Record<string, string> | null\n}\n\nexport type FieldErrorsState = {\n errors: FieldErrors\n /** Non-null after a submit with problems (or with server errors): render it in `<ErrorSummary>`. */\n summary: ErrorSummaryItem[] | null\n /** Changes every time a new summary appears, so `<ErrorSummary>` focuses it again. */\n summaryKey: number\n clear: () => void\n}\n\n/**\n * Inline validation for the page `<form>`. Listens to the form (no wrapping component): leaving a field with a value\n * checks it; typing in a field with an error clears it when fixed; a submit or `reportValidity()` with problems\n * collects them (the browser's bubbles are replaced by the inline texts) for the summary.\n */\nexport function useFieldErrors(formRef: RefObject<HTMLFormElement | null>, options: UseFieldErrorsOptions = {}): FieldErrorsState {\n const m = fieldMessages(options.locale, options.messages)\n const live = useRef(m)\n live.current = m\n const server = [...(options.serverFields ?? [])]\n const serverKey = server.join('|')\n const [errors, setErrors] = useState<FieldErrors>(() => Object.fromEntries(server.map((n) => [n, options.serverMessages?.[n] ?? m.server])))\n const [summary, setSummary] = useState<ErrorSummaryItem[] | null>(null)\n const [summaryKey, setSummaryKey] = useState(0)\n\n // Server errors (a new action result): inline texts plus a summary.\n useEffect(() => {\n if (!server.length) return\n const form = formRef.current\n const items: ErrorSummaryItem[] = []\n const next: FieldErrors = {}\n for (const name of server) {\n const msg = options.serverMessages?.[name] ?? live.current.server\n next[name] = msg\n const el = form?.elements.namedItem(name)\n const ctl = el && 'length' in el && !(el instanceof HTMLSelectElement) ? ((el as RadioNodeList)[0] as Control | undefined) : (el as Control | null)\n if (ctl) items.push({ name, id: ctl.id || name, label: labelOf(ctl), message: msg })\n }\n setErrors((e) => ({ ...e, ...next }))\n if (items.length) {\n setSummary(items)\n setSummaryKey((k) => k + 1)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [serverKey])\n\n useEffect(() => {\n const form = formRef.current\n if (!form) return\n let batch: Control[] | null = null\n const set = (name: string, msg: string | null) =>\n setErrors((e) => {\n if (msg === null) {\n if (!(name in e)) return e\n const { [name]: _gone, ...rest } = e\n return rest\n }\n return e[name] === msg ? e : { ...e, [name]: msg }\n })\n const onBlur = (ev: FocusEvent) => {\n const el = ev.target\n if (!isControl(el) || (el instanceof HTMLInputElement && (el.type === 'radio' || el.type === 'checkbox' || el.type === 'hidden'))) return\n // Leaving an empty field you only tabbed through is not an error yet; it is at submit.\n if (!el.value) return\n set(el.name, validationMessage(el, live.current))\n }\n const onInput = (ev: Event) => {\n const el = ev.target\n if (!isControl(el)) return\n setErrors((e) => {\n if (!(el.name in e)) return e\n const msg = el.validity.valid ? null : validationMessage(el, live.current)\n if (msg !== null) return e // keep the text until the field is fixed (no flicker while typing)\n const { [el.name]: _gone, ...rest } = e\n return rest\n })\n }\n const onInvalid = (ev: Event) => {\n const el = ev.target\n if (!isControl(el)) return\n ev.preventDefault() // the inline text replaces the browser bubble\n if (!batch) {\n batch = []\n queueMicrotask(() => {\n const list = batch ?? []\n batch = null\n const seen = new Set<string>()\n const items: ErrorSummaryItem[] = []\n const next: FieldErrors = {}\n for (const c of list) {\n if (seen.has(c.name)) continue\n seen.add(c.name)\n const msg = validationMessage(c, live.current) ?? live.current.valueMissing\n next[c.name] = msg\n items.push({ name: c.name, id: c.id || c.name, label: labelOf(c), message: msg })\n }\n setErrors((e) => ({ ...e, ...next }))\n setSummary(items)\n setSummaryKey((k) => k + 1)\n })\n }\n batch.push(el)\n }\n form.addEventListener('focusout', onBlur)\n form.addEventListener('input', onInput)\n form.addEventListener('change', onInput)\n form.addEventListener('invalid', onInvalid, true)\n return () => {\n form.removeEventListener('focusout', onBlur)\n form.removeEventListener('input', onInput)\n form.removeEventListener('change', onInput)\n form.removeEventListener('invalid', onInvalid, true)\n }\n }, [formRef])\n\n // The summary follows the fixes: a field fixed after the submit leaves the list.\n const shown = summary ? summary.filter((s) => s.name in errors).map((s) => ({ ...s, message: errors[s.name]! })) : null\n return {\n errors,\n summary: shown && shown.length ? shown : null,\n summaryKey,\n clear: () => {\n setErrors({})\n setSummary(null)\n },\n }\n}\n\nexport type ErrorSummaryProps = {\n items: readonly ErrorSummaryItem[] | null\n /** Changes when a new summary must take focus (`useFieldErrors().summaryKey`). */\n focusKey?: number\n locale?: string\n messages?: Partial<FieldMessages>\n title?: ReactNode\n className?: string\n classNames?: Partial<Record<'title' | 'list' | 'link', string>>\n}\n\n/**\n * The list of problems after a submit, above the form: `role=\"alert\"`, takes focus, one link per field (moves the\n * focus to it). Renders nothing without items.\n */\nexport function ErrorSummary({ items, focusKey, locale, messages, title, className, classNames: cx = {} }: ErrorSummaryProps) {\n const ref = useRef<HTMLDivElement>(null)\n const m = fieldMessages(locale, messages)\n const has = !!items && items.length > 0\n useEffect(() => {\n if (has) ref.current?.focus()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focusKey])\n if (!has) return null\n const n = items!.length\n return (\n <div ref={ref} role=\"alert\" tabIndex={-1} className={className} data-sf-error-summary aria-labelledby=\"sf-error-summary-title\">\n <p id=\"sf-error-summary-title\" className={cx.title} data-sf-error-summary-title>\n {title ?? (n === 1 ? m.summaryOne : m.summaryMany.replace('{n}', String(n)))}\n </p>\n <ul className={cx.list}>\n {items!.map((it) => (\n <li key={it.name}>\n <a\n href={`#${it.id}`}\n className={cx.link}\n onClick={(e) => {\n const el = document.getElementById(it.id)\n if (!el) return\n e.preventDefault()\n el.focus()\n el.scrollIntoView?.({ block: 'center' })\n }}\n >\n {it.label}: {it.message}\n </a>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n\nexport type CheckoutFieldClassNames = Partial<Record<'root' | 'label' | 'optional' | 'input' | 'hint' | 'error', string>>\n\ntype BaseFieldProps = {\n name: string\n label: string\n /** Field id. Default: the name. */\n id?: string\n /** Error text (from `useFieldErrors().errors[name]` or the server). */\n error?: string | null\n /** Help under the label (\"we only use it for the delivery\"). */\n hint?: ReactNode\n /** Marks the label \"(optional)\" and drops `required`. */\n optional?: boolean\n classNames?: CheckoutFieldClassNames\n locale?: string\n messages?: Partial<FieldMessages>\n}\n\nexport type CheckoutFieldProps = BaseFieldProps & Omit<InputHTMLAttributes<HTMLInputElement>, 'name' | 'id'> & { as?: 'input' }\nexport type CheckoutSelectProps = BaseFieldProps & Omit<SelectHTMLAttributes<HTMLSelectElement>, 'name' | 'id'> & { as: 'select'; children: ReactNode }\n\n/**\n * One labelled field: label (with \"(optional)\"), hint, the control and its error text, wired with `aria-describedby`\n * and `aria-invalid`. Required unless `optional`. `as=\"select\"` renders a `<select>` with the given options.\n */\nexport function CheckoutField(props: CheckoutFieldProps | CheckoutSelectProps) {\n const { name, label, id = name, error, hint, optional = false, classNames: cx = {}, locale, messages, ...rest } = props\n const m = fieldMessages(locale, messages)\n const hintId = hint ? `${id}-hint` : undefined\n const errorId = `${id}-error`\n const describedBy = [hintId, error ? errorId : undefined].filter(Boolean).join(' ') || undefined\n const common = {\n id,\n name,\n required: !optional,\n 'aria-invalid': error ? true : undefined,\n 'aria-describedby': describedBy,\n className: cx.input,\n 'data-sf-field-control': '',\n } as const\n return (\n <div className={cx.root} data-sf-field data-invalid={error ? '' : undefined}>\n <label htmlFor={id} className={cx.label} data-sf-label={label}>\n {label}\n {optional ? (\n <span className={cx.optional} data-sf-field-optional>\n {' '}\n {m.optional}\n </span>\n ) : null}\n </label>\n {hint ? (\n <p id={hintId} className={cx.hint} data-sf-field-hint>\n {hint}\n </p>\n ) : null}\n {rest.as === 'select' ? (\n (() => {\n const { as: _as, children, ...select } = rest\n return (\n <select {...select} {...common}>\n {children}\n </select>\n )\n })()\n ) : (\n (() => {\n const { as: _as, ...input } = rest as CheckoutFieldProps\n return <input {...input} {...common} />\n })()\n )}\n {/* Reserved only when there is an error: the text sits right under its field. */}\n {error ? (\n <p id={errorId} className={cx.error} data-sf-field-error>\n {error}\n </p>\n ) : null}\n </div>\n )\n}\n","/**\n * Contact and shipping address fields of a checkout, in the order and with the autofill tokens buyers expect:\n * contact (e-mail, phone, given and family name) and address (postal code first, so it can fill state and city, then\n * state, city, colonia, street, interior and delivery references). One column on phones; the shop lays out the grid\n * with `classNames`.\n *\n * Nothing here knows a country: the postal-code format, the list of states and the postal-code lookup come from the\n * shop (region config, a same-origin route). Without them the fields are plain text and nothing is invented.\n */\nimport { useEffect, useId, useRef, useState, type ReactNode } from 'react'\nimport type { Address } from '@asteby/storefront'\nimport { CheckoutField, type CheckoutFieldClassNames, type FieldErrors, type FieldMessages } from './fields.js'\n\nexport type AddressFieldKey = 'zip' | 'province' | 'city' | 'neighborhood' | 'address1' | 'address2' | 'reference'\nexport type ContactFieldKey = 'email' | 'phone' | 'first_name' | 'last_name'\n\nexport type AddressFieldsMessages = Record<AddressFieldKey | ContactFieldKey, string> & {\n provincePlaceholder: string\n address1Hint: string\n referenceHint: string\n emailHint: string\n phoneHint: string\n lookupFilled: string\n}\n\nconst ES: AddressFieldsMessages = {\n email: 'Correo',\n phone: 'Teléfono',\n first_name: 'Nombre',\n last_name: 'Apellidos',\n zip: 'Código postal',\n province: 'Estado',\n city: 'Ciudad o municipio',\n neighborhood: 'Colonia',\n address1: 'Calle y número',\n address2: 'Número interior o departamento',\n reference: 'Referencias para la entrega',\n provincePlaceholder: 'Elige tu estado',\n address1Hint: 'Por ejemplo: Av. Insurgentes Sur 1234',\n referenceHint: 'Entre qué calles, color de la fachada…',\n emailHint: 'Te enviamos aquí la confirmación y el seguimiento.',\n phoneHint: 'Solo para la paquetería, por si necesita contactarte.',\n lookupFilled: 'Completamos estado y ciudad con tu código postal.',\n}\n\nconst EN: AddressFieldsMessages = {\n email: 'Email',\n phone: 'Phone',\n first_name: 'First name',\n last_name: 'Last name',\n zip: 'Postal code',\n province: 'State',\n city: 'City',\n neighborhood: 'Neighborhood',\n address1: 'Street and number',\n address2: 'Apartment, suite',\n reference: 'Delivery notes',\n provincePlaceholder: 'Choose your state',\n address1Hint: 'For example: 1234 Main St',\n referenceHint: 'Cross streets, building color…',\n emailHint: 'We send the confirmation and tracking here.',\n phoneHint: 'Only for the carrier, in case they need to reach you.',\n lookupFilled: 'We filled in state and city from your postal code.',\n}\n\nexport function addressFieldsMessages(locale?: string | null, overrides?: Partial<AddressFieldsMessages> | null): AddressFieldsMessages {\n const base = (locale ?? 'es-MX').toLowerCase().startsWith('en') ? EN : ES\n return overrides ? { ...base, ...overrides } : base\n}\n\nexport type FieldLayoutClassNames = CheckoutFieldClassNames & {\n /** Extra class of a field that should span the whole row in a two-column grid. */\n wide?: string\n /** Extra class of a field that fits half a row. */\n half?: string\n}\n\ntype Common = {\n /** Inline errors by field name (`useFieldErrors().errors`). */\n errors?: FieldErrors\n locale?: string\n messages?: Partial<AddressFieldsMessages>\n fieldMessages?: Partial<FieldMessages>\n classNames?: FieldLayoutClassNames\n}\n\nconst join = (...c: Array<string | undefined>) => c.filter(Boolean).join(' ') || undefined\nconst field = (cx: FieldLayoutClassNames, span: 'wide' | 'half'): CheckoutFieldClassNames => ({ ...cx, root: join(cx.root, cx[span]) })\n\nexport type ContactFieldsProps = Common & {\n defaults?: Partial<Record<ContactFieldKey, string | null>>\n /** Form names. Default: the keys. */\n names?: Partial<Record<ContactFieldKey, string>>\n /** Phone format from the shop or region (e.g. `{ pattern: '[0-9 +()-]{10,}', title: '10 dígitos' }`). */\n phone?: { pattern?: string; title?: string; minLength?: number }\n /** Explain why e-mail and phone are needed (default true). */\n hints?: boolean\n}\n\n/** E-mail, phone, given and family name with their autofill tokens and the right mobile keyboards. */\nexport function ContactFields({ defaults = {}, names = {}, errors = {}, phone, hints = true, locale, messages, fieldMessages: fm, classNames: cx = {} }: ContactFieldsProps) {\n const m = addressFieldsMessages(locale, messages)\n const n = (k: ContactFieldKey) => names[k] ?? k\n const common = { ...(locale ? { locale } : {}), ...(fm ? { messages: fm } : {}) }\n return (\n <>\n <CheckoutField {...common} name={n('email')} label={m.email} type=\"email\" autoComplete=\"email\" inputMode=\"email\" autoCapitalize=\"none\" spellCheck={false} defaultValue={defaults.email ?? ''} error={errors[n('email')] ?? null} hint={hints ? m.emailHint : undefined} classNames={field(cx, 'wide')} />\n <CheckoutField {...common} name={n('phone')} label={m.phone} type=\"tel\" autoComplete=\"tel\" inputMode=\"tel\" defaultValue={defaults.phone ?? ''} error={errors[n('phone')] ?? null} hint={hints ? m.phoneHint : undefined} classNames={field(cx, 'wide')} {...(phone?.pattern ? { pattern: phone.pattern } : {})} {...(phone?.title ? { title: phone.title } : {})} {...(phone?.minLength ? { minLength: phone.minLength } : {})} />\n <CheckoutField {...common} name={n('first_name')} label={m.first_name} autoComplete=\"given-name\" defaultValue={defaults.first_name ?? ''} error={errors[n('first_name')] ?? null} classNames={field(cx, 'half')} />\n <CheckoutField {...common} name={n('last_name')} label={m.last_name} autoComplete=\"family-name\" defaultValue={defaults.last_name ?? ''} error={errors[n('last_name')] ?? null} classNames={field(cx, 'half')} />\n </>\n )\n}\n\n/** What a postal-code lookup answers. Every field optional: only what the source knows. */\nexport type PostalCodeInfo = { province?: string | null; city?: string | null; neighborhoods?: readonly string[] | null }\n\nexport type AddressFieldsProps = Common & {\n defaults?: Partial<Pick<Address, 'zip' | 'province' | 'city' | 'neighborhood' | 'address1' | 'address2' | 'reference'>> | null\n /** Form names. Default: the keys (the `AddressInput` fields of the Storefront API). */\n names?: Partial<Record<AddressFieldKey, string>>\n /** ISO country of the address (hidden field `country_code`). */\n countryCode: string\n /** States of the country (from the region config). With them, \"State\" is a `<select>`; the value sent is `name`. */\n provinces?: ReadonlyArray<{ code?: string | null; name: string }> | null\n /** Postal-code format of the country (from the region config), e.g. `{ pattern: '[0-9]{5}', maxLength: 5, inputMode: 'numeric', title: '5 dígitos' }`. */\n postalCode?: { pattern?: string; maxLength?: number; inputMode?: 'numeric' | 'text'; title?: string }\n /**\n * Fills state and city (and suggests colonias) from the postal code, when the shop has a source (a same-origin\n * route over a postal-code catalog). Called once the code matches `postalCode.pattern` (or on leaving the field).\n * Never overwrites what the buyer typed.\n */\n lookupPostalCode?: (zip: string) => Promise<PostalCodeInfo | null>\n /** Show the colonia field: `true` (default, optional), `'required'`, or `false`. */\n neighborhood?: boolean | 'required'\n /** Show the delivery references field (default true, optional). */\n reference?: boolean\n /** Rendered after the fields (e.g. \"save this address\"). */\n children?: ReactNode\n}\n\n/**\n * Shipping address in the order buyers fill it: postal code, state, city, colonia, street and number, interior and\n * references. Autofill tokens: `postal-code`, `address-level1/2/3`, `address-line1/2`. The postal code uses the\n * numeric keyboard when the country format is numeric.\n */\nexport function AddressFields(props: AddressFieldsProps) {\n const { defaults, names = {}, errors = {}, countryCode, provinces, postalCode, lookupPostalCode, locale, messages, fieldMessages: fm, classNames: cx = {}, children } = props\n const showNeighborhood = props.neighborhood ?? true\n const showReference = props.reference ?? true\n const m = addressFieldsMessages(locale, messages)\n const n = (k: AddressFieldKey) => names[k] ?? k\n const common = { ...(locale ? { locale } : {}), ...(fm ? { messages: fm } : {}) }\n const listId = useId()\n const [colonias, setColonias] = useState<readonly string[]>([])\n const [filled, setFilled] = useState(false)\n const lastZip = useRef<string | null>(null)\n const zipRef = useRef<HTMLDivElement>(null)\n const lookupRef = useRef(lookupPostalCode)\n lookupRef.current = lookupPostalCode\n\n const runLookup = (zip: string) => {\n const lookup = lookupRef.current\n if (!lookup || !zip || zip === lastZip.current) return\n if (postalCode?.pattern && !new RegExp(`^(?:${postalCode.pattern})$`).test(zip)) return\n lastZip.current = zip\n const form = zipRef.current?.closest('form')\n void lookup(zip).then(\n (info) => {\n if (!info || lastZip.current !== zip) return\n const fill = (name: string, value: string | null | undefined) => {\n const el = form?.elements.namedItem(name) as HTMLInputElement | HTMLSelectElement | null\n if (!el || !value || ('length' in el && !(el instanceof HTMLSelectElement))) return false\n // Only an empty field, or one this lookup filled before: never what the buyer typed.\n if (el.value && el.dataset.sfAutofilled !== '1') return false\n if (el instanceof HTMLSelectElement && ![...el.options].some((o) => o.value === value)) return false\n el.value = value\n el.dataset.sfAutofilled = '1'\n el.dispatchEvent(new Event('input', { bubbles: true }))\n return true\n }\n const a = fill(n('province'), info.province)\n const b = fill(n('city'), info.city)\n setColonias(info.neighborhoods ?? [])\n setFilled(a || b)\n },\n () => {\n /* no lookup: the buyer types state and city */\n },\n )\n }\n\n useEffect(() => {\n const zip = defaults?.zip\n if (zip) runLookup(zip)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const numericZip = postalCode?.inputMode === 'numeric'\n return (\n <>\n <div ref={zipRef} className={join(cx.half)} data-sf-zip>\n <CheckoutField\n {...common}\n name={n('zip')}\n label={m.zip}\n autoComplete=\"postal-code\"\n inputMode={postalCode?.inputMode ?? 'text'}\n {...(postalCode?.pattern ? { pattern: postalCode.pattern } : {})}\n {...(postalCode?.maxLength ? { maxLength: postalCode.maxLength } : {})}\n {...(postalCode?.title ? { title: postalCode.title } : {})}\n {...(numericZip ? { autoCapitalize: 'none' } : {})}\n defaultValue={defaults?.zip ?? ''}\n error={errors[n('zip')] ?? null}\n classNames={{ ...cx, root: cx.root }}\n onInput={(e) => {\n const v = e.currentTarget.value.trim()\n if (postalCode?.maxLength && v.length === postalCode.maxLength) runLookup(v)\n }}\n onBlur={(e) => runLookup(e.currentTarget.value.trim())}\n />\n </div>\n {provinces && provinces.length ? (\n <CheckoutField {...common} as=\"select\" name={n('province')} label={m.province} autoComplete=\"address-level1\" defaultValue={defaults?.province ?? ''} error={errors[n('province')] ?? null} classNames={field(cx, 'half')}>\n <option value=\"\" disabled>\n {m.provincePlaceholder}\n </option>\n {provinces.map((p) => (\n <option key={p.code ?? p.name} value={p.name}>\n {p.name}\n </option>\n ))}\n </CheckoutField>\n ) : (\n <CheckoutField {...common} name={n('province')} label={m.province} autoComplete=\"address-level1\" defaultValue={defaults?.province ?? ''} error={errors[n('province')] ?? null} classNames={field(cx, 'half')} />\n )}\n <CheckoutField {...common} name={n('city')} label={m.city} autoComplete=\"address-level2\" defaultValue={defaults?.city ?? ''} error={errors[n('city')] ?? null} classNames={field(cx, 'half')} />\n {showNeighborhood ? (\n <CheckoutField\n {...common}\n name={n('neighborhood')}\n label={m.neighborhood}\n autoComplete=\"address-level3\"\n optional={showNeighborhood !== 'required'}\n defaultValue={defaults?.neighborhood ?? ''}\n error={errors[n('neighborhood')] ?? null}\n classNames={field(cx, 'half')}\n {...(colonias.length ? { list: listId } : {})}\n />\n ) : null}\n {colonias.length ? (\n <datalist id={listId}>\n {colonias.map((c) => (\n <option key={c} value={c} />\n ))}\n </datalist>\n ) : null}\n {/* The lookup result, announced once (not on every keystroke). */}\n <p role=\"status\" aria-live=\"polite\" data-sf-zip-status style={filled ? undefined : { position: 'absolute', width: 1, height: 1, overflow: 'hidden', clip: 'rect(0 0 0 0)', whiteSpace: 'nowrap' }} className={filled ? join(cx.hint, cx.wide) : undefined}>\n {filled ? m.lookupFilled : ''}\n </p>\n <CheckoutField {...common} name={n('address1')} label={m.address1} autoComplete=\"address-line1\" defaultValue={defaults?.address1 ?? ''} error={errors[n('address1')] ?? null} hint={m.address1Hint} classNames={field(cx, 'wide')} />\n <CheckoutField {...common} name={n('address2')} label={m.address2} autoComplete=\"address-line2\" optional defaultValue={defaults?.address2 ?? ''} error={errors[n('address2')] ?? null} classNames={field(cx, 'half')} />\n {showReference ? (\n <CheckoutField {...common} name={n('reference')} label={m.reference} optional defaultValue={defaults?.reference ?? ''} error={errors[n('reference')] ?? null} hint={m.referenceHint} classNames={field(cx, 'wide')} maxLength={200} />\n ) : null}\n <input type=\"hidden\" name=\"country_code\" value={countryCode} />\n {children}\n </>\n )\n}\n","import { createContext, useContext, useMemo, type ReactNode } from 'react'\nimport { createStorefrontClient, type Shop, type StorefrontClient, type StorefrontClientOptions } from '@asteby/storefront'\n\nexport type StorefrontContextValue = {\n /** Client for browser-side calls (use a public `pk_` token). */\n client: StorefrontClient | null\n shop: Shop | null\n /** BCP 47 locale used for formatting (defaults to `shop.locale`, then `es-MX`). */\n locale: string\n /** ISO 4217 currency (defaults to `shop.currency_code`, then `MXN`). */\n currency: string\n}\n\nconst StorefrontContext = createContext<StorefrontContextValue | null>(null)\n\nexport type StorefrontProviderProps = {\n /** A ready client. Takes precedence over `config`. */\n client?: StorefrontClient\n /** Options to create the browser client (use a `pk_` token). */\n config?: StorefrontClientOptions\n /** Shop info loaded on the server (root loader). */\n shop?: Shop | null\n locale?: string\n currency?: string\n children?: ReactNode\n}\n\n/**\n * Makes the storefront client, shop, locale and currency available to the\n * tree. SSR-safe: creating the client does not touch `window`.\n */\nexport function StorefrontProvider({ client, config, shop = null, locale, currency, children }: StorefrontProviderProps) {\n const configKey = config ? `${config.baseUrl}|${config.token}|${config.locale ?? ''}|${config.customerToken ?? ''}` : ''\n const resolvedClient = useMemo(\n () => client ?? (config ? createStorefrontClient(config) : null),\n [client, configKey],\n )\n const value = useMemo<StorefrontContextValue>(\n () => ({\n client: resolvedClient,\n shop,\n locale: locale ?? config?.locale ?? shop?.locale ?? 'es-MX',\n currency: currency ?? shop?.currency_code ?? 'MXN',\n }),\n [resolvedClient, shop, locale, currency, config?.locale],\n )\n return <StorefrontContext.Provider value={value}>{children}</StorefrontContext.Provider>\n}\n\n/** Storefront context. Throws outside `<StorefrontProvider>`. */\nexport function useStorefront(): StorefrontContextValue {\n const ctx = useContext(StorefrontContext)\n if (!ctx) throw new Error('useStorefront must be used inside <StorefrontProvider>')\n return ctx\n}\n\n/** Storefront context or `null` outside a provider (for components that work standalone). */\nexport function useOptionalStorefront(): StorefrontContextValue | null {\n return useContext(StorefrontContext)\n}\n\n/** The client from context; throws when the provider has none. */\nexport function useStorefrontClient(): StorefrontClient {\n const { client } = useStorefront()\n if (!client) throw new Error('<StorefrontProvider> needs a `client` or `config` for browser-side calls')\n return client\n}\n","import { useOptionalStorefront } from './context.js'\n\n/** Locale of a component: its own prop, else the `StorefrontProvider`'s, else `es-MX`. */\nexport function useResolvedLocale(locale?: string | null): string {\n const sf = useOptionalStorefront()\n return locale ?? sf?.locale ?? 'es-MX'\n}\n","/**\n * Order summary of a checkout: lines and the server totals (subtotal, discounts, shipping, taxes, total) exactly as\n * `cart.cost` sends them; nothing is added or recalculated. `OrderSummaryDisclosure` wraps it for phones: a collapsed\n * bar with the total at the top of the page (native `<details>`, no JavaScript, no layout shift on hydration).\n */\nimport type { ReactNode } from 'react'\nimport { formatMoney, type CartCost, type CartLine, type Money } from '@asteby/storefront'\nimport { useResolvedLocale } from '../locale.js'\n\nexport type OrderSummaryMessages = {\n title: string\n subtotal: string\n discount: string\n shipping: string\n /** Shipping not chosen yet. */\n shippingPending: string\n /** Shipping being saved / re-read. */\n updating: string\n free: string\n taxes: string\n /** Taxes already inside the prices, `{amount}`. */\n taxesIncluded: string\n total: string\n /** `{n}` = quantity. */\n quantity: string\n show: string\n hide: string\n}\n\nconst ES: OrderSummaryMessages = {\n title: 'Tu pedido',\n subtotal: 'Subtotal',\n discount: 'Descuento',\n shipping: 'Envío',\n shippingPending: 'Al elegir la entrega',\n updating: 'Actualizando…',\n free: 'Gratis',\n taxes: 'Impuestos',\n taxesIncluded: 'Incluye {amount} de impuestos',\n total: 'Total',\n quantity: 'Cantidad: {n}',\n show: 'Ver resumen del pedido',\n hide: 'Ocultar resumen del pedido',\n}\n\nconst EN: OrderSummaryMessages = {\n title: 'Your order',\n subtotal: 'Subtotal',\n discount: 'Discount',\n shipping: 'Shipping',\n shippingPending: 'Calculated at delivery',\n updating: 'Updating…',\n free: 'Free',\n taxes: 'Taxes',\n taxesIncluded: 'Includes {amount} in taxes',\n total: 'Total',\n quantity: 'Quantity: {n}',\n show: 'Show order summary',\n hide: 'Hide order summary',\n}\n\nexport function orderSummaryMessages(locale?: string | null, overrides?: Partial<OrderSummaryMessages> | null): OrderSummaryMessages {\n const base = (locale ?? 'es-MX').toLowerCase().startsWith('en') ? EN : ES\n return overrides ? { ...base, ...overrides } : base\n}\n\nexport type OrderSummaryClassNames = Partial<\n Record<'root' | 'title' | 'lines' | 'line' | 'media' | 'qty' | 'lineTitle' | 'variant' | 'linePrice' | 'totals' | 'row' | 'discount' | 'muted' | 'free' | 'total' | 'note', string>\n>\n\nexport type OrderSummaryProps = {\n lines: readonly CartLine[]\n /** `cart.cost` as the server sends it. */\n cost: CartCost\n /** The delivery is being saved and the cart re-read: shipping and total say so (`aria-busy`). */\n updating?: boolean\n /** Picture of a line (e.g. `<ProductImage>`), 48-64 px. The quantity badge sits on it. */\n renderLineMedia?: (line: CartLine) => ReactNode\n renderAmount?: (amount: Money) => ReactNode\n /** Heading. `false` hides it (the disclosure already names the block). */\n title?: ReactNode | false\n /** Heading level. Default 2. */\n headingLevel?: 2 | 3\n locale?: string\n messages?: Partial<OrderSummaryMessages>\n classNames?: OrderSummaryClassNames\n /** Rendered between the lines and the totals (e.g. a discount code form). */\n children?: ReactNode\n}\n\nconst isZero = (m: Money | null | undefined) => !!m && Number(m.amount) === 0\nconst positive = (m: Money | null | undefined): m is Money => !!m && Number(m.amount) > 0\n\n/** Lines and totals of the order. The total row is `aria-live`, so a new total after choosing delivery is announced. */\nexport function OrderSummary(props: OrderSummaryProps) {\n const { lines, cost, updating = false, renderLineMedia, renderAmount, title, headingLevel = 2, classNames: cx = {}, children } = props\n const locale = useResolvedLocale(props.locale)\n const m = orderSummaryMessages(locale, props.messages)\n const money = (v: Money) => (renderAmount ? renderAmount(v) : formatMoney(v, locale))\n const H = headingLevel === 3 ? 'h3' : 'h2'\n const discounts = cost.discounts?.filter((d) => positive(d.amount)) ?? []\n return (\n <div className={cx.root} data-sf-summary>\n {title === false ? null : (\n <H className={cx.title} data-sf-summary-title>\n {title ?? m.title}\n </H>\n )}\n <ul className={cx.lines} data-sf-summary-lines>\n {lines.map((l) => {\n const variant = l.merchandise.title && !/^default( title)?$/i.test(l.merchandise.title) ? l.merchandise.title : null\n return (\n <li key={l.id} className={cx.line} data-sf-summary-line>\n {renderLineMedia ? (\n <span className={cx.media} data-sf-summary-media>\n {renderLineMedia(l)}\n {l.quantity > 1 ? (\n <span className={cx.qty} data-sf-summary-qty aria-hidden=\"true\">\n {l.quantity}\n </span>\n ) : null}\n </span>\n ) : null}\n <span data-sf-summary-line-body>\n <span className={cx.lineTitle} data-sf-summary-line-title>\n {!renderLineMedia && l.quantity > 1 ? `${l.quantity} × ` : null}\n {l.merchandise.product.title}\n </span>\n {variant ? (\n <span className={cx.variant} data-sf-summary-variant>\n {variant}\n </span>\n ) : null}\n {renderLineMedia || l.quantity > 1 ? (\n <span style={{ position: 'absolute', width: 1, height: 1, overflow: 'hidden', clip: 'rect(0 0 0 0)', whiteSpace: 'nowrap' }}>{m.quantity.replace('{n}', String(l.quantity))}</span>\n ) : null}\n </span>\n <span className={cx.linePrice} data-sf-summary-line-price>\n {money(l.cost.total)}\n </span>\n </li>\n )\n })}\n </ul>\n {children}\n <dl className={cx.totals} data-sf-summary-totals aria-busy={updating || undefined}>\n <div className={cx.row} data-sf-summary-row=\"subtotal\">\n <dt>{m.subtotal}</dt>\n <dd>{money(cost.subtotal)}</dd>\n </div>\n {discounts.length\n ? discounts.map((d) => (\n <div key={d.id} className={cx.row ? `${cx.row} ${cx.discount ?? ''}`.trim() : cx.discount} data-sf-summary-row=\"discount\">\n <dt>{d.code ? `${m.discount} (${d.code})` : d.title || m.discount}</dt>\n <dd>−{money(d.amount)}</dd>\n </div>\n ))\n : positive(cost.discount) ? (\n <div className={cx.row ? `${cx.row} ${cx.discount ?? ''}`.trim() : cx.discount} data-sf-summary-row=\"discount\">\n <dt>{m.discount}</dt>\n <dd>−{money(cost.discount)}</dd>\n </div>\n ) : null}\n <div className={cx.row} data-sf-summary-row=\"shipping\">\n <dt>{m.shipping}</dt>\n <dd className={updating || !cost.shipping ? cx.muted : undefined}>\n {updating ? m.updating : !cost.shipping ? m.shippingPending : isZero(cost.shipping) ? <span className={cx.free}>{m.free}</span> : money(cost.shipping)}\n </dd>\n </div>\n {positive(cost.tax) && !cost.tax_included ? (\n <div className={cx.row} data-sf-summary-row=\"tax\">\n <dt>{m.taxes}</dt>\n <dd>{money(cost.tax)}</dd>\n </div>\n ) : null}\n <div className={cx.total} data-sf-summary-row=\"total\">\n <dt>{m.total}</dt>\n <dd aria-live=\"polite\" data-updating={updating || undefined}>\n {money(cost.total)}\n </dd>\n </div>\n </dl>\n {positive(cost.tax) && cost.tax_included ? (\n <p className={cx.note} data-sf-summary-tax-note>\n {m.taxesIncluded.split('{amount}').flatMap((part, i) => (i === 0 ? [part] : [<span key={i}>{money(cost.tax!)}</span>, part]))}\n </p>\n ) : null}\n </div>\n )\n}\n\nexport type OrderSummaryDisclosureProps = {\n /** Total shown on the collapsed bar (`cart.cost.total`). */\n total: Money\n updating?: boolean\n renderAmount?: (amount: Money) => ReactNode\n locale?: string\n messages?: Partial<OrderSummaryMessages>\n /** Start open (default closed). */\n defaultOpen?: boolean\n className?: string\n classNames?: Partial<Record<'summary' | 'label' | 'total' | 'panel', string>>\n /** Usually an `<OrderSummary title={false} … />`. */\n children: ReactNode\n}\n\n/**\n * Phones: the order summary as a collapsed bar at the top (\"Show order summary · $1,234.00\"). Native `<details>`:\n * works without JavaScript, the server HTML is already the final layout (no shift on hydration). Show it only on\n * narrow screens and the full summary on wide ones (the shop's CSS).\n */\nexport function OrderSummaryDisclosure({ total, updating, renderAmount, locale: loc, messages, defaultOpen = false, className, classNames: cx = {}, children }: OrderSummaryDisclosureProps) {\n const locale = useResolvedLocale(loc)\n const m = orderSummaryMessages(locale, messages)\n return (\n <details className={className} data-sf-summary-disclosure {...(defaultOpen ? { open: true } : {})}>\n <summary className={cx.summary} data-sf-summary-toggle>\n <span className={cx.label} data-sf-summary-toggle-label>\n <span data-sf-summary-show>{m.show}</span>\n <span data-sf-summary-hide>{m.hide}</span>\n </span>\n <span className={cx.total} data-sf-summary-toggle-total data-updating={updating || undefined}>\n {renderAmount ? renderAmount(total) : formatMoney(total, locale)}\n </span>\n </summary>\n <div className={cx.panel} data-sf-summary-panel>\n {children}\n </div>\n </details>\n )\n}\n","// GENERADO por scripts/build-logos.mjs desde brands/manifest.json y brands/assets/. No editar a mano.\n// Procedencia y licencias de cada logo: brands/LOGOS.md.\nexport type LogoAsset = { src: string; ar: number; mono: boolean }\n\nexport const LOGOS: Record<string, LogoAsset> = {\n \"7eleven\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xmlns:xlink=%22http://www.w3.org/1999/xlink%22 xml:space=%22preserve%22 viewBox=%220 0 45 59.89%22%3E%3Cdefs%3E%3Cpath id=%22a%22 d=%22M0 0h45v59.9H0z%22/%3E%3C/defs%3E%3CclipPath id=%22b%22%3E%3Cuse xlink:href=%22%23a%22 style=%22overflow:visible%22/%3E%3C/clipPath%3E%3Cpath d=%22M34.2 45c.9 0 1.7.8 1.7 1.7s-.7 1.7-1.7 1.7c-.9 0-1.6-.8-1.6-1.7s.7-1.7 1.6-1.7m0 3c.7 0 1.3-.6 1.3-1.3 0-.8-.6-1.3-1.3-1.3s-1.3.6-1.3 1.3c0 .8.6 1.3 1.3 1.3m-.2-.4h-.3v-1.8h.6q.6 0 .6.6c0 .3-.2.5-.4.5l.4.7h-.4l-.4-.7H34zm.2-1q.3 0 .3-.3t-.3-.3H34v.5h.2zm8-14.3c-.9 0-1.5.4-2.1.9l-.4.6-.1-.1.5-.8v-.5h-3.2V43h2.9v-6.7c0-1.1.7-1.4 1.2-1.5s1.1.2 1.1.8V43H45v-7.3c0-2.3-1-3.4-2.8-3.4M9.9 40.6h3v2.3H7V32.3h2.9zM0 42.9h5.9v-2.1h-3v-2.3h3v-2h-3v-2h3v-2.2H0zm13.9 0h6v-2.1h-3.1v-2.3h3.1v-2h-3.1v-2h3.1v-2.2h-6zm16 0h6v-2.1h-3.1v-2.3h3.1v-2h-3.1v-2h3.1v-2.2h-6zm-3.8-10.6L25 39l-.1 1.2v.1h-.1v-.1l-.1-1.2-1.1-6.7h-2.9l2.4 10.6h3.6l2.4-10.6z%22 style=%22clip-path:url(%23b);fill:%23147350%22/%3E%3Cpath d=%22M37.7 0H0v15h19.9C24.4 8.5 30.5 3.3 37.7 0%22 style=%22clip-path:url(%23b);fill:%23ff6c00%22/%3E%3Cpath d=%22M15 59.9h15v-15H15zM45 15V0a40.7 40.7 0 0 0-28.9 30h15.3A25.8 25.8 0 0 1 45 15%22 style=%22clip-path:url(%23b);fill:%23eb0f2a%22/%3E%3C/svg%3E\", ar: 0.751, mono: false },\n \"99minutos\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220.1 0 160.9 40.9%22%3E%3Cg fill=%22none%22 fill-rule=%22evenodd%22%3E%3Cpath fill=%22%23323634%22 d=%22M50.25 23.07v6.07h-3.12v-6.15q0-1.34-.4-1.97t-1.31-.62-1.6.68-.69 2v6.06h-3.1V17.89h3.1v1.27a3.8 3.8 0 0 1 2.94-1.46q1.05 0 1.91.63.86.62 1.3 1.52.64-1.02 1.73-1.59a5 5 0 0 1 2.18-.56q1.95 0 3.17 1.18 1.2 1.18 1.2 3.42v6.84h-3.13v-6.15q0-2.6-1.88-2.6-.93 0-1.62.69-.68.68-.68 2m9.32-6.62q-.53-.53-.53-1.3t.53-1.31 1.3-.53 1.29.53.53 1.3-.53 1.31-1.3.54-1.29-.54M86 17.9h-2.8v6.06q0 1.3-.68 1.98t-1.61.68q-1.89 0-1.88-2.6V17.9H75.9v6.82q0 2.28 1.24 3.44a4.3 4.3 0 0 0 3.08 1.16q1.83 0 2.99-1.66v1.49h3.12v-9h1.73v5.2q0 1.83 1.1 2.9a3.8 3.8 0 0 0 2.72 1.07q1.6 0 3.05-1.34l-1.16-2.2q-.6.8-1.47.8-.45 0-.79-.37a1.5 1.5 0 0 1-.33-1.01v-5.04h2.7V17.9h-2.7v-3.37h-3.12v3.37zm-26.69 0h3.1v11.25h-3.1zm7.9 4.97v6.28h-3.1V17.89h3.1v1.25q1.42-1.44 3.17-1.44a4 4 0 0 1 2.95 1.25q1.2 1.26 1.2 3.35v6.84h-3.11v-6.36q0-2.6-1.88-2.6-.94 0-1.63.69-.7.68-.7 2m39.05.65q0 2.44-1.68 4.12a5.7 5.7 0 0 1-4.2 1.68 5.7 5.7 0 0 1-5.9-5.8q0-2.44 1.68-4.13a5.7 5.7 0 0 1 4.21-1.68q2.55 0 4.21 1.68a5.6 5.6 0 0 1 1.68 4.13m-8.65 0q0 1.38.78 2.25.77.87 1.98.87t1.99-.87.78-2.25-.78-2.26a2.5 2.5 0 0 0-1.99-.87q-1.2 0-1.98.87a3.3 3.3 0 0 0-.78 2.26m17.62 2.13q0 1.66-1.2 2.66-1.22 1-3.08 1a8 8 0 0 1-5-1.77l1.36-1.97q1.75 1.36 3.7 1.36.6 0 .95-.24a.7.7 0 0 0 .36-.64q0-.39-.5-.73-.47-.33-1.4-.63t-1.4-.5q-.5-.21-1.11-.6a2.6 2.6 0 0 1-1.27-2.36 3.1 3.1 0 0 1 1.25-2.54q1.24-.98 3.2-.98t3.94 1.34l-1.16 2.09q-1.45-1-2.89-1t-1.44.79q0 .44.46.69.45.25 1.5.59 1.07.33 1.5.5.45.19 1.07.56 1.16.72 1.16 2.38%22/%3E%3Cpath fill=%22%2385C440%22 d=%22M116.65 28.77q-.52-.53-.52-1.3 0-.78.52-1.31.54-.54 1.3-.53.76 0 1.3.53.52.53.52 1.3 0 .78-.53 1.31-.52.54-1.3.54-.75 0-1.29-.54m9.35-2.25q1.55 0 2.79-1.56l1.84 2.09q-2.15 2.25-4.65 2.26a6 6 0 0 1-4.24-1.6 5.4 5.4 0 0 1-1.72-4.19q0-2.58 1.74-4.2a6 6 0 0 1 4.15-1.62 6.4 6.4 0 0 1 4.6 1.99l-1.62 2.13q-.54-.65-1.31-1a4 4 0 0 0-1.54-.36 2.9 2.9 0 0 0-2.98 3.04 2.85 2.85 0 0 0 2.94 3.02m16.4-3.01q0 2.44-1.67 4.12a5.7 5.7 0 0 1-4.21 1.68 5.7 5.7 0 0 1-5.89-5.8q0-2.44 1.68-4.13a5.7 5.7 0 0 1 4.2-1.68 5.7 5.7 0 0 1 5.9 5.81m-8.64 0q0 1.38.77 2.25.78.87 1.99.87 1.2 0 1.99-.87.77-.87.77-2.25t-.77-2.26a2.5 2.5 0 0 0-2-.87q-1.2 0-1.98.87a3.3 3.3 0 0 0-.77 2.26m19.84-.44v6.07h-3.12v-6.15q0-1.34-.4-1.97-.42-.62-1.31-.62t-1.6.68q-.69.68-.69 2v6.06h-3.1V17.89h3.1v1.27a3.8 3.8 0 0 1 2.94-1.46q1.05 0 1.92.63.85.62 1.29 1.52.64-1.02 1.73-1.59a5 5 0 0 1 2.18-.56q1.97 0 3.17 1.18t1.2 3.42v6.84h-3.13v-6.15q0-2.6-1.88-2.6-.93 0-1.62.69-.68.68-.68 2%22/%3E%3Cpath fill=%22%23323634%22 d=%22M18.08 17.16a4.5 4.5 0 0 0-1.59-1.84 5.6 5.6 0 0 0-2.58-.87 5.2 5.2 0 0 0-3.8.95 4.6 4.6 0 0 0-1.82 3.39q-.23 2.2.98 3.69 1.2 1.49 3.22 1.7 1.53.16 2.94-.6a4.6 4.6 0 0 1-1.16 2.38q-.82.83-2.16.68a3 3 0 0 1-1.15-.41L9.1 28.38q.4.27 1.07.57.9.4 1.9.5a5.5 5.5 0 0 0 5.84-3.55q.64-1.46.85-3.45.33-3.1-.67-5.29m-3.32 3.9q-.7.5-1.66.39a1.9 1.9 0 0 1-1.42-.8q-.47-.7-.38-1.6.1-.92.75-1.45t1.57-.43 1.48.83.45 1.65a2 2 0 0 1-.8 1.4m14.44-3.89a4.5 4.5 0 0 0-1.6-1.84 5.6 5.6 0 0 0-2.58-.87 5.2 5.2 0 0 0-3.79.95 4.6 4.6 0 0 0-1.82 3.39q-.23 2.2.98 3.69 1.2 1.49 3.22 1.7 1.53.16 2.93-.6a4.6 4.6 0 0 1-1.15 2.38q-.82.83-2.16.68a3 3 0 0 1-1.15-.41l-1.88 2.15q.42.27 1.08.57.9.4 1.9.5a5.5 5.5 0 0 0 5.84-3.55q.63-1.46.85-3.45.32-3.1-.68-5.29m-3.33 3.9q-.69.5-1.65.39a1.9 1.9 0 0 1-1.43-.8q-.46-.7-.37-1.6.1-.92.74-1.45.66-.53 1.58-.43t1.47.83.46 1.65a2 2 0 0 1-.8 1.4%22/%3E%3Cpath fill=%22%2385C440%22 d=%22m37.49 12.42 3.06-3.1s-2.03-5.1-9.19-9.26L28.3 3.14l3.58 3.6-.78.8a18.6 18.6 0 0 0-12.2-4.58A18.86 18.86 0 0 0 .14 21.93c0 10.47 8.4 18.96 18.76 18.96a18.86 18.86 0 0 0 18.77-18.96A19 19 0 0 0 33.15 9.6l.77-.79zm-3.85 9.23c0 8.24-6.6 14.92-14.76 14.92A14.84 14.84 0 0 1 4.12 21.65c0-8.24 6.61-14.92 14.76-14.92 8.16 0 14.76 6.68 14.76 14.92%22/%3E%3C/g%3E%3C/svg%3E\", ar: 3.934, mono: false },\n \"amex\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1000 996.89%22%3E%3Cpath d=%22M55.5 1002.35h997.52v538.48l-49.38 77.15 49.38 68.66v313.22H55.5v-507.63l30.86-35.49-30.86-33.94Z%22 style=%22fill:%23016fd0;fill-opacity:1;stroke:none%22 transform=%22translate(-55.5 -1002.35)%22/%3E%3Cpath d=%22M249.14 1697.44v-156.6h165.82l17.8 23.19 18.37-23.2h601.89v145.81s-15.74 10.65-33.95 10.8H685.8l-20.05-24.68v24.68H600v-42.14s-8.98 5.88-28.4 5.88h-22.37v36.26h-99.52l-17.76-23.69-18.04 23.7zM55.5 1422.8l37.4-87.18h64.66l21.22 48.84v-48.84h80.39l12.63 35.3 12.25-35.3H644.9v17.75s18.97-17.75 50.14-17.75l117.09.41 20.85 48.2v-48.6h67.27l18.52 27.68v-27.69h67.89v156.61h-67.89l-17.74-27.77v27.77H802.2l-9.94-24.69h-26.57l-9.78 24.7h-67.03c-26.83 0-43.97-17.39-43.97-17.39v17.38H543.84l-20.05-24.69v24.7h-375.8l-9.94-24.7h-26.49l-9.86 24.7H55.5z%22 style=%22fill:%23fff;stroke:none%22 transform=%22translate(-55.5 -1002.35)%22/%3E%3Cpath d=%22m106.13 1354.93-50.44 117.26h32.84l9.3-23.48h54.1l9.26 23.48h33.56l-50.39-117.26zm18.66 27.29 16.49 41.03h-33.03zm73.43 89.95v-117.26l46.66.17 27.14 75.6 26.5-75.77h46.28v117.26h-29.3v-86.4l-31.08 86.4h-25.7l-31.17-86.4v86.4zm166.64 0v-117.26h95.66v26.23H394.5v20.06H459v24.68h-64.5v20.83h66.03v25.46zm112.64-117.24v117.26h29.31v-41.66h12.35l35.15 41.66h35.82l-38.57-43.2a35.7 35.7 0 0 0 32.16-36.02c0-24.67-19.37-38.04-40.99-38.04zm29.31 26.23h33.51c8.04 0 13.89 6.29 13.89 12.34 0 7.8-7.58 12.35-13.45 12.35H506.8zm118.81 91.01h-29.93v-117.26h29.93zm70.98 0h-6.47c-31.26 0-50.24-24.63-50.24-58.15 0-34.35 18.77-59.11 58.25-59.11h32.4v27.77h-33.59c-16.02 0-27.36 12.5-27.36 31.63 0 22.71 12.96 32.25 31.63 32.25h7.72zm63.79-117.24-50.44 117.26h32.84l9.3-23.48h54.1l9.26 23.48h33.56l-50.39-117.26zm18.66 27.29 16.49 41.03H762.5zm73.38 89.95v-117.26h37.28l47.59 73.68v-73.68h29.31v117.26h-36.06l-48.8-75.6v75.6zM269.2 1677.39v-117.27h95.66v26.23h-66.04v20.06h64.5v24.69h-64.5v20.83h66.04v25.46zm468.75 0v-117.27h95.66v26.23h-66.04v20.06h64.19v24.69h-64.19v20.83h66.04v25.46zm-369.38 0 46.58-57.91-47.68-59.36h36.93l28.4 36.7 28.5-36.7h35.48l-47.06 58.63 46.67 58.64h-36.93l-27.58-36.12-26.9 36.12zm131.3-117.25v117.27h30.09v-37.04h30.86c26.1 0 45.9-13.85 45.9-40.79 0-22.31-15.52-39.44-42.1-39.44zm30.09 26.52h32.5c8.43 0 14.46 5.17 14.46 13.5 0 7.83-6 13.5-14.56 13.5h-32.4zm89.49-26.54v117.27h29.31v-41.66h12.35l35.15 41.66h35.82l-38.57-43.2a35.7 35.7 0 0 0 32.16-36.03c0-24.67-19.37-38.04-40.98-38.04zm29.31 26.23h33.51c8.04 0 13.9 6.29 13.9 12.35 0 7.79-7.59 12.34-13.46 12.34h-33.95zm198.43 91.04v-25.46h58.67c8.68 0 12.44-4.7 12.44-9.84 0-4.93-3.75-9.91-12.44-9.91h-26.51c-23.05 0-35.89-14.04-35.89-35.12 0-18.8 11.76-36.94 46-36.94h57.1l-12.35 26.39h-49.37c-9.44 0-12.35 4.95-12.35 9.68 0 4.86 3.6 10.22 10.8 10.22h27.78c25.69 0 36.83 14.57 36.83 33.66 0 20.51-12.42 37.32-38.23 37.32zm107.59 0v-25.46h58.67c8.69 0 12.44-4.7 12.44-9.84 0-4.93-3.74-9.91-12.44-9.91h-26.5c-23.05 0-35.89-14.04-35.89-35.12 0-18.8 11.76-36.94 46-36.94h57.09l-12.34 26.39h-49.38c-9.44 0-12.34 4.95-12.34 9.68 0 4.86 3.59 10.22 10.8 10.22h27.77c25.7 0 36.84 14.57 36.84 33.66 0 20.51-12.42 37.32-38.24 37.32z%22 style=%22fill:%23016fd0;fill-opacity:1;stroke:none%22 transform=%22translate(-55.5 -1002.35)%22/%3E%3C/svg%3E\", ar: 1.003, mono: false },\n \"applepay\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 baseProfile=%22tiny%22 viewBox=%220 0 512 210.2%22%3E%3Cpath d=%22M93.6 27.1C87.6 34.2 78 39.8 68.4 39c-1.2-9.6 3.5-19.8 9-26.1 6-7.3 16.5-12.5 25-12.9 1 10-2.9 19.8-8.8 27.1m8.7 13.8c-13.9-.8-25.8 7.9-32.4 7.9-6.7 0-16.8-7.5-27.8-7.3-14.3.2-27.6 8.3-34.9 21.2-15 25.8-3.9 64 10.6 85 7.1 10.4 15.6 21.8 26.8 21.4 10.6-.4 14.8-6.9 27.6-6.9 12.9 0 16.6 6.9 27.8 6.7 11.6-.2 18.9-10.4 26-20.8 8.1-11.8 11.4-23.3 11.6-23.9-.2-.2-22.4-8.7-22.6-34.3-.2-21.4 17.5-31.6 18.3-32.2-10-14.8-25.6-16.4-31-16.8m80.3-29v155.9h24.2v-53.3h33.5c30.6 0 52.1-21 52.1-51.4s-21.1-51.2-51.3-51.2zm24.2 20.4h27.9c21 0 33 11.2 33 30.9s-12 31-33.1 31h-27.8zM336.6 169c15.2 0 29.3-7.7 35.7-19.9h.5v18.7h22.4V90.2c0-22.5-18-37-45.7-37-25.7 0-44.7 14.7-45.4 34.9h21.8c1.8-9.6 10.7-15.9 22.9-15.9 14.8 0 23.1 6.9 23.1 19.6v8.6l-30.2 1.8c-28.1 1.7-43.3 13.2-43.3 33.2 0 20.2 15.7 33.6 38.2 33.6m6.5-18.5c-12.9 0-21.1-6.2-21.1-15.7 0-9.8 7.9-15.5 23-16.4l26.9-1.7v8.8c0 14.6-12.4 25-28.8 25m82 59.7c23.6 0 34.7-9 44.4-36.3L512 54.7h-24.6l-28.5 92.1h-.5l-28.5-92.1h-25.3l41 113.5-2.2 6.9c-3.7 11.7-9.7 16.2-20.4 16.2-1.9 0-5.6-.2-7.1-.4v18.7c1.4.4 7.4.6 9.2.6%22/%3E%3C/svg%3E\", ar: 2.436, mono: true },\n \"banorte\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 id=%22layer%22 x=%220%22 y=%220%22 version=%221.1%22 viewBox=%220 0 1920 235.2%22%3E%3Cstyle id=%22style2%22 type=%22text/css%22%3E.st0%7Bfill:%23ec1c2d%7D%3C/style%3E%3Cg id=%22g24%22 transform=%22matrix(3.2 0 0 3.2 -65.6 -911.04)%22%3E%3Cpath id=%22path4%22 d=%22M206.2 325.5h.7c3.9 0 7-3.1 7-7v-6.1c0-3.6-.4-5.3-1.8-7.2-2-2.5-5.5-3.6-8.9-3.6h-42.4v49.3h38.7c4.4 0 9.6-.6 12.3-3.5 2.5-2.7 2.6-4.8 2.6-11.4v-2.2a8.2 8.2 0 0 0-8.2-8.3m-33.1-14.9h25.6c1.3 0 4 .5 4 2.6v5.4c0 1.7-2.5 2.4-3.5 2.4h-26.1zm29.8 27.8c0 1.5-1.2 2.7-2.7 2.7h-27.1v-11H200c1.6 0 2.9 1.3 2.9 2.9z%22 class=%22st0%22/%3E%3Cpath id=%22path6%22 d=%22M274.3 351h14L260 301.7h-11.5L220.7 351h12.5l5.8-10.7h29.6zm-30.1-20.3 9.7-17.8 9.5 17.8z%22 class=%22st0%22/%3E%3Cpath id=%22polygon8%22 d=%22M304.1 301.7h-8.4V351h11.2v-24.8l-.3-7.6 38.3 32.4h8.6v-49.3h-11.2v24.8l.3 7.6z%22 class=%22st0%22/%3E%3Cpath id=%22path10%22 d=%22M416.6 351h-38.1c-3.4 0-7.1-.8-9.1-3.2-1.7-1.9-2-5.2-2-7.9v-27.1c0-3.1.4-6.4 2.4-8.4s5.6-2.7 8.7-2.7h38.1c3.4 0 7.1.7 9.1 3.1 1.6 1.9 2 5.3 2 8v27.1c0 2.8-.3 6-2 7.9-2 2.4-5.7 3.2-9.1 3.2m-37-39.4v29.5h35.9v-29.5z%22 class=%22st0%22/%3E%3Cpath id=%22path12%22 d=%22M483.9 351h17.3l-22.1-18.2h6.8c5.2 0 9.5-4.2 9.5-9.5v-12.2c0-5.2-4.2-9.5-9.5-9.5H442V351h12.2v-18.2h9.7zm-29.7-39.9H481c1.3 0 2.3 1 2.3 2.3v7.7c0 1.3-1 2.3-2.3 2.3h-26.8z%22 class=%22st0%22/%3E%3Cpath id=%22polygon14%22 d=%22M504.4 301.7v9.8h22.1V351h12.2v-39.5h22v-9.8h-34.2z%22 class=%22st0%22/%3E%3Cpath id=%22polygon16%22 d=%22M605.9 320.5h-23.1v-9.3H620v-9.5h-49.4V351h49.9v-10h-37.7v-11h23.1z%22 class=%22st0%22/%3E%3Cpath id=%22path18%22 d=%22M84.5 284.7c-28.5 0-51.6 7.5-51.6 16.8 0 7.8 16.1 14.3 38 16.2l9-27.7 1.6 28.2h3.1c28.5 0 51.6-7.5 51.6-16.8-.1-9.1-23.2-16.7-51.7-16.7%22 class=%22st0%22/%3E%3Cpath id=%22path20%22 d=%22M70.6 318.7c-27.8.3-50.1 9.1-50.1 20 0 9.2 15.8 16.9 37.4 19.3z%22 class=%22st0%22/%3E%3Cpath id=%22path22%22 d=%22m81.4 319 2.2 39.2c22.9-2 39.9-10 39.9-19.5.1-9.8-18.1-18-42.1-19.7%22 class=%22st0%22/%3E%3C/g%3E%3C/svg%3E\", ar: 8.163, mono: false },\n \"bbva\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 id=%22Capa_1%22 x=%220%22 y=%220%22 version=%221.1%22 viewBox=%220 0 600 179.8%22%3E%3Cstyle id=%22style1%22 type=%22text/css%22%3E.st0%7Bfill:%23004481%7D%3C/style%3E%3Cg id=%22g4%22%3E%3Cpath id=%22path1%22 d=%22m432.2 24.4-51.6 98.2c-1.1 2.1-4.3 2.1-5.4 0l-51.6-98.2c-.5-1-1.5-1.6-2.6-1.6h-25c-1.7 0-2.8 1.8-2 3.3l81.3 152.2c1.1 2.1 4.1 2.1 5.3 0l81.3-152.2c.8-1.5-.3-3.3-2-3.3h-25c-1.2 0-2.2.6-2.7 1.6%22 class=%22st0%22 style=%22fill:%23001391;fill-opacity:1%22/%3E%3Cpath id=%22path2%22 d=%22m461.5 155.5 51.6-98.2c1.1-2.1 4.3-2.1 5.4 0l51.6 98.2c.5 1 1.5 1.6 2.6 1.6h25c1.7 0 2.8-1.8 2-3.3L518.4 1.6c-1.1-2.1-4.1-2.1-5.3 0l-81.3 152.2c-.8 1.5.3 3.3 2 3.3h25c1.1-.1 2.2-.7 2.7-1.6%22 class=%22st0%22 style=%22fill:%23001391;fill-opacity:1%22/%3E%3Cpath id=%22path3%22 d=%22M108.8 95.2c10.8-5.4 17.5-17.1 17.5-31.4 0-24.5-19.1-41.1-46-41.1H3c-1.7 0-3 1.3-3 3v151.1c0 1.7 1.3 3 3 3h74c37 0 56.5-15.9 56.5-47.1 0-30.4-24.7-37.5-24.7-37.5M29 45.5h45.9c16.9 0 25.5 7.2 25.5 20.6s-8.6 20.6-25.5 20.6H29a3 3 0 0 1-3-3V48.5c0-1.7 1.3-3 3-3M75.5 157H29c-1.7 0-3-1.3-3-3v-41.7a3 3 0 0 1 3-3h46.5c22.2 0 32.1 6.3 32.1 23.8-.1 17.7-9.7 23.9-32.1 23.9%22 class=%22st0%22 style=%22fill:%23001391;fill-opacity:1%22/%3E%3Cpath id=%22path4%22 d=%22M267.5 95.2c10.8-5.4 17.5-17.1 17.5-31.4 0-24.5-19.1-41.1-46-41.1h-77.4c-1.7 0-3 1.3-3 3v151.1c0 1.7 1.3 3 3 3h74c37 0 56.5-15.9 56.5-47.1.1-30.4-24.6-37.5-24.6-37.5m-79.8-49.7h45.9c16.9 0 25.5 7.2 25.5 20.6s-8.6 20.6-25.5 20.6h-45.9c-1.7 0-3-1.3-3-3V48.5c0-1.7 1.3-3 3-3M234.1 157h-46.5a3 3 0 0 1-3-3v-41.7a3 3 0 0 1 3-3h46.5c22.2 0 32.1 6.3 32.1 23.8 0 17.7-9.7 23.9-32.1 23.9%22 class=%22st0%22 style=%22fill:%23001391;fill-opacity:1%22/%3E%3C/g%3E%3C/svg%3E\", ar: 3.337, mono: false },\n \"chedraui\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1920 148.64%22%3E%3Cpath d=%22m1277.47 263.16 90.62-132.68h45.73l88.95 132.68h20.56l-104.05-147.8h-55.8l-103.21 147.8zm273.26-46.91c0 25.19 19.3 47.02 44.89 47.02h135.51c23.91 0 46.15-16.8 46.15-41.57V115.47h-19.3v105.4c0 13.85-10.07 26.03-24.33 26.03h-138.03c-14.69 0-26.01-12.6-26.01-27.3V115.47h-18.88zm-314.75.94c0-12.6-3.78-16.38-6.72-17.64l-2.94-1.26 3.78-2.51c6.71-4.63 5.88-15.96 5.88-17.22v-23.94c0-21.41-17.63-39.04-39.02-39.04h-184.18v147.37l18.88-.42V131.11h160.68c13.43 0 25.17 10.5 25.17 24.35v23.94c0 6.72-3.35 15.12-7.13 17.21l-2.93 1.68 2.51 2.1c3.78 3.36 6.72 7.14 6.72 16.8v45.34h19.3z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3Cpath d=%22m3013.05 1.34 1.6 557.02h662.8c84.04 0 166.5-57.15 166.5-146V147.31c0-90.44-84.04-145.98-169.67-145.98zm66.53 59.28h594.61c50.74 0 101.49 33.3 101.49 87.27v255.5c0 55.54-47.57 96.8-101.49 96.8h-594.61z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.727499%22 transform=%22scale(.26458)%22/%3E%3Cpath d=%22M693.45 263.14v-15.96H492.9V131.29h200.55v-15.53H476.13v147.38zM-36.9 221.5c.42-7.56 0-66.76 0-68.02 1.26-13.44 5.46-22.67 25.6-22.67h172.85v-15.54H-10.88c-22.24 0-43.22 15.54-43.22 38.63v67.6c0 22.68 18.88 41.15 41.54 41.15h174.11V247.1H-12.56c-14.27-.42-24.34-12.17-24.34-25.6m1509.88 41.66h20.98l-28.53-40.3H1314.8l-27.69 39.88h21.82l14.26-24.35h133z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3Cpath d=%22M502.4 184.69h191.32v-17.64H518.77v-12.18h174.95v-15.11H502.4zm-.83 9.23v44.09l192.15.42v-16.38l-174.95.42v-13.85h174.95v-14.7zm-528.82 27.16c.42 8.82 5.88 17.22 14.27 17.64h174.53v-16.38h-173.7v-67.6h173.7v-15.12H-12.56c-9.23 0-14.69 5.46-14.69 15.12zm1758.38 1.46h-136.77V115.47H1578v105.81c0 9.24 6.7 17.64 16.36 17.64h136.77c9.65 0 18.04-7.56 18.04-17.22V115.47h-18.04zm-691.74 40.27h19.3v-45.35H1190v45.77h19.73v-46.19c0-10.49-9.66-15.1-19.73-15.1h-150.6z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3Cpath d=%22M4133.8 94.11v207.9h570.83c36.48 0 71.38-23.81 71.38-61.9v-76.17c0-38.08-30.13-69.83-68.2-69.83zm72.35 56.14h497.9l-1.57 93.65h-496.33zM3112.58 93.93v374.52h562.92c34.88 0 68.18-25.38 68.18-61.87V147.89c0-34.92-34.89-53.96-66.6-53.96zm68.64 56.55h493.14V406h-493.14z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.727499%22 transform=%22scale(.26458)%22/%3E%3Cpath d=%22M237.17 185.27h165.3v-69.7l-15.95.42v50.8h-133.4V116h-15.95zm0 8.4v69.7h15.94v-55h133.41v55.42l15.95-.42v-69.7z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3Cpath d=%22M5391.07 92.87 5200.8 370.59h520.1L5535.37 92.87zm26.25 55.1h90.4l98.3 153.95h-282.24z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.727499%22 transform=%22scale(.26458)%22/%3E%3Cpath d=%22M1848.28 115.57v147.38h17.62V115.57zm-10.91 147.38v-147.8h-18.46l.42 147.8zm-1607.76.84v-147.8h-15.94v147.38zm182.51-148.22v146.96h14.68V115.57z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3C/svg%3E\", ar: 12.917, mono: false },\n \"circlek\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%220.86 0.86 274.53 274.52%22%3E%3Cpath fill=%22%23ec2024%22 d=%22M1 1h274.25v274.25H1z%22/%3E%3Cpath fill=%22%23fff%22 d=%22M203.1 93.69c9.63-12.92 6.67-29.84-5.67-39.08-12.39-9.21-29.43-7.24-39.1 5.71l-32.81 44.04V76c0-16.15-12.48-27.93-27.9-27.93-15.44 0-27.91 11.78-27.91 27.93v124.27c0 16.02 12.47 27.8 27.9 27.8s27.9-11.42 27.9-27.8l.05-37.02 66.29 74.9a113 113 0 0 1-53.7 13.48c-62.7 0-113.56-50.83-113.56-113.56 0-62.7 50.86-113.53 113.56-113.53s113.56 50.84 113.56 113.53c0 23-6.85 44.38-18.6 62.26l-59.58-67.04z%22/%3E%3Cpath fill=%22none%22 stroke=%22%23004b8d%22 stroke-width=%223.8%22 d=%22M203.1 93.69c9.63-12.92 6.67-29.84-5.67-39.08-12.39-9.21-29.43-7.24-39.1 5.71l-32.81 44.04V76c0-16.15-12.48-27.93-27.9-27.93-15.44 0-27.91 11.78-27.91 27.93v124.27c0 16.02 12.47 27.8 27.9 27.8s27.9-11.42 27.9-27.8l.05-37.02 66.29 74.9a113 113 0 0 1-53.7 13.48c-62.7 0-113.56-50.83-113.56-113.56 0-62.7 50.86-113.53 113.56-113.53s113.56 50.84 113.56 113.53c0 23-6.85 44.38-18.6 62.26l-59.58-67.04z%22/%3E%3C/svg%3E\", ar: 1, mono: false },\n \"citibanamex\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220.11 0.11 43.59 6.6%22%3E%3Cpath d=%22m33.87 146.96-.03-.06-.06-.02h-.15v.16h.15l.06-.01q.03-.03.03-.07m.1 0q0 .07-.04.11l-.09.06.12.23h-.11l-.11-.22h-.11v.22h-.1v-.57h.25l.07.01.06.03.04.05zm.2.12-.04-.17a.4.4 0 0 0-.23-.23l-.17-.03a.4.4 0 0 0-.31.12.4.4 0 0 0-.13.31.4.4 0 0 0 .13.31.4.4 0 0 0 .3.13.4.4 0 0 0 .32-.13.4.4 0 0 0 .12-.3m.08 0a.5.5 0 0 1-.15.37.5.5 0 0 1-.37.15.5.5 0 0 1-.37-.15.5.5 0 0 1-.15-.37.5.5 0 0 1 .15-.37.5.5 0 0 1 .37-.15.5.5 0 0 1 .37.15q.06.07.1.17t.05.2m-35.64 4.25v-3.64h.75v3.64zm-.62-.79.05-.02-.18.7h-.01a1 1 0 0 1-.66.17c-.5 0-.83-.4-.83-.95v-2.06h-.63v-.68h.63v-.74l.73-.4v1.14h.76v.68h-.76v1.94q0 .41.35.4.25 0 .55-.18m-3.66.8v-3.65h.74v3.64zm-2.88-1.82c0 .68.48 1.17 1.13 1.17q.48 0 .89-.4l.01-.03.43.51-.02.02q-.52.61-1.29.61-.8 0-1.33-.49a1.8 1.8 0 0 1-.57-1.39q0-.87.57-1.4c.34-.31.81-.48 1.33-.48q.77 0 1.3.61v.02l-.42.5-.01-.01a1.2 1.2 0 0 0-.89-.41c-.65 0-1.13.5-1.13 1.17m35.36 1.82h-.85l-.34-.64c-.15-.26-.31-.6-.38-.73l-.4.74-.35.63h-.8l1.1-1.89-1.03-1.75h.83l.28.51c.14.26.32.59.38.73l.39-.74.27-.5h.83l-1.05 1.75zm-5.64-2.16h1.8c-.04-.5-.33-.91-.92-.91-.48 0-.82.33-.88.91m2.51.26-.02.33h-2.5c.07.7.52.99.96.99.3 0 .63-.11.87-.3l.4.47q-.48.47-1.31.48c-.85 0-1.64-.68-1.64-1.89 0-1.23.72-1.9 1.66-1.9 1.03 0 1.58.84 1.58 1.82m-3.72-.22v2.12h-.74v-2.06c0-.74-.22-1-.7-1-.47 0-.68.34-.68.93v2.13h-.74v-2.06c0-.74-.22-1-.69-1s-.72.34-.72.93v2.13h-.73v-3.64h.73v.34c.18-.26.52-.42.89-.42.5 0 .8.19 1 .54.26-.33.54-.54 1.11-.54.84 0 1.27.38 1.27 1.6m-6.4 1.08v-.52q-.29-.15-.86-.16c-.46 0-.77.21-.77.54 0 .36.25.6.72.6.38 0 .74-.23.9-.46m-.7-2.68c.8 0 1.43.4 1.43 1.22v2.5h-.73v-.36a1.5 1.5 0 0 1-1.02.43c-.6 0-1.3-.33-1.3-1.22 0-.82.66-1.18 1.48-1.18q.53 0 .84.14v-.27c0-.4-.3-.62-.74-.62q-.53 0-.95.23l-.28-.54a2.3 2.3 0 0 1 1.26-.33m-6.44 2.68v-.52q-.29-.15-.86-.16c-.46 0-.78.21-.78.54 0 .36.26.6.73.6.38 0 .74-.23.9-.46m-.7-2.68c.8 0 1.43.4 1.43 1.22v2.5h-.73v-.36a1.5 1.5 0 0 1-1.03.43c-.59 0-1.3-.33-1.3-1.22 0-.82.67-1.18 1.49-1.18q.52 0 .84.14v-.27c0-.4-.3-.62-.74-.62-.38 0-.67.07-.95.23l-.28-.54a2.3 2.3 0 0 1 1.26-.33m5.08 1.63v2.09h-.73v-2.06c0-.74-.28-1-.75-1-.48 0-.77.34-.77.93v2.13h-.7v-3.64h.74v.34c.18-.26.58-.42.95-.42.84 0 1.3.47 1.3 1.63m-8.61 1.5c.5 0 .87-.38.87-1.15 0-.92-.38-1.32-.9-1.32-.34 0-.7.23-.88.46v1.54c.16.21.55.47.9.47m.1-3.13c.78 0 1.48.57 1.48 1.96 0 1.24-.76 1.83-1.52 1.83-.36 0-.76-.2-.96-.41v.34H.55v-4.38l.74-.4v1.48c.26-.24.62-.42 1-.42%22 style=%22fill:%2312417d;fill-opacity:1;stroke-width:.26458332%22 transform=%22translate(9.43 -145.43)%22/%3E%3Cpath d=%22M-.15 147.15h-.86a3 3 0 0 0-2.14-.93c-.8 0-1.55.32-2.14.93h-.85a3.7 3.7 0 0 1 3-1.6c1.22 0 2.37.66 2.99 1.6m32.4 1.68.6.18c.28.09.36.3.36.52 0 .43-.3 1.07-.61 1.4-.18.2-.32.28-.5.28q-.15 0-.36-.07c-.21-.06-.47-.17-.62-.22.01.2.02.3.02.62 0 .53-.6.57-.93.57-.32 0-.71-.06-1.02-.2-.34-.17-.45-.33-.45-.88l.02-.54q-.29.12-.59.21c-.5.17-.73-.38-.83-.7a3 3 0 0 1-.14-.8c0-.55.18-.74.6-.87.2-.07.48-.14.64-.18l-.39-.5a.5.5 0 0 1-.1-.29c0-.3.3-.55.52-.7.25-.18.74-.44 1.17-.44.23 0 .39.1.58.35.13.17.29.4.37.54q.16-.25.36-.51a.5.5 0 0 1 .4-.2c.25 0 .51.15.69.28.24.18.52.46.68.75q.14.23.14.4 0 .23-.2.48c-.14.18-.31.4-.42.52m-.7-.12c.13 0 .37.04.6.1a1.8 1.8 0 0 0-.72-1.2.2.2 0 0 0-.14-.04.15.15 0 0 0-.14.14q0 .12.12.26c.1.14.27.34.27.52 0 .12-.07.2-.1.23zm.24 1.53c.16-.24.26-.47.26-.57s-.1-.14-.16-.14q-.12 0-.25.2c-.13.18-.33.5-.6.41l-.07-.04.08.25q.05.19.06.46c.16-.08.45-.26.68-.57m-.9-.23-.03-.2q0-.2.1-.49c.1-.33.23-.49.36-.56q-.26.02-.66-.27c-.29-.2-.4-.37-.43-.52q-.06.25-.46.54c-.3.2-.48.26-.63.24q.22.14.37.6.09.25.09.42 0 .14-.05.23.2-.16.7-.16.5.01.64.17m-.75.98q.21-.01.2-.15-.01-.16-.28-.22c-.22-.07-.59-.16-.59-.44l.01-.08-.2.15q-.17.1-.42.2c.17.18.62.54 1.28.54m-1.42-1.57c0-.23-.03-.6.24-.69l.06-.01q-.16-.09-.52-.5c-.11.24-.32.77-.11 1.38q.08.18.2.14.16-.06.13-.32m.45-1.9q-.11.07-.1.15c0 .05.03.15.16.15.19 0 .44-.16.7-.16.23 0 .3.17.3.2q0-.18.3-.66l-.28-.02c-.3 0-.7.06-1.08.34%22 style=%22fill:%23e30b13;fill-opacity:1;stroke-width:.26458332%22 transform=%22translate(9.43 -145.43)%22/%3E%3C/svg%3E\", ar: 6.605, mono: false },\n \"clip\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 fill=%22none%22 viewBox=%220 0 64 64%22%3E%3Cg fill-rule=%22evenodd%22 clip-path=%22url(%23a)%22 clip-rule=%22evenodd%22%3E%3Cpath fill=%22%23FC4C02%22 d=%22M63.97 10.8A10.82 10.82 0 0 0 48.98.85L9.57 17.6A15.7 15.7 0 0 0 0 32.01v21.17a10.82 10.82 0 0 0 15.08 9.94l39.25-16.66a15.7 15.7 0 0 0 9.64-14.45z%22/%3E%3Cpath fill=%22%23fff%22 d=%22M27.71 40.51c-.46 0-.83-.41-.83-.92V20.12c0-.5.37-.92.83-.92s.83.41.83.92V39.6c0 .5-.37.92-.83.92m7.23-.88V24.42c0-.51-.37-.93-.83-.93s-.83.42-.83.93v15.22c0 .52.37.94.83.94s.83-.42.83-.94m0-19.58V20a.8.8 0 0 0-.83-.81.8.8 0 0 0-.83.8v.06c0 .44.37.8.83.8s.83-.36.83-.8M21.93 38.46a.93.93 0 0 0 0-1.32.94.94 0 0 0-1.33 0 7 7 0 0 1-9.84 0 6.87 6.87 0 0 1 0-9.76 7 7 0 0 1 4.92-2.02c1.86 0 3.6.71 4.92 2.02.37.36.96.36 1.33 0a.93.93 0 0 0 0-1.32 8.8 8.8 0 0 0-6.25-2.57 8.8 8.8 0 0 0-6.25 2.57 8.73 8.73 0 0 0 0 12.4 8.8 8.8 0 0 0 6.25 2.56c2.27 0 4.53-.85 6.25-2.56m19.62 5.86V32.24a6.9 6.9 0 0 1 13.8 0 6.9 6.9 0 0 1-6.9 6.88c-2.2 0-3.68-.83-3.7-.84a.93.93 0 0 0-.94 1.61c.08.05 1.91 1.1 4.64 1.1a8.77 8.77 0 0 0 8.77-8.75 8.77 8.77 0 0 0-17.54 0v12.08a.93.93 0 0 0 1.87 0%22/%3E%3Cpath fill=%22%23FC4C02%22 d=%22M63.8 50.5a2.69 2.69 0 1 1-5.37 0 2.69 2.69 0 0 1 5.38 0m-.42 0c0-1.27-1.01-2.3-2.26-2.3a2.3 2.3 0 0 0-2.26 2.3 2.3 2.3 0 0 0 2.26 2.29 2.3 2.3 0 0 0 2.26-2.3m-1.13 1.47h-.48l-.67-1.2h-.45v1.2h-.4v-2.95h1a.9.9 0 0 1 .92.88c0 .43-.26.7-.63.81zm-.5-2.07c0-.3-.22-.52-.55-.52h-.55v1.03h.55c.33 0 .56-.21.56-.5%22/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=%22a%22%3E%3Cpath fill=%22%23fff%22 d=%22M0 0h64v64H0z%22/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\", ar: 1, mono: false },\n \"dhl\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 overflow=%22visible%22 version=%221.0%22 viewBox=%220 0 175.75 38.79%22%3E%3Cpath fill=%22%23fecc00%22 d=%22M0 38.79V0h175.75v38.79z%22/%3E%3Cpath fill=%22%23d50029%22 d=%22m56.67 16.2-2.84 3.91c-.4.54-1.11 1.51 1.26 1.51h12.52l3.7-5.04c2.3-3.12.2-9.61-8.02-9.61H30.91l-5.62 7.62h30.6c1.55 0 1.53.6.78 1.62m-9.2 7.3c-2.38 0-1.66-.97-1.26-1.51l2.85-3.88c.76-1.03.78-1.62-.77-1.62h-14L23.03 31.82h27.5c9.08 0 14.14-6.18 15.7-8.32zm17.9 8.32h16.12l6.12-8.32H71.48zm41.62-24.86-6.2 8.41h-7.2l6.2-8.4H83.64L72.87 21.62h39.47L123.1 6.97Zm-18.3 24.86h16.13l6.12-8.32H94.81zM0 26.78v1.77h22.47l1.3-1.77zm26.18-3.28H0v1.77h24.88ZM0 31.82h20.06l1.3-1.76H0Zm152.07-3.27h23.68v-1.77h-22.38zm-2.4 3.27h26.08v-1.76h-24.8zm6.11-8.32-1.3 1.77h21.27V23.5Zm-21.12-1.88 10.79-14.65h-17.08l-10.8 14.65zm-18.47 1.88-1.76 2.4c-2.02 2.73-.23 5.92 6.38 5.92h25.9l6.12-8.31z%22/%3E%3C/svg%3E\", ar: 4.531, mono: false },\n \"estafeta\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%220 0 6834.46 1080%22%3E%3Cpath fill=%22%23c01818%22 d=%22m1423.74 511.84 213.92 182.45c40.33 38.22 65.32 92.83 65.32 153.05 0 115.32-92.33 208.87-206.48 208.87l-146.33.5H901.39l45.79-200.35 337.66.58c36.58 0 66.23-29.89 66.23-66.78a66.8 66.8 0 0 0-28.62-55.1L1133.9 596.1c-50.18-38.07-82.65-99.06-82.65-167.4 0-115.69 92.44-209.17 206.4-209.17l488.02-.35-40 176.47h-236.61c-36.46 0-66.08 29.83-66.08 66.66 0 19.55 8.06 37.11 21.16 49.35zm804.66 370.53h.86c-36.52 0-66.66-29.82-66.07-66.84 0-7.8 1.86-13.82 3.66-19.73l90.44-401.39h150.8l40.02-175.29h-150.76L2347.96 0h-289.03l-50.28 219.15h-157.79l-40.33 175.23h158.23l-116.6 510.27a122 122 0 0 0-2.72 27.2c0 68.98 55.44 125.38 124.02 125.38l249.14-1.08 40.18-174.61c.09.06-21.62.83-34.39.83m3183.11 0h.64c-36.52 0-66.5-29.82-65.88-66.84 0-7.8 1.7-13.82 3.37-19.73l90.64-401.39H5591l39.99-175.29h-150.51L5530.5 0h-288.35l-50.77 219.15h-157.42l-40.33 175.23h158.25L5035.2 904.65a116 116 0 0 0-3.04 27.2c.16 68.98 55.48 125.38 123.94 125.38h.21l249.45-1.08 39.9-174.61c-.03.06-21.22.83-34.17.83m-2068.96 173.41c18.93-8.06 32.06-24.6 36.95-45.2l1.61-6.69-.83 1.55 140.07-611.37h-115.6L3444.38 219h115.75l12.89-56.97 2.91-11.55C3601.4 64 3680.47.93 3774.15.93l.43-.59h274.26l-32 140.66-97.51-.28c-31.35 0-57 22-64.3 51.24v-1.12l-6.73 28.13h150.64l-39.47 175.75H3808.4l-124.58 548.3c-13.2 64.53-69.5 113-137.35 113zM2797.6 860.94l-1.3.62a104.3 104.3 0 0 1-58.23 17.5c-59.38 0-107.46-48.5-107.46-108.63 0-60.06 48.08-108.88 107.46-108.88l203.66.74c-17.12 85.59-70.93 157.8-144.13 198.65m506.74-533.31c0-60.06-48.23-108.5-107.43-108.5h-643.46l-39.3 174.1h444.25c18.52 0 33.55 14.72 33.55 33.21 0 2.54-.16 4.93-.78 7.38h-.4l-17.69 76.94h-311.43c-159.58 0-289.03 131.21-289.03 292.78 0 2.39 0 5.02.15 7.47 0 0 .1 8.3.28 13.66 4.4 150.72 139.7 255.24 287.08 255.24 18.53 0 33.55-1.37 54.43-4.96 59.22-10.6 103.02-27.5 143.3-59.16 19.54 24.72 50.2 39.99 83.84 39.99h271.94c-29.61-19.27-49-53.6-49-91.88 0-9.17.96-18.09 2.97-26.76l134.03-586.46v.83c1.74-7.65 2.7-15.7 2.7-23.88M656.28 434.06l-18.09 77.9H385.62l14.15-59.44c4.18-32.58 31.38-57.64 64.56-58.26l159.58.19c18.25 0 32.9 14.86 32.9 33.54 0 2.08 0 4-.53 6.07m205.65-214.88H278.76l-2.15-1.02c-65.57 0-121.02 45.7-136.07 107.67L2.14 925.31C.5 932.77 0 939.83 0 947.73c0 60.13 48.26 108.79 107.61 108.79h697.64l45.6-201.06H389.8l.93.34c-36.68 0-66.41-29.92-66.41-66.82 0-5.7 1.08-11.27 2.2-16.5l-.35.58 22.43-103h545.27l73.9-322.23a132 132 0 0 0 1.55-20.1c.03-59.85-47.95-108.55-107.39-108.55m5118.52 641.85-1.11.53a105.6 105.6 0 0 1-58.54 17.5c-59.26 0-107.03-48.5-107.03-108.63 0-60.16 47.8-108.88 107.03-108.88l203.78.62a294.3 294.3 0 0 1-144.13 198.86M6380.05 219h-643.78l-39.43 174.27h444.6a33.24 33.24 0 0 1 33.45 33.2c0 2.6-.19 4.93-.71 7.5l-.5-.15-17.35 76.94h-311.55c-159.5 0-289 131.3-289 292.78v7.53s.3 8.33.3 13.69c4.31 150.63 139.8 255.24 286.9 255.24 18.62 0 33.7-1.46 54.61-5.05 59.32-10.6 102.75-27.5 143.42-59.16 19.61 24.8 50.21 40.23 83.76 40.23h272.03c-29.8-19.51-49.31-53.83-49.31-92.12 0-9.07 1.08-18.09 3.25-26.76l133.9-586.43v.77c1.71-7.65 2.8-15.64 2.8-23.88-.1-60.16-48.33-108.6-107.4-108.6M4588 434.68l-17.8 78.03h-252.62l14.2-59.44c3.83-32.43 31.25-57.83 64.33-58.36l159.52.1c18.25 0 33.05 15.08 33.05 33.54 0 2.1-.18 4.15-.68 6.13m205.93-215.06h-583.27l-2.05-.93c-66 0-121.05 45.78-136.45 107.55L3933.9 926.02c-1.7 7.56-2.05 14.43-2.05 22.24 0 60.22 48.14 108.91 107.33 108.91h697.8l45.78-201.19h-461.2l.87.34c-36.68 0-66.08-29.8-66.08-66.66 0-5.85.62-11.4 2.02-16.66l-.78.71 22.86-103.33h545.46l73.47-322.34a100 100 0 0 0 1.92-19.67c0-60.06-47.98-108.75-107.36-108.75m1899.11 131.21h20.88l34.13 56.93h24.82l-37.36-58.6c20.23-2.14 34.6-12.17 34.6-36.18 0-27.17-16.05-38.32-48.5-38.32h-50.19v133.1h21.59v-56.93zm0-18.58v-38.91h26.52c13.07 0 28.9 1.95 28.9 17.94 0 19.36-14.62 20.97-30.73 20.97zm141.4 6.69c0-72.2-54.51-120.25-117.36-120.25-63.94 0-118.24 48.01-118.24 120.25 0 68.45 49.1 120.18 118.24 120.18 62.85 0 117.37-47.82 117.37-120.18m-25.65 0c0 58.76-40.67 99.21-91.72 99.21-57.34 0-92.68-44.6-92.68-99.21 0-58.33 40.33-99.22 92.68-99.22 51.05-.03 91.72 40.89 91.72 99.22%22/%3E%3C/svg%3E\", ar: 6.328, mono: false },\n \"farmaciasyza\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 141.31 65.39%22%3E%3Cg data-name=%22Grupo 3266%22%3E%3Cpath fill=%22%23009%22 d=%22M90.49 39.75a8 8 0 0 1-6.43 2.7c-4.17 0-6.01-2.16-6.4-4.51s-.63-8.66 7.77-8.66a13 13 0 0 1 5.05.83ZM69.71 30.1c-.95 2.13-2.29 7.57-.56 11.74 1.88 4.51 5.66 7.71 12.51 7.71s10.07-3.46 10.07-3.46c3.41 5.52 11.48 2.79 11.48 2.79l-.06-5.82h-1.92c-1.53 0-1.83-1.67-1.83-3.06V24.57c-3.88-1.88-13.5-2.54-18.1-1.78 0 0-8.81 1.09-11.59 7.32%22 data-name=%22Trazado 25280%22/%3E%3Cpath fill=%22%23009%22 d=%22M51.02 41.85 60.29 33a42 42 0 0 0 4.95-5.26l-.13-4.96H37.3v7.34h13.87C45.23 35.58 36.6 43.97 36.6 43.97v4.91h29.15l-.1-7.03Z%22 data-name=%22Trazado 25281%22/%3E%3Cpath fill=%22%233c3%22 d=%22M25.42 58.35h4v1.44h-2.26v1.43h1.48v1.34h-1.48v2.65H25.4Z%22 data-name=%22Trazado 25282%22/%3E%3Cpath fill=%22%233c3%22 d=%22M34.93 62.62h1.5l-.52-1.77-.13-.52h-.19l-.11.52Zm-.48-4.28h2.48L39 65.21h-1.8l-.34-1.15h-2.35l-.35 1.15h-1.78Z%22 data-name=%22Trazado 25283%22/%3E%3Cpath fill=%22%233c3%22 d=%22M45.98 59.97a.7.7 0 0 0-.54-.18h-.84v1.72h.84a.8.8 0 0 0 .54-.2 1 1 0 0 0 .2-.68 1 1 0 0 0-.2-.66m.74 2.66 1.6 2.58H46.3l-1.44-2.35h-.27v2.35h-1.74v-6.86h2.64a2.5 2.5 0 0 1 1.71.51 2.4 2.4 0 0 1 .71 1.8 2.2 2.2 0 0 1-.72 1.7 2 2 0 0 1-.47.28%22 data-name=%22Trazado 25284%22/%3E%3Cpath fill=%22%233c3%22 d=%22M56.18 64.34h-.86L54.2 61.9a5 5 0 0 1-.21-.63h-.14s.06.74.06 1.02v2.92h-1.75v-6.86h1.94l1.6 3.62h.1l1.6-3.62h1.94v6.86h-1.75V62.3c0-.29.06-1.02.06-1.02h-.14a5 5 0 0 1-.22.62Z%22 data-name=%22Trazado 25285%22/%3E%3Cpath fill=%22%233c3%22 d=%22M65.75 62.62h1.5l-.54-1.77-.12-.52h-.2l-.1.52Zm-.49-4.28h2.48l2.07 6.87h-1.79l-.34-1.15h-2.36l-.34 1.15h-1.79Z%22 data-name=%22Trazado 25286%22/%3E%3Cpath fill=%22%233c3%22 d=%22M78.25 64.9a4 4 0 0 1-2 .46 3.5 3.5 0 0 1-2.04-.61c-.54-.45-.95-1.18-.95-2.98 0-1.7.39-2.4.9-2.87a3 3 0 0 1 2.1-.72 5 5 0 0 1 1.77.33l-.3 1.36a4 4 0 0 0-1.2-.2 1.6 1.6 0 0 0-1.08.36c-.23.23-.43.68-.43 1.75 0 1.12.2 1.55.46 1.78a1.6 1.6 0 0 0 1.05.31 5 5 0 0 0 1.41-.27Z%22 data-name=%22Trazado 25287%22/%3E%3Cpath fill=%22%233c3%22 d=%22M82.14 58.35h1.75v6.85h-1.75z%22 data-name=%22Rect%C3%A1ngulo 1541%22/%3E%3Cpath fill=%22%233c3%22 d=%22M90.28 62.62h1.5l-.53-1.77-.12-.52h-.2l-.11.52Zm-.48-4.28h2.48l2.07 6.87h-1.79l-.34-1.15h-2.36l-.35 1.15h-1.78Z%22 data-name=%22Trazado 25288%22/%3E%3Cpath fill=%22%233c3%22 d=%22M100.66 65.36a6 6 0 0 1-2.54-.58l.31-1.4a5 5 0 0 0 2.04.5c.5 0 .86-.23.86-.7q.01-.51-.6-.66l-.74-.18c-1.11-.25-1.95-.69-1.95-2.02 0-1.28.86-2.13 2.5-2.13a5 5 0 0 1 2.08.48l-.48 1.39a4 4 0 0 0-1.53-.39c-.5 0-.78.26-.78.62a.5.5 0 0 0 .43.52l.82.2c1.2.28 2.03.76 2.03 2.08a2.13 2.13 0 0 1-2.46 2.27%22 data-name=%22Trazado 25289%22/%3E%3Cpath fill=%22%23009%22 d=%22m24.38 22.74-7.3 17.62-6.78-17.62H0l11.34 27.13a9 9 0 0 1-1.21.79 8 8 0 0 1-2.48.84 18 18 0 0 1-2.2.24q-1.06.04-2.07 0l-1.4 6.47q2.07.15 5.22.15a20 20 0 0 0 8.3-1.54 14 14 0 0 0 5.2-3.98 13 13 0 0 0 .85-1.1 9 9 0 0 0 .67-1.15l12.46-27.85Z%22 data-name=%22Trazado 25290%22/%3E%3Cpath fill=%22%233c3%22 d=%22M118.55 22.76v5.15a5.87 5.87 0 0 0 11.74 0v-5.15h5.15a5.87 5.87 0 0 0 0-11.74h-5.15V5.87a5.87 5.87 0 0 0-11.74 0v5.15h-5.15a5.87 5.87 0 0 0 0 11.74Z%22 data-name=%22Trazado 25291%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 12.63a.53.53 0 1 1 .54.53.53.53 0 0 1-.53-.53%22 data-name=%22Trazado 25292%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 12.63a.4.4 0 1 1 .4.41.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25293%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 12.63a.29.29 0 1 1 .3.29.3.3 0 0 1-.3-.3%22 data-name=%22Trazado 25294%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 12.63a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25295%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 14.74a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25296%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 16.86a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25297%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 18.97a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25298%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 21.09a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25299%22/%3E%3Cpath fill=%22%23009%22 d=%22M131.44 13.69a.44.44 0 1 1 .44.44.44.44 0 0 1-.44-.44%22 data-name=%22Trazado 25300%22/%3E%3Cpath fill=%22%23009%22 d=%22M133.68 13.69a.32.32 0 1 1 .32.32.3.3 0 0 1-.32-.32%22 data-name=%22Trazado 25301%22/%3E%3Cpath fill=%22%23009%22 d=%22M135.91 13.69a.2.2 0 1 1 .2.2.2.2 0 0 1-.2-.2%22 data-name=%22Trazado 25302%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 14.74a.53.53 0 1 1 .54.54.53.53 0 0 1-.53-.54%22 data-name=%22Trazado 25303%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 14.74a.4.4 0 1 1 .4.41.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25304%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 14.74a.29.29 0 1 1 .09.2.3.3 0 0 1-.09-.2%22 data-name=%22Trazado 25305%22/%3E%3Cpath fill=%22%23009%22 d=%22M131.44 15.8a.44.44 0 1 1 .44.44.44.44 0 0 1-.44-.44%22 data-name=%22Trazado 25306%22/%3E%3Cpath fill=%22%23009%22 d=%22M133.68 15.8a.32.32 0 1 1 .32.32.3.3 0 0 1-.32-.32%22 data-name=%22Trazado 25307%22/%3E%3Cpath fill=%22%23009%22 d=%22M135.91 15.8a.2.2 0 1 1 .06.14.2.2 0 0 1-.06-.14%22 data-name=%22Trazado 25308%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 16.86a.53.53 0 1 1 .54.53.53.53 0 0 1-.53-.53%22 data-name=%22Trazado 25309%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 16.86a.4.4 0 1 1 .4.4.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25310%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 16.86a.29.29 0 1 1 .3.29.3.3 0 0 1-.3-.3%22 data-name=%22Trazado 25311%22/%3E%3Cpath fill=%22%23009%22 d=%22M131.44 17.92a.44.44 0 1 1 .44.44.44.44 0 0 1-.44-.44%22 data-name=%22Trazado 25312%22/%3E%3Cpath fill=%22%23009%22 d=%22M133.68 17.92a.32.32 0 1 1 .32.32.3.3 0 0 1-.32-.32%22 data-name=%22Trazado 25313%22/%3E%3Cpath fill=%22%23009%22 d=%22M135.91 17.92a.2.2 0 1 1 .06.14.2.2 0 0 1-.06-.14%22 data-name=%22Trazado 25314%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 18.98a.53.53 0 1 1 .54.53.53.53 0 0 1-.53-.53%22 data-name=%22Trazado 25315%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 18.97a.4.4 0 1 1 .4.41.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25316%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 18.97a.29.29 0 1 1 .3.3.3.3 0 0 1-.3-.3%22 data-name=%22Trazado 25317%22/%3E%3Cpath fill=%22%23009%22 d=%22M131.44 20.03a.44.44 0 1 1 .44.44.44.44 0 0 1-.44-.44%22 data-name=%22Trazado 25318%22/%3E%3Cpath fill=%22%23009%22 d=%22M133.68 20.03a.32.32 0 1 1 .32.32.3.3 0 0 1-.32-.32%22 data-name=%22Trazado 25319%22/%3E%3Cpath fill=%22%23009%22 d=%22M135.91 20.03a.2.2 0 1 1 .06.14.2.2 0 0 1-.06-.14%22 data-name=%22Trazado 25320%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 21.09a.53.53 0 1 1 .54.53.53.53 0 0 1-.53-.53%22 data-name=%22Trazado 25321%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 21.09a.4.4 0 1 1 .4.4.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25322%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 21.1a.29.29 0 1 1 .3.28.3.3 0 0 1-.3-.29%22 data-name=%22Trazado 25323%22/%3E%3Cpath fill=%22%23009%22 d=%22M128.65 22.78a.53.53 0 1 1-.53.53.53.53 0 0 1 .53-.53%22 data-name=%22Trazado 25324%22/%3E%3Cpath fill=%22%23009%22 d=%22M128.65 25a.4.4 0 1 1-.4.42.4.4 0 0 1 .4-.41%22 data-name=%22Trazado 25325%22/%3E%3Cpath fill=%22%23009%22 d=%22M128.65 27.24a.29.29 0 1 1-.29.29.3.3 0 0 1 .3-.29%22 data-name=%22Trazado 25326%22/%3E%3Cpath fill=%22%23009%22 d=%22M128.65 29.5a.14.14 0 1 1-.14.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25327%22/%3E%3Cpath fill=%22%23009%22 d=%22M126.54 29.5a.14.14 0 1 1-.14.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25328%22/%3E%3Cpath fill=%22%23009%22 d=%22M124.42 29.5a.14.14 0 1 1-.14.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25329%22/%3E%3Cpath fill=%22%23009%22 d=%22M122.3 29.5a.14.14 0 1 1-.13.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25330%22/%3E%3Cpath fill=%22%23009%22 d=%22M120.2 29.5a.14.14 0 1 1-.15.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25331%22/%3E%3Cpath fill=%22%23009%22 d=%22M127.6 23.9a.44.44 0 1 1-.45.45.44.44 0 0 1 .44-.44%22 data-name=%22Trazado 25332%22/%3E%3Cpath fill=%22%23009%22 d=%22M127.6 26.14a.32.32 0 1 1-.32.33.3.3 0 0 1 .32-.33%22 data-name=%22Trazado 25333%22/%3E%3Cpath fill=%22%23009%22 d=%22M127.6 28.38a.2.2 0 1 1-.15.06.2.2 0 0 1 .14-.06%22 data-name=%22Trazado 25334%22/%3E%3Cpath fill=%22%23009%22 d=%22M126.54 22.78a.53.53 0 1 1-.54.53.53.53 0 0 1 .54-.53%22 data-name=%22Trazado 25335%22/%3E%3Cpath fill=%22%23009%22 d=%22M126.54 25a.4.4 0 1 1-.4.42.4.4 0 0 1 .4-.41%22 data-name=%22Trazado 25336%22/%3E%3Cpath fill=%22%23009%22 d=%22M126.54 27.24a.29.29 0 1 1-.3.29.3.3 0 0 1 .3-.29%22 data-name=%22Trazado 25337%22/%3E%3Cpath fill=%22%23009%22 d=%22M125.48 23.9a.44.44 0 1 1-.44.45.44.44 0 0 1 .44-.44%22 data-name=%22Trazado 25338%22/%3E%3Cpath fill=%22%23009%22 d=%22M125.48 26.14a.32.32 0 1 1-.32.33.3.3 0 0 1 .32-.33%22 data-name=%22Trazado 25339%22/%3E%3Cpath fill=%22%23009%22 d=%22M125.48 28.38a.2.2 0 1 1-.2.2.2.2 0 0 1 .2-.2%22 data-name=%22Trazado 25340%22/%3E%3Cpath fill=%22%23009%22 d=%22M124.42 22.78a.53.53 0 1 1-.53.53.53.53 0 0 1 .53-.53%22 data-name=%22Trazado 25341%22/%3E%3Cpath fill=%22%23009%22 d=%22M124.42 25a.4.4 0 1 1-.4.42.4.4 0 0 1 .4-.41%22 data-name=%22Trazado 25342%22/%3E%3Cpath fill=%22%23009%22 d=%22M124.42 27.24a.29.29 0 1 1-.29.29.3.3 0 0 1 .3-.29%22 data-name=%22Trazado 25343%22/%3E%3Cpath fill=%22%23009%22 d=%22M123.36 23.9a.44.44 0 1 1-.44.45.44.44 0 0 1 .44-.44%22 data-name=%22Trazado 25344%22/%3E%3Cpath fill=%22%23009%22 d=%22M123.36 26.14a.32.32 0 1 1-.32.33.3.3 0 0 1 .32-.33%22 data-name=%22Trazado 25345%22/%3E%3Cpath fill=%22%23009%22 d=%22M123.36 28.38a.2.2 0 1 1-.14.06.2.2 0 0 1 .14-.06%22 data-name=%22Trazado 25346%22/%3E%3Cpath fill=%22%23009%22 d=%22M122.3 22.78a.53.53 0 1 1-.53.53.53.53 0 0 1 .54-.53%22 data-name=%22Trazado 25347%22/%3E%3Cpath fill=%22%23009%22 d=%22M122.3 25a.4.4 0 1 1-.4.42.4.4 0 0 1 .4-.41%22 data-name=%22Trazado 25348%22/%3E%3Cpath fill=%22%23009%22 d=%22M122.3 27.24a.29.29 0 1 1-.28.29.3.3 0 0 1 .29-.29%22 data-name=%22Trazado 25349%22/%3E%3Cpath fill=%22%23009%22 d=%22M121.25 23.9a.44.44 0 1 1-.44.45.44.44 0 0 1 .44-.44%22 data-name=%22Trazado 25350%22/%3E%3Cpath fill=%22%23009%22 d=%22M121.25 26.14a.32.32 0 1 1-.23.1.3.3 0 0 1 .23-.1%22 data-name=%22Trazado 25351%22/%3E%3Cpath fill=%22%23009%22 d=%22M121.25 28.38a.2.2 0 1 1-.14.06.2.2 0 0 1 .14-.06%22 data-name=%22Trazado 25352%22/%3E%3Cpath fill=%22%23009%22 d=%22M120.2 22.78a.53.53 0 1 1-.54.53.53.53 0 0 1 .53-.53%22 data-name=%22Trazado 25353%22/%3E%3Cpath fill=%22%23009%22 d=%22M120.2 25a.4.4 0 1 1-.42.42.4.4 0 0 1 .41-.41%22 data-name=%22Trazado 25354%22/%3E%3Cpath fill=%22%23009%22 d=%22M120.2 27.24a.29.29 0 1 1-.21.08.3.3 0 0 1 .2-.08%22 data-name=%22Trazado 25355%22/%3E%3Cpath fill=%22%23009%22 d=%22M113.72 41.85h-1.14v1.9h1.06c.64 0 1.01-.19 1.01-.98 0-.62-.27-.92-.94-.92m-1.67-.5h1.86a1.28 1.28 0 0 1 1.31 1.44 1.36 1.36 0 0 1-1.12 1.44l1.54 2.18h-.67l-1.46-2.16h-.92v2.16h-.55Zm1.58-1.8a4.4 4.4 0 1 0 4.39 4.38 4.4 4.4 0 0 0-4.39-4.39m0 9.34a4.94 4.94 0 1 1 3.5-1.45 5 5 0 0 1-3.5 1.45%22 data-name=%22Trazado 25356%22/%3E%3C/g%3E%3C/svg%3E\", ar: 2.161, mono: false },\n \"fedex\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%22-0.81 -0.35 74.35 33.92%22%3E%3Cpath d=%22m59.95 7.77 2.98 3.28 2.87-3.28h6.12l-5.99 6.73L72 21.28h-6.37l-2.95-3.3-2.92 3.3h-6.15l6.01-6.75-6.01-6.76z%22 style=%22fill:%23ff5900%22 transform=%22translate(-.81 -.35)%22/%3E%3Cpath d=%22M53.61 7.77v4.57H46.8v4.19h6.81v4.75H41.79V0h11.82v4.74H46.8v3.03z%22 style=%22fill:%23ff5900%22 transform=%22translate(-.81 -.35)%22/%3E%3Cpath d=%22M36.81 0v8.71h-.05a5 5 0 0 0-4.09-1.7c-3.27 0-5.74 2.22-6.6 5.16-1-3.24-3.54-5.23-7.32-5.23-3.07 0-5.5 1.38-6.75 3.62V7.77H5.65V4.74h6.92V0H0v21.28h5.65v-8.94h5.64a9 9 0 0 0-.26 2.1c0 4.44 3.4 7.56 7.72 7.56 3.64 0 6.04-1.71 7.3-4.83h-4.84c-.65.94-1.15 1.22-2.46 1.22a2.9 2.9 0 0 1-2.83-2.9h9.87c.42 3.53 3.17 6.57 6.94 6.57 1.63 0 3.12-.8 4.03-2.15h.05v1.38h4.98V0zM16.08 12.4a2.7 2.7 0 0 1 2.67-2.23 2.6 2.6 0 0 1 2.7 2.23zm17.7 5.64c-1.83 0-2.97-1.7-2.97-3.5 0-1.9.99-3.74 2.98-3.74 2.06 0 2.88 1.83 2.88 3.74 0 1.81-.87 3.5-2.88 3.5m8.01 13.89V24.3H46v.57h-3.5v2.8h3.37v.58H42.5v3.1h3.68v.57zm4.87 0 2.05-2.74-1.95-2.6h.8l1.59 2.12 1.56-2.12h.78l-1.98 2.6 2.07 2.73h-.8l-1.7-2.26-1.63 2.26zm6.26 1.99h-.65V28.2q0-.8-.03-1.6h.63l.03.8c.4-.63.92-.92 1.71-.92 1.65 0 2.35 1.36 2.35 2.79s-.7 2.8-2.35 2.8q-1.11 0-1.7-.9zm3.36-4.66c0-1.14-.48-2.26-1.74-2.26-1.2 0-1.62.98-1.62 2.26s.43 2.25 1.62 2.25c1.26 0 1.74-1.11 1.74-2.25m3.98-2.17c-1.06 0-1.43.9-1.43 1.82v3.01h-.64v-3.76l-.03-1.57h.63l.04.77q.48-.9 1.55-.9l.3.03v.64zm1.2 2.29c0 1.2.57 2.19 1.74 2.19.9 0 1.33-.6 1.48-1.2h.62c-.29 1.11-.97 1.68-2.19 1.68-1.62 0-2.33-1.2-2.33-2.7 0-1.52.74-2.88 2.42-2.88 1.7 0 2.15 1.48 2.15 2.9zm.02-.49h3.18c0-1.04-.5-1.94-1.5-1.94-.92 0-1.55.7-1.68 1.94m6.38 3.16c-1.1 0-1.92-.52-1.92-1.68h.64c0 .8.53 1.2 1.3 1.2.74 0 1.3-.35 1.3-1.07 0-.64-.66-.8-1.35-1-.85-.25-1.76-.52-1.76-1.55 0-1.14.95-1.48 1.85-1.48 1.03 0 1.8.4 1.83 1.5h-.64c-.03-.63-.48-.98-1.17-.98-.54 0-1.19.2-1.19.9 0 .63.65.81 1.35 1 .84.23 1.77.49 1.77 1.52 0 1.2-.93 1.64-2.01 1.64m4.45 0c-1.1 0-1.91-.52-1.91-1.68h.64c0 .8.52 1.2 1.3 1.2.73 0 1.3-.35 1.3-1.07 0-.64-.66-.8-1.36-1-.84-.25-1.76-.52-1.76-1.55 0-1.14.96-1.48 1.86-1.48 1.03 0 1.8.4 1.83 1.5h-.64c-.03-.63-.49-.98-1.17-.98-.54 0-1.2.2-1.2.9 0 .63.66.81 1.36 1 .84.23 1.77.49 1.77 1.52 0 1.2-.93 1.64-2.02 1.64%22 style=%22fill:%232a007c%22 transform=%22translate(-.81 -.35)%22/%3E%3C/svg%3E\", ar: 2.192, mono: false },\n \"hsbc\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%220 0 315.9 85%22%3E%3Cpath fill=%22%23fff%22 d=%22M42.6 0h85v85h-85z%22/%3E%3Cpath fill=%22%23db0011%22 d=%22M170.1 42.6 127.6 0v85.1zm-85 0L127.6 0h-85z%22/%3E%3Cpath fill=%22%23db0011%22 d=%22m0 42.6 42.6 42.5V0zm85.1 0L42.6 85.1h85z%22/%3E%3Cpath d=%22M207.4 45.1H192v15.2h-7.7V24.7h7.7v14.6h15.4V24.7h7.7v35.6h-7.7zM233.7 61c-7.7 0-14-3.1-14.1-11.6h7.7c.1 3.8 2.3 6.1 6.5 6.1 3.1 0 6.7-1.6 6.7-5.1 0-2.8-2.4-3.6-6.4-4.8l-2.6-.7c-5.6-1.6-11.2-3.8-11.2-10.2 0-7.9 7.4-10.6 14.1-10.6 6.9 0 12.9 2.4 13 10.3h-7.7c-.3-3.2-2.2-5.1-5.8-5.1-2.9 0-5.7 1.5-5.7 4.7 0 2.6 2.4 3.4 7.4 5l3 .9c6.1 1.9 10 4 10 10-.1 8-7.9 11.1-14.9 11.1m19.2-36.2h12.4c2.3-.1 4.7 0 7 .4 4.3 1 7.6 3.8 7.6 8.6 0 4.6-2.9 6.9-7.1 8 4.8.9 8.4 3.3 8.4 8.6 0 8.1-8 9.9-14.2 9.9h-14zm12.4 14.8c3.4 0 6.9-.7 6.9-4.8 0-3.7-3.2-4.7-6.4-4.7h-5.4v9.5zM266 55c3.6 0 7.1-.8 7.1-5.2s-3-5.2-6.7-5.2h-6.1V55zm35.2 6c-11.5 0-16.6-7.3-16.6-18.2s5.7-18.8 17-18.8c7.1 0 14 3.2 14.2 11.2h-8c-.4-3.6-2.8-5.4-6.2-5.4-7 0-9.1 7.5-9.1 13.2s2.1 12.3 8.8 12.3c3.5 0 6.1-1.9 6.6-5.5h8c-.8 8.2-7.3 11.2-14.7 11.2%22/%3E%3C/svg%3E\", ar: 3.716, mono: false },\n \"imile\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 id=%22Layer_1%22 version=%221.1%22 viewBox=%22112 310 856 460%22%3E%3Cdefs%3E%3Cstyle%3E.st1%7Bfill:%230032a0%7D%3C/style%3E%3C/defs%3E%3Cpath d=%22M618.99 684.65h-21.53v64.79h18.97c6.74 0 12.27-1.17 16.42-3.48 4.18-2.32 7.29-5.99 9.24-10.9 1.93-4.87 2.91-11.36 2.91-19.29 0-10.22-2.2-18.04-6.54-23.25-4.36-5.22-10.91-7.87-19.46-7.87Zm15.17 31.12c0 8.7-1.31 15.07-3.9 18.93-2.55 3.81-6.71 5.74-12.37 5.74h-9.6v-46.79h10.34c5.36 0 9.33 1.77 11.78 5.25 2.49 3.53 3.76 9.21 3.76 16.87ZM673.04 702c-6.79 0-12.22 2.18-16.12 6.49-3.89 4.29-5.87 10.28-5.87 17.78s1.96 13.46 5.82 17.69c3.87 4.24 9.34 6.4 16.26 6.4 4 0 7.72-.83 11.06-2.46 3.35-1.64 5.96-3.95 7.76-6.88l.19-.3-5.63-5.42-.3.38c-3.18 4.07-7.43 6.13-12.62 6.13-3.64 0-6.53-1.03-8.6-3.07-1.99-1.96-3.26-4.87-3.78-8.65h32.45v-3.91c0-7.56-1.83-13.54-5.45-17.77-3.63-4.25-8.74-6.41-15.17-6.41m-.36 8.27c3.57 0 6.41 1.09 8.45 3.24 2.04 2.16 3.08 5.19 3.08 9.01v.2h-23.09c.46-3.91 1.66-6.98 3.58-9.13 1.97-2.2 4.66-3.32 7.98-3.32M720.44 741.75c-1.82.76-3.36 1.15-4.58 1.15-1.45 0-2.49-.35-3.1-1.04-.62-.7-.94-1.96-.94-3.73v-57.32h-9.92v57.32c0 3.99.93 7.05 2.76 9.1 1.84 2.06 4.6 3.11 8.18 3.11 3.79 0 6.94-.89 9.39-2.64l.24-.18-1.58-5.99-.47.19ZM729.86 702.91h9.92v46.53h-9.92zM734.77 684.37c-1.99 0-3.6.56-4.78 1.67-1.18 1.12-1.78 2.64-1.78 4.52s.6 3.4 1.78 4.52c1.17 1.11 2.78 1.67 4.78 1.67s3.61-.56 4.82-1.67c1.21-1.12 1.83-2.64 1.83-4.52s-.62-3.4-1.83-4.52c-1.21-1.11-2.83-1.67-4.82-1.67M769 736.9l-11.92-33.99h-10.26l17.87 46.53h8.64l17.86-46.53h-10.35zM814.48 702c-6.79 0-12.22 2.18-16.12 6.49-3.89 4.29-5.87 10.28-5.87 17.78s1.96 13.46 5.82 17.69c3.87 4.24 9.34 6.4 16.26 6.4 4 0 7.72-.83 11.06-2.46 3.35-1.64 5.96-3.95 7.76-6.88l.19-.3-5.63-5.42-.3.38c-3.18 4.07-7.43 6.13-12.62 6.13-3.64 0-6.53-1.03-8.6-3.07-1.99-1.96-3.26-4.88-3.78-8.65h32.45v-3.91c0-7.56-1.83-13.54-5.45-17.77-3.63-4.25-8.74-6.41-15.17-6.41m11.16 20.52v.2h-23.09c.46-3.91 1.66-6.98 3.58-9.13 1.97-2.2 4.66-3.32 7.98-3.32 3.57 0 6.41 1.09 8.45 3.24 2.04 2.16 3.08 5.19 3.08 9.01M867.53 702c-3.66 0-6.89.9-9.6 2.68-2.33 1.53-4.14 3.6-5.39 6.16-.01-2.7-.14-5.24-.37-7.53l-.04-.39h-9.36l.04.47c.18 2.23.27 5.96.27 11.11v34.95H853v-22.26c0-3.08.65-5.95 1.92-8.52s3.03-4.63 5.24-6.13c2.2-1.49 4.62-2.25 7.2-2.25 1.76 0 2.45.09 2.71.17l.56.16v-8.23l-.34-.08c-.82-.19-1.75-.28-2.75-.28ZM903.55 702.91l-9.93 32.18-11.17-32.18h-10.64l17.16 43.36c-1.84 4.77-3.78 8.23-5.78 10.28-1.97 2.03-4.42 3.06-7.26 3.06-1.7 0-3.18-.24-4.41-.7l-.6-.23v8.01l.33.08c2.22.55 4.22.84 5.95.84 9.11 0 15.82-5.78 19.95-17.18l17.1-47.52h-10.72ZM177.13 498.76v79.92c0 17.18-13.99 31.17-31.17 31.17s-31.3-13.99-31.3-31.17v-79.92c0-17.18 13.99-31.3 31.3-31.3 8.52 0 16.38 3.46 22.11 9.19 5.59 5.73 9.06 13.59 9.06 22.11%22 class=%22st1%22/%3E%3Cpath d=%22M177.13 418.83v79.79c0 17.32-13.99 31.3-31.17 31.3s-31.3-13.99-31.3-31.3v-79.79c0-17.18 13.99-31.17 31.3-31.17 8.52 0 16.38 3.46 22.11 9.19 5.59 5.59 9.06 13.45 9.06 21.98%22 class=%22st1%22/%3E%3Ccircle cx=%22145.91%22 cy=%22343.62%22 r=%2231.24%22 class=%22st1%22/%3E%3Cpath d=%22M177.13 498.76c0 8.66-3.46 16.38-9.06 22.11-5.73 5.59-13.59 9.06-22.11 9.06-17.32 0-31.3-13.85-31.3-31.17 0-8.52 3.46-16.38 9.19-22.11s13.45-9.19 22.11-9.19 16.38 3.46 22.11 9.19c5.59 5.73 9.06 13.59 9.06 22.11%22 style=%22fill:%233ccbda%22/%3E%3Cpath d=%22M392.62 609.86h-45.66l-52.47-148.19v148.19h-63.68V329.5h66.48l95.32 280.36Z%22 class=%22st1%22/%3E%3Cpath d=%22M442.28 329.5h66.48v280.36h-63.68V461.67l-52.47 148.19h-45.66l95.32-280.36ZM562.43 409.6h56.87v200.26h-56.87zM682.58 599.85c-9.61-9.34-14.42-22.83-14.42-40.45V312.68h56.87V560.6c0 9.61 5.87 14.42 17.62 14.42 6.67 0 14.55-1.86 23.63-5.61l8.41 29.64c-12.81 9.88-29.78 14.82-50.87 14.82-17.89 0-31.64-4.67-41.25-14.02ZM965.34 530.56H827.56c2.4 12.01 7.41 20.97 15.02 26.83 7.61 5.88 17.95 8.81 31.04 8.81 11.48 0 21.49-1.86 30.04-5.61 8.54-3.74 17.08-10.14 25.63-19.22l30.44 28.84c-7.75 13.08-19.82 23.63-36.25 31.64-16.42 8.01-34.24 12.01-53.47 12.01-31.51 0-56.21-9.14-74.1-27.44-17.89-18.29-26.83-43.59-26.83-75.9s8.94-58.2 26.83-76.9c17.89-18.69 42.46-28.04 73.69-28.04s53.33 9.28 70.29 27.83c16.95 18.56 25.43 44.13 25.43 76.7v20.43Zm-56.07-40.46c0-11.74-3.61-21.03-10.82-27.83-7.21-6.81-17.09-10.21-29.64-10.21-11.21 0-20.43 3.54-27.64 10.61-7.21 7.08-12.01 17.02-14.42 29.84h82.51v-2.4ZM590.87 324.49c17.45 0 31.6 14.15 31.6 31.6s-14.15 31.6-31.6 31.6-31.6-14.15-31.6-31.6 14.15-31.6 31.6-31.6%22 class=%22st1%22/%3E%3C/svg%3E\", ar: 1.861, mono: false },\n \"jtexpress\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220.63 0 998.75 209%22%3E%3Cg fill=%22red%22%3E%3Cpath d=%22M149.56 0h60.17c-15.74 69.29-31.6 138.55-47.44 207.82-53.78-.05-107.56.1-161.34.06 7.71-13.74 14.56-27.94 21.99-41.82 29.62.14 59.24.03 88.86.05C124.4 110.75 136.86 55.34 149.56 0m90.83 0h134.05c-10.56 19.06-20.98 38.2-31.6 57.24.02-5.07 1.03-10.15.33-15.19-1.03-5.79-6.09-9.84-11.33-11.84-9.46-3.61-20.81-3.55-29.5 2.08-11.92 7.26-17.2 23.7-11.15 36.4 5.61 11.14 13.97 20.6 22.57 29.52a317 317 0 0 0 33.23 29.24 23 23 0 0 0 4.07-7.44c2.91-8.48 4.75-17.29 6.45-26.08q20.77 5.93 41.54 11.89c-2.61 20.81-10.83 40.68-22.36 58.11 11.96 14.61 23.97 29.19 35.92 43.81-18.17.04-36.33-.02-54.49.03-3.93-4.09-7.7-8.33-11.63-12.41-18.28 8.5-38.43 12.66-58.52 13.31-23.29.34-47.55-4.97-66.47-19.1-10.68-10.48-16.99-25.92-15.08-40.96 1.47-12.06 7.38-23.11 14.69-32.63 9.51-12.22 21.35-22.51 34.22-31.06-14.01-15.65-23.53-36.72-20.95-58.04 1.83-9 3.98-17.93 6.01-26.88m19.88 138.34c-3.3 5.23-4.21 12.08-1.4 17.72 4.84 9.88 15.32 16.49 26.25 17.08 12.99.81 25.67-3.87 36.81-10.19-12.83-15.18-25.49-30.5-38.44-45.56-8.41 6.12-17.76 11.78-23.22 20.95%22/%3E%3Cpath d=%22M405.16 0h243.61c-4.7 4.53-9.26 9.21-13.92 13.77q-30.34-.05-60.67.01c-2.54 2.54-5.11 5.04-7.64 7.59 20.24.02 40.48-.02 60.72.02-3.96 3.57-7.31 8.09-11.63 11.08-20.3.21-40.61.07-60.91.06q-3.96 3.76-7.78 7.64c20.46.04 40.92 0 61.38.02q-8.32 8.34-16.7 16.61c-22.34.02-44.68.05-67.03-.02-12.67 50.32-25.09 100.7-37.71 151.04-19.59-.07-39.18.12-58.76-.1 11.83-50.46 25.07-100.58 37.51-150.9-30.51-.02-61.03.02-91.54-.02 10.39-18.92 20.59-37.94 31.07-56.8M889.2 138.19c4.89-7.7 13.89-11.85 22.72-12.95 8.51-.94 17.5-.27 25.24 3.68-1.82 4.86-3.68 9.7-5.45 14.57-6.69-3.04-14.53-4.87-21.71-2.52-4.16 1.26-7.57 6.15-5.31 10.38 2.65 4.41 7.7 6.42 11.92 9 6.43 3.45 12.81 8.45 14.83 15.79 2.1 8.77-.67 18.77-7.58 24.72-5.88 5.19-13.72 7.38-21.37 8.14h-7.78c-6.73-.68-13.6-1.97-19.37-5.7l5.86-14.39c7.19 3.88 15.62 6.17 23.79 4.67 4.19-.79 8.44-3.99 8.51-8.6.32-4.75-3.91-7.85-7.56-9.96-6.22-3.48-12.93-6.85-17.1-12.87-5-7.02-4.06-16.9.36-23.96m61.94-.04c4.91-7.7 13.91-11.82 22.74-12.92 8.5-.93 17.46-.23 25.2 3.68-1.82 4.86-3.69 9.7-5.45 14.58-6.12-2.81-13.05-4.44-19.75-3.11-3.45.72-7.01 2.96-7.81 6.6-.72 2.72.73 5.46 2.79 7.18 5.15 4.42 11.79 6.62 16.96 11.02 3.91 3.22 7.07 7.62 7.91 12.7 1.23 8.07-1.29 16.88-7.4 22.46-5.89 5.55-14 7.86-21.87 8.66h-7.8c-6.75-.68-13.63-1.97-19.42-5.7l5.88-14.39c7.21 3.9 15.67 6.18 23.86 4.66 4.14-.8 8.33-3.98 8.43-8.53.35-4.72-3.81-7.86-7.45-9.96-6.22-3.5-12.95-6.85-17.15-12.87-5.07-7.03-4.13-16.97.33-24.06m-391.76-11.96c16.18 0 32.35-.04 48.53.02-1.01 4.97-1.96 9.94-2.94 14.91h-30.82c-1.08 5.82-2.41 11.59-3.27 17.44 9.66-.14 19.33-.02 29-.06q-1.38 7.34-2.79 14.67c-9.7.04-19.41 0-29.12.02-1.24 6.58-2.59 13.13-3.7 19.73 10.86-.1 21.72-.02 32.58-.04l-2.8 14.93h-50.19c5.14-27.21 10.36-54.41 15.52-81.62m56.21-.01 18.53.01c3.06 9.57 6.23 19.13 8.64 28.9 1.12-.72 1.63-1.97 2.25-3.09 4.62-8.88 10.2-17.21 15.34-25.79 7-.05 14-.02 21.01-.02q-14.92 20.05-29.86 40.06c5.18 13.87 10.45 27.7 15.65 41.56-6.24-.02-12.48.06-18.72-.05-3.33-10.11-6.92-20.15-9.9-30.37a2578 2578 0 0 1-18.03 30.36c-7.06.14-14.13.03-21.19.06 10.16-13.97 20.55-27.78 30.61-41.83-4.88-13.22-9.55-26.53-14.33-39.8m75.28 1.54c9.93-2 20.24-2.83 30.31-1.47 8.21 1.14 16.8 5.46 20.08 13.51 4.28 11.17-.13 24.74-9.72 31.75-9.39 6.95-21.78 8.14-33.09 6.94l-5.58 29.37c-5.71.02-11.42-.06-17.12.04 4.88-26.74 10.1-53.43 15.12-80.14m14.89 12.35c-1.53 8.05-3.1 16.1-4.61 24.16 6.56 1.15 14.09.82 19.29-3.85 4.81-4.1 6.69-12.28 2.41-17.38-4.44-4.45-11.4-3.56-17.09-2.93m53.83-12.35c8.64-1.78 17.51-2.4 26.31-2 7.65.49 15.85 2.33 21.4 7.99 5.4 5.55 5.9 14.38 3.16 21.32-2.9 7.27-9.84 12.1-17.11 14.33 3.94 2.19 6.32 6.27 7.14 10.61 1.84 9.21 1.46 18.75 3.88 27.86-6.01-.04-12.02.01-18.02-.03-1.53-7.22-1.81-14.61-2.69-21.92-.45-3.51-1.69-7.49-5.1-9.18-3.41-1.55-7.27-.95-10.89-1.08q-3.06 16.1-6.08 32.19c-5.8.03-11.6-.03-17.39.04 5.02-26.73 10.25-53.42 15.39-80.13m14.89 12.39c-1.28 7.49-2.87 14.92-4.26 22.39 6.33.02 13.46.65 18.7-3.67 4.78-3.55 6.93-11.61 2.4-16.18-4.55-3.98-11.28-3.58-16.84-2.54m55.99-13.92h48.5q-1.44 7.47-2.91 14.93l-30.84.01c-1.11 5.79-2.26 11.57-3.36 17.36q14.53.02 29.1.01-1.37 7.35-2.79 14.68-14.56.01-29.11 0a3257 3257 0 0 0-3.76 19.7h32.63q-1.39 7.47-2.81 14.94h-50.18c5.15-27.22 10.36-54.42 15.53-81.63%22/%3E%3C/g%3E%3C/svg%3E\", ar: 4.779, mono: false },\n \"mastercard\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1000 618%22%3E%3Cpath fill=%22%23EB001B%22 d=%22M308 0a309 309 0 1 0 2 0z%22/%3E%3Cpath fill=%22%23F79E1B%22 d=%22M690 0a309 309 0 1 0 2 0z%22/%3E%3Cpath fill=%22%23FF5F00%22 d=%22M500 66a309 309 0 0 0 0 486 309 309 0 0 0 0-486%22/%3E%3C/svg%3E\", ar: 1.618, mono: false },\n \"mercadopago\": { src: \"data:image/png;base64,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\", ar: 3.838, mono: false },\n \"oxxo\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.0%22 viewBox=%2235.43 35.45 885.83 448.9%22%3E%3Cpath d=%22M-792.46-878.05c0-29.6 23.78-53.62 53.13-53.62H40.12c29.33 0 53.13 24.02 53.13 53.62v339.17c0 29.6-23.8 53.6-53.13 53.6h-779.45c-29.35 0-53.13-24-53.13-53.6z%22 style=%22fill:%23fff;fill-opacity:1;fill-rule:nonzero;stroke:none%22 transform=%22translate(827.89 968.22)%22/%3E%3Cpath d=%22M-791.84-883.46c0-27.22 21.88-49.3 48.86-49.3h787.5c26.99 0 48.85 22.08 48.85 49.3v1.57h-885.21zM93.37-534.4v1.22c0 27.23-21.86 49.31-48.84 49.31h-787.5c-26.99 0-48.87-22.08-48.87-49.3v-1.23z%22 style=%22fill:%23fbb110;fill-opacity:1;fill-rule:nonzero;stroke:none%22 transform=%22translate(827.89 968.22)%22/%3E%3Cpath d=%22M-179.2-708.84c0 68.92 55.35 124.79 123.66 124.79 68.29 0 123.67-55.87 123.67-124.8s-55.38-124.8-123.67-124.8c-68.3 0-123.66 55.87-123.66 124.82m-589.6 0c0 68.92 55.37 124.79 123.68 124.79 68.29 0 123.67-55.87 123.67-124.8s-55.38-124.81-123.67-124.81c-68.3 0-123.69 55.87-123.69 124.82m862.17 150.8h-609.75c10.99-7.78 21.22-18.43 32.39-32.8l62.11-80 27.13 34.6 30.19-40.52-26.4-33.9 63.22-81.44c20.07-25.83-18.31-56.19-38.4-30.36L-422-750.47l-56.8-72.93c-20.1-25.76-58.42 4.67-38.32 30.46l64.2 82.3-69.46 89.44c-24.68 31.78-49.31 60.92-98.2 63.17h-171.26v-300.24h606.54c-10.43 7.7-20.27 18-30.94 31.76l-62.1 79.96-27.15-34.57-30.16 40.52 26.4 33.89-63.25 81.43c-20.05 25.83 18.34 56.19 38.4 30.36l55.89-71.96 56.8 72.91c20.1 25.78 58.42-4.65 38.32-30.43l-64.2-82.34 69.46-89.41c22.67-29.23 45.32-56.22 86.8-62.12h184.4zm-222.94-150.81c0-41.28 33.15-74.73 74.03-74.73s74.02 33.45 74.02 74.73c0 41.25-33.13 74.7-74.02 74.7s-74.03-33.45-74.03-74.7m-589.58 0c0-41.28 33.15-74.73 74.03-74.73 40.87 0 74.02 33.45 74.02 74.73 0 41.25-33.15 74.7-74.02 74.7-40.88 0-74.03-33.45-74.03-74.7%22 style=%22fill:%23e70020;fill-opacity:1;fill-rule:nonzero;stroke:none%22 transform=%22translate(827.89 968.22)%22/%3E%3C/svg%3E\", ar: 1.973, mono: false },\n \"paquetexpress\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%2217 27 155 34%22%3E%3Crect x=%2217%22 y=%2227%22 width=%22155%22 height=%2234%22 rx=%223%22 fill=%22%23002a52%22/%3E%3Cg fill=%22%23FFF%22 fill-rule=%22evenodd%22%3E%3Cpath d=%22M35.6 46.8V30.3h3.3c1.7 0 3 .4 3.9 1.2.8.8 1.3 2 1.3 3.6s-.4 2.8-1.3 3.6c-.8.9-1.9 1.3-3.4 1.3h-.7l-.1 6.8h-3zm3-9.3h.4c.7 0 1.2-.2 1.5-.6.4-.4.6-1 .6-1.7 0-.8-.2-1.4-.5-1.8-.4-.4-.9-.5-1.6-.5h-.4v4.6zm26.6 9L63.5 48 62 46.3c-.3.2-.7.4-1.1.5-.4.1-.9.2-1.4.2-1.8 0-3.2-.8-4.2-2.3-.9-1.5-1.4-3.6-1.4-6.4 0-2.5.5-4.5 1.5-6s2.3-2.2 4.1-2.2c1.8 0 3.1.7 4.1 2.3 1 1.5 1.5 3.6 1.5 6.4 0 1.3-.1 2.5-.4 3.5-.2.9-.6 1.7-1.1 2.3l1.6 1.9zm-5.2-6l1.5 1.7c.1-.4.2-1 .3-1.5.1-.6.1-1.3.1-2.1 0-1.8-.2-3.1-.6-4-.4-.9-1-1.4-1.8-1.4-.9 0-1.5.5-1.9 1.4-.4.9-.6 2.4-.6 4.3 0 1.6.2 2.9.6 3.8.5.8 1.1 1.3 1.8 1.3.1 0 .2 0 .3-.1h.2L58.3 42l1.7-1.5zm16.5-10.2v10.4c0 1.3 0 2.2-.1 2.7s-.2 1-.4 1.3c-.4.8-.9 1.4-1.7 1.8-.7.3-1.6.5-2.8.5-1.1 0-2.1-.2-2.8-.5-.8-.4-1.3-1-1.7-1.8-.2-.4-.3-.8-.4-1.3 0-.6-.1-1.5-.1-2.7V30.3h3.2v10.6c0 1.4.1 2.3.4 2.7.3.3.7.5 1.4.5s1.2-.2 1.4-.6c.3-.4.4-1.2.4-2.6V30.3h3.2zM78.6 46.8V30.3h6.7v3.1h-3.7v3.3h3.3v3h-3.3v3.9h3.7v3.2zM89.4 46.8V33.4H87v-3.1h8.1v3.1h-2.5v13.4zM96.5 46.8V30.3h6.7v3.1h-3.7v3.3h3.3v3h-3.3v3.9h3.7v3.2zM111.5 46.8l-1.3-3.3-.3-1.2c-.1-.4-.2-.8-.3-1.3-.1.5-.2.9-.3 1.3-.1.5-.2.8-.3 1.2l-1.1 3.3h-3.6l3.7-8.3-3.4-8.2h3.4l1.2 3.5c0 .2.1.4.2.7.1.4.2.8.3 1.3.1-.5.1-.8.2-1.2.1-.3.2-.6.3-.8l1.2-3.5h3.3l-3.4 8.2 3.6 8.3h-3.4zm4.4 0V30.3h3.3c1.8 0 3.1.4 3.9 1.2.9.8 1.3 2 1.3 3.6s-.4 2.8-1.2 3.6c-.9.9-2 1.3-3.5 1.3h-.7v6.8h-3.1zm3.1-9.3H119.3c.7 0 1.2-.2 1.6-.6.3-.4.5-1 .5-1.7 0-.8-.2-1.4-.5-1.8-.3-.4-.9-.5-1.6-.5h-.2-.1v4.6zm6.6 9.3V30.3h3.3c1.8 0 3.1.4 4 1.1.8.8 1.2 1.9 1.2 3.6 0 1.1-.2 2.1-.6 2.8-.5.7-1.1 1.2-1.9 1.5l3 7.5h-3.3l-2.6-6.8v6.8h-3.1zm3.1-9.3H129c.7 0 1.2-.2 1.6-.6.3-.4.5-1 .5-1.8s-.1-1.3-.5-1.7c-.3-.4-.8-.5-1.5-.5h-.3-.1v4.6zM136 46.8V30.3h6.7v3.1h-3.6v3.3h3.3v3h-3.3v3.9h3.6v3.2zM144.6 46.3v-3.5c.4.4.8.7 1.2.8.4.2.8.3 1.2.3.5 0 1-.1 1.3-.4.3-.3.4-.7.4-1.2 0-.7-.4-1.3-1.2-2.1-.3-.2-.4-.3-.5-.4-1-1-1.7-1.8-2.1-2.5-.3-.7-.5-1.5-.5-2.4 0-1.5.4-2.6 1.2-3.5.7-.9 1.8-1.3 3-1.3.5 0 .9.1 1.3.2.5.1.9.3 1.4.6v2.9c-.6-.3-1-.4-1.3-.6-.3-.1-.6-.1-.8-.1-.5 0-.9.1-1.2.4-.3.3-.4.7-.4 1.2 0 .4.1.8.3 1.2.3.4.8.9 1.6 1.6 1 1 1.7 1.8 2 2.4.3.6.5 1.4.5 2.3 0 1.5-.4 2.7-1.2 3.5-.9.9-2 1.3-3.4 1.3-.5 0-1 0-1.5-.2-.4-.1-.9-.3-1.3-.5m8.4 0v-3.5c.4.4.8.7 1.2.8.4.2.8.3 1.2.3.5 0 1-.1 1.3-.4.3-.3.4-.7.4-1.2 0-.7-.4-1.3-1.2-2.1-.3-.2-.4-.3-.5-.4-1-1-1.7-1.8-2.1-2.5-.3-.7-.5-1.5-.5-2.4 0-1.5.4-2.6 1.2-3.5.7-.9 1.8-1.3 3-1.3.5 0 .9.1 1.3.2.5.1.9.3 1.4.6v2.9c-.6-.3-1-.4-1.3-.6-.3-.1-.6-.1-.8-.1-.5 0-.9.1-1.2.4-.3.3-.4.7-.4 1.2 0 .4.1.8.3 1.2.3.4.8.9 1.6 1.6 1 1 1.7 1.8 2 2.4.3.6.5 1.4.5 2.3 0 1.5-.4 2.7-1.2 3.5-.9.9-2 1.3-3.4 1.3-.5 0-1 0-1.5-.2-.4-.1-.9-.3-1.3-.5M163.6 46.8v-2.6h.8l.4 1.8.5-1.8h.8v2.6h-.5v-2l-.5 2h-.5l-.5-2v2z%22%3E%3C/path%3E %3Cpath d=%22M26 27h-8v26.7c0 3.5 2.7 6.3 6.1 6.3h146.5v-3.3H31.5c-3.1 0-5.5-2.5-5.5-5.6V27zm3.2 21.6c0 2.7 2.1 4.8 4.7 4.8h136.7v-3.3h-137c-.7 0-1.2-.5-1.2-1.2V27h-3.2v21.6zm19.4-11.5l-.4-2.5-.3 2.5-.7 4.4h2.2l-.8-4.4zm1.4-6.8l3.8 16.5h-3.3l-.6-2.8h-3.2l-.6 2.8H43l3.7-16.5H50zM166.6 46.8h.5v-.5h-.5zM168.1 45.3h.8c.1 0 .2-.1.2-.1V45v-.2c-.1-.1-.1-.1-.2-.1-.1-.1-.2-.1-.4-.1h-.4v.7zm-.5 1.5v-2.6h1.1c.2 0 .4 0 .6.1.1 0 .2.1.3.2 0 .1.1.3.1.4 0 .2-.1.4-.2.5-.1.2-.3.2-.5.3.1 0 .2.1.3.2 0 .1.1.2.3.4l.3.5h-.6l-.4-.5c-.1-.2-.2-.4-.3-.4 0-.1-.1-.1-.1-.1-.1-.1-.2-.1-.3-.1h-.1v1.1h-.5zM170.2 46.8h.4v-.5h-.4z%22%3E%3C/path%3E%3C/g%3E%3C/svg%3E\", ar: 4.559, mono: false },\n \"paypal\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1310 439.6%22%3E%3Cpath d=%22M1310 0v328.3h-74.7V0zm-102.2 110.8v218.1h-66.4v-18.8c-8.4 8.2-18 14.4-28.6 18.8a87 87 0 0 1-34.7 7c-15.6 0-30.1-2.9-43.4-8.7-13.3-6.1-24.9-14.4-34.7-24.8-9.9-10.5-17.7-22.7-23.5-36.6-5.5-14.2-8.2-29.5-8.2-45.8s2.7-31.4 8.2-45.3c5.8-14.2 13.6-26.6 23.5-37.1a104.5 104.5 0 0 1 34.7-24.4c13.3-6.1 27.8-9.2 43.4-9.2 12.4 0 24 2.3 34.7 7a88 88 0 0 1 28.6 18.8V111h66.4zm-117.7 158.7c13.6 0 24.7-4.6 33.4-14q13.5-13.95 13.5-35.7c0-21.75-4.5-26.5-13.5-35.7-8.7-9.3-19.9-14-33.4-14s-24.9 4.6-33.9 14c-8.7 9.3-13 21.2-13 35.7s4.4 26.5 13 35.7c9 9.3 20.3 14 33.9 14M861.7 0c19.7 0 36.5 2.8 50.4 8.3s25.6 13.2 35.2 23.1c9.8 10.2 17.5 21.8 23 34.9s8.2 27.2 8.2 42.3-2.7 29.2-8.2 42.3a112 112 0 0 1-23 34.9c-9.5 9.9-21.3 17.6-35.2 23.1s-30.7 8.3-50.4 8.3h-36v111.6h-76V0zm-10.9 149.6c10.2 0 17.9-1 23.5-3.1 5.8-2.3 10.6-5.3 14.3-8.7 7.8-7.3 11.7-17 11.7-29.2s-3.9-21.9-11.7-29.2c-3.8-3.5-8.5-6.3-14.3-8.3-5.5-2.3-13.3-3.5-23.5-3.5h-25.2v82zm-381.1-38.8h82.5l56 104.6h.9L659 110.8h76.4L571.7 439.6h-76l74.7-150.4zm-14.7 0v218.1h-66.4v-18.8c-8.4 8.2-18 14.4-28.6 18.8a87 87 0 0 1-34.7 7c-15.6 0-30.1-2.9-43.4-8.7-13.3-6.1-24.9-14.4-34.7-24.8-9.8-10.5-17.7-22.7-23.5-36.6-5.5-14.2-8.2-29.5-8.2-45.8s2.7-31.4 8.2-45.3c5.8-14.2 13.6-26.6 23.5-37.1a103.5 103.5 0 0 1 34.7-24.4c13.3-6.1 27.8-9.2 43.4-9.2 12.4 0 24 2.3 34.7 7a88 88 0 0 1 28.6 18.8V111H455zM337.3 269.5c13.6 0 24.7-4.6 33.5-14q13.5-13.95 13.5-35.7c0-21.75-4.5-26.5-13.5-35.7-8.7-9.3-19.9-14-33.5-14s-24.9 4.6-33.9 14c-8.7 9.3-13 21.2-13 35.7s4.4 26.5 13 35.7c9 9.3 20.3 14 33.9 14M112 0c19.7 0 36.5 2.8 50.4 8.3s25.6 13.2 35.2 23.1c9.8 10.2 17.5 21.8 23 34.9s8.2 27.2 8.2 42.3-2.7 29.2-8.2 42.3a112 112 0 0 1-23 34.9c-9.5 9.9-21.3 17.6-35.2 23.1s-30.7 8.3-50.4 8.3H76v111.6H0V0zm-10.8 149.6c10.2 0 17.9-1 23.5-3.1 5.8-2.3 10.6-5.3 14.3-8.7 7.8-7.3 11.7-17 11.7-29.2s-3.9-21.9-11.7-29.2c-3.8-3.5-8.5-6.3-14.3-8.3-5.5-2.3-13.3-3.5-23.5-3.5H76v82z%22/%3E%3C/svg%3E\", ar: 2.98, mono: true },\n \"santander\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.0%22 viewBox=%224 3.75 391.5 79%22%3E%3Cpath d=%22M-137.26 287.82a17.5 17.5 0 0 0 .55 7.23c.95 2.87 2.27 4.94 7.12 11.25 5.12 6.66 6.76 9.08 7.98 12.53 1 2.83 1.02 4.46.59 7.02 4.49.86 11.84 3.24 16.77 6.2 4.57 2.81 7.9 6.46 9.11 10 .72 2.09.7 5.33-.07 7.36a16 16 0 0 1-3.22 5.2c-5.9 6.46-17.6 11.1-31.67 12.59-3.11.32-10.74.56-13.36.4-18.8-1.1-33.92-7.59-38.22-16.42-1.8-3.67-1.75-6.83.14-10.46 1.55-3 5.82-6.7 10.83-9.4a85 85 0 0 1 14.2-5.43c.24 3.17 6.4 10.74 8.45 13.42 4.46 5.84 6.22 8.62 7.48 10.85.76 1.33 1.18 2.19.97 4.74 0 0 1.72-1.56 2.36-2.87.84-1.71 1.14-3.44.98-5.67-.2-2.68-.65-4.32-1.93-6.94-1.25-2.55-3.03-5.13-6.43-9.3-4.79-5.88-6.56-9.1-7.3-13.3-.8-4.66.5-9.6 3.18-12.02a10 10 0 0 1 1.53-1.04s-.08 1.2-.08 2.57c0 2.88.33 4.38 1.43 6.58 1.38 2.73 3.28 5.28 9.11 12.22 5.16 6.14 6.76 9.26 6.76 13.16v1.88s1.37-1.04 2-2c2-3.01 2.32-7.72.8-11.9-1.05-2.86-2.74-5.46-7.74-11.75-5.1-6.4-7.23-11.53-7.23-15.8s.92-8.35 4.91-10.9%22 style=%22fill:%23fe001e;fill-opacity:1;display:inline%22 transform=%22translate(184.65 -280.17)scale(.98661)%22/%3E%3Cg style=%22fill:%23fe001e;fill-opacity:1%22%3E%3Cpath d=%22M-41.6 350.75c.12-1.43.02-2.84-.14-3.59-.61-2.94-2.79-5.9-5.93-8.08a64 64 0 0 0-6.79-3.51c-5.94-2.75-7.6-3.74-9.09-5.4a7.2 7.2 0 0 1-2-5.38c0-1.55.08-2.01.58-3.1 1.62-3.52 5.65-5.4 10.35-4.8 2.76.35 4.21.97 5.84 2.5 1.7 1.59 2.57 3.43 3.04 6.46l.14 1.71h2.57l-.22-11.75-.85-.21c-.65-.16-4.9-.97-7.16-1.26-3.37-.42-4.73-.47-6.71-.24-3.84.44-7.01 1.9-9.4 4.31a12.2 12.2 0 0 0-3.81 8.4c-.2 3.42.9 6.25 3.34 8.67 2.04 2.03 2.92 2.56 9.24 5.57 8.1 3.85 9.93 4.99 11.16 7.88 1.06 2.51 1.14 5.33.04 7.59-2.82 5.76-11.7 7.26-17.22 2.92a11.4 11.4 0 0 1-4.06-6.61l-.26-1.34h-2.19l.39 11.26s4.2 1.13 6.17 1.33c1.48.16 2.95.45 4.44.45 3 0 4.38.39 7.48-.64 3.2-1.07 10.26-3.2 11.06-13.14m19.71-18.49c3.42 0 6.4 1.5 7.83 3.7a8.6 8.6 0 0 1 1.36 5.06v16.24c0 1.93 1.39 2.55 3.4 1.87l1.51-.58v2.13l-7.48 3.27c-.87.39-1.46-.5-1.88-2.13l-.47-1.57-1.24.98a11.7 11.7 0 0 1-7.52 2.66c-3.23.01-5.34-.43-7.44-3.78a8 8 0 0 1-.26-6.4c.96-2.18 2.86-3.3 10.85-6.39l5.4-2.02v-1.5c0-5.55-1.5-7.26-3.42-8.33-1.55-.86-3.6-.64-5.56.64-1.61 1.06-2.1 2.84-1.27 4.67.64 1.41.42.97.42 1.02l-4.39 2.31s-.76-1.3-.97-2c-1.01-3.3.28-5.17 5.24-7.9 2.59-1.42 4.11-1.95 5.89-1.95m4.06 15.39s-7.03 2.97-8.38 3.65c-1.08.55-2.32 1.53-2.73 2.33a5 5 0 0 0 .21 4.06 5.4 5.4 0 0 0 2.35 2.35c.35.15 1.53.42 2.35.43q2.52.02 5.22-2.18l.98-.81zm22.01-15.39v5.75l1.46-1.39c3.19-3 6.23-4.36 8.58-4.36 5.34 0 10.25 4.7 10.04 11.33v15.38c0 1.71.43 2.78 2.14 2.78h2.77v2.14H14.44v-2.14h2.14c1.7 0 2.35-1.07 2.35-2.78V343.6c0-3.2-1.18-4.8-2.14-5.77-1.28-1.28-2.84-1.64-5.13-1.5-1.77.12-3.6 1.06-5.68 2.75l-1.37 1.1v19.87c0 1.07.43 1.71 1.5 1.71h2.78v2.14H-5.64v-2.14h1.92c1.7 0 3-1.07 3-2.78v-16.45c0-4.27-1.3-5.55-4.92-3.63v-2.29c2.35-.7 6.62-2.84 8.97-4.34zm41.23 31.63c1.93 0 2.38-.22 4.17-1.73l3.52-2.97-.85-1.5-1.57.84c-2.35 1.25-4.2 1.51-6.55.44-2-.9-3.2-4.06-3.2-5.77v-17.3h9.82l1.07-3h-10.9v-9.82h-1.06c-2.57 4.7-6.41 9.18-11.11 11.96v.86h6.83v17.3c0 4.06 1.5 7.05 3.85 8.76a8.6 8.6 0 0 0 5.98 1.93m22.65-31.63c3.42 0 6.41 1.5 7.83 3.7a8.6 8.6 0 0 1 1.36 5.06v16.24c0 1.93 1.4 2.55 3.4 1.87l1.51-.58v2.13l-7.48 3.27c-.87.39-1.46-.5-1.87-2.13l-.48-1.57-1.24.98a11.7 11.7 0 0 1-7.52 2.66c-3.22.01-5.34-.43-7.44-3.78a8 8 0 0 1-.26-6.4c.96-2.18 2.87-3.3 10.85-6.39l5.4-2.02v-1.5c0-5.55-1.5-7.26-3.42-8.33-1.54-.86-3.6-.64-5.55.64-1.62 1.06-2.11 2.84-1.28 4.67.64 1.41.42.97.42 1.02l-4.39 2.31s-.75-1.3-.97-2c-1-3.3.28-5.17 5.24-7.9 2.6-1.42 4.11-1.95 5.9-1.95m4.06 15.39s-7.03 2.97-8.38 3.65c-1.08.55-2.32 1.53-2.73 2.33a5 5 0 0 0 .21 4.06 5.4 5.4 0 0 0 2.35 2.35c.36.15 1.53.42 2.35.43q2.52.02 5.22-2.18l.98-.81zm22-15.39v5.75l1.47-1.39c3.18-3 6.22-4.36 8.57-4.36 5.34 0 10.26 4.7 10.04 11.33v15.38c0 1.71.43 2.78 2.14 2.78h2.78v2.14h-14.75v-2.14h2.14c1.7 0 2.35-1.07 2.35-2.78V343.6c0-3.2-1.18-4.8-2.14-5.77-1.28-1.28-2.84-1.64-5.12-1.5-1.78.12-3.6 1.06-5.7 2.75l-1.36 1.1v19.87c0 1.07.43 1.71 1.5 1.71h2.78v2.14H84.3v-2.14h1.92c1.71 0 3-1.07 3-2.78v-16.45c0-4.27-1.29-5.55-4.92-3.63v-2.29c2.35-.7 6.62-2.84 8.97-4.34zm63.46 27.99v-2.13c-2.35 1.07-3.42 1.07-4.23.52-1.15-.78-1.12-2.23-1.12-2.23v-47h-.64a49 49 0 0 1-10.04 4.9v2.36c1.71-.64 2.99-.98 4.06-.43.7.39 1.07.85 1.07 1.92v15.98l-1.26-.5c-2.51-1.03-3.81-1.26-6.86-1.26-2.55 0-3.08.08-4.6.58-7.02 2.35-11.52 9.21-11.15 17.03.21 4.47 1.5 7.98 4.43 10.48 2.99 2.56 5.55 3.42 8.54 3.42 4.06 0 6.41-.81 9.36-2.81.9-.61 1.75-1.25 1.75-1.25a8.7 8.7 0 0 0 1.5 4.48zm-22.15-.38c-4-1.42-6.9-6.35-7.27-12.33-.47-7.48 3.67-12.71 10.06-12.71 2.69 0 4.75.73 7.23 2.58l1.23.91-.1 19.2-1.38.83a10.4 10.4 0 0 1-6.21 1.83c-2 .07-2.67.01-3.56-.3m45.11 3.69a26 26 0 0 0 6.95-3.1v-2.14c-2.35 1.71-6.08 2.77-9.4 2.78q-5.43 0-8.34-3.2c-2.83-3.16-3.63-5.77-4.12-12.18h22.5s0-3.21-1.28-6.2c-.88-2.05-1.71-3.63-4.06-5.13-2.2-1.4-5.17-2-7.7-2-2.62-.03-3.02.02-4.45.54-6.65 2.43-11.17 9.32-10.62 16.17.54 6.63 4.4 11.94 10.25 14.07 2.59.95 7.47 1.13 10.27.39m-12.28-26.4c1.5-1.49 3.2-2.34 5.98-2.34 2.56 0 4.27.64 5.98 2.35 1.29 1.28 1.93 2.35 2.2 5.98h-16.78c.27-2.56 1.12-4.49 2.62-5.98m32.48-4.92v7.06a23 23 0 0 1 4.05-5.13 7 7 0 0 1 4.92-1.93c1.07 0 3.84.86 3.84.86v6.4h-1.06c-.43-1.7-1.93-2.55-4.06-2.55-2.78 0-4.6 1.12-5.72 2.8s-1.55 2.54-1.55 6.17v14.1c0 1.07.43 1.71 1.5 1.71h2.78v2.14h-14.53v-2.14h1.92c1.7 0 3-1.07 3-2.78v-16.45c0-4.7-1.72-4.49-4.71-3.2v-2.14c2.78-1.07 6.2-2.57 8.76-4.92z%22 style=%22fill:%23fe001e;fill-opacity:1;display:inline%22 transform=%22translate(184.65 -280.17)scale(.98661)%22/%3E%3C/g%3E%3C/svg%3E\", ar: 4.956, mono: false },\n \"scotiabank\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220.14 0.09 71.91 10.28%22%3E%3Cpath d=%22M6.73 8.37q.24-.6.23-1.25c.02-.63-.2-1.24-.6-1.72a5 5 0 0 0-2.31-1.23q-.3-.09-.6-.22-.27-.13-.46-.33a.8.8 0 0 1-.2-.55c.01-.3.18-.57.44-.7a2 2 0 0 1 1.68 0q.36.12.69.32l.9-1.8A5 5 0 0 0 3.77.13q-.7 0-1.36.23A3 3 0 0 0 .7 2.06q-.24.6-.23 1.25c.02.68.31 1.32.8 1.8q.7.6 1.6.9l.8.27q.3.12.57.3a1 1 0 0 1 .31.36q.1.2.07.43a1 1 0 0 1-.3.58q-.44.31-.98.27-.61 0-1.18-.28a9 9 0 0 1-.95-.53L.13 9.27a4.8 4.8 0 0 0 4.62.84q.66-.23 1.21-.68.5-.46.77-1.06m5.82-.58a1.57 1.57 0 1 1 0-1.96l1.4-1.41a3.5 3.5 0 0 0-2.62-1.17c-1.96 0-3.65 1.4-3.65 3.55 0 2.16 1.7 3.56 3.66 3.56 1 0 1.96-.42 2.63-1.16zm0 0%22 style=%22fill:%23eb0f19;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.352778%22/%3E%3Cpath d=%22M17.6 3.25a3.56 3.56 0 1 0-.01 7.11 3.56 3.56 0 0 0 0-7.11m0 5.12a1.57 1.57 0 1 1 .02-3.14 1.57 1.57 0 0 1-.02 3.14m8.09-4.95h-.97v-2.1h-2.13v2.1h-.97v1.92h.97v4.85h2.13V5.34h.97zM27.72.13a1.19 1.19 0 1 0 0 2.38 1.19 1.19 0 0 0 0-2.38m-1.06 3.29h2.12v6.77h-2.12zM37.1 10.2V3.42h-2.08v.71l-.2-.16a2.6 2.6 0 0 0-1.79-.72c-1.83 0-3.37 1.63-3.37 3.55 0 1.93 1.55 3.56 3.37 3.56.67 0 1.31-.25 1.8-.72l.2-.17v.72Zm-3.72-1.8a1.6 1.6 0 1 1 .02-3.2 1.6 1.6 0 0 1-.02 3.2m6.88 1.8v-.72l.2.17a2.6 2.6 0 0 0 1.8.72c1.82 0 3.37-1.63 3.37-3.56s-1.55-3.56-3.38-3.56c-.67 0-1.31.26-1.8.72l-.19.17V.3H38.2v9.9Zm.05-3.39a1.6 1.6 0 1 1 1.6 1.6 1.6 1.6 0 0 1-1.6-1.6m13.47 3.39V3.42h-2.07v.71l-.2-.16a2.6 2.6 0 0 0-1.79-.72c-1.83 0-3.37 1.63-3.37 3.55 0 1.93 1.55 3.56 3.37 3.56.67 0 1.32-.25 1.8-.72l.2-.17v.72Zm-3.7-1.8a1.6 1.6 0 1 1 0-3.2 1.6 1.6 0 0 1 0 3.2m8.12-3.16c.69 0 1.26.57 1.26 1.27v3.7h2.12V6.24c0-1.8-1.04-2.97-2.68-2.97-.68 0-1.39.3-1.97 1.24V3.44H54.8v6.76h2.11V6.5a1.27 1.27 0 0 1 1.28-1.26m11.13 4.96-2.6-3.4 2.42-3.38h-2.48L64.7 6.16V.3h-2.13v9.9h2.13V7.4l2.14 2.8zm1.5-2.37a1.19 1.19 0 1 0-.01 2.37 1.19 1.19 0 0 0 .01-2.37m0 2.13a.95.95 0 1 1 0-1.9.95.95 0 0 1 0 1.9m0 0%22 style=%22fill:%23eb0f19;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.352778%22/%3E%3Cpath d=%22M70.82 9.2h-.19v.46h-.23v-1.3h.5c.23 0 .42.2.42.43q-.02.27-.24.38l.27.49h-.28Zm-.19-.2h.27q.18-.02.2-.2a.2.2 0 0 0-.2-.2h-.27zm0 0%22 style=%22fill:%23eb0f19;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.352778%22/%3E%3C/svg%3E\", ar: 6.995, mono: false },\n \"soriana\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 4319.99 1077.31%22%3E%3Cg fill=%22none%22 fill-rule=%22evenodd%22%3E%3Cpath fill=%22%23d52b1e%22 d=%22M938.1 105.38c-57.36 0-136.87 24.37-194.64 103.86-10.61 14.5-19.28 32.96-24.38 51.13-17.65 61.93-5.24 130.1 33.48 182.3 29.69 40.18 67.58 70.24 101.03 96.77 16.35 12.96 51.07 45.8 62.27 59.71 16.7 20.9 29.4 33.33 44.5 79.3 9.13 27.9 10.43 64.65 5.95 85.48 104.7-106.15 219.06-243.93 219.06-393.8 0-172.18-123.34-264.75-247.26-264.75%22/%3E%3Cpath fill=%22%23b6bf00%22 d=%22M743.28 687.53c-43.7-59.53-94.24-95.66-135.96-133.74-18.2-16.57-38.14-28.79-52.89-43.5-70.76-70.3-103.83-156.94-87.11-263.62 13.2-83.65 54.74-138.6 104.91-178.97C512.34 23.82 441.28 0 361 0 161.68 0-4.95 160.15.1 357.63 9.15 714.1 455.63 1017.85 639.6 1080c98.37-50.36 150.64-144.53 150.64-241.15 0-70.45-30.18-128.49-46.96-151.32%22/%3E%3Cpath fill=%22%23d52b1e%22 d=%22M1490.98 682.22c34.28 24.6 101.98 56.22 149.96 56.22 36.88 0 68.63-14.04 68.63-54.4 0-39.5-49.78-53.57-100.29-73.75-58.32-22.83-116.58-58.93-116.58-153.73 0-126.33 91.68-193.16 224.61-193.16 87.36 0 165.3 44.8 205.6 92.32l-87.41 92.91c-39.4-34.13-83.1-59.64-125.13-59.64-34.28 0-59.93 14.04-59.93 45.66 0 43.05 36.82 53.54 99.36 79.92 59.96 25.43 121.67 62.34 121.67 152.84 0 122.84-97.69 201.87-236.52 201.87-97.75 0-179.99-41.26-212.5-67.58l68.5-119.48zm698.76-42.64c5.09-28 6.78-53.36 6.78-72.46 0-41.96-12.74-67.27-42.49-67.27-39.9 0-66.25 40.12-79.02 112.7-5.1 27.83-7.65 57.6-7.65 80.22 0 38.45 10.18 69.86 41.65 69.86 41.6 0 66.28-37.58 80.73-123.05m-11.95-244.45c60.4 0 166.6 23.5 166.6 168.48 0 19.25-.86 41.87-4.32 65.47-26.23 171.17-131.64 240.2-252.29 240.2-105.34 0-164.87-62.95-164.87-174.65 0-20.99.84-46.3 5.06-70.76 31.45-183.38 152.13-228.74 249.82-228.74m353.81 447.8h-134.54l58.82-352.67 3.2-82.48h108l2.38 60.45c29.84-53.57 71.75-73.14 105.53-73.14 23.46 0 48.39 5.96 64.5 16.98l-38.67 118.18c-15.27-8.58-34.68-15.3-54.74-15.3-34.74 0-62.08 22.03-69.33 62.02l-45.15 265.99zm181.56 0 73.75-421.45h136.98l-73.78 421.44Zm170.34-632.18c41.22 0 66.74 30.5 66.74 67.67 0 50.46-40.4 90.35-92.23 90.35-42.1 0-65.82-27.61-65.82-65.6 0-49.43 38.63-92.45 91.3-92.45m358.97 293.7c-9.63-4.32-23.45-7-39.2-7-79.17 0-107.74 119.88-107.74 191.74 0 41.9 9.5 75.94 51.22 75.94 29.62 0 50.45-19.07 59.12-49.7l36.57-210.98zm97.32 257.29-6.08 94.51h-122.62v-41.16l-4.36-.83c-30.36 35.88-69.49 55.05-121.66 55.05-93.07 0-134.85-68.97-134.85-163.6 0-179.38 99.2-310.55 280.92-310.55 36.45 0 101.68 8.7 166.9 34.93zm58.26 81.21 59.5-347.57 4.93-87.57h114.05l1.66 46.78c32.22-36.54 75.2-59.43 130.6-59.43 68.56 0 109.87 32.24 110.7 105.31 0 13.58-1.66 30.67-4.16 46.69l-51.2 295.8h-138.05l43.05-254.08c2.47-13.58 6.57-33.2 6.57-49.31 0-17-6.57-35.67-31.41-35.67-35.58 0-56.22 27.24-62.02 62.85l-47.06 276.2zm766.27-338.5c-9.56-4.32-23.5-7-39.12-7-79.15 0-107.85 119.88-107.85 191.74 0 41.9 9.57 75.94 51.35 75.94 29.5 0 50.42-19.07 59.09-49.7zm97.39 257.29-6.11 94.51h-122.6v-41.16l-4.35-.83c-30.45 35.88-69.55 55.05-121.67 55.05-93.06 0-134.78-68.97-134.78-163.6 0-179.38 99.08-310.55 280.83-310.55 36.47 0 101.68 8.7 166.97 34.93z%22/%3E%3C/g%3E%3C/svg%3E\", ar: 4.01, mono: false },\n \"stp\": { src: \"data:image/png;base64,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\", ar: 1, mono: false },\n \"ups\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xmlns:xlink=%22http://www.w3.org/1999/xlink%22 viewBox=%220 0 73.48 87.13%22%3E%3Cdefs%3E%3Cpath id=%22a%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22b%22%3E%3Cuse xlink:href=%22%23a%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%231E0000%22 d=%22M36.73-.12c-14.4 0-26.28 2.74-36.75 8.29V51c0 9.15 3.44 16.8 9.95 22.14 5.87 4.82 24.67 13.06 26.8 13.99 2.13-.93 20.92-9.17 26.8-13.99 6.5-5.34 9.95-13 9.95-22.14V8.17C63 2.62 51.13-.13 36.73-.13%22 clip-path=%22url(%23b)%22/%3E%3Cdefs%3E%3Cpath id=%22c%22 d=%22M.73 8.62V51c0 8.91 3.35 16.37 9.68 21.56 5.8 4.75 24.2 12.83 26.32 13.75 2.11-.92 20.53-9 26.32-13.75 6.33-5.19 9.68-12.65 9.68-21.56V8.62c-10-5.3-22.11-8-36-8s-26 2.7-36 8%22/%3E%3C/defs%3E%3CclipPath id=%22f%22%3E%3Cuse xlink:href=%22%23c%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3CradialGradient id=%22d%22 cx=%22-14.27%22 cy=%22101%22 r=%221%22 gradientTransform=%22matrix(0 119.608 59.804 0 -6028.71 1722.48)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFDC00%22/%3E%3Cstop offset=%22.35%22 stop-color=%22%23FFBE00%22/%3E%3Cstop offset=%221%22 stop-color=%22%23C86E14%22/%3E%3C/radialGradient%3E%3Cpath fill=%22url(%23d)%22 d=%22M.73.63h72v85.68h-72z%22 clip-path=%22url(%23f)%22/%3E%3Cdefs%3E%3Cpath id=%22g%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22h%22%3E%3Cuse xlink:href=%22%23g%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%23C86E14%22 d=%22M59.7 81.45v3.67h.67V83.6h.1l1 1.53h.8l-1.1-1.62c.48-.11.8-.46.8-.97 0-.53-.32-1.08-1.22-1.08zm.97.53c.57 0 .64.28.64.52 0 .35-.15.58-.86.58h-.08v-1.1zm2.6 1.32a2.49 2.49 0 1 1-4.98-.02 2.49 2.49 0 0 1 4.98.02m-2.5-3.03a3.03 3.03 0 0 0 0 6.05 3.02 3.02 0 1 0 0-6.05%22 clip-path=%22url(%23h)%22/%3E%3Cdefs%3E%3Cpath id=%22i%22 d=%22M35.49 33.65v19.24c.45.17 1.18.38 2.03.38 3.6 0 5.33-3.3 5.33-10.15 0-7.02-1.5-9.92-5.14-9.92-.85 0-1.71.2-2.22.45M19.76 52.4V28.79H26v27.17c-2.4 1.63-5.6 2.52-9.44 2.52-6.2 0-9.34-3.37-9.34-10V28.79h6.26v19.97c0 1.77.43 4.4 3.3 4.4 1.28 0 2.29-.3 2.97-.76m9.46-22.02c2.27-1.46 5.03-2.23 8.45-2.23 7.47 0 11.58 5.68 11.58 14.8 0 9.16-4 15.42-10.94 15.42-1.29 0-2.2-.17-2.82-.36V71.2h-6.27zm31.46 19.44c-.04-1.96-1.15-3.03-3.9-4.65-5.17-3.03-6.1-5.52-6.11-8.85-.03-5.06 4.28-8.05 8.4-8.17 3.44-.1 5.77 1.2 6.87 2.04v5.44a8.4 8.4 0 0 0-5.6-2.57c-1.78-.02-3.63.77-3.69 3-.06 2.27 1.78 3.17 4.12 4.54 5.23 3.08 6.24 5.84 6.12 9.5-.12 4-2.88 8.38-9.06 8.38a13.7 13.7 0 0 1-6.89-1.95v-5.77c1.6 1.43 4 2.54 5.99 2.55h.02c2.29 0 3.79-1.31 3.73-3.49M4.04 26.76V51c0 7.9 2.92 14.49 8.47 19.01C17.4 74 32.47 80.82 36.72 82.7c4.2-1.85 19.23-8.59 24.22-12.69 5.58-4.6 8.47-11.04 8.47-19.01V9.51c-4.45-.41-9.06-.69-13.77-.69-17.45 0-36.15 3.75-51.61 17.94%22/%3E%3C/defs%3E%3CclipPath id=%22k%22%3E%3Cuse xlink:href=%22%23i%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3CradialGradient id=%22j%22 cx=%22-14.27%22 cy=%22101%22 r=%221%22 gradientTransform=%22matrix(0 118.6833 59.3417 0 -5981.98 1709.35)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%234B3333%22/%3E%3Cstop offset=%22.35%22 stop-color=%22%23351A1A%22/%3E%3Cstop offset=%22.85%22 stop-color=%22%231E0000%22/%3E%3Cstop offset=%221%22 stop-color=%22%231E0000%22/%3E%3C/radialGradient%3E%3Cpath fill=%22url(%23j)%22 d=%22M4.04 8.82h65.38V82.7H4.04z%22 clip-path=%22url(%23k)%22/%3E%3Cdefs%3E%3Cpath id=%22l%22 d=%22M4.04 51c0 7.9 2.92 14.49 8.46 19.01C17.4 74 32.48 80.82 36.73 82.7v-.5c-3.53-1.55-18.98-8.5-23.94-12.54-5.43-4.42-8.3-10.88-8.3-18.66z%22/%3E%3C/defs%3E%3CclipPath id=%22n%22%3E%3Cuse xlink:href=%22%23l%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22m%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.92%22 y2=%22100.92%22 gradientTransform=%22rotate(-136 638.5 -2395.2)scale(45.5362)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%22.02%22 stop-color=%22%23E39C15%22/%3E%3Cstop offset=%22.18%22 stop-color=%22%23DC9116%22/%3E%3Cstop offset=%22.4%22 stop-color=%22%23D88A17%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D78817%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23m)%22 d=%22M20.95 99.04-11.8 67.4l31.6-32.74L52.57 66.3%22 clip-path=%22url(%23n)%22/%3E%3Cdefs%3E%3Cpath id=%22o%22 d=%22M68.97 51c0 7.84-2.8 14.12-8.31 18.66-4.8 3.95-19.3 10.5-23.93 12.55v.49c4.2-1.85 19.23-8.59 24.21-12.7 5.59-4.59 8.48-11.03 8.48-19z%22/%3E%3C/defs%3E%3CclipPath id=%22q%22%3E%3Cuse xlink:href=%22%23o%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22p%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.09%22 y2=%22101.09%22 gradientTransform=%22rotate(-44 5492.21 -3109.85)scale(45.5362)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D89016%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23p)%22 d=%22m20.89 66.3 32.75-31.64L85.26 67.4 52.5 99.03%22 clip-path=%22url(%23q)%22/%3E%3Cdefs%3E%3Cpath id=%22r%22 d=%22m4.04 26.76.45.2C17.54 15.06 34.27 9.27 55.65 9.27c4.17 0 8.54.22 13.32.65l.45-.41c-4.45-.41-9.06-.69-13.77-.69-17.45 0-36.15 3.75-51.61 17.94%22/%3E%3C/defs%3E%3CclipPath id=%22t%22%3E%3Cuse xlink:href=%22%23r%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22s%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.97%22 y2=%22100.97%22 gradientTransform=%22rotate(-19.2 19730.5 -6247.85)scale(67.419)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%22.97%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23s)%22 d=%22m-1.6 10.79 63.95-22.27L75.05 25 11.11 47.26%22 clip-path=%22url(%23t)%22/%3E%3Cdefs%3E%3Cpath id=%22u%22 d=%22M42.4 43.12c0 5.53-1.1 9.7-4.88 9.7v.45c3.6 0 5.33-3.3 5.33-10.15z%22/%3E%3C/defs%3E%3CclipPath id=%22w%22%3E%3Cuse xlink:href=%22%23u%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22v%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.09%22 y2=%22101.09%22 gradientTransform=%22rotate(-63.3 920.39 -716.09)scale(11.4647)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%221%22 stop-color=%22%23BF7312%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23v)%22 d=%22m33.45 51.22 5.15-10.24 8.32 4.19-5.15 10.24%22 clip-path=%22url(%23w)%22/%3E%3Cdefs%3E%3Cpath id=%22x%22 d=%22M35.49 52.9c.45.16 1.18.37 2.03.37v-.45c-.61 0-1.17-.12-1.58-.25z%22/%3E%3C/defs%3E%3CclipPath id=%22z%22%3E%3Cuse xlink:href=%22%23x%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22y%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.01%22 y2=%22101.01%22 gradientTransform=%22rotate(-173 12.05 -79.76)scale(2.064)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23F0AF13%22/%3E%3Cstop offset=%221%22 stop-color=%22%23F0AF13%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23y)%22 d=%22m37.5 53.52-2.1-.26.12-.93 2.09.25%22 clip-path=%22url(%23z)%22/%3E%3Cdefs%3E%3Cpath id=%22A%22 d=%22m35.49 33.65.45.3a5 5 0 0 1 1.77-.3v-.45c-.85 0-1.71.2-2.22.45%22/%3E%3C/defs%3E%3CclipPath id=%22C%22%3E%3Cuse xlink:href=%22%23A%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22B%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.02%22 y2=%22101.02%22 gradientTransform=%22rotate(-14.7 1017.85 -360.03)scale(2.26)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23B)%22 d=%22m35.3 33.25 2.27-.6.32 1.25-2.26.59%22 clip-path=%22url(%23C)%22/%3E%3Cdefs%3E%3Cpath id=%22D%22 d=%22M37.7 33.65c3.7 0 4.7 3.45 4.7 9.47h.45c0-7.02-1.5-9.92-5.14-9.92z%22/%3E%3C/defs%3E%3CclipPath id=%22F%22%3E%3Cuse xlink:href=%22%23D%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22E%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.09%22 y2=%22101.09%22 gradientTransform=%22rotate(-116.9 301.64 -605.19)scale(11.171)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23E)%22 d=%22m38.76 45.19-5.05-9.96 8.08-4.1 5.06 9.96%22 clip-path=%22url(%23F)%22/%3E%3Cdefs%3E%3Cpath id=%22G%22 d=%22M50.22 36.32h.45c-.03-5.06 4.28-8.04 8.4-8.17l-.01-.44c-4.56.13-8.87 3.46-8.84 8.6%22/%3E%3C/defs%3E%3CclipPath id=%22I%22%3E%3Cuse xlink:href=%22%23G%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22H%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.09%22 y2=%22101.09%22 gradientTransform=%22rotate(137.9 -303.69 -564.18)scale(12.334)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D89016%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23H)%22 d=%22m63.36 32.45-9.18 8.29-8.27-9.16 9.17-8.3%22 clip-path=%22url(%23I)%22/%3E%3Cdefs%3E%3Cpath id=%22J%22 d=%22M56.65 36.06h.45c.02-.6.3-2.55 3.17-2.55l.07-.45h-.06c-1.76 0-3.57.8-3.63 3%22/%3E%3C/defs%3E%3CclipPath id=%22L%22%3E%3Cuse xlink:href=%22%23J%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22K%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.93%22 y2=%22100.93%22 gradientTransform=%22rotate(-41 683.04 -387.68)scale(4.7434)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23K)%22 d=%22m55.17 34.35 3.58-3.11 3.07 3.53-3.58 3.12%22 clip-path=%22url(%23L)%22/%3E%3Cdefs%3E%3Cpath id=%22M%22 d=%22M60.27 33.51c2.6 0 4.8 1.69 6.13 3.23l-.45-1.1a8.4 8.4 0 0 0-5.61-2.58z%22/%3E%3C/defs%3E%3CclipPath id=%22O%22%3E%3Cuse xlink:href=%22%23M%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22N%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.06%22 y2=%22101.06%22 gradientTransform=%22rotate(-152.5 74.72 -359.74)scale(7.0756)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23N)%22 d=%22m65.09 39.25-6.32-3.3 2.81-5.4 6.32 3.3%22 clip-path=%22url(%23O)%22/%3E%3Cdefs%3E%3Cpath id=%22P%22 d=%22m59.06 27.7.01.45c3.44-.1 5.77 1.2 6.88 2.04l.45-.22a11 11 0 0 0-7.34-2.27%22/%3E%3C/defs%3E%3CclipPath id=%22R%22%3E%3Cuse xlink:href=%22%23P%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22Q%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.98%22 y2=%22100.98%22 gradientTransform=%22rotate(17.9 -2574.26 161.57)scale(7.6762)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%221%22 stop-color=%22%23E49F15%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23Q)%22 d=%22m59.75 25.55 7.38 2.38-1.43 4.4-7.37-2.38%22 clip-path=%22url(%23R)%22/%3E%3Cdefs%3E%3Cpath id=%22S%22 d=%22M57.83 58.48v.45c5.67 0 9.36-3.78 9.52-8.82l-.45-.01c-.12 4-2.89 8.38-9.07 8.38%22/%3E%3C/defs%3E%3CclipPath id=%22U%22%3E%3Cuse xlink:href=%22%23S%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22T%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.92%22 y2=%22100.92%22 gradientTransform=%22scale(-12.968 12.968)rotate(44.4 109.2 63.52)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23T)%22 d=%22m71.76 54.6-9.27 9.08-9.08-9.26 9.28-9.08%22 clip-path=%22url(%23U)%22/%3E%3Cdefs%3E%3Cpath id=%22V%22 d=%22M50.5 56.79a14 14 0 0 0 7.33 2.14v-.45a13.7 13.7 0 0 1-6.89-1.95z%22/%3E%3C/defs%3E%3CclipPath id=%22X%22%3E%3Cuse xlink:href=%22%23V%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22W%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.03%22 y2=%22101.03%22 gradientTransform=%22scale(7.64 -7.64)rotate(-16.1 -387.2 -27.03)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23W)%22 d=%22m51.06 54.58 7.4 2.14-1.2 4.16-7.4-2.14%22 clip-path=%22url(%23X)%22/%3E%3Cdefs%3E%3Cpath id=%22Y%22 d=%22M50.94 50.77c1.6 1.42 4 2.53 5.99 2.54v-.45c-2.23-.01-4.8-1.45-6.44-3.1z%22/%3E%3C/defs%3E%3CclipPath id=%22aa%22%3E%3Cuse xlink:href=%22%23Y%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22Z%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.96%22 y2=%22100.96%22 gradientTransform=%22rotate(-154.1 67.44 -362.63)scale(7.3418)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%221%22 stop-color=%22%23F0AF13%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23Z)%22 d=%22m55.7 55.84-6.6-3.2 2.62-5.41 6.6 3.2%22 clip-path=%22url(%23aa)%22/%3E%3Cdefs%3E%3Cpath id=%22ab%22 d=%22M60.23 49.84c.05 2-1.34 3.04-3.3 3.02v.45c2.3.01 3.8-1.3 3.75-3.49z%22/%3E%3C/defs%3E%3CclipPath id=%22ad%22%3E%3Cuse xlink:href=%22%23ab%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22ac%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.08%22 y2=%22101.08%22 gradientTransform=%22rotate(-42.6 724.8 -399.27)scale(5.1262)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D89016%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23ac)%22 d=%22m55.19 51.43 3.8-3.5 3.5 3.79-3.82 3.5%22 clip-path=%22url(%23ad)%22/%3E%3Cdefs%3E%3Cpath id=%22ae%22 d=%22M50.22 36.32c.01 3.5 1.05 6.14 6.32 9.24 2.83 1.66 3.65 2.62 3.7 4.28l.44-.02c-.04-1.96-1.16-3.03-3.9-4.65-5.17-3.03-6.1-5.52-6.1-8.85z%22/%3E%3C/defs%3E%3CclipPath id=%22ag%22%3E%3Cuse xlink:href=%22%23ae%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22af%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.04%22 y2=%22101.04%22 gradientTransform=%22rotate(55.2 -1779.54 -562.57)scale(17.0604)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%22.4%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.6%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D89016%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23af)%22 d=%22m57.28 31.41 9.74 14.02-13.4 9.3-9.74-14.01%22 clip-path=%22url(%23ag)%22/%3E%3Cdefs%3E%3Cpath id=%22ah%22 d=%22M60.77 40.6c5.23 3.08 6.24 5.84 6.12 9.5l.45.01c.13-3.73-.9-6.69-6.34-9.9-2.22-1.34-3.96-2.07-3.9-4.14l-.45-.01c-.06 2.27 1.78 3.17 4.12 4.54%22/%3E%3C/defs%3E%3CclipPath id=%22aj%22%3E%3Cuse xlink:href=%22%23ah%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22ai%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.96%22 y2=%22100.96%22 gradientTransform=%22rotate(53.8 -1890.23 -569.12)scale(17.6596)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.4%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%22.6%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D78817%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23ai)%22 d=%22m63.67 30.87 10.5 14.34L60.38 55.3 49.9 40.96%22 clip-path=%22url(%23aj)%22/%3E%3Cdefs%3E%3Cpath id=%22ak%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22al%22%3E%3Cuse xlink:href=%22%23ak%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%238F4A02%22 d=%22M35.49 71.2h-6.27l-.45.45h7.17%22 clip-path=%22url(%23al)%22/%3E%3Cdefs%3E%3Cpath id=%22am%22 d=%22M35.94 58.59q1.06.23 2.37.23v-.45a10 10 0 0 1-2.82-.36z%22/%3E%3C/defs%3E%3CclipPath id=%22ao%22%3E%3Cuse xlink:href=%22%23am%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22an%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.02%22 y2=%22101.02%22 gradientTransform=%22matrix(2.874 .445 .445 -2.874 31.54 354.88)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23an)%22 d=%22m35.56 57.59 2.87.44-.19 1.22-2.87-.45%22 clip-path=%22url(%23ao)%22/%3E%3Cdefs%3E%3Cpath id=%22ap%22 d=%22M49.25 42.96c0 9.15-3.99 15.4-10.94 15.4v.46c8.07 0 11.39-7.71 11.39-15.86z%22/%3E%3C/defs%3E%3CclipPath id=%22ar%22%3E%3Cuse xlink:href=%22%23ap%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aq%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.9%22 y2=%22100.9%22 gradientTransform=%22rotate(125.6 -631.9 -879.37)scale(19.5286)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aq)%22 d=%22M57.2 48.33 45.85 64.21 30.8 53.45l11.37-15.88%22 clip-path=%22url(%23ar)%22/%3E%3Cdefs%3E%3Cpath id=%22as%22 d=%22m28.77 30.14.45.24c2.28-1.46 5.03-2.22 8.45-2.22v-.46c-3.47 0-6.5.8-8.9 2.44%22/%3E%3C/defs%3E%3CclipPath id=%22au%22%3E%3Cuse xlink:href=%22%23as%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22at%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.03%22 y2=%22101.03%22 gradientTransform=%22rotate(165.5 -107.94 -440.95)scale(9.218)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23F0AF13%22/%3E%3Cstop offset=%221%22 stop-color=%22%23F0AF13%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23at)%22 d=%22m38.32 30.22-8.99 2.32-1.2-4.67 8.98-2.32%22 clip-path=%22url(%23au)%22/%3E%3Cdefs%3E%3Cpath id=%22av%22 d=%22M37.67 28.16c7.47 0 11.58 5.67 11.58 14.8h.45c0-8.08-3.38-15.26-12.03-15.26z%22/%3E%3C/defs%3E%3CclipPath id=%22ax%22%3E%3Cuse xlink:href=%22%23av%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aw%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.9%22 y2=%22100.9%22 gradientTransform=%22rotate(51.9 -2162.24 -642.68)scale(19.428)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%221%22 stop-color=%22%23A65E0C%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aw)%22 d=%22m45.12 21.86 11.99 15.29L42.25 48.8 30.26 33.51%22 clip-path=%22url(%23ax)%22/%3E%3Cdefs%3E%3Cpath id=%22ay%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22az%22%3E%3Cuse xlink:href=%22%23ay%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%23FFC20E%22 d=%22M13.5 28.79H7.22l-.45-.45h7.16zm12.51 0h-6.25l-.45-.45h7.15z%22 clip-path=%22url(%23az)%22/%3E%3Cpath fill=%22%23D78817%22 d=%22M4.04 51V26.76l.45.2V51zM66.4 36.74v-6.77l-.45.22v5.44zM13.94 48.76V28.34l-.45.45v19.96z%22 clip-path=%22url(%23az)%22/%3E%3Cpath fill=%22%23D89016%22 d=%22M68.97 51V9.92l.45-.41V51zm-18.48-1.24v7.03l.45-.26v-5.77zM19.76 52.4V28.79l-.45-.45v23.81zM7.23 48.48V28.79l-.45-.45v20.14z%22 clip-path=%22url(%23az)%22/%3E%3Cdefs%3E%3Cpath id=%22aA%22 d=%22M6.78 48.48c0 6.63 3.11 10.45 9.8 10.45v-.45c-6.2 0-9.35-3.37-9.35-10z%22/%3E%3C/defs%3E%3CclipPath id=%22aC%22%3E%3Cuse xlink:href=%22%23aA%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aB%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.11%22 y2=%22101.11%22 gradientTransform=%22rotate(47.1 -1815.33 -457.46)scale(14.319)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aB)%22 d=%22m12.04 43.6 9.74 10.48-10.46 9.73-9.75-10.5%22 clip-path=%22url(%23aC)%22/%3E%3Cdefs%3E%3Cpath id=%22aD%22 d=%22M16.57 58.48v.45c4 0 7.24-.93 9.89-2.73l-.45-.24c-2.4 1.63-5.6 2.52-9.44 2.52%22/%3E%3C/defs%3E%3CclipPath id=%22aF%22%3E%3Cuse xlink:href=%22%23aD%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aE%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.98%22 y2=%22100.98%22 gradientTransform=%22scale(-10.2546 10.2546)rotate(14.5 366.91 99.18)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aE)%22 d=%22m27.18 58.74-9.99 2.58-1.34-5.17 9.99-2.59%22 clip-path=%22url(%23aF)%22/%3E%3Cdefs%3E%3Cpath id=%22aG%22 d=%22M16.8 52.71v.45a5.3 5.3 0 0 0 2.96-.76l-.45-.25c-.64.36-1.52.56-2.52.56%22/%3E%3C/defs%3E%3CclipPath id=%22aI%22%3E%3Cuse xlink:href=%22%23aG%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aH%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.01%22 y2=%22101.01%22 gradientTransform=%22matrix(2.9715 -.73 -.73 -2.9715 132.9 342.77)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23F0AF13%22/%3E%3Cstop offset=%221%22 stop-color=%22%23F0AF13%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aH)%22 d=%22m16.56 52.2 3.03-.74.4 1.64-3.03.75%22 clip-path=%22url(%23aI)%22/%3E%3Cdefs%3E%3Cpath id=%22aJ%22 d=%22M13.5 48.76c0 1.77.42 4.4 3.3 4.4v-.45c-2.21 0-2.86-1.78-2.86-3.95z%22/%3E%3C/defs%3E%3CclipPath id=%22aL%22%3E%3Cuse xlink:href=%22%23aJ%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aK%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.92%22 y2=%22100.92%22 gradientTransform=%22rotate(-126.2 123.53 -275.42)scale(5.506)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D78817%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aK)%22 d=%22m14.65 54.74-3.26-4.45 4.25-3.1 3.26 4.44%22 clip-path=%22url(%23aL)%22/%3E%3Cdefs%3E%3Cpath id=%22aM%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22aN%22%3E%3Cuse xlink:href=%22%23aM%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%23D78817%22 d=%22M28.77 30.14v41.51l.45-.45V30.38%22 clip-path=%22url(%23aN)%22/%3E%3Cpath fill=%22%23BF7312%22 d=%22M35.94 52.57V33.95l-.45-.3v19.24zm0 6.02v13.06l-.45-.45V58.01zm-9.48-2.39V28.34l-.45.45v27.17%22 clip-path=%22url(%23aN)%22/%3E%3C/svg%3E\", ar: 0.843, mono: false },\n \"usps\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%221.12 1.45 179.67 27.5%22%3E%3Cpath fill=%22%2315569c%22 d=%22M49.56.15H7.41L7.4.3s24.78 5.1 25.27 5.18c5.7 1 5.52 2.1 5.52 2.1 3.99-.02 4.48.14 5.17.73 2.1 1.75-1.3 6.91-1.3 6.91-.5.36-37.36 14.6-37.36 14.6h38.57zm8.09 0-1.6 7.54c-.58 2.6 1.18 3.78 4.1 3.78 2.94 0 5.17-1.18 5.73-3.78 1.63-7.54-.02 0 1.63-7.54h-2.46l-1.45 6.8c-.37 1.73-1.29 2.77-3.09 2.77-1.88-.02-2.26-1.06-1.88-2.78L60.1.15zm12.2 0L67.5 11.27h2.17l1.72-8.25h.05l2.75 8.25h3.08L79.63.15h-2.17L75.7 8.49h-.03L73.04.15Zm12.13 0-2.35 11.12h2.45L84.43.15Zm4.1 0-.4 1.77h3.47l-1.99 9.35h2.45l1.99-9.35h3.45l.38-1.77zm11 0L94.7 11.27h8.06l.37-1.77h-5.6l.64-3.04h4.89l.35-1.64h-4.88l.62-2.9h5.6l.37-1.77zm9.82 0-2.35 11.12h5.02c3.1 0 6.08-2.05 6.75-6.05.48-2.83-.65-5.07-4.02-5.07zm18.44 0c-2.89 0-4.32 1.02-4.53 2.62-.36 2.67 4.36 4.25 4 5.85-.22.93-1.36.88-2.3.88h-3.02l-.37 1.77h3.75c3.07 0 4.4-1.1 4.65-2.62.45-2.73-4.34-4.14-3.96-5.9.12-.55.72-.83 2.05-.83h2.63l.38-1.77zm4.54 0-.38 1.77h3.45l-1.98 9.35h2.45l1.98-9.35h3.46l.37-1.77zm11.95 0-6.37 11.12h2.45l4.88-8.91.98 7.14h-3.5l-.97 1.77h7.2L144.76.15zm5.64 0-.39 1.77h3.46l-1.99 9.35H151l2-9.35h3.45l.38-1.77zm10.98 0-2.37 11.12h8.06l.37-1.77h-5.6l.64-3.04h4.88l.36-1.64h-4.88l.62-2.9h5.6l.36-1.77zm13.44 0c-2.89 0-4.31 1.02-4.53 2.62-.36 2.67 4.35 4.25 4 5.85-.22.93-1.37.88-2.3.88h-3.02l-.37 1.77h3.75c3.07 0 4.4-1.1 4.65-2.62.45-2.73-4.34-4.14-3.97-5.9.13-.55.73-.83 2.07-.83h2.61l.4-1.77zm-62.9 1.77h2.5c2.04 0 2.76 1.5 2.45 3.27-.43 2.5-2.03 4.31-4.8 4.31h-1.75zM27.67 7.01H5.96L1.12 29.8s14.83-7.27 16.64-8.2c3.72-1.92 8.86-4.44 13.6-6.06.91-.3 4.79-1.5 7.05-1.9.87-.16 1.24-.3 1.23-.47-.03-.47-.91-.5-2.4-.42-4.55.21-13.26 3.68-15.77 5L18.64 9h18.09c.6-1.7-5.72-1.96-9.07-1.98zm9.59 2.11q-.18 0-.4.3c-.14.17-.25.3-.6.48-.57.27-2.03.42-2.71.48-.66.06-.84.12-.85.38 0 .22.1.35 1.04.35 2.17 0 6.07-.81 7.24-.44.62.2.12 1.3-.38 2.76-.2.56.19.52.4.27a10 10 0 0 0 1.36-3.04c.15-1.34-1-1.54-2.58-1.54zm32.05 9.37c-3.44 0-6.31 1.8-7.15 5.75C61.48 27.4 63.4 30 66.83 30c3.48 0 6.27-1.72 7.14-5.76.7-3.3-1.26-5.75-4.67-5.75m98.14 0c-3.41 0-6.7 1.76-7.53 5.75-.85 3.98 1.67 5.76 5.09 5.76q1.4-.02 2.74-.24l.6-1.91c-.88.22-1.81.39-2.97.39-2.22 0-3.47-1.5-2.95-4 .53-2.52 2.42-3.99 4.63-3.99 1.14 0 1.91.16 2.6.36l.23-1.88a14 14 0 0 0-2.44-.24m-87.48.2c-2.89 0-4.32 1.02-4.53 2.62-.36 2.67 4.35 4.25 4 5.84-.22.93-1.37.89-2.3.89h-3.02l-.37 1.76h3.75c3.07 0 4.4-1.1 4.65-2.62.45-2.72-4.34-4.14-3.97-5.9.13-.55.73-.83 2.07-.83h2.62l.39-1.77zm4.54 0-.38 1.76h3.45L85.6 29.8h2.45l1.99-9.35h3.45l.37-1.77zm35.8 0c-2.9 0-4.32 1.02-4.54 2.62-.36 2.67 4.36 4.25 4 5.84-.21.93-1.36.89-2.3.89h-3.02l-.37 1.76h3.75c3.07 0 4.4-1.1 4.65-2.62.45-2.72-4.33-4.14-3.97-5.9.13-.55.73-.83 2.07-.83h2.62l.38-1.77zm5.4 0-2.38 11.11h8.07l.37-1.76h-5.6l.64-3.04h4.88l.36-1.65h-4.88l.61-2.9h5.6l.37-1.77zm9.82 0-2.35 11.11h2.45l1.98-9.36h2.2c1.36 0 1.49.76 1.35 1.46-.26 1.31-1.41 1.84-2.67 1.84-.23 0-.62.02-.93-.03l2.02 6.1h2.68l-1.83-4.8a3.6 3.6 0 0 0 3.18-3.49c.14-1.86-.73-2.84-2.9-2.84zm36.34 0-2.37 11.11h8.06l.37-1.76h-5.6l.64-3.04h4.89l.35-1.65h-4.88l.62-2.9h5.6l.37-1.77zm-118.14 0L51.36 29.8h2.45l1.99-9.35h2c.9 0 1.51.45 1.25 1.66-.14.67-.74 1.82-2.42 1.82-.37 0-.77-.05-1.08-.08l.12 1.61c.36.04.78.1 1.17.1 2.2 0 4.14-1.28 4.59-3.39.29-1.4.01-3.48-2.4-3.48zm42.75 0L90.1 29.8h2.45l4.88-8.91.98 7.15h-3.5l-.97 1.76h7.2L99.4 18.7zm8.3 0L102.4 29.8h7.53l.38-1.76h-5.07l1.99-9.35zm40.13 0 1.67 11.11h2.9l6.33-11.11h-2.42l-4.88 8.91-1.15-8.91zm12.38 0-2.36 11.11h2.45l2.36-11.11zM68.9 20.25c2.26 0 3.02 1.74 2.54 3.99-.53 2.51-2.01 4-4.23 4-2.3 0-3.06-1.85-2.58-4 .58-2.51 2.05-3.99 4.27-3.99%22/%3E%3Cpath fill=%22%23ed192d%22 d=%22m54.59 14.57-.18.82h126.2l.17-.82z%22/%3E%3C/svg%3E\", ar: 6.533, mono: false },\n \"visa\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1000 324.06%22%3E%3Cpath fill=%22%231434cb%22 d=%22M651.19.5c-70.93 0-134.32 36.77-134.32 104.69 0 77.9 112.42 83.28 112.42 122.42 0 16.48-18.88 31.23-51.14 31.23-45.77 0-79.98-20.61-79.98-20.61l-14.64 68.55s39.41 17.41 91.73 17.41c77.55 0 138.58-38.57 138.58-107.66 0-82.32-112.89-87.54-112.89-123.86 0-12.91 15.5-27.05 47.66-27.05 36.29 0 65.89 14.99 65.89 14.99l14.33-66.2S696.61.5 651.18.5ZM2.22 5.5.5 15.49s29.84 5.46 56.72 16.36c34.61 12.49 37.07 19.77 42.9 42.35l63.51 244.83h85.14L379.93 5.5h-84.94l-84.28 213.17-34.39-180.7c-3.15-20.68-19.13-32.48-38.68-32.48zm411.87 0-66.63 313.53h81L494.85 5.5zm451.76 0c-19.53 0-29.88 10.46-37.47 28.73l-118.67 284.8h84.94l16.43-47.47h103.48l9.99 47.47h74.95L934.12 5.5zm11.05 84.71 25.18 117.65h-67.45z%22/%3E%3C/svg%3E\", ar: 3.086, mono: false },\n \"walmart\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%220 0 264.58 50.3%22%3E%3Cg style=%22font-variation-settings:normal;opacity:1;vector-effect:none;fill:%230053e2;fill-opacity:1;stroke-width:1.96006829;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:%23000;stop-opacity:1%22%3E%3Cpath fill=%22%23fff%22 d=%22m120.6 0-14.75 74.6L89.32 0H60.59L44.06 74.6 29.32 0H0l23.91 113.96h34.13l16.7-75.67 16.68 75.67h33.38L148.56 0Zm59.91 98.16c-6.61 0-10.22-4.1-10.22-9.72 0-7.3 5.72-10.18 12.93-12.77 3.76-1.43 7.53-2.91 10.08-5.16v12.6c0 9.58-4.97 15.05-12.78 15.05m3.9-77.19c-18.19 0-30.97 6.24-35.63 10.64v24.3a49 49 0 0 1 31.88-12c9.32 0 12.78 2.6 12.78 7.91 0 4.56-4.81 6.39-18.2 9.27-20.3 4.25-32.03 11.7-32.03 29.48 0 16.4 10.68 25.98 26.17 25.98 12.97 0 20.72-6.08 24.96-14.25v11.67h27.96V58.05c0-25.68-13.23-37.08-37.89-37.08M261.8 0h-29.02v113.96h29.03zm116.48 21.28c-14.08 0-23.18 8.55-27.94 19.94-2.55-12.2-11.03-19.94-22.89-19.94-13.42 0-22.18 7.91-26.61 19.02V23.86h-28.57v90.1h29.02V63.99c0-12.3 4.06-19.3 12.78-19.3 7.07 0 9.48 4.87 9.48 12.47v56.83h29.02v-50c0-12.3 4.06-19.29 12.78-19.29 7.06 0 9.47 4.86 9.47 12.46V114h29.02V53.03c0-18.99-8.87-31.75-25.56-31.75m69.16 76.88c-6.61 0-10.22-4.1-10.22-9.72 0-7.3 5.72-10.18 12.94-12.77 3.76-1.43 7.53-2.91 10.07-5.16v12.6c0 9.58-4.96 15.05-12.79 15.05m3.91-77.19c-18.2 0-30.98 6.24-35.64 10.64v24.3a49 49 0 0 1 31.88-12c9.32 0 12.78 2.6 12.78 7.91 0 4.56-4.81 6.39-18.2 9.27-20.3 4.25-32.03 11.7-32.03 29.48 0 16.4 10.68 25.98 26.17 25.98 12.97 0 20.72-6.08 24.96-14.25v11.67h27.97V58.05c0-25.68-13.24-37.08-37.9-37.08m76.25 28.34V23.86h-28.42v90.1h29.02V75.68c0-17.62 10.83-22.33 21.2-22.33 3.46 0 6.77.45 8.27.9V23.26c-16.33-.8-26.25 9.74-30.07 26.06M613 46.65v-22.8h-18.5V6.39h-29.02v77.5c0 21.72 12.18 31.9 31.58 31.9 9.03 0 13.84-1.82 15.94-3.19V89.95c-1.65 1.22-4.36 2.13-7.82 2.13-6.46.15-10.68-2.74-10.68-12.3V46.65z%22 style=%22font-variation-settings:normal;vector-effect:none;fill:%230053e2;fill-opacity:1;stroke-width:1.96006829;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:%23000;stop-opacity:1%22 transform=%22scale(.43162)%22/%3E%3C/g%3E%3C/svg%3E\", ar: 5.26, mono: false },\n}\n","/**\n * Shared catalog of the brands a checkout names: parcel carriers, card networks, wallets and cash payment points.\n *\n * Keys are the stable identifiers the providers already send (`ShippingRate.carrier` of Skydropx / Envía, the\n * `PaymentPoint.payment_point` or `id` of the payment addon, a `PaymentMethod.key`). Nothing here decides what a shop\n * offers: the server lists the rates and methods; this only gives each one its commercial name and a mark.\n *\n * Marks are drawn by `<BrandMark>` with this precedence: the provider's `logo_url` > the real logo bundled in\n * `brands/assets` (inline data URI, no request; provenance in `brands/LOGOS.md`) > a typographic badge (brand color +\n * short wordmark) for the brands without an available logo. The `bg`/`fg` colors here are close approximations of each\n * brand's public color and only paint that fallback badge.\n */\n\nimport { LOGOS, type LogoAsset } from './brands/logos.generated.js'\n\nexport type BrandKind = 'carrier' | 'card' | 'wallet' | 'cash' | 'bank'\n\nexport type Brand = {\n key: string\n /** Commercial name, as the brand writes it. */\n name: string\n kind: BrandKind\n /** Badge background. */\n bg: string\n /** Badge text color (AA on `bg`). */\n fg: string\n /** Short wordmark drawn in the badge (`\\n` = two lines). Default: `name`. */\n mark?: string\n /** Special drawings instead of a wordmark. */\n shape?: 'mastercard' | 'transfer'\n}\n\nconst B = (key: string, name: string, kind: BrandKind, bg: string, fg: string, mark?: string, shape?: Brand['shape']): Brand => ({\n key,\n name,\n kind,\n bg,\n fg,\n ...(mark ? { mark } : {}),\n ...(shape ? { shape } : {}),\n})\n\nconst LIST: Brand[] = [\n // Parcel carriers (Mexico and global).\n B('fedex', 'FedEx', 'carrier', '#4D148C', '#FFFFFF'),\n B('dhl', 'DHL', 'carrier', '#FFCC00', '#B00410'),\n B('estafeta', 'Estafeta', 'carrier', '#C8102E', '#FFFFFF'),\n B('paquetexpress', 'Paquetexpress', 'carrier', '#0B4EA2', '#FFFFFF', 'Paquet\\nexpress'),\n B('ups', 'UPS', 'carrier', '#351C15', '#FFB500'),\n B('redpack', 'Redpack', 'carrier', '#C8102E', '#FFFFFF'),\n B('99minutos', '99 Minutos', 'carrier', '#00704A', '#FFFFFF', '99'),\n B('jtexpress', 'J&T Express', 'carrier', '#C8102E', '#FFFFFF', 'J&T'),\n B('sendex', 'Sendex', 'carrier', '#003A70', '#FFFFFF'),\n B('ampm', 'AMPM', 'carrier', '#1D1D1B', '#FFFFFF'),\n B('tresguerras', 'Tresguerras', 'carrier', '#005BAC', '#FFFFFF', '3G'),\n B('quiken', 'Quiken', 'carrier', '#1D1D1B', '#FFFFFF'),\n B('imile', 'iMile', 'carrier', '#0057B8', '#FFFFFF'),\n B('carssa', 'Carssa', 'carrier', '#00529B', '#FFFFFF'),\n B('correosdemexico', 'Correos de México', 'carrier', '#7A1E3A', '#FFFFFF', 'Correos\\nMéxico'),\n B('usps', 'USPS', 'carrier', '#333366', '#FFFFFF'),\n B('canadapost', 'Canada Post', 'carrier', '#DA291C', '#FFFFFF', 'CPC'),\n // Card networks.\n B('visa', 'Visa', 'card', '#1A1F71', '#FFFFFF', 'VISA'),\n B('mastercard', 'Mastercard', 'card', '#FFFFFF', '#1D1D1B', 'MC', 'mastercard'),\n B('amex', 'American Express', 'card', '#1F72CD', '#FFFFFF', 'AMEX'),\n B('carnet', 'Carnet', 'card', '#003B71', '#FFFFFF'),\n // Wallets and payment providers.\n B('mercadopago', 'Mercado Pago', 'wallet', '#00B1EA', '#0B1F4E', 'mercado\\npago'),\n B('paypal', 'PayPal', 'wallet', '#003087', '#FFFFFF'),\n B('clip', 'Clip', 'wallet', '#FC4C02', '#1D1D1B'),\n B('applepay', 'Apple Pay', 'wallet', '#000000', '#FFFFFF', 'Pay'),\n B('googlepay', 'Google Pay', 'wallet', '#FFFFFF', '#3C4043', 'G Pay'),\n // Cash points and transfers (Mexico).\n B('oxxo', 'OXXO', 'cash', '#E21E26', '#FFE600'),\n B('spei', 'SPEI', 'bank', '#14365F', '#FFFFFF', undefined, 'transfer'),\n B('stp', 'STP', 'bank', '#14365F', '#FFFFFF', 'SPEI', 'transfer'),\n B('7eleven', '7-Eleven', 'cash', '#00704A', '#FFFFFF', '7-11'),\n B('circlek', 'Circle K', 'cash', '#DA291C', '#FFFFFF', 'K'),\n B('soriana', 'Soriana', 'cash', '#C8102E', '#FFFFFF'),\n B('extra', 'Extra', 'cash', '#E35205', '#FFFFFF'),\n B('kiosko', 'Kiosko', 'cash', '#C8102E', '#FFFFFF'),\n B('calimax', 'Calimax', 'cash', '#D52B1E', '#FFFFFF'),\n B('farmaciasyza', 'Farmacias Yza', 'cash', '#0A5A9C', '#FFFFFF', 'Yza'),\n B('chedraui', 'Chedraui', 'cash', '#0047BB', '#FFFFFF'),\n B('casaley', 'Casa Ley', 'cash', '#C8102E', '#FFFFFF', 'Ley'),\n B('telecomm', 'Telecomm', 'cash', '#6F1D46', '#FFFFFF'),\n B('walmart', 'Walmart', 'cash', '#0071CE', '#FFFFFF'),\n B('bodegaaurrera', 'Bodega Aurrerá', 'cash', '#0F4C97', '#FFFFFF', 'Bodega\\nAurrerá'),\n B('farmaciasguadalajara', 'Farmacias Guadalajara', 'cash', '#005BAC', '#FFFFFF', 'Farm.\\nGuadalajara'),\n B('farmaciadelahorro', 'Farmacia del Ahorro', 'cash', '#00539F', '#FFFFFF', 'Farmacia\\ndel Ahorro'),\n B('santander', 'Santander', 'bank', '#C00000', '#FFFFFF'),\n B('hsbc', 'HSBC', 'bank', '#DB0011', '#FFFFFF'),\n B('scotiabank', 'Scotiabank', 'bank', '#EC111A', '#FFFFFF', 'Scotia'),\n B('bbva', 'BBVA', 'bank', '#004481', '#FFFFFF'),\n B('citibanamex', 'Citibanamex', 'bank', '#004B8D', '#FFFFFF', 'Citi'),\n B('banorte', 'Banorte', 'bank', '#C8102E', '#FFFFFF'),\n]\n\n/** Alternative spellings that providers send for the same brand (already normalized by `brandKey`). */\nconst ALIASES: Record<string, string> = {\n fedexmx: 'fedex',\n fedexexpress: 'fedex',\n dhlexpress: 'dhl',\n dhlmx: 'dhl',\n paquetexpres: 'paquetexpress',\n paqueteexpress: 'paquetexpress',\n jt: 'jtexpress',\n jandtexpress: 'jtexpress',\n noventaynueveminutos: '99minutos',\n correos: 'correosdemexico',\n sepomex: 'correosdemexico',\n master: 'mastercard',\n americanexpress: 'amex',\n mercadopagomx: 'mercadopago',\n mp: 'mercadopago',\n clabe: 'spei',\n banktransfer: 'spei',\n seveneleven: '7eleven',\n '711': '7eleven',\n circulok: 'circlek',\n yza: 'farmaciasyza',\n bancomer: 'bbva',\n banamex: 'citibanamex',\n ley: 'casaley',\n aurrera: 'bodegaaurrera',\n guadalajara: 'farmaciasguadalajara',\n fguadalajara: 'farmaciasguadalajara',\n farmaciaguadalajara: 'farmaciasguadalajara',\n fahorro: 'farmaciadelahorro',\n delahorro: 'farmaciadelahorro',\n farmaciasdelahorro: 'farmaciadelahorro',\n hsbcmexico: 'hsbc',\n scotia: 'scotiabank',\n walmartmexico: 'walmart',\n walmartsupercenter: 'walmart',\n oxxopay: 'oxxo',\n upsexpress: 'ups',\n estafetamexicana: 'estafeta',\n}\n\nconst BY_KEY = new Map(LIST.map((b) => [b.key, b]))\n\n/** `\"FedEx México\"`, `\"fedex_mx\"` and `\"FEDEX\"` all become `fedex`. Lowercase ASCII letters and digits only. */\nexport function brandKey(raw: string | null | undefined): string {\n const flat = (raw ?? '')\n .normalize('NFD')\n .replace(/[̀-ͯ]/g, '')\n .toLowerCase()\n .replace(/&/g, 'and')\n .replace(/[^a-z0-9]/g, '')\n const noCountry = flat.endsWith('mexico') && flat !== 'correosdemexico' ? flat.slice(0, -6) : flat\n return ALIASES[noCountry] ?? (BY_KEY.has(noCountry) ? noCountry : ALIASES[flat] ?? flat)\n}\n\n/** Catalog entry for a provider identifier, or `null` when the brand is not in the catalog. */\nexport function findBrand(raw: string | null | undefined): Brand | null {\n return BY_KEY.get(brandKey(raw)) ?? null\n}\n\n/**\n * Commercial name for a provider identifier: the catalog's (`fedex` → \"FedEx\") or, for an unknown one, the identifier\n * in title case (`\"envios_rapidos\"` → \"Envios Rapidos\"). `null` for an empty input.\n */\nexport function brandName(raw: string | null | undefined): string | null {\n const brand = findBrand(raw)\n if (brand) return brand.name\n const text = (raw ?? '').trim()\n if (!text) return null\n // Already cased by the provider (\"Envía Plus\"): keep it.\n if (text !== text.toLowerCase() && text !== text.toUpperCase()) return text\n return text\n .toLowerCase()\n .split(/[\\s_-]+/)\n .filter(Boolean)\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ')\n}\n\n/** Every brand of the catalog (for docs, previews and tests). */\nexport function listBrands(kind?: BrandKind): Brand[] {\n return kind ? LIST.filter((b) => b.kind === kind) : [...LIST]\n}\n\n/** Real logo bundled for a provider identifier (inline data URI), or `null` when the brand only has the fallback badge. */\nexport function brandLogo(raw: string | null | undefined): (LogoAsset & { key: string }) | null {\n const b = findBrand(raw)\n const logo = b ? LOGOS[b.key] : undefined\n return b && logo ? { ...logo, key: b.key } : null\n}\n","import type { CSSProperties } from 'react'\nimport { brandLogo, brandName, findBrand } from './brands.js'\n\nexport type BrandMarkProps = {\n /** Provider identifier (`fedex`, `oxxo`, `mercadopago`, `7eleven`…). Unknown keys get a neutral monogram. */\n brand: string | null | undefined\n /** Licensed logo sent by the provider (`PaymentPoint.logo_url`…). Only `https:`; it wins over the bundled logo and the badge. */\n logoUrl?: string | null\n /** Height in px of the box. Badges are 3:2 (width = 1.5 × height); real logos get a width that follows their shape. Default 24. */\n size?: number\n /**\n * Accessible name. Omit it when the brand name is already written next to the mark (the usual case): the mark is then\n * decorative (`aria-hidden`).\n */\n title?: string\n className?: string\n}\n\nfunction safeLogo(url: string | null | undefined): string | null {\n if (!url) return null\n try {\n return new URL(url).protocol === 'https:' ? url : null\n } catch {\n return null\n }\n}\n\n/** Letters of a monogram for a brand outside the catalog: \"envios rapidos\" → \"ER\". */\nfunction monogram(raw: string): string {\n const words = (brandName(raw) ?? raw).split(/\\s+/).filter(Boolean)\n const letters = words.length > 1 ? words.slice(0, 2).map((w) => w[0]) : [(words[0] ?? '?').slice(0, 2)]\n return letters.join('').toUpperCase()\n}\n\n/** What the mark ended up drawing: the provider's logo, the bundled real logo, or the typographic fallback. */\nexport type BrandMarkSource = 'provider' | 'logo' | 'badge'\n\nconst PLATE_RING = 'var(--sf-brand-mark-ring, rgb(127 127 127 / 0.35))'\n/** Neutral plate behind a real logo: always white, so an unrecolored logo reads the same on light and dark themes. */\nconst PLATE_BG = 'var(--sf-brand-mark-plate, #fff)'\n\n/** Box of a real logo: fixed height, width follows the logo's aspect ratio (clamped), so it never shifts the layout. */\nexport function logoBox(ar: number, size: number) {\n const pad = Math.max(2, Math.round(size * 0.16))\n const padX = Math.max(3, Math.round(size * 0.2))\n const innerH = size - pad * 2\n const maxW = size * 2.6\n const innerW = Math.min(innerH * ar, maxW)\n const imgH = Math.min(innerH, innerW / ar)\n return { width: Math.round(Math.max(innerW, innerH * 0.9) + padX * 2), height: size, imgW: Math.round(innerW), imgH: Math.round(imgH), pad, padX }\n}\n\n/**\n * The mark of a carrier, card network, wallet or cash point. Precedence: the provider's `logoUrl` (https, lazy) > the\n * real logo bundled with the package (inline data URI: no network request, same size on the server and in the browser)\n * > a typographic badge in the brand color for the brands without an available logo.\n *\n * Logos are never recolored; they sit on a white plate with a hairline (`--sf-brand-mark-ring`, plate color\n * `--sf-brand-mark-plate`) so they keep their contrast on light and dark themes. The element carries\n * `data-sf-brand-mark=\"<key>\"` and `data-sf-brand-source=\"provider|logo|badge\"`.\n */\nexport function BrandMark({ brand, logoUrl, size = 24, title, className }: BrandMarkProps) {\n const height = size\n const width = Math.round(size * 1.5)\n const a11y = title ? { role: 'img' as const, 'aria-label': title } : { 'aria-hidden': true as const }\n const logo = safeLogo(logoUrl)\n const found = findBrand(brand)\n const key = found?.key ?? 'generic'\n const style: CSSProperties = { width, height, flex: 'none' }\n const plate = (w: number, pad: number, padX: number): CSSProperties => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxSizing: 'border-box',\n flex: 'none',\n width: w,\n height,\n padding: `${pad}px ${padX}px`,\n background: PLATE_BG,\n border: `1px solid ${PLATE_RING}`,\n borderRadius: Math.round(size * 0.2),\n overflow: 'hidden',\n })\n if (logo) {\n const b = logoBox(1.5, size)\n return (\n <span className={className} style={plate(width, b.pad, b.padX)} data-sf-brand-mark={key} data-sf-brand-source=\"provider\" {...a11y}>\n <img\n src={logo}\n alt={title ?? ''}\n width={width - b.padX * 2}\n height={height - b.pad * 2}\n loading=\"lazy\"\n decoding=\"async\"\n style={{ objectFit: 'contain', maxWidth: '100%', maxHeight: '100%' }}\n {...(title ? {} : { 'aria-hidden': true })}\n />\n </span>\n )\n }\n const real = brandLogo(brand)\n if (found && real) {\n const b = logoBox(real.ar, size)\n // The plate is a role=\"img\" with the commercial name; the <img> inside is decorative so it is not announced twice.\n const label = title ?? found.name\n return (\n <span className={className} style={plate(b.width, b.pad, b.padX)} data-sf-brand-mark={key} data-sf-brand-source=\"logo\" {...(title ? { role: 'img', 'aria-label': label } : { 'aria-hidden': true })}>\n <img src={real.src} alt=\"\" width={b.imgW} height={b.imgH} decoding=\"async\" draggable={false} style={{ display: 'block', maxWidth: 'none' }} />\n </span>\n )\n }\n const ring = PLATE_RING\n if (found?.shape === 'mastercard') {\n return (\n <svg viewBox=\"0 0 48 32\" width={width} height={height} className={className} style={style} data-sf-brand-mark={key} data-sf-brand-source=\"badge\" focusable=\"false\" {...a11y}>\n <rect x=\"0.5\" y=\"0.5\" width=\"47\" height=\"31\" rx=\"5\" fill={found.bg} stroke={ring} />\n <circle cx=\"19\" cy=\"16\" r=\"9\" fill=\"#EB001B\" />\n <circle cx=\"29\" cy=\"16\" r=\"9\" fill=\"#F79E1B\" />\n <path d=\"M24 8.52a9 9 0 0 1 0 14.96a9 9 0 0 1 0-14.96z\" fill=\"#FF5F00\" />\n </svg>\n )\n }\n if (found?.shape === 'transfer') {\n // Generic bank-transfer badge (two opposing arrows + the name). SPEI has no logo we may redistribute (see\n // brands/LOGOS.md), so this is deliberately NOT an imitation of the official mark.\n const label = (found.mark ?? found.name).split('\\n')[0]!\n return (\n <svg viewBox=\"0 0 48 32\" width={width} height={height} className={className} style={style} data-sf-brand-mark={key} data-sf-brand-source=\"badge\" focusable=\"false\" {...a11y}>\n <rect x=\"0.5\" y=\"0.5\" width=\"47\" height=\"31\" rx=\"5\" fill={found.bg} stroke={ring} />\n <path d=\"M6 12h11m0 0-3-3m3 3-3 3M17 20H6m0 0 3-3m-3 3 3 3\" fill=\"none\" stroke={found.fg} strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <text x=\"33\" y=\"16.5\" dominantBaseline=\"central\" textAnchor=\"middle\" fill={found.fg} fontFamily=\"system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif\" fontWeight={800} fontSize={11} textLength={22} lengthAdjust=\"spacingAndGlyphs\">\n {label}\n </text>\n </svg>\n )\n }\n const text = found ? (found.mark ?? found.name) : monogram(brand ?? '')\n const bg = found?.bg ?? 'var(--sf-brand-mark-bg, #E7E9EE)'\n const fg = found?.fg ?? 'var(--sf-brand-mark-fg, #2B2F38)'\n const lines = text.split('\\n')\n const longest = Math.max(...lines.map((l) => l.length))\n // Short marks grow; long ones are squeezed into the badge (textLength) so every badge has the same box.\n const fontSize = lines.length > 1 ? (longest <= 5 ? 11 : 9.5) : longest <= 2 ? 15 : longest <= 4 ? 16 : 10\n const fit = (l: string) => (l.length > 5 ? { textLength: 40, lengthAdjust: 'spacingAndGlyphs' as const } : l.length === 4 ? { textLength: 36, lengthAdjust: 'spacingAndGlyphs' as const } : {})\n const italic = found?.key === 'visa' || found?.key === 'fedex' ? 'italic' : undefined\n const common = {\n textAnchor: 'middle' as const,\n fill: fg,\n fontFamily: \"system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif\",\n fontWeight: 800,\n fontSize,\n fontStyle: italic,\n }\n return (\n <svg viewBox=\"0 0 48 32\" width={width} height={height} className={className} style={style} data-sf-brand-mark={key} data-sf-brand-source=\"badge\" focusable=\"false\" {...a11y}>\n <rect x=\"0.5\" y=\"0.5\" width=\"47\" height=\"31\" rx=\"5\" fill={bg} stroke={ring} />\n {lines.length > 1 ? (\n lines.slice(0, 2).map((l, i) => (\n <text key={i} x=\"24\" y={i === 0 ? 15 : 25.5} {...common} {...fit(l)}>\n {l}\n </text>\n ))\n ) : (\n <text x=\"24\" y=\"16\" dominantBaseline=\"central\" letterSpacing={longest <= 4 ? 0.3 : 0} {...common} {...fit(text)}>\n {text}\n </text>\n )}\n </svg>\n )\n}\n","/**\n * Which carrier rates to show first. Pure: no DOM, no amounts computed (costs are only compared, as the server sends\n * them). A long quote (10+ services, several per carrier) becomes up to three recommended rows (the cheapest, the\n * fastest and the best balance of both) plus the rest grouped by carrier, so the buyer compares three things instead of\n * scanning a flat list.\n */\nimport type { ShippingRate } from '@asteby/storefront'\nimport { brandKey } from './brands.js'\n\n/** Why a rate is recommended. `best_value` balances price and arrival time. */\nexport type RateTag = 'cheapest' | 'fastest' | 'best_value'\n\nexport type RecommendedRate<R extends ShippingRate = ShippingRate> = { rate: R; tags: RateTag[] }\n\nexport type RateGroup<R extends ShippingRate = ShippingRate> = {\n /** Brand key of the carrier (`fedex`), or `''` for rates without one. */\n key: string\n /** Carrier as the server sends it (first rate of the group), for `BrandMark` and the group name. */\n carrier: string | null\n rates: R[]\n}\n\nexport type RecommendRatesOptions = {\n /** How many rates to recommend. Default 3. */\n count?: number\n /**\n * With this many rates or fewer every rate is recommended (no \"more options\"): hiding one or two rates behind a\n * toggle costs more than it saves. Default `count + 1`.\n */\n collapseAfter?: number\n /** Drop repeated services (same carrier and service, e.g. quoted by two providers), keeping the cheapest. Default true. */\n dedupe?: boolean\n}\n\nexport type RecommendedRates<R extends ShippingRate = ShippingRate> = {\n recommended: RecommendedRate<R>[]\n /** Everything else, grouped by carrier; groups ordered by their cheapest rate, rates by cost. */\n more: RateGroup<R>[]\n /** Number of rates in `more`. */\n moreCount: number\n}\n\nconst costOf = (r: ShippingRate) => {\n const n = Number(r.cost.amount)\n return Number.isFinite(n) ? n : null\n}\nconst daysOf = (r: ShippingRate) => r.eta_days_max ?? r.eta_days_min ?? null\nconst norm = (s: string | null | undefined) => (s ?? '').trim().toLowerCase()\nconst carrierKey = (r: ShippingRate) => (r.carrier ? brandKey(r.carrier) : r.provider ? brandKey(r.provider) : '')\n\n/** Repeated services (same carrier, same service code or title, same arrival): only the cheapest stays. Order kept. */\nexport function dedupeRates<R extends ShippingRate>(rates: readonly R[]): R[] {\n const best = new Map<string, R>()\n const keyOf = (r: R) => `${carrierKey(r)}|${norm(r.service_code) || norm(r.title)}|${daysOf(r) ?? ''}|${r.cost.currency_code}`\n for (const r of rates) {\n const k = keyOf(r)\n const prev = best.get(k)\n const c = costOf(r)\n if (!prev || (c !== null && (costOf(prev) === null || c < costOf(prev)!))) best.set(k, r)\n }\n const keep = new Set(best.values())\n return rates.filter((r) => keep.has(r))\n}\n\n/**\n * Up to `count` recommended rates and the rest by carrier.\n * - **cheapest**: lowest cost (only when every rate shares the currency); a tie goes to the faster one.\n * - **fastest**: fewest business days; a tie goes to the cheaper one. Only when some rate is strictly faster than the\n * cheapest, so the tag always tells the buyer something.\n * - **best_value**: the remaining rate with the best combined position in price and in time (sum of ranks), a tie goes\n * to the cheaper one. Fills the remaining slots.\n * Recommended rows come back cheapest first. Pickup is not a rate and is never hidden (the component shows it apart).\n */\nexport function recommendRates<R extends ShippingRate>(input: readonly R[], options: RecommendRatesOptions = {}): RecommendedRates<R> {\n const count = Math.max(1, options.count ?? 3)\n const rates = options.dedupe === false ? [...input] : dedupeRates(input)\n const collapseAfter = options.collapseAfter ?? count + 1\n const sameCurrency = new Set(rates.map((r) => r.cost.currency_code)).size <= 1\n const byCost = (a: R, b: R) => (costOf(a) ?? Infinity) - (costOf(b) ?? Infinity)\n const byDays = (a: R, b: R) => (daysOf(a) ?? Infinity) - (daysOf(b) ?? Infinity)\n const tags = new Map<R, RateTag[]>()\n const tag = (r: R, t: RateTag) => tags.set(r, [...(tags.get(r) ?? []), t])\n\n const cheapest = sameCurrency && rates.length > 1 ? [...rates].sort((a, b) => byCost(a, b) || byDays(a, b))[0] : undefined\n if (cheapest && costOf(cheapest) !== null) tag(cheapest, 'cheapest')\n const fastest = rates.length > 1 ? [...rates].sort((a, b) => byDays(a, b) || byCost(a, b))[0] : undefined\n if (fastest && daysOf(fastest) !== null && (!cheapest || fastest === cheapest || (daysOf(cheapest) ?? Infinity) > daysOf(fastest)!)) tag(fastest, 'fastest')\n\n const chosen: R[] = []\n for (const r of [cheapest, fastest]) if (r && tags.has(r) && !chosen.includes(r)) chosen.push(r)\n\n if (rates.length > collapseAfter) {\n // Rank in price and in time (ties share a rank); the best sum fills the remaining slots.\n const rank = (sorted: R[], val: (r: R) => number | null) => {\n const out = new Map<R, number>()\n let pos = 0\n let last: number | null | undefined\n sorted.forEach((r, i) => {\n const v = val(r)\n if (v !== last) pos = i\n last = v\n out.set(r, v === null ? sorted.length : pos)\n })\n return out\n }\n const priceRank = rank([...rates].sort(byCost), costOf)\n const timeRank = rank([...rates].sort(byDays), daysOf)\n const rest = rates\n .filter((r) => !chosen.includes(r))\n .sort((a, b) => priceRank.get(a)! + timeRank.get(a)! - (priceRank.get(b)! + timeRank.get(b)!) || byCost(a, b))\n let first = true\n for (const r of rest) {\n if (chosen.length >= count) break\n chosen.push(r)\n if (first) tag(r, 'best_value')\n first = false\n }\n } else {\n for (const r of rates) if (!chosen.includes(r)) chosen.push(r)\n }\n\n const recommended = chosen.sort(byCost).map((rate) => ({ rate, tags: tags.get(rate) ?? [] }))\n const groups = new Map<string, RateGroup<R>>()\n for (const r of [...rates].sort(byCost)) {\n if (chosen.includes(r)) continue\n const key = carrierKey(r)\n const g = groups.get(key) ?? { key, carrier: r.carrier ?? r.provider ?? null, rates: [] }\n g.rates.push(r)\n groups.set(key, g)\n }\n const more = [...groups.values()]\n return { recommended, more, moreCount: more.reduce((n, g) => n + g.rates.length, 0) }\n}\n","/**\n * Pure helpers for the \"Delivery\" step: how to name a carrier rate, its arrival time, which rate is the cheapest or the\n * fastest, and one human note for the quote deadline. No amounts are computed: `cost` is shown as the server sends it;\n * comparing two costs to flag the cheapest is the only arithmetic.\n */\nimport type { ShippingRate } from '@asteby/storefront'\nimport { brandName } from './brands.js'\n\nexport type DeliveryMessages = {\n /** `{n}` = business days. */\n etaOne: string\n etaMany: string\n /** `{min}` / `{max}` = business days. */\n etaRange: string\n etaUpTo: string\n etaFrom: string\n cheapest: string\n fastest: string\n free: string\n pickupTitle: string\n /** Quote deadline, `{time}` = local time. */\n quoteToday: string\n quoteTomorrow: string\n /** `{date}` = short date + time. */\n quoteLater: string\n quoteSoon: string\n partial: string\n loading: string\n /** The quote expired or changed and the rates were reloaded. */\n requoted: string\n /** Tag of the recommended rate that balances price and arrival time (`layout=\"recommended\"`). */\n bestValue: string\n /** Toggle of the other rates, `{n}` = how many. */\n moreOptions: string\n /** Title of the group of rates without a carrier. */\n otherCarriers: string\n /** The rates could not be quoted (`error`). */\n error: string\n retry: string\n}\n\nconst ES: DeliveryMessages = {\n etaOne: 'Llega en 1 día hábil',\n etaMany: 'Llega en {n} días hábiles',\n etaRange: 'Llega en {min} a {max} días hábiles',\n etaUpTo: 'Llega en máximo {max} días hábiles',\n etaFrom: 'Llega en {min} días hábiles o más',\n cheapest: 'Más económico',\n fastest: 'Más rápido',\n free: 'Gratis',\n pickupTitle: 'Recoger en {name}',\n quoteToday: 'Precios de envío vigentes hasta las {time}.',\n quoteTomorrow: 'Precios de envío vigentes hasta mañana a las {time}.',\n quoteLater: 'Precios de envío vigentes hasta el {date}.',\n quoteSoon: 'Los precios de envío vencen pronto ({time}).',\n partial: 'Algunas paqueterías no respondieron a tiempo; estas son las opciones disponibles.',\n loading: 'Buscando opciones de envío…',\n requoted: 'Las tarifas de envío cambiaron y ya están actualizadas. Revisa tu envío antes de pagar.',\n bestValue: 'Recomendado',\n moreOptions: 'Ver más opciones ({n})',\n otherCarriers: 'Otras opciones',\n error: 'No pudimos consultar las opciones de envío en este momento.',\n retry: 'Intentar de nuevo',\n}\n\nconst EN: DeliveryMessages = {\n etaOne: 'Arrives in 1 business day',\n etaMany: 'Arrives in {n} business days',\n etaRange: 'Arrives in {min} to {max} business days',\n etaUpTo: 'Arrives in up to {max} business days',\n etaFrom: 'Arrives in {min}+ business days',\n cheapest: 'Cheapest',\n fastest: 'Fastest',\n free: 'Free',\n pickupTitle: 'Pick up at {name}',\n quoteToday: 'Shipping prices valid until {time}.',\n quoteTomorrow: 'Shipping prices valid until tomorrow at {time}.',\n quoteLater: 'Shipping prices valid until {date}.',\n quoteSoon: 'Shipping prices expire soon ({time}).',\n partial: \"We couldn't reach every carrier. These are the options available now.\",\n loading: 'Looking for delivery options…',\n requoted: 'Shipping rates changed and are now up to date. Check your delivery before paying.',\n bestValue: 'Recommended',\n moreOptions: 'Show more options ({n})',\n otherCarriers: 'Other options',\n error: \"We couldn't get delivery options right now.\",\n retry: 'Try again',\n}\n\n/** Messages for a locale (`es*` default, `en*`), with optional overrides. */\nexport function deliveryMessages(locale?: string | null, overrides?: Partial<DeliveryMessages> | null): DeliveryMessages {\n const base = (locale ?? 'es-MX').toLowerCase().startsWith('en') ? EN : ES\n return overrides ? { ...base, ...overrides } : base\n}\n\n// A value that already ends in a period (\"9:39 p.m.\") does not get a second one from the template.\nconst fill = (tpl: string, vars: Record<string, string | number>) => tpl.replace(/\\{(\\w+)\\}/g, (_, k: string) => String(vars[k] ?? '')).replace(/\\.\\.$/, '.')\n\n/** Commercial carrier name of a rate (`fedex` → \"FedEx\"); `null` without carrier. */\nexport function rateCarrier(rate: Pick<ShippingRate, 'carrier'>): string | null {\n return brandName(rate.carrier)\n}\n\n/**\n * Service name without the carrier repeated: \"FedEx Express Saver\" with carrier `fedex` → \"Express Saver\". Falls back\n * to the title when stripping would leave nothing.\n */\nexport function rateService(rate: Pick<ShippingRate, 'title' | 'carrier'>): string {\n const title = rate.title.trim()\n const carrier = rateCarrier(rate)\n if (!carrier) return title\n for (const prefix of [carrier, rate.carrier ?? '']) {\n if (!prefix) continue\n if (title.toLowerCase().startsWith(prefix.toLowerCase())) {\n const rest = title.slice(prefix.length).replace(/^[\\s·:|-]+/, '')\n if (rest) return rest\n }\n }\n return title\n}\n\n/** Arrival time of a rate: business days from the provider, else the server `eta` text as is. */\nexport function rateEta(\n rate: Pick<ShippingRate, 'eta' | 'eta_days_min' | 'eta_days_max'>,\n messages: DeliveryMessages = ES,\n): string | null {\n const { eta_days_min: min, eta_days_max: max } = rate\n if (typeof min === 'number' && typeof max === 'number') {\n if (min === max) return min === 1 ? messages.etaOne : fill(messages.etaMany, { n: min })\n return fill(messages.etaRange, { min, max })\n }\n if (typeof max === 'number') return max === 1 ? messages.etaOne : fill(messages.etaUpTo, { max })\n if (typeof min === 'number') return min === 1 ? messages.etaOne : fill(messages.etaFrom, { min })\n return rate.eta ?? null\n}\n\nexport type RateBadge = 'cheapest' | 'fastest'\n\nconst costOf = (r: ShippingRate) => {\n const n = Number(r.cost.amount)\n return Number.isFinite(n) ? n : null\n}\nconst daysOf = (r: ShippingRate) => r.eta_days_max ?? r.eta_days_min ?? null\n\n/**\n * Badges per rate id. Only with two or more rates, only when one rate is strictly the cheapest (same currency) or\n * strictly the fastest: a tie gets no badge, so the badge always tells the buyer something.\n */\nexport function rateBadges(rates: readonly ShippingRate[]): Map<string, RateBadge[]> {\n const out = new Map<string, RateBadge[]>()\n if (rates.length < 2) return out\n const add = (id: string, b: RateBadge) => out.set(id, [...(out.get(id) ?? []), b])\n const unique = (values: Array<[string, number | null]>) => {\n const known = values.filter((v): v is [string, number] => v[1] !== null)\n if (known.length < 2) return null\n const min = Math.min(...known.map((v) => v[1]))\n const winners = known.filter((v) => v[1] === min)\n return winners.length === 1 ? winners[0]![0] : null\n }\n const currencies = new Set(rates.map((r) => r.cost.currency_code))\n if (currencies.size === 1) {\n const id = unique(rates.map((r) => [r.id, costOf(r)]))\n if (id) add(id, 'cheapest')\n }\n const fast = unique(rates.map((r) => [r.id, daysOf(r)]))\n if (fast) add(fast, 'fastest')\n return out\n}\n\n/** Earliest `expires_at` of the rates (the deadline of the whole list), or `null`. */\nexport function quoteDeadline(rates: readonly Pick<ShippingRate, 'expires_at'>[]): Date | null {\n let best: Date | null = null\n for (const r of rates) {\n if (!r.expires_at) continue\n const d = new Date(r.expires_at)\n if (Number.isNaN(d.getTime())) continue\n if (!best || d < best) best = d\n }\n return best\n}\n\nexport type QuoteNote = { text: string; soon: boolean }\n\n/**\n * One human note for the quote deadline, in the buyer's time zone (or `timeZone`): \"valid until 9:39 p.m.\", \"until\n * tomorrow at…\", \"until Oct 24, …\", or \"expire soon\" within `soonMinutes` (default 15). `null` when already past.\n */\nexport function quoteNote(\n deadline: Date | null,\n opts: { locale?: string; now?: Date; timeZone?: string; soonMinutes?: number; messages?: DeliveryMessages } = {},\n): QuoteNote | null {\n if (!deadline) return null\n const now = opts.now ?? new Date()\n const left = deadline.getTime() - now.getTime()\n if (left <= 0) return null\n const m = opts.messages ?? ES\n const locale = opts.locale ?? 'es-MX'\n const tz = opts.timeZone ? { timeZone: opts.timeZone } : {}\n const time = new Intl.DateTimeFormat(locale, { hour: 'numeric', minute: '2-digit', ...tz }).format(deadline)\n if (left <= (opts.soonMinutes ?? 15) * 60_000) return { text: fill(m.quoteSoon, { time }), soon: true }\n const day = (d: Date) => new Intl.DateTimeFormat('en-CA', { year: 'numeric', month: '2-digit', day: '2-digit', ...tz }).format(d)\n if (day(deadline) === day(now)) return { text: fill(m.quoteToday, { time }), soon: false }\n if (day(deadline) === day(new Date(now.getTime() + 86_400_000))) return { text: fill(m.quoteTomorrow, { time }), soon: false }\n const date = new Intl.DateTimeFormat(locale, { day: 'numeric', month: 'short', hour: 'numeric', minute: '2-digit', ...tz }).format(deadline)\n return { text: fill(m.quoteLater, { date }), soon: false }\n}\n\n/** Error codes a server uses (or will use) when the chosen rate is no longer quotable. */\nconst QUOTE_CODES = new Set(['quote_expired', 'rate_expired', 'rate_changed', 'rate_unavailable', 'rate_not_found', 'stale_rate', 'invalid_rate'])\n\n/**\n * `true` when saving a shipping rate failed because the quote expired or the rates changed, so the shop should reload\n * the rates (and keep the address) instead of showing a generic failure. Recognizes the explicit codes\n * (`quote_expired`, `rate_expired`…, any status), a `409`, and the generic `422` on the rate field that older servers\n * answer when the provider re-quoted with new ids. 5xx and other 4xx stay real failures.\n */\nexport function isQuoteChange(err: { status?: number; code?: string | null; field?: string | null } | null | undefined): boolean {\n if (!err) return false\n if (err.code && QUOTE_CODES.has(err.code)) return true\n if (err.status === 409) return true\n return err.status === 422 && (err.field === 'rate_id' || err.field === 'delivery' || err.field === 'delivery.rate_id' || !err.field)\n}\n\n/**\n * The rate of a fresh quote that matches the one the buyer had chosen (same carrier and service), so a re-quote keeps\n * the choice even though the provider issued new ids. `null` when that service is no longer offered.\n */\nexport function matchRate<R extends Pick<ShippingRate, 'id' | 'carrier' | 'service_code' | 'title'>>(previous: Pick<ShippingRate, 'carrier' | 'service_code' | 'title'> | null | undefined, rates: readonly R[]): R | null {\n if (!previous) return null\n const norm = (s: string | null | undefined) => (s ?? '').trim().toLowerCase()\n const sameCarrier = (r: R) => norm(r.carrier) === norm(previous.carrier)\n if (previous.service_code) {\n const hit = rates.find((r) => sameCarrier(r) && norm(r.service_code) === norm(previous.service_code))\n if (hit) return hit\n }\n return rates.find((r) => sameCarrier(r) && norm(r.title) === norm(previous.title)) ?? null\n}\n","import { useMemo, useSyncExternalStore, type CSSProperties, type ReactNode } from 'react'\nimport { formatMoney, type Money, type PickupOption, type ShippingRate } from '@asteby/storefront'\nimport { useResolvedLocale } from '../locale.js'\nimport { BrandMark } from './brand-mark.js'\nimport { recommendRates, type RateTag } from './recommend.js'\nimport {\n deliveryMessages,\n quoteDeadline,\n quoteNote,\n rateBadges,\n rateCarrier,\n rateEta,\n rateService,\n type DeliveryMessages,\n type RateBadge,\n} from './delivery.js'\n\nexport type DeliveryOptionsClassNames = Partial<\n Record<\n | 'root'\n | 'option'\n | 'radio'\n | 'mark'\n | 'body'\n | 'title'\n | 'carrier'\n | 'service'\n | 'eta'\n | 'badges'\n | 'badge'\n | 'price'\n | 'free'\n | 'note'\n | 'partial'\n | 'skeleton'\n | 'more'\n | 'moreSummary'\n | 'group'\n | 'groupTitle'\n | 'error'\n | 'retry',\n string\n >\n>\n\nexport type DeliveryOptionsProps = {\n rates: readonly ShippingRate[]\n pickup?: readonly PickupOption[]\n /** Radio group name. Default `delivery_choice`. */\n name?: string\n /** Form value of a rate. Default `rate:<id>`. */\n rateValue?: (rate: ShippingRate) => string\n /** Form value of a pickup branch. Default `pickup:<branch_id>`. */\n pickupValue?: (branch: PickupOption) => string\n /** Uncontrolled preselection. Default: the first rate. `null`: nothing preselected. */\n defaultValue?: string | null\n /** Controlled value (use with `onValueChange`). */\n value?: string\n onValueChange?: (value: string) => void\n /** Some provider did not answer (`DeliveryOptions.partial`): one neutral note above the list. */\n partial?: boolean\n /** The previous quote expired or changed and these rates are fresh: one status note above the list. */\n requoted?: boolean\n /** Rates are being quoted again: skeleton rows (no rates yet) or the current rows dimmed, `aria-busy`. */\n loading?: boolean\n /** Quote deadline note: `always` (default), only when it is `soon`, or `never`. */\n quoteNote?: 'always' | 'soon' | 'never'\n /** Time zone of the note. Default: the buyer's browser. */\n timeZone?: string\n /** Show the carrier marks. Default true. */\n marks?: boolean\n /** Cheapest / fastest badges. Default true. */\n badges?: boolean\n required?: boolean\n locale?: string\n messages?: Partial<DeliveryMessages>\n renderAmount?: (amount: Money) => ReactNode\n classNames?: DeliveryOptionsClassNames\n /**\n * `list` (default): every rate, as the server orders them. `recommended`: up to `recommendedCount` rates (cheapest,\n * fastest and the best balance, tagged) and the rest under \"Show more options (N)\", grouped by carrier so the carrier\n * name is not repeated on every row. Repeated services are dropped (the cheapest stays). Works without JavaScript\n * (`<details>`); it opens by itself when the chosen rate is inside.\n */\n layout?: 'list' | 'recommended'\n /** Rates recommended in `layout=\"recommended\"`. Default 3. */\n recommendedCount?: number\n /**\n * The rates could not be quoted (provider down, timeout): one friendly alert instead of the list, with a retry button\n * when `onRetry` is set. `true` uses the default text; a string replaces it.\n */\n error?: boolean | string\n onRetry?: () => void\n /** `data-testid` of every radio. */\n testId?: string\n /** Rows the shop renders before the rates (e.g. \"home delivery, rates after the address\"). */\n children?: ReactNode\n}\n\nconst SR_ONLY: CSSProperties = { position: 'absolute', width: 1, height: 1, overflow: 'hidden', clip: 'rect(0 0 0 0)', whiteSpace: 'nowrap' }\n\nconst useHydrated = () =>\n useSyncExternalStore(\n () => () => {},\n () => true,\n () => false,\n )\n\nfunction PickupGlyph({ size = 24 }: { size?: number }) {\n return (\n <svg viewBox=\"0 0 48 32\" width={Math.round(size * 1.5)} height={size} aria-hidden=\"true\" focusable=\"false\" style={{ flex: 'none' }} data-sf-brand-mark=\"pickup\">\n <rect x=\"0.5\" y=\"0.5\" width=\"47\" height=\"31\" rx=\"5\" fill=\"var(--sf-brand-mark-bg, #E7E9EE)\" stroke=\"var(--sf-brand-mark-ring, rgb(127 127 127 / 0.35))\" />\n <path d=\"M15 13.5 17 9h14l2 4.5M15 13.5h18M15 13.5V23h18v-9.5M21 23v-5h6v5\" fill=\"none\" stroke=\"var(--sf-brand-mark-fg, #2B2F38)\" strokeWidth=\"1.8\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\n/**\n * The rates and pickup branches of \"Delivery\" as native radios: carrier mark and commercial name, readable service,\n * arrival time, cheapest / fastest badges, price as the server sends it, and ONE note for the quote deadline in the\n * buyer's time zone. Works without JavaScript (plain radios in the page form); the note appears after hydration in a\n * reserved line, so it never shifts the layout.\n *\n * Wrap it in the shop's own `<fieldset><legend>`. Style it with `classNames` and/or the default sheet\n * `@asteby/storefront-react/checkout.css`.\n */\nexport function DeliveryOptions(props: DeliveryOptionsProps) {\n const {\n rates,\n pickup = [],\n name = 'delivery_choice',\n rateValue = (r) => `rate:${r.id}`,\n pickupValue = (b) => `pickup:${b.branch_id}`,\n value,\n onValueChange,\n partial = false,\n requoted = false,\n loading = false,\n timeZone,\n marks = true,\n badges: showBadges = true,\n required = true,\n renderAmount,\n classNames: cx = {},\n testId,\n children,\n layout = 'list',\n error,\n onRetry,\n } = props\n const locale = useResolvedLocale(props.locale)\n const m = useMemo(() => deliveryMessages(locale, props.messages), [locale, props.messages])\n const hydrated = useHydrated()\n const badges = useMemo(() => (showBadges ? rateBadges(rates) : new Map<string, RateBadge[]>()), [rates, showBadges])\n const firstValue = rates[0] ? rateValue(rates[0]) : null\n const defaultValue = props.defaultValue === undefined ? firstValue : props.defaultValue\n const amount = (money: Money) => (Number(money.amount) === 0 ? <span className={cx.free} data-sf-delivery-free>{m.free}</span> : renderAmount ? renderAmount(money) : formatMoney(money, locale))\n const mode = props.quoteNote ?? 'always'\n const deadline = mode === 'never' ? null : quoteDeadline(rates)\n const note = hydrated && deadline ? quoteNote(deadline, { locale, messages: m, ...(timeZone ? { timeZone } : {}) }) : null\n const shownNote = note && (mode === 'always' || note.soon) ? note : null\n\n const current = value ?? defaultValue ?? null\n const plan = useMemo(\n () => (layout === 'recommended' ? recommendRates(rates, { count: props.recommendedCount ?? 3 }) : null),\n [layout, rates, props.recommendedCount],\n )\n const inMore = plan ? plan.more.some((g) => g.rates.some((r) => rateValue(r) === current)) : false\n\n const radio = (v: string, describedBy?: string) => (\n <input\n type=\"radio\"\n name={name}\n value={v}\n required={required}\n className={cx.radio}\n {...(describedBy ? { 'aria-describedby': describedBy } : {})}\n {...(value !== undefined ? { checked: value === v, onChange: () => onValueChange?.(v) } : { defaultChecked: v === defaultValue, ...(onValueChange ? { onChange: () => onValueChange(v) } : {}) })}\n {...(testId ? { 'data-testid': testId } : {})}\n />\n )\n\n const tagText = (t: RateTag | RateBadge) => (t === 'cheapest' ? m.cheapest : t === 'fastest' ? m.fastest : m.bestValue)\n\n /** One row: [radio] [mark] carrier + service / arrival / tags ........ price. In a carrier group the mark and the carrier name live in the group title. */\n const rateRow = (rate: ShippingRate, opts: { tags: readonly (RateTag | RateBadge)[]; grouped?: boolean }) => {\n const carrier = rateCarrier(rate)\n const service = rateService(rate)\n const eta = rateEta(rate, m)\n return (\n <label key={rate.id} className={cx.option} data-sf-delivery-option data-loading={loading || undefined} data-grouped={opts.grouped || undefined}>\n {radio(rateValue(rate))}\n {marks && !opts.grouped ? (\n // Fixed slot: logos of different widths do not push the text column out of line.\n <span data-sf-delivery-mark aria-hidden=\"true\">\n <BrandMark brand={rate.carrier ?? rate.provider ?? rate.title} size={28} {...(cx.mark ? { className: cx.mark } : {})} />\n </span>\n ) : null}\n <span className={cx.body} data-sf-delivery-body>\n <span className={cx.title} data-sf-delivery-title>\n {carrier ? (\n opts.grouped ? (\n <>\n {/* The group title already shows the carrier: only screen readers hear it again (each radio keeps a full name). */}\n <span style={SR_ONLY}>{carrier} </span>\n <span className={cx.carrier} data-sf-delivery-carrier data-sf-delivery-service-only>\n {service}\n </span>\n </>\n ) : (\n <>\n <span className={cx.carrier} data-sf-delivery-carrier>\n {carrier}\n </span>{' '}\n <span className={cx.service} data-sf-delivery-service>\n {service}\n </span>\n </>\n )\n ) : (\n <span className={cx.carrier} data-sf-delivery-carrier>\n {service}\n </span>\n )}\n </span>\n {eta ? (\n <span className={cx.eta} data-sf-delivery-eta>\n {eta}\n </span>\n ) : null}\n {opts.tags.length ? (\n <span className={cx.badges} data-sf-delivery-badges>\n {opts.tags.map((b) => (\n <span key={b} className={cx.badge} data-sf-delivery-badge={b}>\n {tagText(b)}\n </span>\n ))}\n </span>\n ) : null}\n </span>\n <span className={cx.price} data-sf-delivery-price>\n {amount(rate.cost)}\n </span>\n </label>\n )\n }\n\n const errorText = error ? (typeof error === 'string' ? error : m.error) : null\n\n return (\n <div className={cx.root} data-sf-delivery data-layout={layout} aria-busy={loading || undefined}>\n {partial && !errorText ? (\n <p role=\"status\" className={cx.partial} data-sf-delivery-partial>\n {m.partial}\n </p>\n ) : null}\n {requoted ? (\n <p role=\"status\" className={cx.partial} data-sf-delivery-requoted>\n {m.requoted}\n </p>\n ) : null}\n {loading ? (\n <span style={SR_ONLY} role=\"status\" data-sf-delivery-loading>\n {m.loading}\n </span>\n ) : null}\n {errorText && rates.length === 0 && !loading ? (\n <div role=\"alert\" className={cx.error} data-sf-delivery-error>\n <p>{errorText}</p>\n {onRetry ? (\n <button type=\"button\" className={cx.retry} onClick={onRetry} data-sf-delivery-retry>\n {m.retry}\n </button>\n ) : null}\n </div>\n ) : null}\n {children}\n {loading && rates.length === 0\n ? [0, 1, 2].map((i) => <div key={i} className={cx.skeleton} data-sf-delivery-skeleton aria-hidden=\"true\" />)\n : null}\n {plan\n ? plan.recommended.map(({ rate, tags }) => rateRow(rate, { tags: showBadges ? tags : [] }))\n : rates.map((rate) => rateRow(rate, { tags: badges.get(rate.id) ?? [] }))}\n {plan && plan.moreCount > 0 ? (\n <details className={cx.more} data-sf-delivery-more {...(inMore ? { open: true } : {})}>\n <summary className={cx.moreSummary} data-sf-delivery-more-summary>\n {m.moreOptions.replace('{n}', String(plan.moreCount))}\n </summary>\n <div data-sf-delivery-groups>\n {plan.more.map((g) => {\n const carrierName = g.carrier ? rateCarrier({ carrier: g.carrier }) : null\n const id = `${name}-group-${g.key || 'other'}`\n return (\n <div key={g.key || 'other'} role=\"group\" aria-labelledby={id} className={cx.group} data-sf-delivery-group={g.key || 'other'}>\n <p id={id} className={cx.groupTitle} data-sf-delivery-group-title>\n {marks && g.carrier ? <BrandMark brand={g.carrier} size={22} /> : null}\n <span>{carrierName ?? m.otherCarriers}</span>\n </p>\n {g.rates.map((rate) => rateRow(rate, { tags: [], grouped: Boolean(carrierName) }))}\n </div>\n )\n })}\n </div>\n </details>\n ) : null}\n {pickup.map((b) => (\n <label key={b.branch_id} className={cx.option} data-sf-delivery-option data-sf-delivery-pickup>\n {radio(pickupValue(b))}\n {marks ? <PickupGlyph size={28} /> : null}\n <span className={cx.body} data-sf-delivery-body>\n <span className={cx.title} data-sf-delivery-title>\n <span className={cx.carrier} data-sf-delivery-carrier>\n {m.pickupTitle.replace('{name}', b.name)}\n </span>\n </span>\n {b.address || b.city ? (\n <span className={cx.eta} data-sf-delivery-eta>\n {[b.address, b.city].filter(Boolean).join(', ')}\n </span>\n ) : null}\n </span>\n <span className={cx.price} data-sf-delivery-price>\n <span className={cx.free} data-sf-delivery-free>\n {m.free}\n </span>\n </span>\n </label>\n ))}\n {deadline ? (\n <p className={cx.note} data-sf-delivery-note data-soon={shownNote?.soon || undefined} aria-live=\"polite\">\n {shownNote?.text ?? ''}\n </p>\n ) : null}\n </div>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/checkout/fields.tsx","../src/checkout/address-fields.tsx","../src/context.tsx","../src/locale.ts","../src/checkout/order-summary.tsx","../src/checkout/brands/logos.generated.ts","../src/checkout/brands.ts","../src/checkout/brand-mark.tsx","../src/checkout/recommend.ts","../src/checkout/delivery.ts","../src/checkout/delivery-options.tsx"],"names":["useRef","useState","useEffect","jsxs","jsx","ES","EN","Fragment","useId","fill","createContext","useContext","formatMoney","costOf","daysOf","norm","useSyncExternalStore","useMemo"],"mappings":";;;;;;;AA6BA,IAAM,EAAA,GAAoB;AAAA,EACxB,YAAA,EAAc,sBAAA;AAAA,EACd,aAAA,EAAe,sBAAA;AAAA,EACf,KAAA,EAAO,6DAAA;AAAA,EACP,GAAA,EAAK,mCAAA;AAAA,EACL,OAAA,EAAS,oBAAA;AAAA,EACT,QAAA,EAAU,kCAAA;AAAA,EACV,MAAA,EAAQ,oBAAA;AAAA,EACR,UAAA,EAAY,+BAAA;AAAA,EACZ,WAAA,EAAa,kCAAA;AAAA,EACb,QAAA,EAAU;AACZ,CAAA;AAEA,IAAM,EAAA,GAAoB;AAAA,EACxB,YAAA,EAAc,qBAAA;AAAA,EACd,aAAA,EAAe,mBAAA;AAAA,EACf,KAAA,EAAO,6CAAA;AAAA,EACP,GAAA,EAAK,6BAAA;AAAA,EACL,OAAA,EAAS,mBAAA;AAAA,EACT,QAAA,EAAU,gCAAA;AAAA,EACV,MAAA,EAAQ,mBAAA;AAAA,EACR,UAAA,EAAY,2BAAA;AAAA,EACZ,WAAA,EAAa,8BAAA;AAAA,EACb,QAAA,EAAU;AACZ,CAAA;AAGO,SAAS,aAAA,CAAc,QAAwB,SAAA,EAA0D;AAC9G,EAAA,MAAM,IAAA,GAAA,CAAQ,UAAU,OAAA,EAAS,WAAA,GAAc,UAAA,CAAW,IAAI,IAAI,EAAA,GAAK,EAAA;AACvE,EAAA,OAAO,YAAY,EAAE,GAAG,IAAA,EAAM,GAAG,WAAU,GAAI,IAAA;AACjD;AASA,IAAM,SAAA,GAAY,CAAC,EAAA,KACjB,CAAC,CAAC,EAAA,IAAM,OAAQ,GAAe,OAAA,KAAY,QAAA,IAAY,CAAC,OAAA,EAAS,QAAA,EAAU,UAAU,CAAA,CAAE,QAAA,CAAU,GAAe,OAAO,CAAA,IAAK,CAAC,CAAE,EAAA,CAAe,IAAA;AAMzI,SAAS,iBAAA,CAAkB,EAAA,EAAa,CAAA,GAAmB,EAAA,EAAmB;AACnF,EAAA,MAAM,IAAI,EAAA,CAAG,QAAA;AACb,EAAA,IAAI,CAAC,CAAA,IAAK,CAAA,CAAE,KAAA,EAAO,OAAO,IAAA;AAC1B,EAAA,MAAM,GAAA,GAAM,EAAA,CAAG,YAAA,CAAa,eAAe,CAAA;AAC3C,EAAA,IAAI,KAAK,OAAO,GAAA;AAChB,EAAA,IAAI,CAAA,CAAE,YAAA,EAAc,OAAO,EAAA,YAAc,gBAAA,KAAqB,EAAA,CAAG,IAAA,KAAS,OAAA,IAAW,EAAA,CAAG,IAAA,KAAS,UAAA,CAAA,GAAc,CAAA,CAAE,gBAAgB,CAAA,CAAE,YAAA;AACnI,EAAA,IAAI,CAAA,CAAE,YAAA,IAAgB,EAAA,YAAc,gBAAA,SAAyB,EAAA,CAAG,IAAA,KAAS,OAAA,GAAU,CAAA,CAAE,QAAQ,EAAA,CAAG,IAAA,KAAS,KAAA,GAAQ,CAAA,CAAE,MAAM,CAAA,CAAE,OAAA;AAC3H,EAAA,IAAI,CAAA,CAAE,eAAA,EAAiB,OAAO,EAAA,CAAG,aAAa,OAAO,CAAA,KAAM,EAAA,YAAc,gBAAA,IAAoB,EAAA,CAAG,IAAA,KAAS,KAAA,GAAQ,CAAA,CAAE,MAAM,CAAA,CAAE,OAAA,CAAA;AAC3H,EAAA,IAAI,CAAA,CAAE,QAAA,IAAY,EAAA,YAAc,gBAAA,EAAkB,OAAO,CAAA,CAAE,QAAA,CAAS,OAAA,CAAQ,KAAA,EAAO,MAAA,CAAO,EAAA,CAAG,SAAS,CAAC,CAAA;AACvG,EAAA,OAAO,EAAA,CAAG,qBAAqB,CAAA,CAAE,OAAA;AACnC;AAGA,SAAS,QAAQ,EAAA,EAAqB;AACpC,EAAA,IAAI,EAAA,YAAc,gBAAA,IAAoB,EAAA,CAAG,IAAA,KAAS,OAAA,EAAS;AACzD,IAAA,MAAM,SAAS,EAAA,CAAG,OAAA,CAAQ,UAAU,CAAA,EAAG,cAAc,QAAQ,CAAA;AAC7D,IAAA,IAAI,MAAA,EAAQ,WAAA,EAAa,OAAO,MAAA,CAAO,YAAY,IAAA,EAAK;AAAA,EAC1D;AACA,EAAA,MAAM,OAAO,EAAA,CAAG,MAAA,GAAS,CAAC,CAAA,EAAG,aAAa,eAAe,CAAA,IAAK,EAAA,CAAG,MAAA,GAAS,CAAC,CAAA,EAAG,WAAA,IAAe,GAAG,YAAA,CAAa,YAAY,KAAK,EAAA,CAAG,IAAA;AACjI,EAAA,OAAO,KAAK,IAAA,EAAK;AACnB;AAwBO,SAAS,cAAA,CAAe,OAAA,EAA4C,OAAA,GAAiC,EAAC,EAAqB;AAChI,EAAA,MAAM,CAAA,GAAI,aAAA,CAAc,OAAA,CAAQ,MAAA,EAAQ,QAAQ,QAAQ,CAAA;AACxD,EAAA,MAAM,IAAA,GAAOA,aAAO,CAAC,CAAA;AACrB,EAAA,IAAA,CAAK,OAAA,GAAU,CAAA;AACf,EAAA,MAAM,SAAS,CAAC,GAAI,OAAA,CAAQ,YAAA,IAAgB,EAAG,CAAA;AAC/C,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AACjC,EAAA,MAAM,CAAC,QAAQ,SAAS,CAAA,GAAIC,eAAsB,MAAM,MAAA,CAAO,WAAA,CAAY,MAAA,CAAO,GAAA,CAAI,CAAC,MAAM,CAAC,CAAA,EAAG,QAAQ,cAAA,GAAiB,CAAC,KAAK,CAAA,CAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAC3I,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAoC,IAAI,CAAA;AACtE,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,eAAS,CAAC,CAAA;AAG9C,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAO,MAAA,EAAQ;AACpB,IAAA,MAAM,OAAO,OAAA,CAAQ,OAAA;AACrB,IAAA,MAAM,QAA4B,EAAC;AACnC,IAAA,MAAM,OAAoB,EAAC;AAC3B,IAAA,KAAA,MAAW,QAAQ,MAAA,EAAQ;AACzB,MAAA,MAAM,MAAM,OAAA,CAAQ,cAAA,GAAiB,IAAI,CAAA,IAAK,KAAK,OAAA,CAAQ,MAAA;AAC3D,MAAA,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA;AACb,MAAA,MAAM,EAAA,GAAK,IAAA,EAAM,QAAA,CAAS,SAAA,CAAU,IAAI,CAAA;AACxC,MAAA,MAAM,GAAA,GAAM,MAAM,QAAA,IAAY,EAAA,IAAM,EAAE,EAAA,YAAc,iBAAA,CAAA,GAAuB,EAAA,CAAqB,CAAC,CAAA,GAA6B,EAAA;AAC9H,MAAA,IAAI,GAAA,EAAK,KAAA,CAAM,IAAA,CAAK,EAAE,MAAM,EAAA,EAAI,GAAA,CAAI,EAAA,IAAM,IAAA,EAAM,OAAO,OAAA,CAAQ,GAAG,CAAA,EAAG,OAAA,EAAS,KAAK,CAAA;AAAA,IACrF;AACA,IAAA,SAAA,CAAU,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,GAAG,MAAK,CAAE,CAAA;AACpC,IAAA,IAAI,MAAM,MAAA,EAAQ;AAChB,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,aAAA,CAAc,CAAC,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA;AAAA,IAC5B;AAAA,EAEF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,OAAO,OAAA,CAAQ,OAAA;AACrB,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,IAAI,KAAA,GAA0B,IAAA;AAC9B,IAAA,MAAM,MAAM,CAAC,IAAA,EAAc,GAAA,KACzB,SAAA,CAAU,CAAC,CAAA,KAAM;AACf,MAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,QAAA,IAAI,EAAE,IAAA,IAAQ,CAAA,CAAA,EAAI,OAAO,CAAA;AACzB,QAAA,MAAM,EAAE,CAAC,IAAI,GAAG,KAAA,EAAO,GAAG,MAAK,GAAI,CAAA;AACnC,QAAA,OAAO,IAAA;AAAA,MACT;AACA,MAAA,OAAO,CAAA,CAAE,IAAI,CAAA,KAAM,GAAA,GAAM,CAAA,GAAI,EAAE,GAAG,CAAA,EAAG,CAAC,IAAI,GAAG,GAAA,EAAI;AAAA,IACnD,CAAC,CAAA;AACH,IAAA,MAAM,MAAA,GAAS,CAAC,EAAA,KAAmB;AACjC,MAAA,MAAM,KAAK,EAAA,CAAG,MAAA;AACd,MAAA,IAAI,CAAC,SAAA,CAAU,EAAE,CAAA,IAAM,cAAc,gBAAA,KAAqB,EAAA,CAAG,IAAA,KAAS,OAAA,IAAW,EAAA,CAAG,IAAA,KAAS,UAAA,IAAc,EAAA,CAAG,SAAS,QAAA,CAAA,EAAY;AAEnI,MAAA,IAAI,CAAC,GAAG,KAAA,EAAO;AACf,MAAA,GAAA,CAAI,GAAG,IAAA,EAAM,iBAAA,CAAkB,EAAA,EAAI,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,IAClD,CAAA;AACA,IAAA,MAAM,OAAA,GAAU,CAAC,EAAA,KAAc;AAC7B,MAAA,MAAM,KAAK,EAAA,CAAG,MAAA;AACd,MAAA,IAAI,CAAC,SAAA,CAAU,EAAE,CAAA,EAAG;AACpB,MAAA,SAAA,CAAU,CAAC,CAAA,KAAM;AACf,QAAA,IAAI,EAAE,EAAA,CAAG,IAAA,IAAQ,CAAA,CAAA,EAAI,OAAO,CAAA;AAC5B,QAAA,MAAM,GAAA,GAAM,GAAG,QAAA,CAAS,KAAA,GAAQ,OAAO,iBAAA,CAAkB,EAAA,EAAI,KAAK,OAAO,CAAA;AACzE,QAAA,IAAI,GAAA,KAAQ,MAAM,OAAO,CAAA;AACzB,QAAA,MAAM,EAAE,CAAC,EAAA,CAAG,IAAI,GAAG,KAAA,EAAO,GAAG,MAAK,GAAI,CAAA;AACtC,QAAA,OAAO,IAAA;AAAA,MACT,CAAC,CAAA;AAAA,IACH,CAAA;AACA,IAAA,MAAM,SAAA,GAAY,CAAC,EAAA,KAAc;AAC/B,MAAA,MAAM,KAAK,EAAA,CAAG,MAAA;AACd,MAAA,IAAI,CAAC,SAAA,CAAU,EAAE,CAAA,EAAG;AACpB,MAAA,EAAA,CAAG,cAAA,EAAe;AAClB,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,KAAA,GAAQ,EAAC;AACT,QAAA,cAAA,CAAe,MAAM;AACnB,UAAA,MAAM,IAAA,GAAO,SAAS,EAAC;AACvB,UAAA,KAAA,GAAQ,IAAA;AACR,UAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,UAAA,MAAM,QAA4B,EAAC;AACnC,UAAA,MAAM,OAAoB,EAAC;AAC3B,UAAA,KAAA,MAAW,KAAK,IAAA,EAAM;AACpB,YAAA,IAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,IAAI,CAAA,EAAG;AACtB,YAAA,IAAA,CAAK,GAAA,CAAI,EAAE,IAAI,CAAA;AACf,YAAA,MAAM,MAAM,iBAAA,CAAkB,CAAA,EAAG,KAAK,OAAO,CAAA,IAAK,KAAK,OAAA,CAAQ,YAAA;AAC/D,YAAA,IAAA,CAAK,CAAA,CAAE,IAAI,CAAA,GAAI,GAAA;AACf,YAAA,KAAA,CAAM,KAAK,EAAE,IAAA,EAAM,CAAA,CAAE,IAAA,EAAM,IAAI,CAAA,CAAE,EAAA,IAAM,CAAA,CAAE,IAAA,EAAM,OAAO,OAAA,CAAQ,CAAC,CAAA,EAAG,OAAA,EAAS,KAAK,CAAA;AAAA,UAClF;AACA,UAAA,SAAA,CAAU,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,GAAG,MAAK,CAAE,CAAA;AACpC,UAAA,UAAA,CAAW,KAAK,CAAA;AAChB,UAAA,aAAA,CAAc,CAAC,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA;AAAA,QAC5B,CAAC,CAAA;AAAA,MACH;AACA,MAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AAAA,IACf,CAAA;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,YAAY,MAAM,CAAA;AACxC,IAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,OAAO,CAAA;AACtC,IAAA,IAAA,CAAK,gBAAA,CAAiB,UAAU,OAAO,CAAA;AACvC,IAAA,IAAA,CAAK,gBAAA,CAAiB,SAAA,EAAW,SAAA,EAAW,IAAI,CAAA;AAChD,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,mBAAA,CAAoB,YAAY,MAAM,CAAA;AAC3C,MAAA,IAAA,CAAK,mBAAA,CAAoB,SAAS,OAAO,CAAA;AACzC,MAAA,IAAA,CAAK,mBAAA,CAAoB,UAAU,OAAO,CAAA;AAC1C,MAAA,IAAA,CAAK,mBAAA,CAAoB,SAAA,EAAW,SAAA,EAAW,IAAI,CAAA;AAAA,IACrD,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAGZ,EAAA,MAAM,KAAA,GAAQ,UAAU,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,IAAQ,MAAM,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,OAAA,EAAS,OAAO,CAAA,CAAE,IAAI,CAAA,EAAG,CAAE,CAAA,GAAI,IAAA;AACnH,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,OAAA,EAAS,KAAA,IAAS,KAAA,CAAM,MAAA,GAAS,KAAA,GAAQ,IAAA;AAAA,IACzC,UAAA;AAAA,IACA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,EAAE,CAAA;AACZ,MAAA,UAAA,CAAW,IAAI,CAAA;AAAA,IACjB;AAAA,GACF;AACF;AAiBO,SAAS,YAAA,CAAa,EAAE,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,EAAA,GAAK,EAAC,EAAE,EAAsB;AAC5H,EAAA,MAAM,GAAA,GAAMF,aAAuB,IAAI,CAAA;AACvC,EAAA,MAAM,CAAA,GAAI,aAAA,CAAc,MAAA,EAAQ,QAAQ,CAAA;AACxC,EAAA,MAAM,GAAA,GAAM,CAAC,CAAC,KAAA,IAAS,MAAM,MAAA,GAAS,CAAA;AACtC,EAAAE,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,GAAA,EAAK,GAAA,CAAI,OAAA,EAAS,KAAA,EAAM;AAAA,EAE9B,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AACb,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,MAAM,IAAI,KAAA,CAAO,MAAA;AACjB,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,IAAA,EAAK,OAAA,EAAQ,QAAA,EAAU,EAAA,EAAI,SAAA,EAAsB,uBAAA,EAAqB,IAAA,EAAC,iBAAA,EAAgB,wBAAA,EACpG,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,IAAG,wBAAA,EAAyB,SAAA,EAAW,GAAG,KAAA,EAAO,6BAAA,EAA2B,MAC5E,QAAA,EAAA,KAAA,KAAU,CAAA,KAAM,IAAI,CAAA,CAAE,UAAA,GAAa,EAAE,WAAA,CAAY,OAAA,CAAQ,OAAO,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA,EAC5E,CAAA;AAAA,oBACAA,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,IAAA,EACf,gBAAO,GAAA,CAAI,CAAC,EAAA,qBACXA,cAAA,CAAC,IAAA,EAAA,EACC,QAAA,kBAAAD,eAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,CAAA,CAAA,EAAI,EAAA,CAAG,EAAE,CAAA,CAAA;AAAA,QACf,WAAW,EAAA,CAAG,IAAA;AAAA,QACd,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,UAAA,MAAM,EAAA,GAAK,QAAA,CAAS,cAAA,CAAe,EAAA,CAAG,EAAE,CAAA;AACxC,UAAA,IAAI,CAAC,EAAA,EAAI;AACT,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,EAAA,CAAG,KAAA,EAAM;AACT,UAAA,EAAA,CAAG,cAAA,GAAiB,EAAE,KAAA,EAAO,QAAA,EAAU,CAAA;AAAA,QACzC,CAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,EAAA,CAAG,KAAA;AAAA,UAAM,IAAA;AAAA,UAAG,EAAA,CAAG;AAAA;AAAA;AAAA,KAClB,EAAA,EAbO,EAAA,CAAG,IAcZ,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AA2BO,SAAS,cAAc,KAAA,EAAiD;AAC7E,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAO,EAAA,GAAK,IAAA,EAAM,OAAO,IAAA,EAAM,QAAA,GAAW,KAAA,EAAO,UAAA,EAAY,KAAK,EAAC,EAAG,QAAQ,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAClH,EAAA,MAAM,CAAA,GAAI,aAAA,CAAc,MAAA,EAAQ,QAAQ,CAAA;AACxC,EAAA,MAAM,MAAA,GAAS,IAAA,GAAO,CAAA,EAAG,EAAE,CAAA,KAAA,CAAA,GAAU,MAAA;AACrC,EAAA,MAAM,OAAA,GAAU,GAAG,EAAE,CAAA,MAAA,CAAA;AACrB,EAAA,MAAM,WAAA,GAAc,CAAC,MAAA,EAAQ,KAAA,GAAQ,OAAA,GAAU,MAAS,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AACvF,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,EAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAU,CAAC,QAAA;AAAA,IACX,cAAA,EAAgB,QAAQ,IAAA,GAAO,MAAA;AAAA,IAC/B,kBAAA,EAAoB,WAAA;AAAA,IACpB,WAAW,EAAA,CAAG,KAAA;AAAA,IACd,uBAAA,EAAyB;AAAA,GAC3B;AACA,EAAA,uBACEA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,IAAA,EAAM,iBAAa,IAAA,EAAC,cAAA,EAAc,KAAA,GAAQ,EAAA,GAAK,MAAA,EAChE,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,WAAM,OAAA,EAAS,EAAA,EAAI,WAAW,EAAA,CAAG,KAAA,EAAO,iBAAe,KAAA,EACrD,QAAA,EAAA;AAAA,MAAA,KAAA;AAAA,MACA,2BACCA,eAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,QAAA,EAAU,0BAAsB,IAAA,EACjD,QAAA,EAAA;AAAA,QAAA,GAAA;AAAA,QACA,CAAA,CAAE;AAAA,OAAA,EACL,CAAA,GACE;AAAA,KAAA,EACN,CAAA;AAAA,IACC,IAAA,mBACCC,cAAA,CAAC,GAAA,EAAA,EAAE,EAAA,EAAI,MAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,IAAA,EAAM,oBAAA,EAAkB,IAAA,EAClD,QAAA,EAAA,IAAA,EACH,CAAA,GACE,IAAA;AAAA,IACH,IAAA,CAAK,EAAA,KAAO,QAAA,GAAA,CACV,MAAM;AACL,MAAA,MAAM,EAAE,EAAA,EAAI,GAAA,EAAK,QAAA,EAAU,GAAG,QAAO,GAAI,IAAA;AACzC,MAAA,sCACG,QAAA,EAAA,EAAQ,GAAG,MAAA,EAAS,GAAG,QACrB,QAAA,EACH,CAAA;AAAA,IAEJ,CAAA,OAEC,MAAM;AACL,MAAA,MAAM,EAAE,EAAA,EAAI,GAAA,EAAK,GAAG,OAAM,GAAI,IAAA;AAC9B,MAAA,uBAAOA,cAAA,CAAC,OAAA,EAAA,EAAO,GAAG,KAAA,EAAQ,GAAG,MAAA,EAAQ,CAAA;AAAA,IACvC,CAAA,GAAG;AAAA,IAGJ,KAAA,mBACCA,cAAA,CAAC,GAAA,EAAA,EAAE,EAAA,EAAI,OAAA,EAAS,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,qBAAA,EAAmB,IAAA,EACrD,QAAA,EAAA,KAAA,EACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;ACnVA,IAAMC,GAAAA,GAA4B;AAAA,EAChC,KAAA,EAAO,QAAA;AAAA,EACP,KAAA,EAAO,aAAA;AAAA,EACP,UAAA,EAAY,QAAA;AAAA,EACZ,SAAA,EAAW,WAAA;AAAA,EACX,GAAA,EAAK,kBAAA;AAAA,EACL,QAAA,EAAU,QAAA;AAAA,EACV,IAAA,EAAM,oBAAA;AAAA,EACN,YAAA,EAAc,SAAA;AAAA,EACd,QAAA,EAAU,mBAAA;AAAA,EACV,QAAA,EAAU,mCAAA;AAAA,EACV,SAAA,EAAW,6BAAA;AAAA,EACX,mBAAA,EAAqB,iBAAA;AAAA,EACrB,YAAA,EAAc,uCAAA;AAAA,EACd,aAAA,EAAe,gDAAA;AAAA,EACf,SAAA,EAAW,0DAAA;AAAA,EACX,SAAA,EAAW,0DAAA;AAAA,EACX,YAAA,EAAc;AAChB,CAAA;AAEA,IAAMC,GAAAA,GAA4B;AAAA,EAChC,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,OAAA;AAAA,EACP,UAAA,EAAY,YAAA;AAAA,EACZ,SAAA,EAAW,WAAA;AAAA,EACX,GAAA,EAAK,aAAA;AAAA,EACL,QAAA,EAAU,OAAA;AAAA,EACV,IAAA,EAAM,MAAA;AAAA,EACN,YAAA,EAAc,cAAA;AAAA,EACd,QAAA,EAAU,mBAAA;AAAA,EACV,QAAA,EAAU,kBAAA;AAAA,EACV,SAAA,EAAW,gBAAA;AAAA,EACX,mBAAA,EAAqB,mBAAA;AAAA,EACrB,YAAA,EAAc,2BAAA;AAAA,EACd,aAAA,EAAe,qCAAA;AAAA,EACf,SAAA,EAAW,6CAAA;AAAA,EACX,SAAA,EAAW,uDAAA;AAAA,EACX,YAAA,EAAc;AAChB,CAAA;AAEO,SAAS,qBAAA,CAAsB,QAAwB,SAAA,EAA0E;AACtI,EAAA,MAAM,IAAA,GAAA,CAAQ,UAAU,OAAA,EAAS,WAAA,GAAc,UAAA,CAAW,IAAI,IAAIA,GAAAA,GAAKD,GAAAA;AACvE,EAAA,OAAO,YAAY,EAAE,GAAG,IAAA,EAAM,GAAG,WAAU,GAAI,IAAA;AACjD;AAkBA,IAAM,IAAA,GAAO,IAAI,CAAA,KAAiC,CAAA,CAAE,OAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AACjF,IAAM,KAAA,GAAQ,CAAC,EAAA,EAA2B,IAAA,MAAoD,EAAE,GAAG,EAAA,EAAI,IAAA,EAAM,IAAA,CAAK,EAAA,CAAG,IAAA,EAAM,EAAA,CAAG,IAAI,CAAC,CAAA,EAAE,CAAA;AAa9H,SAAS,aAAA,CAAc,EAAE,QAAA,GAAW,IAAI,KAAA,GAAQ,EAAC,EAAG,MAAA,GAAS,EAAC,EAAG,OAAO,KAAA,GAAQ,IAAA,EAAM,QAAQ,QAAA,EAAU,aAAA,EAAe,IAAI,UAAA,EAAY,EAAA,GAAK,EAAC,EAAE,EAAuB;AAC3K,EAAA,MAAM,CAAA,GAAI,qBAAA,CAAsB,MAAA,EAAQ,QAAQ,CAAA;AAChD,EAAA,MAAM,CAAA,GAAI,CAAC,CAAA,KAAuB,KAAA,CAAM,CAAC,CAAA,IAAK,CAAA;AAC9C,EAAA,MAAM,SAAS,EAAE,GAAI,MAAA,GAAS,EAAE,QAAO,GAAI,EAAC,EAAI,GAAI,KAAK,EAAE,QAAA,EAAU,EAAA,EAAG,GAAI,EAAC,EAAG;AAChF,EAAA,uBACEF,gBAAAI,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAH,eAAC,aAAA,EAAA,EAAe,GAAG,QAAQ,IAAA,EAAM,CAAA,CAAE,OAAO,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,KAAA,EAAO,MAAK,OAAA,EAAQ,YAAA,EAAa,SAAQ,SAAA,EAAU,OAAA,EAAQ,gBAAe,MAAA,EAAO,UAAA,EAAY,KAAA,EAAO,YAAA,EAAc,SAAS,KAAA,IAAS,EAAA,EAAI,OAAO,MAAA,CAAO,CAAA,CAAE,OAAO,CAAC,CAAA,IAAK,MAAM,IAAA,EAAM,KAAA,GAAQ,EAAE,SAAA,GAAY,MAAA,EAAW,YAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EAAG,CAAA;AAAA,oBACvSA,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,QAAQ,IAAA,EAAM,CAAA,CAAE,OAAO,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,KAAA,EAAO,IAAA,EAAK,OAAM,YAAA,EAAa,KAAA,EAAM,SAAA,EAAU,KAAA,EAAM,YAAA,EAAc,QAAA,CAAS,KAAA,IAAS,EAAA,EAAI,OAAO,MAAA,CAAO,CAAA,CAAE,OAAO,CAAC,CAAA,IAAK,IAAA,EAAM,IAAA,EAAM,KAAA,GAAQ,EAAE,SAAA,GAAY,MAAA,EAAW,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EAAI,GAAI,OAAO,OAAA,GAAU,EAAE,OAAA,EAAS,KAAA,CAAM,OAAA,EAAQ,GAAI,EAAC,EAAK,GAAI,KAAA,EAAO,KAAA,GAAQ,EAAE,KAAA,EAAO,KAAA,CAAM,KAAA,EAAM,GAAI,IAAM,GAAI,KAAA,EAAO,SAAA,GAAY,EAAE,SAAA,EAAW,KAAA,CAAM,SAAA,EAAU,GAAI,EAAC,EAAI,CAAA;AAAA,oBAChaA,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,YAAY,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,UAAA,EAAY,YAAA,EAAa,YAAA,EAAa,YAAA,EAAc,QAAA,CAAS,UAAA,IAAc,EAAA,EAAI,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,YAAY,CAAC,CAAA,IAAK,IAAA,EAAM,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EAAG,CAAA;AAAA,oBACjNA,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,WAAW,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,SAAA,EAAW,YAAA,EAAa,aAAA,EAAc,YAAA,EAAc,QAAA,CAAS,SAAA,IAAa,EAAA,EAAI,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,WAAW,CAAC,CAAA,IAAK,IAAA,EAAM,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EAAG;AAAA,GAAA,EAChN,CAAA;AAEJ;AAkCO,SAAS,cAAc,KAAA,EAA2B;AACvD,EAAA,MAAM,EAAE,UAAU,KAAA,GAAQ,IAAI,MAAA,GAAS,IAAI,WAAA,EAAa,SAAA,EAAW,YAAY,gBAAA,EAAkB,MAAA,EAAQ,UAAU,aAAA,EAAe,EAAA,EAAI,YAAY,EAAA,GAAK,EAAC,EAAG,QAAA,EAAS,GAAI,KAAA;AACxK,EAAA,MAAM,gBAAA,GAAmB,MAAM,YAAA,IAAgB,IAAA;AAC/C,EAAA,MAAM,aAAA,GAAgB,MAAM,SAAA,IAAa,IAAA;AACzC,EAAA,MAAM,CAAA,GAAI,qBAAA,CAAsB,MAAA,EAAQ,QAAQ,CAAA;AAChD,EAAA,MAAM,CAAA,GAAI,CAAC,CAAA,KAAuB,KAAA,CAAM,CAAC,CAAA,IAAK,CAAA;AAC9C,EAAA,MAAM,SAAS,EAAE,GAAI,MAAA,GAAS,EAAE,QAAO,GAAI,EAAC,EAAI,GAAI,KAAK,EAAE,QAAA,EAAU,EAAA,EAAG,GAAI,EAAC,EAAG;AAChF,EAAA,MAAM,SAASI,WAAA,EAAM;AACrB,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIP,cAAAA,CAA4B,EAAE,CAAA;AAC9D,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,eAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,OAAA,GAAUD,aAAsB,IAAI,CAAA;AAC1C,EAAA,MAAM,MAAA,GAASA,aAAuB,IAAI,CAAA;AAC1C,EAAA,MAAM,SAAA,GAAYA,aAAO,gBAAgB,CAAA;AACzC,EAAA,SAAA,CAAU,OAAA,GAAU,gBAAA;AAEpB,EAAA,MAAM,SAAA,GAAY,CAAC,GAAA,KAAgB;AACjC,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,GAAA,IAAO,GAAA,KAAQ,QAAQ,OAAA,EAAS;AAChD,IAAA,IAAI,UAAA,EAAY,OAAA,IAAW,CAAC,IAAI,MAAA,CAAO,CAAA,IAAA,EAAO,UAAA,CAAW,OAAO,CAAA,EAAA,CAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,EAAG;AACjF,IAAA,OAAA,CAAQ,OAAA,GAAU,GAAA;AAClB,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,OAAA,EAAS,OAAA,CAAQ,MAAM,CAAA;AAC3C,IAAA,KAAK,MAAA,CAAO,GAAG,CAAA,CAAE,IAAA;AAAA,MACf,CAAC,IAAA,KAAS;AACR,QAAA,IAAI,CAAC,IAAA,IAAQ,OAAA,CAAQ,OAAA,KAAY,GAAA,EAAK;AACtC,QAAA,MAAMS,KAAAA,GAAO,CAAC,IAAA,EAAc,KAAA,KAAqC;AAC/D,UAAA,MAAM,EAAA,GAAK,IAAA,EAAM,QAAA,CAAS,SAAA,CAAU,IAAI,CAAA;AACxC,UAAA,IAAI,CAAC,MAAM,CAAC,KAAA,IAAU,YAAY,EAAA,IAAM,EAAE,EAAA,YAAc,iBAAA,CAAA,EAAqB,OAAO,KAAA;AAEpF,UAAA,IAAI,GAAG,KAAA,IAAS,EAAA,CAAG,OAAA,CAAQ,YAAA,KAAiB,KAAK,OAAO,KAAA;AACxD,UAAA,IAAI,EAAA,YAAc,iBAAA,IAAqB,CAAC,CAAC,GAAG,EAAA,CAAG,OAAO,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU,KAAK,GAAG,OAAO,KAAA;AAC/F,UAAA,EAAA,CAAG,KAAA,GAAQ,KAAA;AACX,UAAA,EAAA,CAAG,QAAQ,YAAA,GAAe,GAAA;AAC1B,UAAA,EAAA,CAAG,aAAA,CAAc,IAAI,KAAA,CAAM,OAAA,EAAS,EAAE,OAAA,EAAS,IAAA,EAAM,CAAC,CAAA;AACtD,UAAA,OAAO,IAAA;AAAA,QACT,CAAA;AACA,QAAA,MAAM,IAAIA,KAAAA,CAAK,CAAA,CAAE,UAAU,CAAA,EAAG,KAAK,QAAQ,CAAA;AAC3C,QAAA,MAAM,IAAIA,KAAAA,CAAK,CAAA,CAAE,MAAM,CAAA,EAAG,KAAK,IAAI,CAAA;AACnC,QAAA,WAAA,CAAY,IAAA,CAAK,aAAA,IAAiB,EAAE,CAAA;AACpC,QAAA,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,MAAM;AAAA,MAEN;AAAA,KACF;AAAA,EACF,CAAA;AAEA,EAAAP,gBAAU,MAAM;AACd,IAAA,MAAM,MAAM,QAAA,EAAU,GAAA;AACtB,IAAA,IAAI,GAAA,YAAe,GAAG,CAAA;AAAA,EAExB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAa,YAAY,SAAA,KAAc,SAAA;AAC7C,EAAA,uBACEC,gBAAAI,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAH,cAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,MAAA,EAAQ,SAAA,EAAW,IAAA,CAAK,EAAA,CAAG,IAAI,CAAA,EAAG,aAAA,EAAW,IAAA,EACrD,QAAA,kBAAAA,cAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,MAAA;AAAA,QACJ,IAAA,EAAM,EAAE,KAAK,CAAA;AAAA,QACb,OAAO,CAAA,CAAE,GAAA;AAAA,QACT,YAAA,EAAa,aAAA;AAAA,QACb,SAAA,EAAW,YAAY,SAAA,IAAa,MAAA;AAAA,QACnC,GAAI,YAAY,OAAA,GAAU,EAAE,SAAS,UAAA,CAAW,OAAA,KAAY,EAAC;AAAA,QAC7D,GAAI,YAAY,SAAA,GAAY,EAAE,WAAW,UAAA,CAAW,SAAA,KAAc,EAAC;AAAA,QACnE,GAAI,YAAY,KAAA,GAAQ,EAAE,OAAO,UAAA,CAAW,KAAA,KAAU,EAAC;AAAA,QACvD,GAAI,UAAA,GAAa,EAAE,cAAA,EAAgB,MAAA,KAAW,EAAC;AAAA,QAChD,YAAA,EAAc,UAAU,GAAA,IAAO,EAAA;AAAA,QAC/B,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,KAAK,CAAC,CAAA,IAAK,IAAA;AAAA,QAC3B,YAAY,EAAE,GAAG,EAAA,EAAI,IAAA,EAAM,GAAG,IAAA,EAAK;AAAA,QACnC,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,UAAA,MAAM,CAAA,GAAI,CAAA,CAAE,aAAA,CAAc,KAAA,CAAM,IAAA,EAAK;AACrC,UAAA,IAAI,YAAY,SAAA,IAAa,CAAA,CAAE,WAAW,UAAA,CAAW,SAAA,YAAqB,CAAC,CAAA;AAAA,QAC7E,CAAA;AAAA,QACA,MAAA,EAAQ,CAAC,CAAA,KAAM,SAAA,CAAU,EAAE,aAAA,CAAc,KAAA,CAAM,MAAM;AAAA;AAAA,KACvD,EACF,CAAA;AAAA,IACC,SAAA,IAAa,SAAA,CAAU,MAAA,mBACtBD,gBAAC,aAAA,EAAA,EAAe,GAAG,MAAA,EAAQ,EAAA,EAAG,UAAS,IAAA,EAAM,CAAA,CAAE,UAAU,CAAA,EAAG,OAAO,CAAA,CAAE,QAAA,EAAU,YAAA,EAAa,gBAAA,EAAiB,YAAA,EAAc,QAAA,EAAU,QAAA,IAAY,EAAA,EAAI,OAAO,MAAA,CAAO,CAAA,CAAE,UAAU,CAAC,KAAK,IAAA,EAAM,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EACrN,QAAA,EAAA;AAAA,sBAAAC,eAAC,QAAA,EAAA,EAAO,KAAA,EAAM,IAAG,QAAA,EAAQ,IAAA,EACtB,YAAE,mBAAA,EACL,CAAA;AAAA,MACC,UAAU,GAAA,CAAI,CAAC,CAAA,qBACdA,eAAC,QAAA,EAAA,EAA8B,KAAA,EAAO,CAAA,CAAE,IAAA,EACrC,YAAE,IAAA,EAAA,EADQ,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,IAEzB,CACD;AAAA,KAAA,EACH,CAAA,mBAEAA,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,UAAU,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,UAAU,YAAA,EAAa,gBAAA,EAAiB,YAAA,EAAc,QAAA,EAAU,QAAA,IAAY,EAAA,EAAI,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,UAAU,CAAC,CAAA,IAAK,IAAA,EAAM,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EAAG,CAAA;AAAA,oBAEhNA,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,MAAM,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,IAAA,EAAM,YAAA,EAAa,gBAAA,EAAiB,YAAA,EAAc,QAAA,EAAU,IAAA,IAAQ,EAAA,EAAI,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,MAAM,CAAC,CAAA,IAAK,IAAA,EAAM,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EAAG,CAAA;AAAA,IAC7L,mCACCA,cAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,MAAA;AAAA,QACJ,IAAA,EAAM,EAAE,cAAc,CAAA;AAAA,QACtB,OAAO,CAAA,CAAE,YAAA;AAAA,QACT,YAAA,EAAa,gBAAA;AAAA,QACb,UAAU,gBAAA,KAAqB,UAAA;AAAA,QAC/B,YAAA,EAAc,UAAU,YAAA,IAAgB,EAAA;AAAA,QACxC,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,cAAc,CAAC,CAAA,IAAK,IAAA;AAAA,QACpC,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA;AAAA,QAC3B,GAAI,QAAA,CAAS,MAAA,GAAS,EAAE,IAAA,EAAM,MAAA,KAAW;AAAC;AAAA,KAC7C,GACE,IAAA;AAAA,IACH,SAAS,MAAA,mBACRA,eAAC,UAAA,EAAA,EAAS,EAAA,EAAI,QACX,QAAA,EAAA,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,qBACbA,eAAC,QAAA,EAAA,EAAe,KAAA,EAAO,KAAV,CAAa,CAC3B,GACH,CAAA,GACE,IAAA;AAAA,oBAEJA,cAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,QAAA,EAAS,aAAU,QAAA,EAAS,oBAAA,EAAkB,IAAA,EAAC,KAAA,EAAO,SAAS,MAAA,GAAY,EAAE,UAAU,UAAA,EAAY,KAAA,EAAO,GAAG,MAAA,EAAQ,CAAA,EAAG,QAAA,EAAU,QAAA,EAAU,MAAM,eAAA,EAAiB,UAAA,EAAY,QAAA,EAAS,EAAG,WAAW,MAAA,GAAS,IAAA,CAAK,EAAA,CAAG,IAAA,EAAM,GAAG,IAAI,CAAA,GAAI,QAC7O,QAAA,EAAA,MAAA,GAAS,CAAA,CAAE,eAAe,EAAA,EAC7B,CAAA;AAAA,oBACAA,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,QAAQ,IAAA,EAAM,CAAA,CAAE,UAAU,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,QAAA,EAAU,YAAA,EAAa,iBAAgB,YAAA,EAAc,QAAA,EAAU,QAAA,IAAY,EAAA,EAAI,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,UAAU,CAAC,CAAA,IAAK,IAAA,EAAM,IAAA,EAAM,CAAA,CAAE,YAAA,EAAc,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EAAG,CAAA;AAAA,oBACnOA,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,UAAU,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,QAAA,EAAU,cAAa,eAAA,EAAgB,QAAA,EAAQ,IAAA,EAAC,YAAA,EAAc,QAAA,EAAU,QAAA,IAAY,EAAA,EAAI,KAAA,EAAO,OAAO,CAAA,CAAE,UAAU,CAAC,CAAA,IAAK,IAAA,EAAM,UAAA,EAAY,KAAA,CAAM,EAAA,EAAI,MAAM,CAAA,EAAG,CAAA;AAAA,IACrN,gCACCA,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,QAAQ,IAAA,EAAM,CAAA,CAAE,WAAW,CAAA,EAAG,OAAO,CAAA,CAAE,SAAA,EAAW,QAAA,EAAQ,IAAA,EAAC,cAAc,QAAA,EAAU,SAAA,IAAa,EAAA,EAAI,KAAA,EAAO,OAAO,CAAA,CAAE,WAAW,CAAC,CAAA,IAAK,MAAM,IAAA,EAAM,CAAA,CAAE,aAAA,EAAe,UAAA,EAAY,MAAM,EAAA,EAAI,MAAM,CAAA,EAAG,SAAA,EAAW,KAAK,CAAA,GAClO,IAAA;AAAA,oBACJA,eAAC,OAAA,EAAA,EAAM,IAAA,EAAK,UAAS,IAAA,EAAK,cAAA,EAAe,OAAO,WAAA,EAAa,CAAA;AAAA,IAC5D;AAAA,GAAA,EACH,CAAA;AAEJ;ACjQA,IAAM,iBAAA,GAAoBM,oBAA6C,IAAI,CAAA;AA4CpE,SAAS,qBAAA,GAAuD;AACrE,EAAA,OAAOC,iBAAW,iBAAiB,CAAA;AACrC;;;ACxDO,SAAS,kBAAkB,MAAA,EAAgC;AAChE,EAAA,MAAM,KAAK,qBAAA,EAAsB;AACjC,EAAA,OAAO,MAAA,IAAU,IAAI,MAAA,IAAU,OAAA;AACjC;ACuBA,IAAMN,GAAAA,GAA2B;AAAA,EAC/B,KAAA,EAAO,WAAA;AAAA,EACP,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU,WAAA;AAAA,EACV,QAAA,EAAU,UAAA;AAAA,EACV,eAAA,EAAiB,sBAAA;AAAA,EACjB,QAAA,EAAU,oBAAA;AAAA,EACV,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,WAAA;AAAA,EACP,aAAA,EAAe,+BAAA;AAAA,EACf,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU,eAAA;AAAA,EACV,IAAA,EAAM,wBAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEA,IAAMC,GAAAA,GAA2B;AAAA,EAC/B,KAAA,EAAO,YAAA;AAAA,EACP,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU,UAAA;AAAA,EACV,eAAA,EAAiB,wBAAA;AAAA,EACjB,QAAA,EAAU,gBAAA;AAAA,EACV,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA,EACP,aAAA,EAAe,4BAAA;AAAA,EACf,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU,eAAA;AAAA,EACV,IAAA,EAAM,oBAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEO,SAAS,oBAAA,CAAqB,QAAwB,SAAA,EAAwE;AACnI,EAAA,MAAM,IAAA,GAAA,CAAQ,UAAU,OAAA,EAAS,WAAA,GAAc,UAAA,CAAW,IAAI,IAAIA,GAAAA,GAAKD,GAAAA;AACvE,EAAA,OAAO,YAAY,EAAE,GAAG,IAAA,EAAM,GAAG,WAAU,GAAI,IAAA;AACjD;AA0BA,IAAM,MAAA,GAAS,CAAC,CAAA,KAAgC,CAAC,CAAC,CAAA,IAAK,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,KAAM,CAAA;AAC5E,IAAM,QAAA,GAAW,CAAC,CAAA,KAA4C,CAAC,CAAC,CAAA,IAAK,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,CAAA;AAGjF,SAAS,aAAa,KAAA,EAA0B;AACrD,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,QAAA,GAAW,OAAO,eAAA,EAAiB,YAAA,EAAc,KAAA,EAAO,YAAA,GAAe,GAAG,UAAA,EAAY,EAAA,GAAK,EAAC,EAAG,UAAS,GAAI,KAAA;AACjI,EAAA,MAAM,MAAA,GAAS,iBAAA,CAAkB,KAAA,CAAM,MAAM,CAAA;AAC7C,EAAA,MAAM,CAAA,GAAI,oBAAA,CAAqB,MAAA,EAAQ,KAAA,CAAM,QAAQ,CAAA;AACrD,EAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAc,YAAA,GAAe,aAAa,CAAC,CAAA,GAAIO,sBAAA,CAAY,CAAA,EAAG,MAAM,CAAA;AACnF,EAAA,MAAM,CAAA,GAAI,YAAA,KAAiB,CAAA,GAAI,IAAA,GAAO,IAAA;AACtC,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,SAAA,EAAW,MAAA,CAAO,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,MAAM,CAAC,CAAA,IAAK,EAAC;AACxE,EAAA,uBACET,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,IAAA,EAAM,mBAAe,IAAA,EACrC,QAAA,EAAA;AAAA,IAAA,KAAA,KAAU,KAAA,GAAQ,IAAA,mBACjBC,cAAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,uBAAA,EAAqB,IAAA,EAC1C,QAAA,EAAA,KAAA,IAAS,CAAA,CAAE,KAAA,EACd,CAAA;AAAA,oBAEFA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,uBAAA,EAAqB,IAAA,EAC3C,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM;AAChB,MAAA,MAAM,OAAA,GAAU,CAAA,CAAE,WAAA,CAAY,KAAA,IAAS,CAAC,qBAAA,CAAsB,IAAA,CAAK,CAAA,CAAE,WAAA,CAAY,KAAK,CAAA,GAAI,CAAA,CAAE,YAAY,KAAA,GAAQ,IAAA;AAChH,MAAA,uBACED,eAAAA,CAAC,IAAA,EAAA,EAAc,WAAW,EAAA,CAAG,IAAA,EAAM,wBAAoB,IAAA,EACpD,QAAA,EAAA;AAAA,QAAA,eAAA,mBACCA,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,KAAA,EAAO,yBAAqB,IAAA,EAC7C,QAAA,EAAA;AAAA,UAAA,eAAA,CAAgB,CAAC,CAAA;AAAA,UACjB,CAAA,CAAE,QAAA,GAAW,CAAA,mBACZC,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,GAAA,EAAK,uBAAmB,IAAA,EAAC,aAAA,EAAY,MAAA,EACtD,QAAA,EAAA,CAAA,CAAE,UACL,CAAA,GACE;AAAA,SAAA,EACN,CAAA,GACE,IAAA;AAAA,wBACJD,eAAAA,CAAC,MAAA,EAAA,EAAK,2BAAA,EAAyB,IAAA,EAC7B,QAAA,EAAA;AAAA,0BAAAA,gBAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,8BAA0B,IAAA,EACtD,QAAA,EAAA;AAAA,YAAA,CAAC,mBAAmB,CAAA,CAAE,QAAA,GAAW,IAAI,CAAA,EAAG,CAAA,CAAE,QAAQ,CAAA,MAAA,CAAA,GAAQ,IAAA;AAAA,YAC1D,CAAA,CAAE,YAAY,OAAA,CAAQ;AAAA,WAAA,EACzB,CAAA;AAAA,UACC,OAAA,mBACCC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,OAAA,EAAS,yBAAA,EAAuB,IAAA,EACjD,QAAA,EAAA,OAAA,EACH,CAAA,GACE,IAAA;AAAA,UACH,eAAA,IAAmB,CAAA,CAAE,QAAA,GAAW,CAAA,mBAC/BA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,KAAA,EAAO,GAAG,MAAA,EAAQ,CAAA,EAAG,QAAA,EAAU,QAAA,EAAU,IAAA,EAAM,eAAA,EAAiB,UAAA,EAAY,QAAA,IAAa,QAAA,EAAA,CAAA,CAAE,QAAA,CAAS,OAAA,CAAQ,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,QAAQ,CAAC,GAAE,CAAA,GAC1K;AAAA,SAAA,EACN,CAAA;AAAA,wBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,4BAAA,EAA0B,IAAA,EACtD,QAAA,EAAA,KAAA,CAAM,CAAA,CAAE,IAAA,CAAK,KAAK,CAAA,EACrB;AAAA,OAAA,EAAA,EA3BO,EAAE,EA4BX,CAAA;AAAA,IAEJ,CAAC,CAAA,EACH,CAAA;AAAA,IACC,QAAA;AAAA,oBACDD,eAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,QAAQ,wBAAA,EAAsB,IAAA,EAAC,WAAA,EAAW,QAAA,IAAY,MAAA,EACtE,QAAA,EAAA;AAAA,sBAAAA,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,GAAA,EAAK,uBAAoB,UAAA,EAC1C,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,CAAA,CAAE,QAAA,EAAS,CAAA;AAAA,wBAChBA,cAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,QAAQ,CAAA,EAAE;AAAA,OAAA,EAC5B,CAAA;AAAA,MACC,SAAA,CAAU,MAAA,GACP,SAAA,CAAU,GAAA,CAAI,CAAC,sBACbD,eAAAA,CAAC,KAAA,EAAA,EAAe,SAAA,EAAW,EAAA,CAAG,GAAA,GAAM,GAAG,EAAA,CAAG,GAAG,CAAA,CAAA,EAAI,EAAA,CAAG,QAAA,IAAY,EAAE,CAAA,CAAA,CAAG,IAAA,EAAK,GAAI,EAAA,CAAG,QAAA,EAAU,qBAAA,EAAoB,UAAA,EAC7G,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,CAAA,CAAE,IAAA,GAAO,GAAG,CAAA,CAAE,QAAQ,CAAA,EAAA,EAAK,CAAA,CAAE,IAAI,CAAA,CAAA,CAAA,GAAM,CAAA,CAAE,KAAA,IAAS,EAAE,QAAA,EAAS,CAAA;AAAA,wBAClED,gBAAC,IAAA,EAAA,EAAG,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UAAE,KAAA,CAAM,EAAE,MAAM;AAAA,SAAA,EAAE;AAAA,OAAA,EAAA,EAFd,CAAA,CAAE,EAGZ,CACD,CAAA,GACD,QAAA,CAAS,IAAA,CAAK,QAAQ,CAAA,mBACpBA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,GAAA,GAAM,CAAA,EAAG,EAAA,CAAG,GAAG,CAAA,CAAA,EAAI,EAAA,CAAG,QAAA,IAAY,EAAE,CAAA,CAAA,CAAG,IAAA,EAAK,GAAI,EAAA,CAAG,QAAA,EAAU,qBAAA,EAAoB,UAAA,EAClG,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,CAAA,CAAE,QAAA,EAAS,CAAA;AAAA,wBAChBD,gBAAC,IAAA,EAAA,EAAG,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UAAE,KAAA,CAAM,KAAK,QAAQ;AAAA,SAAA,EAAE;AAAA,OAAA,EAC7B,CAAA,GACE,IAAA;AAAA,sBACRA,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,GAAA,EAAK,uBAAoB,UAAA,EAC1C,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,CAAA,CAAE,QAAA,EAAS,CAAA;AAAA,wBAChBA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,YAAY,CAAC,IAAA,CAAK,QAAA,GAAW,EAAA,CAAG,QAAQ,MAAA,EACpD,QAAA,EAAA,QAAA,GAAW,CAAA,CAAE,QAAA,GAAW,CAAC,IAAA,CAAK,QAAA,GAAW,CAAA,CAAE,eAAA,GAAkB,OAAO,IAAA,CAAK,QAAQ,CAAA,mBAAIA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,IAAA,EAAO,YAAE,IAAA,EAAK,CAAA,GAAU,KAAA,CAAM,IAAA,CAAK,QAAQ,CAAA,EACvJ;AAAA,OAAA,EACF,CAAA;AAAA,MACC,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA,IAAK,CAAC,IAAA,CAAK,YAAA,mBAC3BD,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,GAAA,EAAK,uBAAoB,KAAA,EAC1C,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM,CAAA;AAAA,wBACbA,cAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA,EAAE;AAAA,OAAA,EACvB,CAAA,GACE,IAAA;AAAA,sBACJD,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,KAAA,EAAO,uBAAoB,OAAA,EAC5C,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM,CAAA;AAAA,wBACbA,cAAAA,CAAC,IAAA,EAAA,EAAG,WAAA,EAAU,QAAA,EAAS,eAAA,EAAe,QAAA,IAAY,MAAA,EAC/C,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,KAAK,CAAA,EACnB;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IACC,SAAS,IAAA,CAAK,GAAG,KAAK,IAAA,CAAK,YAAA,mBAC1BA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,EAAA,CAAG,MAAM,0BAAA,EAAwB,IAAA,EAC5C,YAAE,aAAA,CAAc,KAAA,CAAM,UAAU,CAAA,CAAE,OAAA,CAAQ,CAAC,IAAA,EAAM,MAAO,CAAA,KAAM,CAAA,GAAI,CAAC,IAAI,CAAA,GAAI,iBAACA,cAAAA,CAAC,UAAc,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,GAAI,CAAA,EAAA,EAAnB,CAAqB,GAAS,IAAI,CAAE,GAC9H,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;AAsBO,SAAS,uBAAuB,EAAE,KAAA,EAAO,QAAA,EAAU,YAAA,EAAc,QAAQ,GAAA,EAAK,QAAA,EAAU,WAAA,GAAc,KAAA,EAAO,WAAW,UAAA,EAAY,EAAA,GAAK,EAAC,EAAG,UAAS,EAAgC;AAC3L,EAAA,MAAM,MAAA,GAAS,kBAAkB,GAAG,CAAA;AACpC,EAAA,MAAM,CAAA,GAAI,oBAAA,CAAqB,MAAA,EAAQ,QAAQ,CAAA;AAC/C,EAAA,uBACED,eAAAA,CAAC,SAAA,EAAA,EAAQ,SAAA,EAAsB,4BAAA,EAA0B,IAAA,EAAE,GAAI,WAAA,GAAc,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,EAAC,EAC7F,QAAA,EAAA;AAAA,oBAAAA,gBAAC,SAAA,EAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,OAAA,EAAS,0BAAsB,IAAA,EACpD,QAAA,EAAA;AAAA,sBAAAA,gBAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,gCAA4B,IAAA,EACrD,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,sBAAA,EAAoB,IAAA,EAAE,YAAE,IAAA,EAAK,CAAA;AAAA,wBACnCA,cAAAA,CAAC,MAAA,EAAA,EAAK,sBAAA,EAAoB,IAAA,EAAE,YAAE,IAAA,EAAK;AAAA,OAAA,EACrC,CAAA;AAAA,sBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,KAAA,EAAO,gCAA4B,IAAA,EAAC,eAAA,EAAe,QAAA,IAAY,MAAA,EAChF,yBAAe,YAAA,CAAa,KAAK,IAAIQ,sBAAA,CAAY,KAAA,EAAO,MAAM,CAAA,EACjE;AAAA,KAAA,EACF,CAAA;AAAA,oBACAR,eAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,KAAA,EAAO,uBAAA,EAAqB,MAC5C,QAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;AClOO,IAAM,KAAA,GAAmC;AAAA,EAC9C,WAAW,EAAE,GAAA,EAAK,sxCAAsxC,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC/zC,aAAa,EAAE,GAAA,EAAK,g2HAAg2H,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC34H,QAAQ,EAAE,GAAA,EAAK,wsGAAwsG,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC9uG,YAAY,EAAE,GAAA,EAAK,stCAAstC,EAAA,EAAI,KAAA,EAAO,MAAM,IAAA,EAAK;AAAA,EAC/vC,WAAW,EAAE,GAAA,EAAK,ikEAAikE,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC1mE,QAAQ,EAAE,GAAA,EAAK,gwDAAgwD,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACtyD,YAAY,EAAE,GAAA,EAAK,46GAA46G,EAAA,EAAI,MAAA,EAAQ,MAAM,KAAA,EAAM;AAAA,EACv9G,WAAW,EAAE,GAAA,EAAK,8lCAA8lC,EAAA,EAAI,CAAA,EAAG,MAAM,KAAA,EAAM;AAAA,EACnoC,eAAe,EAAE,GAAA,EAAK,gjIAAgjI,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC7lI,QAAQ,EAAE,GAAA,EAAK,koDAAkoD,EAAA,EAAI,CAAA,EAAG,MAAM,KAAA,EAAM;AAAA,EACpqD,OAAO,EAAE,GAAA,EAAK,g8BAAg8B,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACr+B,YAAY,EAAE,GAAA,EAAK,+nIAA+nI,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACzqI,gBAAgB,EAAE,GAAA,EAAK,06VAA06V,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACx9V,SAAS,EAAE,GAAA,EAAK,o2EAAo2E,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC34E,QAAQ,EAAE,GAAA,EAAK,wpCAAwpC,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC9rC,SAAS,EAAE,GAAA,EAAK,o5IAAo5I,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC37I,aAAa,EAAE,GAAA,EAAK,s1IAAs1I,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACj4I,cAAc,EAAE,GAAA,EAAK,wUAAwU,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACpX,eAAe,EAAE,GAAA,EAAK,8mJAA8mJ,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC3pJ,QAAQ,EAAE,GAAA,EAAK,y6DAAy6D,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAC/8D,iBAAiB,EAAE,GAAA,EAAK,i/GAAi/G,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EAChiH,UAAU,EAAE,GAAA,EAAK,q+DAAq+D,EAAA,EAAI,IAAA,EAAM,MAAM,IAAA,EAAK;AAAA,EAC3gE,aAAa,EAAE,GAAA,EAAK,4+KAA4+K,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACvhL,cAAc,EAAE,GAAA,EAAK,4yEAA4yE,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACx1E,WAAW,EAAE,GAAA,EAAK,+mGAA+mG,EAAA,EAAI,IAAA,EAAM,MAAM,KAAA,EAAM;AAAA,EACvpG,OAAO,EAAE,GAAA,EAAK,k/KAAk/K,EAAA,EAAI,CAAA,EAAG,MAAM,KAAA,EAAM;AAAA,EACnhL,OAAO,EAAE,GAAA,EAAK,22uBAA22uB,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACh5uB,QAAQ,EAAE,GAAA,EAAK,mrHAAmrH,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACztH,QAAQ,EAAE,GAAA,EAAK,k1BAAk1B,EAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACx3B,WAAW,EAAE,GAAA,EAAK,g1EAAg1E,EAAA,EAAI,IAAA,EAAM,MAAM,KAAA;AACp3E,CAAA;;;ACHA,IAAM,CAAA,GAAI,CAAC,GAAA,EAAa,IAAA,EAAc,MAAiB,EAAA,EAAY,EAAA,EAAY,MAAe,KAAA,MAAmC;AAAA,EAC/H,GAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAI,IAAA,GAAO,EAAE,IAAA,KAAS,EAAC;AAAA,EACvB,GAAI,KAAA,GAAQ,EAAE,KAAA,KAAU;AAC1B,CAAA,CAAA;AAEA,IAAM,IAAA,GAAgB;AAAA;AAAA,EAEpB,CAAA,CAAE,OAAA,EAAS,OAAA,EAAS,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACnD,CAAA,CAAE,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EAC/C,CAAA,CAAE,UAAA,EAAY,UAAA,EAAY,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACzD,EAAE,eAAA,EAAiB,eAAA,EAAiB,SAAA,EAAW,SAAA,EAAW,WAAW,iBAAiB,CAAA;AAAA,EACtF,CAAA,CAAE,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EAC/C,CAAA,CAAE,SAAA,EAAW,SAAA,EAAW,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACvD,EAAE,WAAA,EAAa,YAAA,EAAc,SAAA,EAAW,SAAA,EAAW,WAAW,IAAI,CAAA;AAAA,EAClE,EAAE,WAAA,EAAa,aAAA,EAAe,SAAA,EAAW,SAAA,EAAW,WAAW,KAAK,CAAA;AAAA,EACpE,CAAA,CAAE,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACrD,CAAA,CAAE,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACjD,EAAE,aAAA,EAAe,aAAA,EAAe,SAAA,EAAW,SAAA,EAAW,WAAW,IAAI,CAAA;AAAA,EACrE,CAAA,CAAE,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACrD,CAAA,CAAE,OAAA,EAAS,OAAA,EAAS,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACnD,CAAA,CAAE,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACrD,EAAE,iBAAA,EAAmB,sBAAA,EAAqB,SAAA,EAAW,SAAA,EAAW,WAAW,oBAAiB,CAAA;AAAA,EAC5F,CAAA,CAAE,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,WAAW,SAAS,CAAA;AAAA,EACjD,EAAE,YAAA,EAAc,aAAA,EAAe,SAAA,EAAW,SAAA,EAAW,WAAW,KAAK,CAAA;AAAA;AAAA,EAErE,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,WAAW,MAAM,CAAA;AAAA,EACtD,EAAE,YAAA,EAAc,YAAA,EAAc,QAAQ,SAAA,EAAW,SAAA,EAAW,MAAM,YAAY,CAAA;AAAA,EAC9E,EAAE,MAAA,EAAQ,kBAAA,EAAoB,MAAA,EAAQ,SAAA,EAAW,WAAW,MAAM,CAAA;AAAA,EAClE,CAAA,CAAE,QAAA,EAAU,QAAA,EAAU,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA;AAAA,EAElD,EAAE,aAAA,EAAe,cAAA,EAAgB,QAAA,EAAU,SAAA,EAAW,WAAW,eAAe,CAAA;AAAA,EAChF,CAAA,CAAE,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,WAAW,SAAS,CAAA;AAAA,EACpD,CAAA,CAAE,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,WAAW,SAAS,CAAA;AAAA,EAChD,EAAE,UAAA,EAAY,WAAA,EAAa,QAAA,EAAU,SAAA,EAAW,WAAW,KAAK,CAAA;AAAA,EAChE,EAAE,WAAA,EAAa,YAAA,EAAc,QAAA,EAAU,SAAA,EAAW,WAAW,OAAO,CAAA;AAAA;AAAA,EAEpE,CAAA,CAAE,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EAC9C,EAAE,MAAA,EAAQ,MAAA,EAAQ,QAAQ,SAAA,EAAW,SAAA,EAAW,QAAW,UAAU,CAAA;AAAA,EACrE,EAAE,KAAA,EAAO,KAAA,EAAO,QAAQ,SAAA,EAAW,SAAA,EAAW,QAAQ,UAAU,CAAA;AAAA,EAChE,EAAE,SAAA,EAAW,UAAA,EAAY,MAAA,EAAQ,SAAA,EAAW,WAAW,MAAM,CAAA;AAAA,EAC7D,EAAE,SAAA,EAAW,UAAA,EAAY,MAAA,EAAQ,SAAA,EAAW,WAAW,GAAG,CAAA;AAAA,EAC1D,CAAA,CAAE,SAAA,EAAW,SAAA,EAAW,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EACpD,CAAA,CAAE,OAAA,EAAS,OAAA,EAAS,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EAChD,CAAA,CAAE,QAAA,EAAU,QAAA,EAAU,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EAClD,CAAA,CAAE,SAAA,EAAW,SAAA,EAAW,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EACpD,EAAE,cAAA,EAAgB,eAAA,EAAiB,MAAA,EAAQ,SAAA,EAAW,WAAW,KAAK,CAAA;AAAA,EACtE,CAAA,CAAE,UAAA,EAAY,UAAA,EAAY,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EACtD,EAAE,SAAA,EAAW,UAAA,EAAY,MAAA,EAAQ,SAAA,EAAW,WAAW,KAAK,CAAA;AAAA,EAC5D,CAAA,CAAE,UAAA,EAAY,UAAA,EAAY,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EACtD,CAAA,CAAE,SAAA,EAAW,SAAA,EAAW,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EACpD,EAAE,eAAA,EAAiB,mBAAA,EAAkB,MAAA,EAAQ,SAAA,EAAW,WAAW,oBAAiB,CAAA;AAAA,EACpF,EAAE,sBAAA,EAAwB,uBAAA,EAAyB,MAAA,EAAQ,SAAA,EAAW,WAAW,oBAAoB,CAAA;AAAA,EACrG,EAAE,mBAAA,EAAqB,qBAAA,EAAuB,MAAA,EAAQ,SAAA,EAAW,WAAW,sBAAsB,CAAA;AAAA,EAClG,CAAA,CAAE,WAAA,EAAa,WAAA,EAAa,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EACxD,CAAA,CAAE,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EAC9C,EAAE,YAAA,EAAc,YAAA,EAAc,MAAA,EAAQ,SAAA,EAAW,WAAW,QAAQ,CAAA;AAAA,EACpE,CAAA,CAAE,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,WAAW,SAAS,CAAA;AAAA,EAC9C,EAAE,aAAA,EAAe,aAAA,EAAe,MAAA,EAAQ,SAAA,EAAW,WAAW,MAAM,CAAA;AAAA,EACpE,CAAA,CAAE,SAAA,EAAW,SAAA,EAAW,MAAA,EAAQ,WAAW,SAAS;AACtD,CAAA;AAGA,IAAM,OAAA,GAAkC;AAAA,EACtC,OAAA,EAAS,OAAA;AAAA,EACT,YAAA,EAAc,OAAA;AAAA,EACd,UAAA,EAAY,KAAA;AAAA,EACZ,KAAA,EAAO,KAAA;AAAA,EACP,YAAA,EAAc,eAAA;AAAA,EACd,cAAA,EAAgB,eAAA;AAAA,EAChB,EAAA,EAAI,WAAA;AAAA,EACJ,YAAA,EAAc,WAAA;AAAA,EACd,oBAAA,EAAsB,WAAA;AAAA,EACtB,OAAA,EAAS,iBAAA;AAAA,EACT,OAAA,EAAS,iBAAA;AAAA,EACT,MAAA,EAAQ,YAAA;AAAA,EACR,eAAA,EAAiB,MAAA;AAAA,EACjB,aAAA,EAAe,aAAA;AAAA,EACf,EAAA,EAAI,aAAA;AAAA,EACJ,KAAA,EAAO,MAAA;AAAA,EACP,YAAA,EAAc,MAAA;AAAA,EACd,WAAA,EAAa,SAAA;AAAA,EACb,KAAA,EAAO,SAAA;AAAA,EACP,QAAA,EAAU,SAAA;AAAA,EACV,GAAA,EAAK,cAAA;AAAA,EACL,QAAA,EAAU,MAAA;AAAA,EACV,OAAA,EAAS,aAAA;AAAA,EACT,GAAA,EAAK,SAAA;AAAA,EACL,OAAA,EAAS,eAAA;AAAA,EACT,WAAA,EAAa,sBAAA;AAAA,EACb,YAAA,EAAc,sBAAA;AAAA,EACd,mBAAA,EAAqB,sBAAA;AAAA,EACrB,OAAA,EAAS,mBAAA;AAAA,EACT,SAAA,EAAW,mBAAA;AAAA,EACX,kBAAA,EAAoB,mBAAA;AAAA,EACpB,UAAA,EAAY,MAAA;AAAA,EACZ,MAAA,EAAQ,YAAA;AAAA,EACR,aAAA,EAAe,SAAA;AAAA,EACf,kBAAA,EAAoB,SAAA;AAAA,EACpB,OAAA,EAAS,MAAA;AAAA,EACT,UAAA,EAAY,KAAA;AAAA,EACZ,gBAAA,EAAkB;AACpB,CAAA;AAEA,IAAM,MAAA,GAAS,IAAI,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,GAAA,EAAK,CAAC,CAAC,CAAC,CAAA;AAG3C,SAAS,SAAS,GAAA,EAAwC;AAC/D,EAAA,MAAM,QAAQ,GAAA,IAAO,EAAA,EAClB,UAAU,KAAK,CAAA,CACf,QAAQ,QAAA,EAAU,EAAE,CAAA,CACpB,WAAA,GACA,OAAA,CAAQ,IAAA,EAAM,KAAK,CAAA,CACnB,OAAA,CAAQ,cAAc,EAAE,CAAA;AAC3B,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,QAAA,CAAS,QAAQ,CAAA,IAAK,IAAA,KAAS,iBAAA,GAAoB,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,GAAI,IAAA;AAC9F,EAAA,OAAO,OAAA,CAAQ,SAAS,CAAA,KAAM,MAAA,CAAO,GAAA,CAAI,SAAS,CAAA,GAAI,SAAA,GAAY,OAAA,CAAQ,IAAI,CAAA,IAAK,IAAA,CAAA;AACrF;AAGO,SAAS,UAAU,GAAA,EAA8C;AACtE,EAAA,OAAO,MAAA,CAAO,GAAA,CAAI,QAAA,CAAS,GAAG,CAAC,CAAA,IAAK,IAAA;AACtC;AAMO,SAAS,UAAU,GAAA,EAA+C;AACvE,EAAA,MAAM,KAAA,GAAQ,UAAU,GAAG,CAAA;AAC3B,EAAA,IAAI,KAAA,SAAc,KAAA,CAAM,IAAA;AACxB,EAAA,MAAM,IAAA,GAAA,CAAQ,GAAA,IAAO,EAAA,EAAI,IAAA,EAAK;AAC9B,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,IAAI,IAAA,KAAS,KAAK,WAAA,EAAY,IAAK,SAAS,IAAA,CAAK,WAAA,IAAe,OAAO,IAAA;AACvE,EAAA,OAAO,IAAA,CACJ,WAAA,EAAY,CACZ,KAAA,CAAM,SAAS,EACf,MAAA,CAAO,OAAO,CAAA,CACd,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,GAAI,CAAA,CAAE,MAAM,CAAC,CAAC,CAAA,CACjD,IAAA,CAAK,GAAG,CAAA;AACb;AAGO,SAAS,WAAW,IAAA,EAA2B;AACpD,EAAA,OAAO,IAAA,GAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,IAAI,CAAA,GAAI,CAAC,GAAG,IAAI,CAAA;AAC9D;AAGO,SAAS,UAAU,GAAA,EAAsE;AAC9F,EAAA,MAAM,CAAA,GAAI,UAAU,GAAG,CAAA;AACvB,EAAA,MAAM,IAAA,GAAO,CAAA,GAAI,KAAA,CAAM,CAAA,CAAE,GAAG,CAAA,GAAI,MAAA;AAChC,EAAA,OAAO,CAAA,IAAK,OAAO,EAAE,GAAG,MAAM,GAAA,EAAK,CAAA,CAAE,KAAI,GAAI,IAAA;AAC/C;AC1KA,SAAS,SAAS,GAAA,EAA+C;AAC/D,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,IAAI;AACF,IAAA,OAAO,IAAI,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,KAAa,WAAW,GAAA,GAAM,IAAA;AAAA,EACpD,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAGA,SAAS,SAAS,GAAA,EAAqB;AACrC,EAAA,MAAM,KAAA,GAAA,CAAS,UAAU,GAAG,CAAA,IAAK,KAAK,KAAA,CAAM,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AACjE,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,MAAA,GAAS,CAAA,GAAI,KAAA,CAAM,MAAM,CAAA,EAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,CAAC,CAAC,CAAA,GAAI,CAAA,CAAE,KAAA,CAAM,CAAC,KAAK,GAAA,EAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AACtG,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,EAAE,CAAA,CAAE,WAAA,EAAY;AACtC;AAKA,IAAM,UAAA,GAAa,oDAAA;AAEnB,IAAM,QAAA,GAAW,kCAAA;AAGV,SAAS,OAAA,CAAQ,IAAY,IAAA,EAAc;AAChD,EAAA,MAAM,GAAA,GAAM,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,KAAA,CAAM,IAAA,GAAO,IAAI,CAAC,CAAA;AAC/C,EAAA,MAAM,IAAA,GAAO,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,KAAA,CAAM,IAAA,GAAO,GAAG,CAAC,CAAA;AAC/C,EAAA,MAAM,MAAA,GAAS,OAAO,GAAA,GAAM,CAAA;AAC5B,EAAA,MAAM,OAAO,IAAA,GAAO,GAAA;AACpB,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,IAAI,IAAI,CAAA;AACzC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,SAAS,EAAE,CAAA;AACzC,EAAA,OAAO,EAAE,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,MAAA,GAAS,GAAG,CAAA,GAAI,IAAA,GAAO,CAAC,CAAA,EAAG,QAAQ,IAAA,EAAM,IAAA,EAAM,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,EAAG,IAAA,EAAM,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG,GAAA,EAAK,IAAA,EAAK;AACnJ;AAWO,SAAS,SAAA,CAAU,EAAE,KAAA,EAAO,OAAA,EAAS,OAAO,EAAA,EAAI,KAAA,EAAO,WAAU,EAAmB;AACzF,EAAA,MAAM,MAAA,GAAS,IAAA;AACf,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,GAAG,CAAA;AACnC,EAAA,MAAM,IAAA,GAAO,KAAA,GAAQ,EAAE,IAAA,EAAM,KAAA,EAAgB,cAAc,KAAA,EAAM,GAAI,EAAE,aAAA,EAAe,IAAA,EAAc;AACpG,EAAA,MAAM,IAAA,GAAO,SAAS,OAAO,CAAA;AAC7B,EAAA,MAAM,KAAA,GAAQ,UAAU,KAAK,CAAA;AAC7B,EAAA,MAAM,GAAA,GAAM,OAAO,GAAA,IAAO,SAAA;AAC1B,EAAA,MAAM,KAAA,GAAuB,EAAE,KAAA,EAAO,MAAA,EAAQ,MAAM,MAAA,EAAO;AAC3D,EAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,EAAW,GAAA,EAAa,IAAA,MAAiC;AAAA,IACtE,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,SAAA,EAAW,YAAA;AAAA,IACX,IAAA,EAAM,MAAA;AAAA,IACN,KAAA,EAAO,CAAA;AAAA,IACP,MAAA;AAAA,IACA,OAAA,EAAS,CAAA,EAAG,GAAG,CAAA,GAAA,EAAM,IAAI,CAAA,EAAA,CAAA;AAAA,IACzB,UAAA,EAAY,QAAA;AAAA,IACZ,MAAA,EAAQ,aAAa,UAAU,CAAA,CAAA;AAAA,IAC/B,YAAA,EAAc,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,GAAG,CAAA;AAAA,IACnC,QAAA,EAAU;AAAA,GACZ,CAAA;AACA,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,GAAA,EAAK,IAAI,CAAA;AAC3B,IAAA,uBACEA,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAsB,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,IAAI,GAAG,oBAAA,EAAoB,GAAA,EAAK,wBAAqB,UAAA,EAAY,GAAG,MAC3H,QAAA,kBAAAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,IAAA;AAAA,QACL,KAAK,KAAA,IAAS,EAAA;AAAA,QACd,KAAA,EAAO,KAAA,GAAQ,CAAA,CAAE,IAAA,GAAO,CAAA;AAAA,QACxB,MAAA,EAAQ,MAAA,GAAS,CAAA,CAAE,GAAA,GAAM,CAAA;AAAA,QACzB,OAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAS,OAAA;AAAA,QACT,OAAO,EAAE,SAAA,EAAW,WAAW,QAAA,EAAU,MAAA,EAAQ,WAAW,MAAA,EAAO;AAAA,QAClE,GAAI,KAAA,GAAQ,EAAC,GAAI,EAAE,eAAe,IAAA;AAAK;AAAA,KAC1C,EACF,CAAA;AAAA,EAEJ;AACA,EAAA,MAAM,IAAA,GAAO,UAAU,KAAK,CAAA;AAC5B,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,IAAA,CAAK,EAAA,EAAI,IAAI,CAAA;AAE/B,IAAA,MAAM,KAAA,GAAQ,SAAS,KAAA,CAAM,IAAA;AAC7B,IAAA,uBACEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAsB,KAAA,EAAO,MAAM,CAAA,CAAE,KAAA,EAAO,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,IAAI,GAAG,oBAAA,EAAoB,GAAA,EAAK,sBAAA,EAAqB,MAAA,EAAQ,GAAI,KAAA,GAAQ,EAAE,IAAA,EAAM,KAAA,EAAO,YAAA,EAAc,KAAA,EAAM,GAAI,EAAE,aAAA,EAAe,MAAK,EAC/L,QAAA,kBAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,IAAA,CAAK,KAAK,GAAA,EAAI,EAAA,EAAG,KAAA,EAAO,CAAA,CAAE,IAAA,EAAM,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAS,OAAA,EAAQ,SAAA,EAAW,KAAA,EAAO,KAAA,EAAO,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,MAAA,EAAO,EAAG,CAAA,EAC9I,CAAA;AAAA,EAEJ;AACA,EAAA,MAAM,IAAA,GAAO,UAAA;AACb,EAAA,IAAI,KAAA,EAAO,UAAU,YAAA,EAAc;AACjC,IAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAA,EAAQ,WAAA,EAAY,OAAc,MAAA,EAAgB,SAAA,EAAsB,KAAA,EAAc,oBAAA,EAAoB,KAAK,sBAAA,EAAqB,OAAA,EAAQ,SAAA,EAAU,OAAA,EAAS,GAAG,IAAA,EACrK,QAAA,EAAA;AAAA,sBAAAC,eAAC,MAAA,EAAA,EAAK,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,OAAM,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAG,GAAA,EAAI,IAAA,EAAM,KAAA,CAAM,EAAA,EAAI,QAAQ,IAAA,EAAM,CAAA;AAAA,sBAClFA,cAAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,sBAC7CA,cAAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,sBAC7CA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+CAAA,EAAgD,MAAK,SAAA,EAAU;AAAA,KAAA,EACzE,CAAA;AAAA,EAEJ;AACA,EAAA,IAAI,KAAA,EAAO,UAAU,UAAA,EAAY;AAG/B,IAAA,MAAM,KAAA,GAAA,CAAS,MAAM,IAAA,IAAQ,KAAA,CAAM,MAAM,KAAA,CAAM,IAAI,EAAE,CAAC,CAAA;AACtD,IAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAA,EAAQ,WAAA,EAAY,OAAc,MAAA,EAAgB,SAAA,EAAsB,KAAA,EAAc,oBAAA,EAAoB,KAAK,sBAAA,EAAqB,OAAA,EAAQ,SAAA,EAAU,OAAA,EAAS,GAAG,IAAA,EACrK,QAAA,EAAA;AAAA,sBAAAC,eAAC,MAAA,EAAA,EAAK,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,OAAM,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAG,GAAA,EAAI,IAAA,EAAM,KAAA,CAAM,EAAA,EAAI,QAAQ,IAAA,EAAM,CAAA;AAAA,sBAClFA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qDAAoD,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,KAAA,CAAM,IAAI,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EAAQ,CAAA;AAAA,sBACzJA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,GAAE,MAAA,EAAO,gBAAA,EAAiB,SAAA,EAAU,UAAA,EAAW,QAAA,EAAS,IAAA,EAAM,MAAM,EAAA,EAAI,UAAA,EAAW,iEAAA,EAAkE,UAAA,EAAY,GAAA,EAAK,QAAA,EAAU,IAAI,UAAA,EAAY,EAAA,EAAI,YAAA,EAAa,kBAAA,EAC3N,QAAA,EAAA,KAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AACA,EAAA,MAAM,IAAA,GAAO,QAAS,KAAA,CAAM,IAAA,IAAQ,MAAM,IAAA,GAAQ,QAAA,CAAS,SAAS,EAAE,CAAA;AACtE,EAAA,MAAM,EAAA,GAAK,OAAO,EAAA,IAAM,kCAAA;AACxB,EAAA,MAAM,EAAA,GAAK,OAAO,EAAA,IAAM,kCAAA;AACxB,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAC7B,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,GAAG,KAAA,CAAM,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,MAAM,CAAC,CAAA;AAEtD,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,MAAA,GAAS,CAAA,GAAK,OAAA,IAAW,CAAA,GAAI,EAAA,GAAK,GAAA,GAAO,OAAA,IAAW,CAAA,GAAI,EAAA,GAAK,OAAA,IAAW,IAAI,EAAA,GAAK,EAAA;AACxG,EAAA,MAAM,GAAA,GAAM,CAAC,CAAA,KAAe,CAAA,CAAE,SAAS,CAAA,GAAI,EAAE,YAAY,EAAA,EAAI,YAAA,EAAc,oBAA4B,GAAI,CAAA,CAAE,WAAW,CAAA,GAAI,EAAE,YAAY,EAAA,EAAI,YAAA,EAAc,kBAAA,EAA4B,GAAI,EAAC;AAC7L,EAAA,MAAM,SAAS,KAAA,EAAO,GAAA,KAAQ,UAAU,KAAA,EAAO,GAAA,KAAQ,UAAU,QAAA,GAAW,MAAA;AAC5E,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,UAAA,EAAY,QAAA;AAAA,IACZ,IAAA,EAAM,EAAA;AAAA,IACN,UAAA,EAAY,iEAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA;AAAA,IACA,SAAA,EAAW;AAAA,GACb;AACA,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAA,EAAQ,WAAA,EAAY,OAAc,MAAA,EAAgB,SAAA,EAAsB,KAAA,EAAc,oBAAA,EAAoB,KAAK,sBAAA,EAAqB,OAAA,EAAQ,SAAA,EAAU,OAAA,EAAS,GAAG,IAAA,EACrK,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,KAAA,EAAM,GAAE,KAAA,EAAM,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,MAAK,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,EAAA,EAAI,QAAQ,IAAA,EAAM,CAAA;AAAA,IAC3E,KAAA,CAAM,MAAA,GAAS,CAAA,GACd,KAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACxBA,cAAAA,CAAC,MAAA,EAAA,EAAa,CAAA,EAAE,IAAA,EAAK,CAAA,EAAG,CAAA,KAAM,IAAI,EAAA,GAAK,IAAA,EAAO,GAAG,MAAA,EAAS,GAAG,GAAA,CAAI,CAAC,CAAA,EAC/D,QAAA,EAAA,CAAA,EAAA,EADQ,CAEX,CACD,CAAA,mBAEDA,eAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,gBAAA,EAAiB,WAAU,aAAA,EAAe,OAAA,IAAW,CAAA,GAAI,GAAA,GAAM,CAAA,EAAI,GAAG,QAAS,GAAG,GAAA,CAAI,IAAI,CAAA,EAC3G,QAAA,EAAA,IAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;AC/HA,IAAM,MAAA,GAAS,CAAC,CAAA,KAAoB;AAClC,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA;AAC9B,EAAA,OAAO,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,GAAI,CAAA,GAAI,IAAA;AAClC,CAAA;AACA,IAAM,SAAS,CAAC,CAAA,KAAoB,CAAA,CAAE,YAAA,IAAgB,EAAE,YAAA,IAAgB,IAAA;AACxE,IAAM,OAAO,CAAC,CAAA,KAAA,CAAkC,KAAK,EAAA,EAAI,IAAA,GAAO,WAAA,EAAY;AAC5E,IAAM,UAAA,GAAa,CAAC,CAAA,KAAqB,CAAA,CAAE,UAAU,QAAA,CAAS,CAAA,CAAE,OAAO,CAAA,GAAI,CAAA,CAAE,QAAA,GAAW,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA,GAAI,EAAA;AAGxG,SAAS,YAAoC,KAAA,EAA0B;AAC5E,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAe;AAChC,EAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAS,CAAA,EAAG,UAAA,CAAW,CAAC,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,CAAA,CAAE,YAAY,CAAA,IAAK,KAAK,CAAA,CAAE,KAAK,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,CAAC,KAAK,EAAE,CAAA,CAAA,EAAI,CAAA,CAAE,IAAA,CAAK,aAAa,CAAA,CAAA;AAC5H,EAAA,KAAA,MAAW,KAAK,KAAA,EAAO;AACrB,IAAA,MAAM,CAAA,GAAI,MAAM,CAAC,CAAA;AACjB,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA;AACvB,IAAA,MAAM,CAAA,GAAI,OAAO,CAAC,CAAA;AAClB,IAAA,IAAI,CAAC,IAAA,IAAS,CAAA,KAAM,IAAA,KAAS,OAAO,IAAI,CAAA,KAAM,IAAA,IAAQ,CAAA,GAAI,OAAO,IAAI,CAAA,CAAA,EAAM,IAAA,CAAK,GAAA,CAAI,GAAG,CAAC,CAAA;AAAA,EAC1F;AACA,EAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAA,CAAK,QAAQ,CAAA;AAClC,EAAA,OAAO,MAAM,MAAA,CAAO,CAAC,MAAM,IAAA,CAAK,GAAA,CAAI,CAAC,CAAC,CAAA;AACxC;AAWO,SAAS,cAAA,CAAuC,KAAA,EAAqB,OAAA,GAAiC,EAAC,EAAwB;AACpI,EAAA,MAAM,QAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAA,CAAQ,SAAS,CAAC,CAAA;AAC5C,EAAA,MAAM,KAAA,GAAQ,QAAQ,MAAA,KAAW,KAAA,GAAQ,CAAC,GAAG,KAAK,CAAA,GAAI,WAAA,CAAY,KAAK,CAAA;AACvE,EAAA,MAAM,aAAA,GAAgB,OAAA,CAAQ,aAAA,IAAiB,KAAA,GAAQ,CAAA;AACvD,EAAA,MAAM,YAAA,GAAe,IAAI,GAAA,CAAI,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAK,aAAa,CAAC,CAAA,CAAE,IAAA,IAAQ,CAAA;AAC7E,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,EAAM,CAAA,KAAA,CAAU,MAAA,CAAO,CAAC,CAAA,IAAK,QAAA,KAAa,MAAA,CAAO,CAAC,CAAA,IAAK,QAAA,CAAA;AACvE,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,EAAM,CAAA,KAAA,CAAU,MAAA,CAAO,CAAC,CAAA,IAAK,QAAA,KAAa,MAAA,CAAO,CAAC,CAAA,IAAK,QAAA,CAAA;AACvE,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAkB;AACnC,EAAA,MAAM,MAAM,CAAC,CAAA,EAAM,CAAA,KAAe,IAAA,CAAK,IAAI,CAAA,EAAG,CAAC,GAAI,IAAA,CAAK,IAAI,CAAC,CAAA,IAAK,EAAC,EAAI,CAAC,CAAC,CAAA;AAEzE,EAAA,MAAM,QAAA,GAAW,gBAAgB,KAAA,CAAM,MAAA,GAAS,IAAI,CAAC,GAAG,KAAK,CAAA,CAAE,IAAA,CAAK,CAAC,GAAG,CAAA,KAAM,MAAA,CAAO,CAAA,EAAG,CAAC,CAAA,IAAK,MAAA,CAAO,GAAG,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA,GAAI,MAAA;AACjH,EAAA,IAAI,YAAY,MAAA,CAAO,QAAQ,MAAM,IAAA,EAAM,GAAA,CAAI,UAAU,UAAU,CAAA;AACnE,EAAA,MAAM,OAAA,GAAU,MAAM,MAAA,GAAS,CAAA,GAAI,CAAC,GAAG,KAAK,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,MAAM,MAAA,CAAO,CAAA,EAAG,CAAC,CAAA,IAAK,MAAA,CAAO,GAAG,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA,GAAI,MAAA;AAChG,EAAA,IAAI,WAAW,MAAA,CAAO,OAAO,MAAM,IAAA,KAAS,CAAC,YAAY,OAAA,KAAY,QAAA,IAAA,CAAa,MAAA,CAAO,QAAQ,KAAK,QAAA,IAAY,MAAA,CAAO,OAAO,CAAA,CAAA,EAAK,GAAA,CAAI,SAAS,SAAS,CAAA;AAE3J,EAAA,MAAM,SAAc,EAAC;AACrB,EAAA,KAAA,MAAW,KAAK,CAAC,QAAA,EAAU,OAAO,CAAA,EAAG,IAAI,KAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,IAAK,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG,MAAA,CAAO,KAAK,CAAC,CAAA;AAE/F,EAAA,IAAI,KAAA,CAAM,SAAS,aAAA,EAAe;AAEhC,IAAA,MAAM,IAAA,GAAO,CAAC,MAAA,EAAa,GAAA,KAAiC;AAC1D,MAAA,MAAM,GAAA,uBAAU,GAAA,EAAe;AAC/B,MAAA,IAAI,GAAA,GAAM,CAAA;AACV,MAAA,IAAI,IAAA;AACJ,MAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM;AACvB,QAAA,MAAM,CAAA,GAAI,IAAI,CAAC,CAAA;AACf,QAAA,IAAI,CAAA,KAAM,MAAM,GAAA,GAAM,CAAA;AACtB,QAAA,IAAA,GAAO,CAAA;AACP,QAAA,GAAA,CAAI,IAAI,CAAA,EAAG,CAAA,KAAM,IAAA,GAAO,MAAA,CAAO,SAAS,GAAG,CAAA;AAAA,MAC7C,CAAC,CAAA;AACD,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AACA,IAAA,MAAM,SAAA,GAAY,KAAK,CAAC,GAAG,KAAK,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA,EAAG,MAAM,CAAA;AACtD,IAAA,MAAM,QAAA,GAAW,KAAK,CAAC,GAAG,KAAK,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA,EAAG,MAAM,CAAA;AACrD,IAAA,MAAM,IAAA,GAAO,KAAA,CACV,MAAA,CAAO,CAAC,MAAM,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAC,CAAA,CACjC,IAAA,CAAK,CAAC,CAAA,EAAG,MAAM,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,GAAK,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,IAAM,UAAU,GAAA,CAAI,CAAC,CAAA,GAAK,QAAA,CAAS,IAAI,CAAC,CAAA,CAAA,IAAO,MAAA,CAAO,CAAA,EAAG,CAAC,CAAC,CAAA;AAC/G,IAAA,IAAI,KAAA,GAAQ,IAAA;AACZ,IAAA,KAAA,MAAW,KAAK,IAAA,EAAM;AACpB,MAAA,IAAI,MAAA,CAAO,UAAU,KAAA,EAAO;AAC5B,MAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AACb,MAAA,IAAI,KAAA,EAAO,GAAA,CAAI,CAAA,EAAG,YAAY,CAAA;AAC9B,MAAA,KAAA,GAAQ,KAAA;AAAA,IACV;AAAA,EACF,CAAA,MAAO;AACL,IAAA,KAAA,MAAW,CAAA,IAAK,KAAA,EAAO,IAAI,CAAC,MAAA,CAAO,SAAS,CAAC,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA;AAAA,EAC/D;AAEA,EAAA,MAAM,cAAc,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,IAAI,CAAC,IAAA,MAAU,EAAE,IAAA,EAAM,MAAM,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,IAAK,IAAG,CAAE,CAAA;AAC5F,EAAA,MAAM,MAAA,uBAAa,GAAA,EAA0B;AAC7C,EAAA,KAAA,MAAW,KAAK,CAAC,GAAG,KAAK,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA,EAAG;AACvC,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG;AACxB,IAAA,MAAM,GAAA,GAAM,WAAW,CAAC,CAAA;AACxB,IAAA,MAAM,CAAA,GAAI,MAAA,CAAO,GAAA,CAAI,GAAG,KAAK,EAAE,GAAA,EAAK,OAAA,EAAS,CAAA,CAAE,WAAW,CAAA,CAAE,QAAA,IAAY,IAAA,EAAM,KAAA,EAAO,EAAC,EAAE;AACxF,IAAA,CAAA,CAAE,KAAA,CAAM,KAAK,CAAC,CAAA;AACd,IAAA,MAAA,CAAO,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,EACnB;AACA,EAAA,MAAM,IAAA,GAAO,CAAC,GAAG,MAAA,CAAO,QAAQ,CAAA;AAChC,EAAA,OAAO,EAAE,WAAA,EAAa,IAAA,EAAM,SAAA,EAAW,KAAK,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAA,CAAE,KAAA,CAAM,MAAA,EAAQ,CAAC,CAAA,EAAE;AACtF;AAgBO,SAAS,SAAA,CAAkC,KAAA,EAAqB,OAAA,GAA4B,EAAC,EAAyB;AAC3H,EAAA,MAAM,KAAA,GAAQ,QAAQ,KAAA,IAAS,CAAA;AAC/B,EAAA,MAAM,KAAA,GAAQ,QAAQ,MAAA,KAAW,KAAA,GAAQ,CAAC,GAAG,KAAK,CAAA,GAAI,WAAA,CAAY,KAAK,CAAA;AACvE,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAkB;AACnC,EAAA,KAAA,MAAW,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA,EAAE,IAAK,eAAe,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,OAAO,CAAA,CAAE,aAAa,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAA;AAC7G,EAAA,MAAM,IAAA,GAAO,CAAC,GAAG,KAAK,CAAA;AACtB,EAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,OAAA,CAAQ,MAAM,CAAA,GAAI,MAAA;AAC3E,EAAA,IAAI,IAAA,IAAQ,CAAC,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA,EAAG,IAAA,CAAK,KAAK,IAAI,CAAA;AAChD,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,EAAM,CAAA,KAAA,CAAU,MAAA,CAAO,CAAC,CAAA,IAAK,QAAA,KAAa,MAAA,CAAO,CAAC,CAAA,IAAK,QAAA,CAAA;AAEvE,EAAA,OAAO,KAAK,IAAA,CAAK,MAAM,CAAA,CAAE,GAAA,CAAI,CAAC,IAAA,MAAU,EAAE,IAAA,EAAM,IAAA,EAAM,KAAK,GAAA,CAAI,IAAI,CAAA,IAAK,IAAG,CAAE,CAAA;AAC/E;;;ACtHA,IAAMC,GAAAA,GAAuB;AAAA,EAC3B,MAAA,EAAQ,4BAAA;AAAA,EACR,OAAA,EAAS,iCAAA;AAAA,EACT,QAAA,EAAU,2CAAA;AAAA,EACV,OAAA,EAAS,6CAAA;AAAA,EACT,OAAA,EAAS,4CAAA;AAAA,EACT,QAAA,EAAU,qBAAA;AAAA,EACV,OAAA,EAAS,kBAAA;AAAA,EACT,IAAA,EAAM,QAAA;AAAA,EACN,WAAA,EAAa,mBAAA;AAAA,EACb,UAAA,EAAY,gDAAA;AAAA,EACZ,aAAA,EAAe,4DAAA;AAAA,EACf,UAAA,EAAY,+CAAA;AAAA,EACZ,SAAA,EAAW,iDAAA;AAAA,EACX,OAAA,EAAS,sFAAA;AAAA,EACT,OAAA,EAAS,qCAAA;AAAA,EACT,QAAA,EAAU,kGAAA;AAAA,EACV,SAAA,EAAW,aAAA;AAAA,EACX,WAAA,EAAa,2BAAA;AAAA,EACb,aAAA,EAAe,gBAAA;AAAA,EACf,KAAA,EAAO,gEAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AAEA,IAAMC,GAAAA,GAAuB;AAAA,EAC3B,MAAA,EAAQ,2BAAA;AAAA,EACR,OAAA,EAAS,8BAAA;AAAA,EACT,QAAA,EAAU,yCAAA;AAAA,EACV,OAAA,EAAS,sCAAA;AAAA,EACT,OAAA,EAAS,iCAAA;AAAA,EACT,QAAA,EAAU,UAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,IAAA,EAAM,MAAA;AAAA,EACN,WAAA,EAAa,mBAAA;AAAA,EACb,UAAA,EAAY,qCAAA;AAAA,EACZ,aAAA,EAAe,iDAAA;AAAA,EACf,UAAA,EAAY,qCAAA;AAAA,EACZ,SAAA,EAAW,uCAAA;AAAA,EACX,OAAA,EAAS,uEAAA;AAAA,EACT,OAAA,EAAS,oCAAA;AAAA,EACT,QAAA,EAAU,mFAAA;AAAA,EACV,SAAA,EAAW,aAAA;AAAA,EACX,WAAA,EAAa,yBAAA;AAAA,EACb,aAAA,EAAe,eAAA;AAAA,EACf,KAAA,EAAO,6CAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AAGO,SAAS,gBAAA,CAAiB,QAAwB,SAAA,EAAgE;AACvH,EAAA,MAAM,IAAA,GAAA,CAAQ,UAAU,OAAA,EAAS,WAAA,GAAc,UAAA,CAAW,IAAI,IAAIA,GAAAA,GAAKD,GAAAA;AACvE,EAAA,OAAO,YAAY,EAAE,GAAG,IAAA,EAAM,GAAG,WAAU,GAAI,IAAA;AACjD;AAGA,IAAM,OAAO,CAAC,GAAA,EAAa,SAA0C,GAAA,CAAI,OAAA,CAAQ,cAAc,CAAC,CAAA,EAAG,MAAc,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,IAAK,EAAE,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAS,GAAG,CAAA;AAGrJ,SAAS,YAAY,IAAA,EAAoD;AAC9E,EAAA,OAAO,SAAA,CAAU,KAAK,OAAO,CAAA;AAC/B;AAMO,SAAS,YAAY,IAAA,EAAuD;AACjF,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,EAAK;AAC9B,EAAA,MAAM,OAAA,GAAU,YAAY,IAAI,CAAA;AAChC,EAAA,IAAI,CAAC,SAAS,OAAO,KAAA;AACrB,EAAA,KAAA,MAAW,UAAU,CAAC,OAAA,EAAS,IAAA,CAAK,OAAA,IAAW,EAAE,CAAA,EAAG;AAClD,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,IAAI,MAAM,WAAA,EAAY,CAAE,WAAW,MAAA,CAAO,WAAA,EAAa,CAAA,EAAG;AACxD,MAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,MAAA,CAAO,MAAM,CAAA,CAAE,OAAA,CAAQ,cAAc,EAAE,CAAA;AAChE,MAAA,IAAI,MAAM,OAAO,IAAA;AAAA,IACnB;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,OAAA,CACd,IAAA,EACA,QAAA,GAA6BA,GAAAA,EACd;AACf,EAAA,MAAM,EAAE,YAAA,EAAc,GAAA,EAAK,YAAA,EAAc,KAAI,GAAI,IAAA;AACjD,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,OAAO,QAAQ,QAAA,EAAU;AACtD,IAAA,IAAI,GAAA,KAAQ,GAAA,EAAK,OAAO,GAAA,KAAQ,CAAA,GAAI,QAAA,CAAS,MAAA,GAAS,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,EAAE,CAAA,EAAG,KAAK,CAAA;AACvF,IAAA,OAAO,KAAK,QAAA,CAAS,QAAA,EAAU,EAAE,GAAA,EAAK,KAAK,CAAA;AAAA,EAC7C;AACA,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,OAAO,GAAA,KAAQ,CAAA,GAAI,QAAA,CAAS,MAAA,GAAS,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,EAAE,KAAK,CAAA;AAChG,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,OAAO,GAAA,KAAQ,CAAA,GAAI,QAAA,CAAS,MAAA,GAAS,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,EAAE,KAAK,CAAA;AAChG,EAAA,OAAO,KAAK,GAAA,IAAO,IAAA;AACrB;AAIA,IAAMQ,OAAAA,GAAS,CAAC,CAAA,KAAoB;AAClC,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA;AAC9B,EAAA,OAAO,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,GAAI,CAAA,GAAI,IAAA;AAClC,CAAA;AACA,IAAMC,UAAS,CAAC,CAAA,KAAoB,CAAA,CAAE,YAAA,IAAgB,EAAE,YAAA,IAAgB,IAAA;AAMjE,SAAS,WAAW,KAAA,EAA0D;AACnF,EAAA,MAAM,GAAA,uBAAU,GAAA,EAAyB;AACzC,EAAA,IAAI,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,OAAO,GAAA;AAC7B,EAAA,MAAM,MAAM,CAAC,EAAA,EAAY,CAAA,KAAiB,GAAA,CAAI,IAAI,EAAA,EAAI,CAAC,GAAI,GAAA,CAAI,IAAI,EAAE,CAAA,IAAK,EAAC,EAAI,CAAC,CAAC,CAAA;AACjF,EAAA,MAAM,MAAA,GAAS,CAAC,MAAA,KAA2C;AACzD,IAAA,MAAM,KAAA,GAAQ,OAAO,MAAA,CAAO,CAAC,MAA6B,CAAA,CAAE,CAAC,MAAM,IAAI,CAAA;AACvE,IAAA,IAAI,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,OAAO,IAAA;AAC7B,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,GAAG,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,CAAC,CAAC,CAAC,CAAA;AAC9C,IAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,CAAC,MAAM,GAAG,CAAA;AAChD,IAAA,OAAO,QAAQ,MAAA,KAAW,CAAA,GAAI,QAAQ,CAAC,CAAA,CAAG,CAAC,CAAA,GAAI,IAAA;AAAA,EACjD,CAAA;AACA,EAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAK,aAAa,CAAC,CAAA;AACjE,EAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,IAAA,MAAM,EAAA,GAAK,MAAA,CAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,EAAA,EAAID,OAAAA,CAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,IAAA,IAAI,EAAA,EAAI,GAAA,CAAI,EAAA,EAAI,UAAU,CAAA;AAAA,EAC5B;AACA,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,EAAA,EAAIC,OAAAA,CAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACvD,EAAA,IAAI,IAAA,EAAM,GAAA,CAAI,IAAA,EAAM,SAAS,CAAA;AAC7B,EAAA,OAAO,GAAA;AACT;AAGO,SAAS,cAAc,KAAA,EAAiE;AAC7F,EAAA,IAAI,IAAA,GAAoB,IAAA;AACxB,EAAA,KAAA,MAAW,KAAK,KAAA,EAAO;AACrB,IAAA,IAAI,CAAC,EAAE,UAAA,EAAY;AACnB,IAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,CAAA,CAAE,UAAU,CAAA;AAC/B,IAAA,IAAI,MAAA,CAAO,KAAA,CAAM,CAAA,CAAE,OAAA,EAAS,CAAA,EAAG;AAC/B,IAAA,IAAI,CAAC,IAAA,IAAQ,CAAA,GAAI,IAAA,EAAM,IAAA,GAAO,CAAA;AAAA,EAChC;AACA,EAAA,OAAO,IAAA;AACT;AAQO,SAAS,SAAA,CACd,QAAA,EACA,IAAA,GAA8G,EAAC,EAC7F;AAClB,EAAA,IAAI,CAAC,UAAU,OAAO,IAAA;AACtB,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,oBAAO,IAAI,IAAA,EAAK;AACjC,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,EAAQ,GAAI,IAAI,OAAA,EAAQ;AAC9C,EAAA,IAAI,IAAA,IAAQ,GAAG,OAAO,IAAA;AACtB,EAAA,MAAM,CAAA,GAAI,KAAK,QAAA,IAAYT,GAAAA;AAC3B,EAAA,MAAM,MAAA,GAAS,KAAK,MAAA,IAAU,OAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,KAAK,QAAA,GAAW,EAAE,UAAU,IAAA,CAAK,QAAA,KAAa,EAAC;AAC1D,EAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,cAAA,CAAe,QAAQ,EAAE,IAAA,EAAM,SAAA,EAAW,MAAA,EAAQ,WAAW,GAAG,EAAA,EAAI,CAAA,CAAE,OAAO,QAAQ,CAAA;AAC3G,EAAA,IAAI,SAAS,IAAA,CAAK,WAAA,IAAe,EAAA,IAAM,GAAA,SAAe,EAAE,IAAA,EAAM,IAAA,CAAK,CAAA,CAAE,WAAW,EAAE,IAAA,EAAM,CAAA,EAAG,MAAM,IAAA,EAAK;AACtG,EAAA,MAAM,MAAM,CAAC,CAAA,KAAY,IAAI,IAAA,CAAK,cAAA,CAAe,SAAS,EAAE,IAAA,EAAM,WAAW,KAAA,EAAO,SAAA,EAAW,KAAK,SAAA,EAAW,GAAG,IAAI,CAAA,CAAE,OAAO,CAAC,CAAA;AAChI,EAAA,IAAI,IAAI,QAAQ,CAAA,KAAM,GAAA,CAAI,GAAG,GAAG,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,EAAE,UAAA,EAAY,EAAE,MAAM,CAAA,EAAG,MAAM,KAAA,EAAM;AACzF,EAAA,IAAI,GAAA,CAAI,QAAQ,CAAA,KAAM,GAAA,CAAI,IAAI,IAAA,CAAK,GAAA,CAAI,OAAA,EAAQ,GAAI,KAAU,CAAC,GAAG,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,CAAA,CAAE,aAAA,EAAe,EAAE,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM;AAC7H,EAAA,MAAM,OAAO,IAAI,IAAA,CAAK,eAAe,MAAA,EAAQ,EAAE,KAAK,SAAA,EAAW,KAAA,EAAO,SAAS,IAAA,EAAM,SAAA,EAAW,QAAQ,SAAA,EAAW,GAAG,IAAI,CAAA,CAAE,OAAO,QAAQ,CAAA;AAC3I,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,CAAA,CAAE,UAAA,EAAY,EAAE,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM;AAC3D;AAGA,IAAM,WAAA,mBAAc,IAAI,GAAA,CAAI,CAAC,eAAA,EAAiB,cAAA,EAAgB,cAAA,EAAgB,kBAAA,EAAoB,gBAAA,EAAkB,YAAA,EAAc,cAAc,CAAC,CAAA;AAQ1I,SAAS,cAAc,GAAA,EAAmG;AAC/H,EAAA,IAAI,CAAC,KAAK,OAAO,KAAA;AACjB,EAAA,IAAI,IAAI,IAAA,IAAQ,WAAA,CAAY,IAAI,GAAA,CAAI,IAAI,GAAG,OAAO,IAAA;AAClD,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,GAAA,EAAK,OAAO,IAAA;AAC/B,EAAA,OAAO,GAAA,CAAI,MAAA,KAAW,GAAA,KAAQ,GAAA,CAAI,KAAA,KAAU,SAAA,IAAa,GAAA,CAAI,KAAA,KAAU,UAAA,IAAc,GAAA,CAAI,KAAA,KAAU,kBAAA,IAAsB,CAAC,GAAA,CAAI,KAAA,CAAA;AAChI;AAMO,SAAS,SAAA,CAAqF,UAAuF,KAAA,EAA+B;AACzN,EAAA,IAAI,CAAC,UAAU,OAAO,IAAA;AACtB,EAAA,MAAMU,QAAO,CAAC,CAAA,KAAA,CAAkC,KAAK,EAAA,EAAI,IAAA,GAAO,WAAA,EAAY;AAC5E,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAASA,KAAAA,CAAK,EAAE,OAAO,CAAA,KAAMA,KAAAA,CAAK,QAAA,CAAS,OAAO,CAAA;AACvE,EAAA,IAAI,SAAS,YAAA,EAAc;AACzB,IAAA,MAAM,GAAA,GAAM,KAAA,CAAM,IAAA,CAAK,CAAC,MAAM,WAAA,CAAY,CAAC,CAAA,IAAKA,KAAAA,CAAK,EAAE,YAAY,CAAA,KAAMA,KAAAA,CAAK,QAAA,CAAS,YAAY,CAAC,CAAA;AACpG,IAAA,IAAI,KAAK,OAAO,GAAA;AAAA,EAClB;AACA,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,YAAY,CAAC,CAAA,IAAKA,KAAAA,CAAK,CAAA,CAAE,KAAK,CAAA,KAAMA,KAAAA,CAAK,QAAA,CAAS,KAAK,CAAC,CAAA,IAAK,IAAA;AACxF;ACtIA,IAAM,OAAA,GAAyB,EAAE,QAAA,EAAU,UAAA,EAAY,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,QAAA,EAAU,QAAA,EAAU,IAAA,EAAM,eAAA,EAAiB,YAAY,QAAA,EAAS;AAE5I,IAAM,cAAc,MAClBC,0BAAA;AAAA,EACE,MAAM,MAAM;AAAA,EAAC,CAAA;AAAA,EACb,MAAM,IAAA;AAAA,EACN,MAAM;AACR,CAAA;AAEF,SAAS,WAAA,CAAY,EAAE,IAAA,GAAO,EAAA,EAAG,EAAsB;AACrD,EAAA,uBACEb,gBAAC,KAAA,EAAA,EAAI,OAAA,EAAQ,aAAY,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,GAAG,CAAA,EAAG,QAAQ,IAAA,EAAM,aAAA,EAAY,MAAA,EAAO,SAAA,EAAU,OAAA,EAAQ,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAO,EAAG,oBAAA,EAAmB,QAAA,EACrJ,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,KAAA,EAAM,GAAE,KAAA,EAAM,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,MAAK,EAAA,EAAG,GAAA,EAAI,IAAA,EAAK,kCAAA,EAAmC,QAAO,oDAAA,EAAqD,CAAA;AAAA,oBACxJA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mEAAA,EAAoE,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,kCAAA,EAAmC,WAAA,EAAY,KAAA,EAAM,cAAA,EAAe,OAAA,EAAQ;AAAA,GAAA,EAC7K,CAAA;AAEJ;AAWO,SAAS,gBAAgB,KAAA,EAA6B;AAC3D,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA,SAAS,EAAC;AAAA,IACV,IAAA,GAAO,iBAAA;AAAA,IACP,SAAA,GAAY,CAAC,CAAA,KAAM,CAAA,KAAA,EAAQ,EAAE,EAAE,CAAA,CAAA;AAAA,IAC/B,WAAA,GAAc,CAAC,CAAA,KAAM,CAAA,OAAA,EAAU,EAAE,SAAS,CAAA,CAAA;AAAA,IAC1C,KAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,QAAA;AAAA,IACA,KAAA,GAAQ,IAAA;AAAA,IACR,QAAQ,UAAA,GAAa,IAAA;AAAA,IACrB,QAAA,GAAW,IAAA;AAAA,IACX,YAAA;AAAA,IACA,UAAA,EAAY,KAAK,EAAC;AAAA,IAClB,MAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA,GAAS,MAAA;AAAA,IACT,KAAA;AAAA,IACA;AAAA,GACF,GAAI,KAAA;AACJ,EAAA,MAAM,MAAA,GAAS,iBAAA,CAAkB,KAAA,CAAM,MAAM,CAAA;AAC7C,EAAA,MAAM,CAAA,GAAIa,aAAAA,CAAQ,MAAM,gBAAA,CAAiB,MAAA,EAAQ,KAAA,CAAM,QAAQ,CAAA,EAAG,CAAC,MAAA,EAAQ,KAAA,CAAM,QAAQ,CAAC,CAAA;AAC1F,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM,MAAA,GAASA,aAAAA,CAAQ,MAAO,UAAA,GAAa,UAAA,CAAW,KAAK,CAAA,mBAAI,IAAI,GAAA,EAAyB,EAAI,CAAC,KAAA,EAAO,UAAU,CAAC,CAAA;AACnH,EAAA,MAAM,IAAA,GAAOA,aAAAA;AAAA,IACX,MAAO,MAAA,KAAW,MAAA,GAAS,SAAA,CAAU,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,CAAM,gBAAA,IAAoB,CAAA,EAAG,MAAA,EAAQ,KAAA,GAAQ,MAAM,IAAA,CAAK,CAAC,CAAA,KAAM,SAAA,CAAU,CAAC,CAAA,KAAM,KAAK,CAAA,EAAG,EAAA,IAAM,IAAA,GAAO,IAAA,EAAM,CAAA,GAAI,IAAA;AAAA;AAAA,IAEpK,CAAC,MAAA,EAAQ,KAAA,EAAO,KAAA,CAAM,kBAAkB,KAAK;AAAA,GAC/C;AACA,EAAA,MAAM,YAAY,IAAA,GAAO,IAAA,CAAK,CAAC,CAAA,EAAG,IAAA,GAAO,MAAM,CAAC,CAAA;AAChD,EAAA,MAAM,UAAA,GAAa,SAAA,GAAY,SAAA,CAAU,SAAS,CAAA,GAAI,IAAA;AACtD,EAAA,MAAM,YAAA,GAAe,KAAA,CAAM,YAAA,KAAiB,MAAA,GAAY,aAAa,KAAA,CAAM,YAAA;AAC3E,EAAA,MAAM,MAAA,GAAS,CAAC,KAAA,KAAkB,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,KAAM,CAAA,mBAAIb,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,IAAA,EAAM,uBAAA,EAAqB,IAAA,EAAE,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK,CAAA,GAAU,YAAA,GAAe,YAAA,CAAa,KAAK,CAAA,GAAIQ,sBAAAA,CAAY,KAAA,EAAO,MAAM,CAAA;AAC/L,EAAA,MAAM,IAAA,GAAO,MAAM,SAAA,IAAa,QAAA;AAChC,EAAA,MAAM,QAAA,GAAW,IAAA,KAAS,OAAA,GAAU,IAAA,GAAO,cAAc,KAAK,CAAA;AAC9D,EAAA,MAAM,OAAO,QAAA,IAAY,QAAA,GAAW,SAAA,CAAU,QAAA,EAAU,EAAE,MAAA,EAAQ,QAAA,EAAU,CAAA,EAAG,GAAI,WAAW,EAAE,QAAA,KAAa,EAAC,EAAI,CAAA,GAAI,IAAA;AACtH,EAAA,MAAM,YAAY,IAAA,KAAS,IAAA,KAAS,QAAA,IAAY,IAAA,CAAK,QAAQ,IAAA,GAAO,IAAA;AAEpE,EAAA,MAAM,OAAA,GAAU,SAAS,YAAA,IAAgB,IAAA;AACzC,EAAA,MAAM,IAAA,GAAOK,aAAAA;AAAA,IACX,MAAO,MAAA,KAAW,aAAA,GAAgB,cAAA,CAAe,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,CAAM,gBAAA,IAAoB,CAAA,EAAG,CAAA,GAAI,IAAA;AAAA,IAClG,CAAC,MAAA,EAAQ,KAAA,EAAO,KAAA,CAAM,gBAAgB;AAAA,GACxC;AACA,EAAA,MAAM,SAAS,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,SAAA,CAAU,CAAC,CAAA,KAAM,OAAO,CAAC,CAAA,GAAI,KAAA;AAE7F,EAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,EAAW,WAAA,qBACxBb,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,IAAA;AAAA,MACA,KAAA,EAAO,CAAA;AAAA,MACP,QAAA;AAAA,MACA,WAAW,EAAA,CAAG,KAAA;AAAA,MACb,GAAwD,EAAC;AAAA,MACzD,GAAI,KAAA,KAAU,MAAA,GAAY,EAAE,OAAA,EAAS,KAAA,KAAU,CAAA,EAAG,QAAA,EAAU,MAAM,aAAA,GAAgB,CAAC,CAAA,EAAE,GAAI,EAAE,cAAA,EAAgB,CAAA,KAAM,YAAA,EAAc,GAAI,aAAA,GAAgB,EAAE,QAAA,EAAU,MAAM,aAAA,CAAc,CAAC,CAAA,EAAE,GAAI,EAAC,EAAG;AAAA,MAC9L,GAAI,MAAA,GAAS,EAAE,aAAA,EAAe,MAAA,KAAW;AAAC;AAAA,GAC7C;AAGF,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAA4B,CAAA,KAAM,UAAA,GAAa,CAAA,CAAE,QAAA,GAAW,CAAA,KAAM,SAAA,GAAY,CAAA,CAAE,OAAA,GAAU,CAAA,CAAE,SAAA;AAG7G,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,EAAoB,IAAA,KAAwE;AAC3G,IAAA,MAAM,OAAA,GAAU,YAAY,IAAI,CAAA;AAChC,IAAA,MAAM,OAAA,GAAU,YAAY,IAAI,CAAA;AAChC,IAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,IAAA,EAAM,CAAC,CAAA;AAC3B,IAAA,uBACED,eAAAA,CAAC,OAAA,EAAA,EAAoB,SAAA,EAAW,GAAG,MAAA,EAAQ,yBAAA,EAAuB,IAAA,EAAC,cAAA,EAAc,OAAA,IAAW,MAAA,EAAW,cAAA,EAAc,IAAA,CAAK,WAAW,MAAA,EAClI,QAAA,EAAA;AAAA,MAAA,KAAA,CAAM,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,MACrB,KAAA,IAAS,CAAC,IAAA,CAAK,OAAA;AAAA;AAAA,wBAEdC,cAAAA,CAAC,MAAA,EAAA,EAAK,uBAAA,EAAqB,IAAA,EAAC,aAAA,EAAY,MAAA,EACtC,QAAA,kBAAAA,cAAAA,CAAC,SAAA,EAAA,EAAU,KAAA,EAAO,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,KAAA,EAAO,IAAA,EAAM,EAAA,EAAK,GAAI,EAAA,CAAG,IAAA,GAAO,EAAE,SAAA,EAAW,EAAA,CAAG,IAAA,EAAK,GAAI,IAAK,CAAA,EACxH;AAAA,UACE,IAAA;AAAA,sBACJD,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,IAAA,EAAM,yBAAqB,IAAA,EAC7C,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,wBAAA,EAAsB,IAAA,EAC9C,QAAA,EAAA,OAAA,GACC,IAAA,CAAK,OAAA,mBACHD,eAAAA,CAAAI,qBAAA,EAEE,QAAA,EAAA;AAAA,0BAAAJ,eAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,OAAA,EAAU,QAAA,EAAA;AAAA,YAAA,OAAA;AAAA,YAAQ;AAAA,WAAA,EAAC,CAAA;AAAA,0BAChCC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,SAAS,0BAAA,EAAwB,IAAA,EAAC,+BAAA,EAA6B,IAAA,EAChF,QAAA,EAAA,OAAA,EACH;AAAA,SAAA,EACF,CAAA,mBAEAD,eAAAA,CAAAI,mBAAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAAH,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,OAAA,EAAS,0BAAA,EAAwB,MAClD,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,UAAQ,GAAA;AAAA,0BACRA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,OAAA,EAAS,0BAAA,EAAwB,MAClD,QAAA,EAAA,OAAA,EACH;AAAA,SAAA,EACF,CAAA,mBAGFA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,OAAA,EAAS,0BAAA,EAAwB,IAAA,EAClD,QAAA,EAAA,OAAA,EACH,CAAA,EAEJ,CAAA;AAAA,QACC,GAAA,mBACCA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,GAAA,EAAK,sBAAA,EAAoB,IAAA,EAC1C,QAAA,EAAA,GAAA,EACH,CAAA,GACE,IAAA;AAAA,QACH,IAAA,CAAK,IAAA,CAAK,MAAA,mBACTA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,MAAA,EAAQ,yBAAA,EAAuB,IAAA,EAChD,QAAA,EAAA,IAAA,CAAK,KAAK,GAAA,CAAI,CAAC,CAAA,qBACdA,cAAAA,CAAC,MAAA,EAAA,EAAa,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,wBAAA,EAAwB,CAAA,EACxD,QAAA,EAAA,OAAA,CAAQ,CAAC,CAAA,EAAA,EADD,CAEX,CACD,GACH,CAAA,GACE;AAAA,OAAA,EACN,CAAA;AAAA,sBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,wBAAA,EAAsB,IAAA,EAC9C,QAAA,EAAA,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,EACnB;AAAA,KAAA,EAAA,EApDU,KAAK,EAqDjB,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,MAAM,YAAY,KAAA,GAAS,OAAO,UAAU,QAAA,GAAW,KAAA,GAAQ,EAAE,KAAA,GAAS,IAAA;AAE1E,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,IAAA,EAAM,kBAAA,EAAgB,IAAA,EAAC,aAAA,EAAa,MAAA,EAAQ,WAAA,EAAW,OAAA,IAAW,MAAA,EAClF,QAAA,EAAA;AAAA,IAAA,OAAA,IAAW,CAAC,SAAA,mBACXC,cAAAA,CAAC,OAAE,IAAA,EAAK,QAAA,EAAS,SAAA,EAAW,EAAA,CAAG,OAAA,EAAS,0BAAA,EAAwB,IAAA,EAC7D,QAAA,EAAA,CAAA,CAAE,SACL,CAAA,GACE,IAAA;AAAA,IACH,QAAA,mBACCA,cAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,QAAA,EAAS,SAAA,EAAW,EAAA,CAAG,OAAA,EAAS,2BAAA,EAAyB,IAAA,EAC9D,QAAA,EAAA,CAAA,CAAE,UACL,CAAA,GACE,IAAA;AAAA,IACH,OAAA,mBACCA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,OAAA,EAAS,IAAA,EAAK,QAAA,EAAS,0BAAA,EAAwB,IAAA,EACzD,QAAA,EAAA,CAAA,CAAE,OAAA,EACL,CAAA,GACE,IAAA;AAAA,IACH,SAAA,IAAa,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,CAAC,OAAA,mBACnCD,eAAAA,CAAC,KAAA,EAAA,EAAI,MAAK,OAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,0BAAsB,IAAA,EAC3D,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,OAAG,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,MACb,OAAA,mBACCA,cAAAA,CAAC,QAAA,EAAA,EAAO,MAAK,QAAA,EAAS,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,SAAS,OAAA,EAAS,wBAAA,EAAsB,IAAA,EAChF,QAAA,EAAA,CAAA,CAAE,OACL,CAAA,GACE;AAAA,KAAA,EACN,CAAA,GACE,IAAA;AAAA,IACH,QAAA;AAAA,IACA,OAAA,IAAW,KAAA,CAAM,MAAA,KAAW,CAAA,GACzB,CAAC,GAAG,CAAA,EAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,qBAAMA,cAAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,2BAAA,EAAyB,MAAC,aAAA,EAAY,MAAA,EAAA,EAAjE,CAAwE,CAAE,CAAA,GACzG,IAAA;AAAA,IACH,IAAA,GACG,IAAA,CAAK,GAAA,CAAI,CAAC,EAAE,MAAM,IAAA,EAAK,KAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,IAAA,EAAM,aAAa,IAAA,GAAO,EAAC,EAAG,CAAC,CAAA,GAC5E,IAAA,GACA,IAAA,CAAK,WAAA,CAAY,GAAA,CAAI,CAAC,EAAE,IAAA,EAAM,IAAA,OAAW,OAAA,CAAQ,IAAA,EAAM,EAAE,IAAA,EAAM,UAAA,GAAa,IAAA,GAAO,EAAC,EAAG,CAAC,CAAA,GACxF,KAAA,CAAM,GAAA,CAAI,CAAC,SAAS,OAAA,CAAQ,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,EAAE,CAAA,IAAK,EAAC,EAAG,CAAC,CAAA;AAAA,IACzE,QAAQ,IAAA,CAAK,SAAA,GAAY,oBACxBD,eAAAA,CAAC,aAAQ,SAAA,EAAW,EAAA,CAAG,MAAM,uBAAA,EAAqB,IAAA,EAAE,GAAI,MAAA,GAAS,EAAE,MAAM,IAAA,EAAK,GAAI,EAAC,EACjF,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,SAAA,EAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,aAAa,+BAAA,EAA6B,IAAA,EAC9D,QAAA,EAAA,CAAA,CAAE,WAAA,CAAY,QAAQ,KAAA,EAAO,MAAA,CAAO,IAAA,CAAK,SAAS,CAAC,CAAA,EACtD,CAAA;AAAA,sBACAA,eAAC,KAAA,EAAA,EAAI,yBAAA,EAAuB,MACzB,QAAA,EAAA,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM;AACpB,QAAA,MAAM,WAAA,GAAc,EAAE,OAAA,GAAU,WAAA,CAAY,EAAE,OAAA,EAAS,CAAA,CAAE,OAAA,EAAS,CAAA,GAAI,IAAA;AACtE,QAAA,MAAM,KAAK,CAAA,EAAG,IAAI,CAAA,OAAA,EAAU,CAAA,CAAE,OAAO,OAAO,CAAA,CAAA;AAC5C,QAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAA2B,IAAA,EAAK,OAAA,EAAQ,iBAAA,EAAiB,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,wBAAA,EAAwB,CAAA,CAAE,OAAO,OAAA,EAClH,QAAA,EAAA;AAAA,0BAAAA,gBAAC,GAAA,EAAA,EAAE,EAAA,EAAQ,WAAW,EAAA,CAAG,UAAA,EAAY,gCAA4B,IAAA,EAC9D,QAAA,EAAA;AAAA,YAAA,KAAA,IAAS,CAAA,CAAE,OAAA,mBAAUC,cAAAA,CAAC,SAAA,EAAA,EAAU,OAAO,CAAA,CAAE,OAAA,EAAS,IAAA,EAAM,EAAA,EAAI,CAAA,GAAK,IAAA;AAAA,4BAClEA,cAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,WAAA,IAAe,EAAE,aAAA,EAAc;AAAA,WAAA,EACxC,CAAA;AAAA,UACC,EAAE,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,QAAQ,IAAA,EAAM,EAAE,IAAA,EAAM,IAAI,OAAA,EAAS,OAAA,CAAQ,WAAW,CAAA,EAAG,CAAC;AAAA,SAAA,EAAA,EALzE,CAAA,CAAE,OAAO,OAMnB,CAAA;AAAA,MAEJ,CAAC,CAAA,EACH;AAAA,KAAA,EACF,CAAA,GACE,IAAA;AAAA,IACH,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBACXD,eAAAA,CAAC,OAAA,EAAA,EAAwB,SAAA,EAAW,EAAA,CAAG,MAAA,EAAQ,yBAAA,EAAuB,IAAA,EAAC,2BAAuB,IAAA,EAC3F,QAAA,EAAA;AAAA,MAAA,KAAA,CAAM,WAAA,CAAY,CAAC,CAAC,CAAA;AAAA,MACpB,wBAAQC,cAAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,IAAI,CAAA,GAAK,IAAA;AAAA,sBACrCD,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,IAAA,EAAM,yBAAqB,IAAA,EAC7C,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,OAAO,wBAAA,EAAsB,IAAA,EAC/C,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,OAAA,EAAS,0BAAA,EAAwB,MAClD,QAAA,EAAA,CAAA,CAAE,WAAA,CAAY,QAAQ,QAAA,EAAU,CAAA,CAAE,IAAI,CAAA,EACzC,CAAA,EACF,CAAA;AAAA,QACC,CAAA,CAAE,OAAA,IAAW,CAAA,CAAE,IAAA,mBACdA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,GAAA,EAAK,sBAAA,EAAoB,IAAA,EAC1C,WAAC,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,IAAI,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,EAChD,CAAA,GACE;AAAA,OAAA,EACN,CAAA;AAAA,sBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,KAAA,EAAO,0BAAsB,IAAA,EAC/C,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,IAAA,EAAM,yBAAqB,IAAA,EAC5C,QAAA,EAAA,CAAA,CAAE,MACL,CAAA,EACF;AAAA,KAAA,EAAA,EAnBU,CAAA,CAAE,SAoBd,CACD,CAAA;AAAA,IACA,2BACCA,cAAAA,CAAC,OAAE,SAAA,EAAW,EAAA,CAAG,MAAM,uBAAA,EAAqB,IAAA,EAAC,WAAA,EAAW,SAAA,EAAW,QAAQ,MAAA,EAAW,WAAA,EAAU,UAC7F,QAAA,EAAA,SAAA,EAAW,IAAA,IAAQ,IACtB,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ","file":"checkout.cjs","sourcesContent":["/**\n * Form fields of a checkout with inline validation: a labelled field that shows its own error under it, a focusable\n * error summary for the submit, and one hook that reads the browser's own constraint validation (`required`, `type`,\n * `pattern`, `minLength`...) so the rules stay in the HTML and the page keeps working without JavaScript (then the\n * browser explains the errors itself).\n *\n * WCAG 2.2: errors are identified in text next to the field (3.3.1), linked with `aria-describedby` and `aria-invalid`,\n * and the summary takes focus and links to every field (3.3.1 / 2.4.3). Validation runs when the buyer leaves a field\n * that has a value, and clears as soon as it is fixed: it never nags while typing.\n */\nimport { useEffect, useRef, useState, type InputHTMLAttributes, type ReactNode, type RefObject, type SelectHTMLAttributes } from 'react'\n\nexport type FieldMessages = {\n valueMissing: string\n /** Required radio group (delivery, payment). */\n choiceMissing: string\n email: string\n tel: string\n pattern: string\n /** `{n}` = minimum length. */\n tooShort: string\n /** A field the server rejected. */\n server: string\n /** Error summary title, `{n}` = number of fields. */\n summaryOne: string\n summaryMany: string\n optional: string\n}\n\nconst ES: FieldMessages = {\n valueMissing: 'Completa este campo.',\n choiceMissing: 'Elige una opción.',\n email: 'Escribe un correo válido, por ejemplo nombre@correo.com.',\n tel: 'Escribe un teléfono válido.',\n pattern: 'Revisa el formato.',\n tooShort: 'Escribe al menos {n} caracteres.',\n server: 'Revisa este campo.',\n summaryOne: 'Revisa 1 campo para continuar',\n summaryMany: 'Revisa {n} campos para continuar',\n optional: '(opcional)',\n}\n\nconst EN: FieldMessages = {\n valueMissing: 'Fill in this field.',\n choiceMissing: 'Choose an option.',\n email: 'Enter a valid email, like name@example.com.',\n tel: 'Enter a valid phone number.',\n pattern: 'Check the format.',\n tooShort: 'Enter at least {n} characters.',\n server: 'Check this field.',\n summaryOne: 'Check 1 field to continue',\n summaryMany: 'Check {n} fields to continue',\n optional: '(optional)',\n}\n\n/** Messages for a locale (`es*` default, `en*`), with optional overrides. */\nexport function fieldMessages(locale?: string | null, overrides?: Partial<FieldMessages> | null): FieldMessages {\n const base = (locale ?? 'es-MX').toLowerCase().startsWith('en') ? EN : ES\n return overrides ? { ...base, ...overrides } : base\n}\n\n/** Field name -> error text. */\nexport type FieldErrors = Record<string, string>\n\nexport type ErrorSummaryItem = { name: string; id: string; label: string; message: string }\n\ntype Control = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement\n\nconst isControl = (el: EventTarget | null): el is Control =>\n !!el && typeof (el as Element).tagName === 'string' && ['INPUT', 'SELECT', 'TEXTAREA'].includes((el as Element).tagName) && !!(el as Control).name\n\n/**\n * The error text for a control, from its validity. A control can bring its own text with `data-sf-error` (any\n * failure) or `title` (pattern mismatch, the HTML convention).\n */\nexport function validationMessage(el: Control, m: FieldMessages = ES): string | null {\n const v = el.validity\n if (!v || v.valid) return null\n const own = el.getAttribute('data-sf-error')\n if (own) return own\n if (v.valueMissing) return el instanceof HTMLInputElement && (el.type === 'radio' || el.type === 'checkbox') ? m.choiceMissing : m.valueMissing\n if (v.typeMismatch && el instanceof HTMLInputElement) return el.type === 'email' ? m.email : el.type === 'tel' ? m.tel : m.pattern\n if (v.patternMismatch) return el.getAttribute('title') || (el instanceof HTMLInputElement && el.type === 'tel' ? m.tel : m.pattern)\n if (v.tooShort && el instanceof HTMLInputElement) return m.tooShort.replace('{n}', String(el.minLength))\n return el.validationMessage || m.pattern\n}\n\n/** Visible name of a control: its `<label>`, `aria-label`, or the legend of its group (radios). */\nfunction labelOf(el: Control): string {\n if (el instanceof HTMLInputElement && el.type === 'radio') {\n const legend = el.closest('fieldset')?.querySelector('legend')\n if (legend?.textContent) return legend.textContent.trim()\n }\n const text = el.labels?.[0]?.getAttribute('data-sf-label') ?? el.labels?.[0]?.textContent ?? el.getAttribute('aria-label') ?? el.name\n return text.trim()\n}\n\nexport type UseFieldErrorsOptions = {\n locale?: string\n messages?: Partial<FieldMessages>\n /** Fields the server rejected (e.g. from the action), shown with `serverMessages[name]` or the generic text. */\n serverFields?: Iterable<string> | null\n serverMessages?: Record<string, string> | null\n}\n\nexport type FieldErrorsState = {\n errors: FieldErrors\n /** Non-null after a submit with problems (or with server errors): render it in `<ErrorSummary>`. */\n summary: ErrorSummaryItem[] | null\n /** Changes every time a new summary appears, so `<ErrorSummary>` focuses it again. */\n summaryKey: number\n clear: () => void\n}\n\n/**\n * Inline validation for the page `<form>`. Listens to the form (no wrapping component): leaving a field with a value\n * checks it; typing in a field with an error clears it when fixed; a submit or `reportValidity()` with problems\n * collects them (the browser's bubbles are replaced by the inline texts) for the summary.\n */\nexport function useFieldErrors(formRef: RefObject<HTMLFormElement | null>, options: UseFieldErrorsOptions = {}): FieldErrorsState {\n const m = fieldMessages(options.locale, options.messages)\n const live = useRef(m)\n live.current = m\n const server = [...(options.serverFields ?? [])]\n const serverKey = server.join('|')\n const [errors, setErrors] = useState<FieldErrors>(() => Object.fromEntries(server.map((n) => [n, options.serverMessages?.[n] ?? m.server])))\n const [summary, setSummary] = useState<ErrorSummaryItem[] | null>(null)\n const [summaryKey, setSummaryKey] = useState(0)\n\n // Server errors (a new action result): inline texts plus a summary.\n useEffect(() => {\n if (!server.length) return\n const form = formRef.current\n const items: ErrorSummaryItem[] = []\n const next: FieldErrors = {}\n for (const name of server) {\n const msg = options.serverMessages?.[name] ?? live.current.server\n next[name] = msg\n const el = form?.elements.namedItem(name)\n const ctl = el && 'length' in el && !(el instanceof HTMLSelectElement) ? ((el as RadioNodeList)[0] as Control | undefined) : (el as Control | null)\n if (ctl) items.push({ name, id: ctl.id || name, label: labelOf(ctl), message: msg })\n }\n setErrors((e) => ({ ...e, ...next }))\n if (items.length) {\n setSummary(items)\n setSummaryKey((k) => k + 1)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [serverKey])\n\n useEffect(() => {\n const form = formRef.current\n if (!form) return\n let batch: Control[] | null = null\n const set = (name: string, msg: string | null) =>\n setErrors((e) => {\n if (msg === null) {\n if (!(name in e)) return e\n const { [name]: _gone, ...rest } = e\n return rest\n }\n return e[name] === msg ? e : { ...e, [name]: msg }\n })\n const onBlur = (ev: FocusEvent) => {\n const el = ev.target\n if (!isControl(el) || (el instanceof HTMLInputElement && (el.type === 'radio' || el.type === 'checkbox' || el.type === 'hidden'))) return\n // Leaving an empty field you only tabbed through is not an error yet; it is at submit.\n if (!el.value) return\n set(el.name, validationMessage(el, live.current))\n }\n const onInput = (ev: Event) => {\n const el = ev.target\n if (!isControl(el)) return\n setErrors((e) => {\n if (!(el.name in e)) return e\n const msg = el.validity.valid ? null : validationMessage(el, live.current)\n if (msg !== null) return e // keep the text until the field is fixed (no flicker while typing)\n const { [el.name]: _gone, ...rest } = e\n return rest\n })\n }\n const onInvalid = (ev: Event) => {\n const el = ev.target\n if (!isControl(el)) return\n ev.preventDefault() // the inline text replaces the browser bubble\n if (!batch) {\n batch = []\n queueMicrotask(() => {\n const list = batch ?? []\n batch = null\n const seen = new Set<string>()\n const items: ErrorSummaryItem[] = []\n const next: FieldErrors = {}\n for (const c of list) {\n if (seen.has(c.name)) continue\n seen.add(c.name)\n const msg = validationMessage(c, live.current) ?? live.current.valueMissing\n next[c.name] = msg\n items.push({ name: c.name, id: c.id || c.name, label: labelOf(c), message: msg })\n }\n setErrors((e) => ({ ...e, ...next }))\n setSummary(items)\n setSummaryKey((k) => k + 1)\n })\n }\n batch.push(el)\n }\n form.addEventListener('focusout', onBlur)\n form.addEventListener('input', onInput)\n form.addEventListener('change', onInput)\n form.addEventListener('invalid', onInvalid, true)\n return () => {\n form.removeEventListener('focusout', onBlur)\n form.removeEventListener('input', onInput)\n form.removeEventListener('change', onInput)\n form.removeEventListener('invalid', onInvalid, true)\n }\n }, [formRef])\n\n // The summary follows the fixes: a field fixed after the submit leaves the list.\n const shown = summary ? summary.filter((s) => s.name in errors).map((s) => ({ ...s, message: errors[s.name]! })) : null\n return {\n errors,\n summary: shown && shown.length ? shown : null,\n summaryKey,\n clear: () => {\n setErrors({})\n setSummary(null)\n },\n }\n}\n\nexport type ErrorSummaryProps = {\n items: readonly ErrorSummaryItem[] | null\n /** Changes when a new summary must take focus (`useFieldErrors().summaryKey`). */\n focusKey?: number\n locale?: string\n messages?: Partial<FieldMessages>\n title?: ReactNode\n className?: string\n classNames?: Partial<Record<'title' | 'list' | 'link', string>>\n}\n\n/**\n * The list of problems after a submit, above the form: `role=\"alert\"`, takes focus, one link per field (moves the\n * focus to it). Renders nothing without items.\n */\nexport function ErrorSummary({ items, focusKey, locale, messages, title, className, classNames: cx = {} }: ErrorSummaryProps) {\n const ref = useRef<HTMLDivElement>(null)\n const m = fieldMessages(locale, messages)\n const has = !!items && items.length > 0\n useEffect(() => {\n if (has) ref.current?.focus()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focusKey])\n if (!has) return null\n const n = items!.length\n return (\n <div ref={ref} role=\"alert\" tabIndex={-1} className={className} data-sf-error-summary aria-labelledby=\"sf-error-summary-title\">\n <p id=\"sf-error-summary-title\" className={cx.title} data-sf-error-summary-title>\n {title ?? (n === 1 ? m.summaryOne : m.summaryMany.replace('{n}', String(n)))}\n </p>\n <ul className={cx.list}>\n {items!.map((it) => (\n <li key={it.name}>\n <a\n href={`#${it.id}`}\n className={cx.link}\n onClick={(e) => {\n const el = document.getElementById(it.id)\n if (!el) return\n e.preventDefault()\n el.focus()\n el.scrollIntoView?.({ block: 'center' })\n }}\n >\n {it.label}: {it.message}\n </a>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n\nexport type CheckoutFieldClassNames = Partial<Record<'root' | 'label' | 'optional' | 'input' | 'hint' | 'error', string>>\n\ntype BaseFieldProps = {\n name: string\n label: string\n /** Field id. Default: the name. */\n id?: string\n /** Error text (from `useFieldErrors().errors[name]` or the server). */\n error?: string | null\n /** Help under the label (\"we only use it for the delivery\"). */\n hint?: ReactNode\n /** Marks the label \"(optional)\" and drops `required`. */\n optional?: boolean\n classNames?: CheckoutFieldClassNames\n locale?: string\n messages?: Partial<FieldMessages>\n}\n\nexport type CheckoutFieldProps = BaseFieldProps & Omit<InputHTMLAttributes<HTMLInputElement>, 'name' | 'id'> & { as?: 'input' }\nexport type CheckoutSelectProps = BaseFieldProps & Omit<SelectHTMLAttributes<HTMLSelectElement>, 'name' | 'id'> & { as: 'select'; children: ReactNode }\n\n/**\n * One labelled field: label (with \"(optional)\"), hint, the control and its error text, wired with `aria-describedby`\n * and `aria-invalid`. Required unless `optional`. `as=\"select\"` renders a `<select>` with the given options.\n */\nexport function CheckoutField(props: CheckoutFieldProps | CheckoutSelectProps) {\n const { name, label, id = name, error, hint, optional = false, classNames: cx = {}, locale, messages, ...rest } = props\n const m = fieldMessages(locale, messages)\n const hintId = hint ? `${id}-hint` : undefined\n const errorId = `${id}-error`\n const describedBy = [hintId, error ? errorId : undefined].filter(Boolean).join(' ') || undefined\n const common = {\n id,\n name,\n required: !optional,\n 'aria-invalid': error ? true : undefined,\n 'aria-describedby': describedBy,\n className: cx.input,\n 'data-sf-field-control': '',\n } as const\n return (\n <div className={cx.root} data-sf-field data-invalid={error ? '' : undefined}>\n <label htmlFor={id} className={cx.label} data-sf-label={label}>\n {label}\n {optional ? (\n <span className={cx.optional} data-sf-field-optional>\n {' '}\n {m.optional}\n </span>\n ) : null}\n </label>\n {hint ? (\n <p id={hintId} className={cx.hint} data-sf-field-hint>\n {hint}\n </p>\n ) : null}\n {rest.as === 'select' ? (\n (() => {\n const { as: _as, children, ...select } = rest\n return (\n <select {...select} {...common}>\n {children}\n </select>\n )\n })()\n ) : (\n (() => {\n const { as: _as, ...input } = rest as CheckoutFieldProps\n return <input {...input} {...common} />\n })()\n )}\n {/* Reserved only when there is an error: the text sits right under its field. */}\n {error ? (\n <p id={errorId} className={cx.error} data-sf-field-error>\n {error}\n </p>\n ) : null}\n </div>\n )\n}\n","/**\n * Contact and shipping address fields of a checkout, in the order and with the autofill tokens buyers expect:\n * contact (e-mail, phone, given and family name) and address (postal code first, so it can fill state and city, then\n * state, city, colonia, street, interior and delivery references). One column on phones; the shop lays out the grid\n * with `classNames`.\n *\n * Nothing here knows a country: the postal-code format, the list of states and the postal-code lookup come from the\n * shop (region config, a same-origin route). Without them the fields are plain text and nothing is invented.\n */\nimport { useEffect, useId, useRef, useState, type ReactNode } from 'react'\nimport type { Address } from '@asteby/storefront'\nimport { CheckoutField, type CheckoutFieldClassNames, type FieldErrors, type FieldMessages } from './fields.js'\n\nexport type AddressFieldKey = 'zip' | 'province' | 'city' | 'neighborhood' | 'address1' | 'address2' | 'reference'\nexport type ContactFieldKey = 'email' | 'phone' | 'first_name' | 'last_name'\n\nexport type AddressFieldsMessages = Record<AddressFieldKey | ContactFieldKey, string> & {\n provincePlaceholder: string\n address1Hint: string\n referenceHint: string\n emailHint: string\n phoneHint: string\n lookupFilled: string\n}\n\nconst ES: AddressFieldsMessages = {\n email: 'Correo',\n phone: 'Teléfono',\n first_name: 'Nombre',\n last_name: 'Apellidos',\n zip: 'Código postal',\n province: 'Estado',\n city: 'Ciudad o municipio',\n neighborhood: 'Colonia',\n address1: 'Calle y número',\n address2: 'Número interior o departamento',\n reference: 'Referencias para la entrega',\n provincePlaceholder: 'Elige tu estado',\n address1Hint: 'Por ejemplo: Av. Insurgentes Sur 1234',\n referenceHint: 'Entre qué calles, color de la fachada…',\n emailHint: 'Te enviamos aquí la confirmación y el seguimiento.',\n phoneHint: 'Solo para la paquetería, por si necesita contactarte.',\n lookupFilled: 'Completamos estado y ciudad con tu código postal.',\n}\n\nconst EN: AddressFieldsMessages = {\n email: 'Email',\n phone: 'Phone',\n first_name: 'First name',\n last_name: 'Last name',\n zip: 'Postal code',\n province: 'State',\n city: 'City',\n neighborhood: 'Neighborhood',\n address1: 'Street and number',\n address2: 'Apartment, suite',\n reference: 'Delivery notes',\n provincePlaceholder: 'Choose your state',\n address1Hint: 'For example: 1234 Main St',\n referenceHint: 'Cross streets, building color…',\n emailHint: 'We send the confirmation and tracking here.',\n phoneHint: 'Only for the carrier, in case they need to reach you.',\n lookupFilled: 'We filled in state and city from your postal code.',\n}\n\nexport function addressFieldsMessages(locale?: string | null, overrides?: Partial<AddressFieldsMessages> | null): AddressFieldsMessages {\n const base = (locale ?? 'es-MX').toLowerCase().startsWith('en') ? EN : ES\n return overrides ? { ...base, ...overrides } : base\n}\n\nexport type FieldLayoutClassNames = CheckoutFieldClassNames & {\n /** Extra class of a field that should span the whole row in a two-column grid. */\n wide?: string\n /** Extra class of a field that fits half a row. */\n half?: string\n}\n\ntype Common = {\n /** Inline errors by field name (`useFieldErrors().errors`). */\n errors?: FieldErrors\n locale?: string\n messages?: Partial<AddressFieldsMessages>\n fieldMessages?: Partial<FieldMessages>\n classNames?: FieldLayoutClassNames\n}\n\nconst join = (...c: Array<string | undefined>) => c.filter(Boolean).join(' ') || undefined\nconst field = (cx: FieldLayoutClassNames, span: 'wide' | 'half'): CheckoutFieldClassNames => ({ ...cx, root: join(cx.root, cx[span]) })\n\nexport type ContactFieldsProps = Common & {\n defaults?: Partial<Record<ContactFieldKey, string | null>>\n /** Form names. Default: the keys. */\n names?: Partial<Record<ContactFieldKey, string>>\n /** Phone format from the shop or region (e.g. `{ pattern: '[0-9 +()-]{10,}', title: '10 dígitos' }`). */\n phone?: { pattern?: string; title?: string; minLength?: number }\n /** Explain why e-mail and phone are needed (default true). */\n hints?: boolean\n}\n\n/** E-mail, phone, given and family name with their autofill tokens and the right mobile keyboards. */\nexport function ContactFields({ defaults = {}, names = {}, errors = {}, phone, hints = true, locale, messages, fieldMessages: fm, classNames: cx = {} }: ContactFieldsProps) {\n const m = addressFieldsMessages(locale, messages)\n const n = (k: ContactFieldKey) => names[k] ?? k\n const common = { ...(locale ? { locale } : {}), ...(fm ? { messages: fm } : {}) }\n return (\n <>\n <CheckoutField {...common} name={n('email')} label={m.email} type=\"email\" autoComplete=\"email\" inputMode=\"email\" autoCapitalize=\"none\" spellCheck={false} defaultValue={defaults.email ?? ''} error={errors[n('email')] ?? null} hint={hints ? m.emailHint : undefined} classNames={field(cx, 'wide')} />\n <CheckoutField {...common} name={n('phone')} label={m.phone} type=\"tel\" autoComplete=\"tel\" inputMode=\"tel\" defaultValue={defaults.phone ?? ''} error={errors[n('phone')] ?? null} hint={hints ? m.phoneHint : undefined} classNames={field(cx, 'wide')} {...(phone?.pattern ? { pattern: phone.pattern } : {})} {...(phone?.title ? { title: phone.title } : {})} {...(phone?.minLength ? { minLength: phone.minLength } : {})} />\n <CheckoutField {...common} name={n('first_name')} label={m.first_name} autoComplete=\"given-name\" defaultValue={defaults.first_name ?? ''} error={errors[n('first_name')] ?? null} classNames={field(cx, 'half')} />\n <CheckoutField {...common} name={n('last_name')} label={m.last_name} autoComplete=\"family-name\" defaultValue={defaults.last_name ?? ''} error={errors[n('last_name')] ?? null} classNames={field(cx, 'half')} />\n </>\n )\n}\n\n/** What a postal-code lookup answers. Every field optional: only what the source knows. */\nexport type PostalCodeInfo = { province?: string | null; city?: string | null; neighborhoods?: readonly string[] | null }\n\nexport type AddressFieldsProps = Common & {\n defaults?: Partial<Pick<Address, 'zip' | 'province' | 'city' | 'neighborhood' | 'address1' | 'address2' | 'reference'>> | null\n /** Form names. Default: the keys (the `AddressInput` fields of the Storefront API). */\n names?: Partial<Record<AddressFieldKey, string>>\n /** ISO country of the address (hidden field `country_code`). */\n countryCode: string\n /** States of the country (from the region config). With them, \"State\" is a `<select>`; the value sent is `name`. */\n provinces?: ReadonlyArray<{ code?: string | null; name: string }> | null\n /** Postal-code format of the country (from the region config), e.g. `{ pattern: '[0-9]{5}', maxLength: 5, inputMode: 'numeric', title: '5 dígitos' }`. */\n postalCode?: { pattern?: string; maxLength?: number; inputMode?: 'numeric' | 'text'; title?: string }\n /**\n * Fills state and city (and suggests colonias) from the postal code, when the shop has a source (a same-origin\n * route over a postal-code catalog). Called once the code matches `postalCode.pattern` (or on leaving the field).\n * Never overwrites what the buyer typed.\n */\n lookupPostalCode?: (zip: string) => Promise<PostalCodeInfo | null>\n /** Show the colonia field: `true` (default, optional), `'required'`, or `false`. */\n neighborhood?: boolean | 'required'\n /** Show the delivery references field (default true, optional). */\n reference?: boolean\n /** Rendered after the fields (e.g. \"save this address\"). */\n children?: ReactNode\n}\n\n/**\n * Shipping address in the order buyers fill it: postal code, state, city, colonia, street and number, interior and\n * references. Autofill tokens: `postal-code`, `address-level1/2/3`, `address-line1/2`. The postal code uses the\n * numeric keyboard when the country format is numeric.\n */\nexport function AddressFields(props: AddressFieldsProps) {\n const { defaults, names = {}, errors = {}, countryCode, provinces, postalCode, lookupPostalCode, locale, messages, fieldMessages: fm, classNames: cx = {}, children } = props\n const showNeighborhood = props.neighborhood ?? true\n const showReference = props.reference ?? true\n const m = addressFieldsMessages(locale, messages)\n const n = (k: AddressFieldKey) => names[k] ?? k\n const common = { ...(locale ? { locale } : {}), ...(fm ? { messages: fm } : {}) }\n const listId = useId()\n const [colonias, setColonias] = useState<readonly string[]>([])\n const [filled, setFilled] = useState(false)\n const lastZip = useRef<string | null>(null)\n const zipRef = useRef<HTMLDivElement>(null)\n const lookupRef = useRef(lookupPostalCode)\n lookupRef.current = lookupPostalCode\n\n const runLookup = (zip: string) => {\n const lookup = lookupRef.current\n if (!lookup || !zip || zip === lastZip.current) return\n if (postalCode?.pattern && !new RegExp(`^(?:${postalCode.pattern})$`).test(zip)) return\n lastZip.current = zip\n const form = zipRef.current?.closest('form')\n void lookup(zip).then(\n (info) => {\n if (!info || lastZip.current !== zip) return\n const fill = (name: string, value: string | null | undefined) => {\n const el = form?.elements.namedItem(name) as HTMLInputElement | HTMLSelectElement | null\n if (!el || !value || ('length' in el && !(el instanceof HTMLSelectElement))) return false\n // Only an empty field, or one this lookup filled before: never what the buyer typed.\n if (el.value && el.dataset.sfAutofilled !== '1') return false\n if (el instanceof HTMLSelectElement && ![...el.options].some((o) => o.value === value)) return false\n el.value = value\n el.dataset.sfAutofilled = '1'\n el.dispatchEvent(new Event('input', { bubbles: true }))\n return true\n }\n const a = fill(n('province'), info.province)\n const b = fill(n('city'), info.city)\n setColonias(info.neighborhoods ?? [])\n setFilled(a || b)\n },\n () => {\n /* no lookup: the buyer types state and city */\n },\n )\n }\n\n useEffect(() => {\n const zip = defaults?.zip\n if (zip) runLookup(zip)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const numericZip = postalCode?.inputMode === 'numeric'\n return (\n <>\n <div ref={zipRef} className={join(cx.half)} data-sf-zip>\n <CheckoutField\n {...common}\n name={n('zip')}\n label={m.zip}\n autoComplete=\"postal-code\"\n inputMode={postalCode?.inputMode ?? 'text'}\n {...(postalCode?.pattern ? { pattern: postalCode.pattern } : {})}\n {...(postalCode?.maxLength ? { maxLength: postalCode.maxLength } : {})}\n {...(postalCode?.title ? { title: postalCode.title } : {})}\n {...(numericZip ? { autoCapitalize: 'none' } : {})}\n defaultValue={defaults?.zip ?? ''}\n error={errors[n('zip')] ?? null}\n classNames={{ ...cx, root: cx.root }}\n onInput={(e) => {\n const v = e.currentTarget.value.trim()\n if (postalCode?.maxLength && v.length === postalCode.maxLength) runLookup(v)\n }}\n onBlur={(e) => runLookup(e.currentTarget.value.trim())}\n />\n </div>\n {provinces && provinces.length ? (\n <CheckoutField {...common} as=\"select\" name={n('province')} label={m.province} autoComplete=\"address-level1\" defaultValue={defaults?.province ?? ''} error={errors[n('province')] ?? null} classNames={field(cx, 'half')}>\n <option value=\"\" disabled>\n {m.provincePlaceholder}\n </option>\n {provinces.map((p) => (\n <option key={p.code ?? p.name} value={p.name}>\n {p.name}\n </option>\n ))}\n </CheckoutField>\n ) : (\n <CheckoutField {...common} name={n('province')} label={m.province} autoComplete=\"address-level1\" defaultValue={defaults?.province ?? ''} error={errors[n('province')] ?? null} classNames={field(cx, 'half')} />\n )}\n <CheckoutField {...common} name={n('city')} label={m.city} autoComplete=\"address-level2\" defaultValue={defaults?.city ?? ''} error={errors[n('city')] ?? null} classNames={field(cx, 'half')} />\n {showNeighborhood ? (\n <CheckoutField\n {...common}\n name={n('neighborhood')}\n label={m.neighborhood}\n autoComplete=\"address-level3\"\n optional={showNeighborhood !== 'required'}\n defaultValue={defaults?.neighborhood ?? ''}\n error={errors[n('neighborhood')] ?? null}\n classNames={field(cx, 'half')}\n {...(colonias.length ? { list: listId } : {})}\n />\n ) : null}\n {colonias.length ? (\n <datalist id={listId}>\n {colonias.map((c) => (\n <option key={c} value={c} />\n ))}\n </datalist>\n ) : null}\n {/* The lookup result, announced once (not on every keystroke). */}\n <p role=\"status\" aria-live=\"polite\" data-sf-zip-status style={filled ? undefined : { position: 'absolute', width: 1, height: 1, overflow: 'hidden', clip: 'rect(0 0 0 0)', whiteSpace: 'nowrap' }} className={filled ? join(cx.hint, cx.wide) : undefined}>\n {filled ? m.lookupFilled : ''}\n </p>\n <CheckoutField {...common} name={n('address1')} label={m.address1} autoComplete=\"address-line1\" defaultValue={defaults?.address1 ?? ''} error={errors[n('address1')] ?? null} hint={m.address1Hint} classNames={field(cx, 'wide')} />\n <CheckoutField {...common} name={n('address2')} label={m.address2} autoComplete=\"address-line2\" optional defaultValue={defaults?.address2 ?? ''} error={errors[n('address2')] ?? null} classNames={field(cx, 'half')} />\n {showReference ? (\n <CheckoutField {...common} name={n('reference')} label={m.reference} optional defaultValue={defaults?.reference ?? ''} error={errors[n('reference')] ?? null} hint={m.referenceHint} classNames={field(cx, 'wide')} maxLength={200} />\n ) : null}\n <input type=\"hidden\" name=\"country_code\" value={countryCode} />\n {children}\n </>\n )\n}\n","import { createContext, useContext, useMemo, type ReactNode } from 'react'\nimport { createStorefrontClient, type Shop, type StorefrontClient, type StorefrontClientOptions } from '@asteby/storefront'\n\nexport type StorefrontContextValue = {\n /** Client for browser-side calls (use a public `pk_` token). */\n client: StorefrontClient | null\n shop: Shop | null\n /** BCP 47 locale used for formatting (defaults to `shop.locale`, then `es-MX`). */\n locale: string\n /** ISO 4217 currency (defaults to `shop.currency_code`, then `MXN`). */\n currency: string\n}\n\nconst StorefrontContext = createContext<StorefrontContextValue | null>(null)\n\nexport type StorefrontProviderProps = {\n /** A ready client. Takes precedence over `config`. */\n client?: StorefrontClient\n /** Options to create the browser client (use a `pk_` token). */\n config?: StorefrontClientOptions\n /** Shop info loaded on the server (root loader). */\n shop?: Shop | null\n locale?: string\n currency?: string\n children?: ReactNode\n}\n\n/**\n * Makes the storefront client, shop, locale and currency available to the\n * tree. SSR-safe: creating the client does not touch `window`.\n */\nexport function StorefrontProvider({ client, config, shop = null, locale, currency, children }: StorefrontProviderProps) {\n const configKey = config ? `${config.baseUrl}|${config.token}|${config.locale ?? ''}|${config.customerToken ?? ''}` : ''\n const resolvedClient = useMemo(\n () => client ?? (config ? createStorefrontClient(config) : null),\n [client, configKey],\n )\n const value = useMemo<StorefrontContextValue>(\n () => ({\n client: resolvedClient,\n shop,\n locale: locale ?? config?.locale ?? shop?.locale ?? 'es-MX',\n currency: currency ?? shop?.currency_code ?? 'MXN',\n }),\n [resolvedClient, shop, locale, currency, config?.locale],\n )\n return <StorefrontContext.Provider value={value}>{children}</StorefrontContext.Provider>\n}\n\n/** Storefront context. Throws outside `<StorefrontProvider>`. */\nexport function useStorefront(): StorefrontContextValue {\n const ctx = useContext(StorefrontContext)\n if (!ctx) throw new Error('useStorefront must be used inside <StorefrontProvider>')\n return ctx\n}\n\n/** Storefront context or `null` outside a provider (for components that work standalone). */\nexport function useOptionalStorefront(): StorefrontContextValue | null {\n return useContext(StorefrontContext)\n}\n\n/** The client from context; throws when the provider has none. */\nexport function useStorefrontClient(): StorefrontClient {\n const { client } = useStorefront()\n if (!client) throw new Error('<StorefrontProvider> needs a `client` or `config` for browser-side calls')\n return client\n}\n","import { useOptionalStorefront } from './context.js'\n\n/** Locale of a component: its own prop, else the `StorefrontProvider`'s, else `es-MX`. */\nexport function useResolvedLocale(locale?: string | null): string {\n const sf = useOptionalStorefront()\n return locale ?? sf?.locale ?? 'es-MX'\n}\n","/**\n * Order summary of a checkout: lines and the server totals (subtotal, discounts, shipping, taxes, total) exactly as\n * `cart.cost` sends them; nothing is added or recalculated. `OrderSummaryDisclosure` wraps it for phones: a collapsed\n * bar with the total at the top of the page (native `<details>`, no JavaScript, no layout shift on hydration).\n */\nimport type { ReactNode } from 'react'\nimport { formatMoney, type CartCost, type CartLine, type Money } from '@asteby/storefront'\nimport { useResolvedLocale } from '../locale.js'\n\nexport type OrderSummaryMessages = {\n title: string\n subtotal: string\n discount: string\n shipping: string\n /** Shipping not chosen yet. */\n shippingPending: string\n /** Shipping being saved / re-read. */\n updating: string\n free: string\n taxes: string\n /** Taxes already inside the prices, `{amount}`. */\n taxesIncluded: string\n total: string\n /** `{n}` = quantity. */\n quantity: string\n show: string\n hide: string\n}\n\nconst ES: OrderSummaryMessages = {\n title: 'Tu pedido',\n subtotal: 'Subtotal',\n discount: 'Descuento',\n shipping: 'Envío',\n shippingPending: 'Al elegir la entrega',\n updating: 'Actualizando…',\n free: 'Gratis',\n taxes: 'Impuestos',\n taxesIncluded: 'Incluye {amount} de impuestos',\n total: 'Total',\n quantity: 'Cantidad: {n}',\n show: 'Ver resumen del pedido',\n hide: 'Ocultar resumen del pedido',\n}\n\nconst EN: OrderSummaryMessages = {\n title: 'Your order',\n subtotal: 'Subtotal',\n discount: 'Discount',\n shipping: 'Shipping',\n shippingPending: 'Calculated at delivery',\n updating: 'Updating…',\n free: 'Free',\n taxes: 'Taxes',\n taxesIncluded: 'Includes {amount} in taxes',\n total: 'Total',\n quantity: 'Quantity: {n}',\n show: 'Show order summary',\n hide: 'Hide order summary',\n}\n\nexport function orderSummaryMessages(locale?: string | null, overrides?: Partial<OrderSummaryMessages> | null): OrderSummaryMessages {\n const base = (locale ?? 'es-MX').toLowerCase().startsWith('en') ? EN : ES\n return overrides ? { ...base, ...overrides } : base\n}\n\nexport type OrderSummaryClassNames = Partial<\n Record<'root' | 'title' | 'lines' | 'line' | 'media' | 'qty' | 'lineTitle' | 'variant' | 'linePrice' | 'totals' | 'row' | 'discount' | 'muted' | 'free' | 'total' | 'note', string>\n>\n\nexport type OrderSummaryProps = {\n lines: readonly CartLine[]\n /** `cart.cost` as the server sends it. */\n cost: CartCost\n /** The delivery is being saved and the cart re-read: shipping and total say so (`aria-busy`). */\n updating?: boolean\n /** Picture of a line (e.g. `<ProductImage>`), 48-64 px. The quantity badge sits on it. */\n renderLineMedia?: (line: CartLine) => ReactNode\n renderAmount?: (amount: Money) => ReactNode\n /** Heading. `false` hides it (the disclosure already names the block). */\n title?: ReactNode | false\n /** Heading level. Default 2. */\n headingLevel?: 2 | 3\n locale?: string\n messages?: Partial<OrderSummaryMessages>\n classNames?: OrderSummaryClassNames\n /** Rendered between the lines and the totals (e.g. a discount code form). */\n children?: ReactNode\n}\n\nconst isZero = (m: Money | null | undefined) => !!m && Number(m.amount) === 0\nconst positive = (m: Money | null | undefined): m is Money => !!m && Number(m.amount) > 0\n\n/** Lines and totals of the order. The total row is `aria-live`, so a new total after choosing delivery is announced. */\nexport function OrderSummary(props: OrderSummaryProps) {\n const { lines, cost, updating = false, renderLineMedia, renderAmount, title, headingLevel = 2, classNames: cx = {}, children } = props\n const locale = useResolvedLocale(props.locale)\n const m = orderSummaryMessages(locale, props.messages)\n const money = (v: Money) => (renderAmount ? renderAmount(v) : formatMoney(v, locale))\n const H = headingLevel === 3 ? 'h3' : 'h2'\n const discounts = cost.discounts?.filter((d) => positive(d.amount)) ?? []\n return (\n <div className={cx.root} data-sf-summary>\n {title === false ? null : (\n <H className={cx.title} data-sf-summary-title>\n {title ?? m.title}\n </H>\n )}\n <ul className={cx.lines} data-sf-summary-lines>\n {lines.map((l) => {\n const variant = l.merchandise.title && !/^default( title)?$/i.test(l.merchandise.title) ? l.merchandise.title : null\n return (\n <li key={l.id} className={cx.line} data-sf-summary-line>\n {renderLineMedia ? (\n <span className={cx.media} data-sf-summary-media>\n {renderLineMedia(l)}\n {l.quantity > 1 ? (\n <span className={cx.qty} data-sf-summary-qty aria-hidden=\"true\">\n {l.quantity}\n </span>\n ) : null}\n </span>\n ) : null}\n <span data-sf-summary-line-body>\n <span className={cx.lineTitle} data-sf-summary-line-title>\n {!renderLineMedia && l.quantity > 1 ? `${l.quantity} × ` : null}\n {l.merchandise.product.title}\n </span>\n {variant ? (\n <span className={cx.variant} data-sf-summary-variant>\n {variant}\n </span>\n ) : null}\n {renderLineMedia || l.quantity > 1 ? (\n <span style={{ position: 'absolute', width: 1, height: 1, overflow: 'hidden', clip: 'rect(0 0 0 0)', whiteSpace: 'nowrap' }}>{m.quantity.replace('{n}', String(l.quantity))}</span>\n ) : null}\n </span>\n <span className={cx.linePrice} data-sf-summary-line-price>\n {money(l.cost.total)}\n </span>\n </li>\n )\n })}\n </ul>\n {children}\n <dl className={cx.totals} data-sf-summary-totals aria-busy={updating || undefined}>\n <div className={cx.row} data-sf-summary-row=\"subtotal\">\n <dt>{m.subtotal}</dt>\n <dd>{money(cost.subtotal)}</dd>\n </div>\n {discounts.length\n ? discounts.map((d) => (\n <div key={d.id} className={cx.row ? `${cx.row} ${cx.discount ?? ''}`.trim() : cx.discount} data-sf-summary-row=\"discount\">\n <dt>{d.code ? `${m.discount} (${d.code})` : d.title || m.discount}</dt>\n <dd>−{money(d.amount)}</dd>\n </div>\n ))\n : positive(cost.discount) ? (\n <div className={cx.row ? `${cx.row} ${cx.discount ?? ''}`.trim() : cx.discount} data-sf-summary-row=\"discount\">\n <dt>{m.discount}</dt>\n <dd>−{money(cost.discount)}</dd>\n </div>\n ) : null}\n <div className={cx.row} data-sf-summary-row=\"shipping\">\n <dt>{m.shipping}</dt>\n <dd className={updating || !cost.shipping ? cx.muted : undefined}>\n {updating ? m.updating : !cost.shipping ? m.shippingPending : isZero(cost.shipping) ? <span className={cx.free}>{m.free}</span> : money(cost.shipping)}\n </dd>\n </div>\n {positive(cost.tax) && !cost.tax_included ? (\n <div className={cx.row} data-sf-summary-row=\"tax\">\n <dt>{m.taxes}</dt>\n <dd>{money(cost.tax)}</dd>\n </div>\n ) : null}\n <div className={cx.total} data-sf-summary-row=\"total\">\n <dt>{m.total}</dt>\n <dd aria-live=\"polite\" data-updating={updating || undefined}>\n {money(cost.total)}\n </dd>\n </div>\n </dl>\n {positive(cost.tax) && cost.tax_included ? (\n <p className={cx.note} data-sf-summary-tax-note>\n {m.taxesIncluded.split('{amount}').flatMap((part, i) => (i === 0 ? [part] : [<span key={i}>{money(cost.tax!)}</span>, part]))}\n </p>\n ) : null}\n </div>\n )\n}\n\nexport type OrderSummaryDisclosureProps = {\n /** Total shown on the collapsed bar (`cart.cost.total`). */\n total: Money\n updating?: boolean\n renderAmount?: (amount: Money) => ReactNode\n locale?: string\n messages?: Partial<OrderSummaryMessages>\n /** Start open (default closed). */\n defaultOpen?: boolean\n className?: string\n classNames?: Partial<Record<'summary' | 'label' | 'total' | 'panel', string>>\n /** Usually an `<OrderSummary title={false} … />`. */\n children: ReactNode\n}\n\n/**\n * Phones: the order summary as a collapsed bar at the top (\"Show order summary · $1,234.00\"). Native `<details>`:\n * works without JavaScript, the server HTML is already the final layout (no shift on hydration). Show it only on\n * narrow screens and the full summary on wide ones (the shop's CSS).\n */\nexport function OrderSummaryDisclosure({ total, updating, renderAmount, locale: loc, messages, defaultOpen = false, className, classNames: cx = {}, children }: OrderSummaryDisclosureProps) {\n const locale = useResolvedLocale(loc)\n const m = orderSummaryMessages(locale, messages)\n return (\n <details className={className} data-sf-summary-disclosure {...(defaultOpen ? { open: true } : {})}>\n <summary className={cx.summary} data-sf-summary-toggle>\n <span className={cx.label} data-sf-summary-toggle-label>\n <span data-sf-summary-show>{m.show}</span>\n <span data-sf-summary-hide>{m.hide}</span>\n </span>\n <span className={cx.total} data-sf-summary-toggle-total data-updating={updating || undefined}>\n {renderAmount ? renderAmount(total) : formatMoney(total, locale)}\n </span>\n </summary>\n <div className={cx.panel} data-sf-summary-panel>\n {children}\n </div>\n </details>\n )\n}\n","// GENERADO por scripts/build-logos.mjs desde brands/manifest.json y brands/assets/. No editar a mano.\n// Procedencia y licencias de cada logo: brands/LOGOS.md.\nexport type LogoAsset = { src: string; ar: number; mono: boolean }\n\nexport const LOGOS: Record<string, LogoAsset> = {\n \"7eleven\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xmlns:xlink=%22http://www.w3.org/1999/xlink%22 xml:space=%22preserve%22 viewBox=%220 0 45 59.89%22%3E%3Cdefs%3E%3Cpath id=%22a%22 d=%22M0 0h45v59.9H0z%22/%3E%3C/defs%3E%3CclipPath id=%22b%22%3E%3Cuse xlink:href=%22%23a%22 style=%22overflow:visible%22/%3E%3C/clipPath%3E%3Cpath d=%22M34.2 45c.9 0 1.7.8 1.7 1.7s-.7 1.7-1.7 1.7c-.9 0-1.6-.8-1.6-1.7s.7-1.7 1.6-1.7m0 3c.7 0 1.3-.6 1.3-1.3 0-.8-.6-1.3-1.3-1.3s-1.3.6-1.3 1.3c0 .8.6 1.3 1.3 1.3m-.2-.4h-.3v-1.8h.6q.6 0 .6.6c0 .3-.2.5-.4.5l.4.7h-.4l-.4-.7H34zm.2-1q.3 0 .3-.3t-.3-.3H34v.5h.2zm8-14.3c-.9 0-1.5.4-2.1.9l-.4.6-.1-.1.5-.8v-.5h-3.2V43h2.9v-6.7c0-1.1.7-1.4 1.2-1.5s1.1.2 1.1.8V43H45v-7.3c0-2.3-1-3.4-2.8-3.4M9.9 40.6h3v2.3H7V32.3h2.9zM0 42.9h5.9v-2.1h-3v-2.3h3v-2h-3v-2h3v-2.2H0zm13.9 0h6v-2.1h-3.1v-2.3h3.1v-2h-3.1v-2h3.1v-2.2h-6zm16 0h6v-2.1h-3.1v-2.3h3.1v-2h-3.1v-2h3.1v-2.2h-6zm-3.8-10.6L25 39l-.1 1.2v.1h-.1v-.1l-.1-1.2-1.1-6.7h-2.9l2.4 10.6h3.6l2.4-10.6z%22 style=%22clip-path:url(%23b);fill:%23147350%22/%3E%3Cpath d=%22M37.7 0H0v15h19.9C24.4 8.5 30.5 3.3 37.7 0%22 style=%22clip-path:url(%23b);fill:%23ff6c00%22/%3E%3Cpath d=%22M15 59.9h15v-15H15zM45 15V0a40.7 40.7 0 0 0-28.9 30h15.3A25.8 25.8 0 0 1 45 15%22 style=%22clip-path:url(%23b);fill:%23eb0f2a%22/%3E%3C/svg%3E\", ar: 0.751, mono: false },\n \"99minutos\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220.1 0 160.9 40.9%22%3E%3Cg fill=%22none%22 fill-rule=%22evenodd%22%3E%3Cpath fill=%22%23323634%22 d=%22M50.25 23.07v6.07h-3.12v-6.15q0-1.34-.4-1.97t-1.31-.62-1.6.68-.69 2v6.06h-3.1V17.89h3.1v1.27a3.8 3.8 0 0 1 2.94-1.46q1.05 0 1.91.63.86.62 1.3 1.52.64-1.02 1.73-1.59a5 5 0 0 1 2.18-.56q1.95 0 3.17 1.18 1.2 1.18 1.2 3.42v6.84h-3.13v-6.15q0-2.6-1.88-2.6-.93 0-1.62.69-.68.68-.68 2m9.32-6.62q-.53-.53-.53-1.3t.53-1.31 1.3-.53 1.29.53.53 1.3-.53 1.31-1.3.54-1.29-.54M86 17.9h-2.8v6.06q0 1.3-.68 1.98t-1.61.68q-1.89 0-1.88-2.6V17.9H75.9v6.82q0 2.28 1.24 3.44a4.3 4.3 0 0 0 3.08 1.16q1.83 0 2.99-1.66v1.49h3.12v-9h1.73v5.2q0 1.83 1.1 2.9a3.8 3.8 0 0 0 2.72 1.07q1.6 0 3.05-1.34l-1.16-2.2q-.6.8-1.47.8-.45 0-.79-.37a1.5 1.5 0 0 1-.33-1.01v-5.04h2.7V17.9h-2.7v-3.37h-3.12v3.37zm-26.69 0h3.1v11.25h-3.1zm7.9 4.97v6.28h-3.1V17.89h3.1v1.25q1.42-1.44 3.17-1.44a4 4 0 0 1 2.95 1.25q1.2 1.26 1.2 3.35v6.84h-3.11v-6.36q0-2.6-1.88-2.6-.94 0-1.63.69-.7.68-.7 2m39.05.65q0 2.44-1.68 4.12a5.7 5.7 0 0 1-4.2 1.68 5.7 5.7 0 0 1-5.9-5.8q0-2.44 1.68-4.13a5.7 5.7 0 0 1 4.21-1.68q2.55 0 4.21 1.68a5.6 5.6 0 0 1 1.68 4.13m-8.65 0q0 1.38.78 2.25.77.87 1.98.87t1.99-.87.78-2.25-.78-2.26a2.5 2.5 0 0 0-1.99-.87q-1.2 0-1.98.87a3.3 3.3 0 0 0-.78 2.26m17.62 2.13q0 1.66-1.2 2.66-1.22 1-3.08 1a8 8 0 0 1-5-1.77l1.36-1.97q1.75 1.36 3.7 1.36.6 0 .95-.24a.7.7 0 0 0 .36-.64q0-.39-.5-.73-.47-.33-1.4-.63t-1.4-.5q-.5-.21-1.11-.6a2.6 2.6 0 0 1-1.27-2.36 3.1 3.1 0 0 1 1.25-2.54q1.24-.98 3.2-.98t3.94 1.34l-1.16 2.09q-1.45-1-2.89-1t-1.44.79q0 .44.46.69.45.25 1.5.59 1.07.33 1.5.5.45.19 1.07.56 1.16.72 1.16 2.38%22/%3E%3Cpath fill=%22%2385C440%22 d=%22M116.65 28.77q-.52-.53-.52-1.3 0-.78.52-1.31.54-.54 1.3-.53.76 0 1.3.53.52.53.52 1.3 0 .78-.53 1.31-.52.54-1.3.54-.75 0-1.29-.54m9.35-2.25q1.55 0 2.79-1.56l1.84 2.09q-2.15 2.25-4.65 2.26a6 6 0 0 1-4.24-1.6 5.4 5.4 0 0 1-1.72-4.19q0-2.58 1.74-4.2a6 6 0 0 1 4.15-1.62 6.4 6.4 0 0 1 4.6 1.99l-1.62 2.13q-.54-.65-1.31-1a4 4 0 0 0-1.54-.36 2.9 2.9 0 0 0-2.98 3.04 2.85 2.85 0 0 0 2.94 3.02m16.4-3.01q0 2.44-1.67 4.12a5.7 5.7 0 0 1-4.21 1.68 5.7 5.7 0 0 1-5.89-5.8q0-2.44 1.68-4.13a5.7 5.7 0 0 1 4.2-1.68 5.7 5.7 0 0 1 5.9 5.81m-8.64 0q0 1.38.77 2.25.78.87 1.99.87 1.2 0 1.99-.87.77-.87.77-2.25t-.77-2.26a2.5 2.5 0 0 0-2-.87q-1.2 0-1.98.87a3.3 3.3 0 0 0-.77 2.26m19.84-.44v6.07h-3.12v-6.15q0-1.34-.4-1.97-.42-.62-1.31-.62t-1.6.68q-.69.68-.69 2v6.06h-3.1V17.89h3.1v1.27a3.8 3.8 0 0 1 2.94-1.46q1.05 0 1.92.63.85.62 1.29 1.52.64-1.02 1.73-1.59a5 5 0 0 1 2.18-.56q1.97 0 3.17 1.18t1.2 3.42v6.84h-3.13v-6.15q0-2.6-1.88-2.6-.93 0-1.62.69-.68.68-.68 2%22/%3E%3Cpath fill=%22%23323634%22 d=%22M18.08 17.16a4.5 4.5 0 0 0-1.59-1.84 5.6 5.6 0 0 0-2.58-.87 5.2 5.2 0 0 0-3.8.95 4.6 4.6 0 0 0-1.82 3.39q-.23 2.2.98 3.69 1.2 1.49 3.22 1.7 1.53.16 2.94-.6a4.6 4.6 0 0 1-1.16 2.38q-.82.83-2.16.68a3 3 0 0 1-1.15-.41L9.1 28.38q.4.27 1.07.57.9.4 1.9.5a5.5 5.5 0 0 0 5.84-3.55q.64-1.46.85-3.45.33-3.1-.67-5.29m-3.32 3.9q-.7.5-1.66.39a1.9 1.9 0 0 1-1.42-.8q-.47-.7-.38-1.6.1-.92.75-1.45t1.57-.43 1.48.83.45 1.65a2 2 0 0 1-.8 1.4m14.44-3.89a4.5 4.5 0 0 0-1.6-1.84 5.6 5.6 0 0 0-2.58-.87 5.2 5.2 0 0 0-3.79.95 4.6 4.6 0 0 0-1.82 3.39q-.23 2.2.98 3.69 1.2 1.49 3.22 1.7 1.53.16 2.93-.6a4.6 4.6 0 0 1-1.15 2.38q-.82.83-2.16.68a3 3 0 0 1-1.15-.41l-1.88 2.15q.42.27 1.08.57.9.4 1.9.5a5.5 5.5 0 0 0 5.84-3.55q.63-1.46.85-3.45.32-3.1-.68-5.29m-3.33 3.9q-.69.5-1.65.39a1.9 1.9 0 0 1-1.43-.8q-.46-.7-.37-1.6.1-.92.74-1.45.66-.53 1.58-.43t1.47.83.46 1.65a2 2 0 0 1-.8 1.4%22/%3E%3Cpath fill=%22%2385C440%22 d=%22m37.49 12.42 3.06-3.1s-2.03-5.1-9.19-9.26L28.3 3.14l3.58 3.6-.78.8a18.6 18.6 0 0 0-12.2-4.58A18.86 18.86 0 0 0 .14 21.93c0 10.47 8.4 18.96 18.76 18.96a18.86 18.86 0 0 0 18.77-18.96A19 19 0 0 0 33.15 9.6l.77-.79zm-3.85 9.23c0 8.24-6.6 14.92-14.76 14.92A14.84 14.84 0 0 1 4.12 21.65c0-8.24 6.61-14.92 14.76-14.92 8.16 0 14.76 6.68 14.76 14.92%22/%3E%3C/g%3E%3C/svg%3E\", ar: 3.934, mono: false },\n \"amex\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1000 996.89%22%3E%3Cpath d=%22M55.5 1002.35h997.52v538.48l-49.38 77.15 49.38 68.66v313.22H55.5v-507.63l30.86-35.49-30.86-33.94Z%22 style=%22fill:%23016fd0;fill-opacity:1;stroke:none%22 transform=%22translate(-55.5 -1002.35)%22/%3E%3Cpath d=%22M249.14 1697.44v-156.6h165.82l17.8 23.19 18.37-23.2h601.89v145.81s-15.74 10.65-33.95 10.8H685.8l-20.05-24.68v24.68H600v-42.14s-8.98 5.88-28.4 5.88h-22.37v36.26h-99.52l-17.76-23.69-18.04 23.7zM55.5 1422.8l37.4-87.18h64.66l21.22 48.84v-48.84h80.39l12.63 35.3 12.25-35.3H644.9v17.75s18.97-17.75 50.14-17.75l117.09.41 20.85 48.2v-48.6h67.27l18.52 27.68v-27.69h67.89v156.61h-67.89l-17.74-27.77v27.77H802.2l-9.94-24.69h-26.57l-9.78 24.7h-67.03c-26.83 0-43.97-17.39-43.97-17.39v17.38H543.84l-20.05-24.69v24.7h-375.8l-9.94-24.7h-26.49l-9.86 24.7H55.5z%22 style=%22fill:%23fff;stroke:none%22 transform=%22translate(-55.5 -1002.35)%22/%3E%3Cpath d=%22m106.13 1354.93-50.44 117.26h32.84l9.3-23.48h54.1l9.26 23.48h33.56l-50.39-117.26zm18.66 27.29 16.49 41.03h-33.03zm73.43 89.95v-117.26l46.66.17 27.14 75.6 26.5-75.77h46.28v117.26h-29.3v-86.4l-31.08 86.4h-25.7l-31.17-86.4v86.4zm166.64 0v-117.26h95.66v26.23H394.5v20.06H459v24.68h-64.5v20.83h66.03v25.46zm112.64-117.24v117.26h29.31v-41.66h12.35l35.15 41.66h35.82l-38.57-43.2a35.7 35.7 0 0 0 32.16-36.02c0-24.67-19.37-38.04-40.99-38.04zm29.31 26.23h33.51c8.04 0 13.89 6.29 13.89 12.34 0 7.8-7.58 12.35-13.45 12.35H506.8zm118.81 91.01h-29.93v-117.26h29.93zm70.98 0h-6.47c-31.26 0-50.24-24.63-50.24-58.15 0-34.35 18.77-59.11 58.25-59.11h32.4v27.77h-33.59c-16.02 0-27.36 12.5-27.36 31.63 0 22.71 12.96 32.25 31.63 32.25h7.72zm63.79-117.24-50.44 117.26h32.84l9.3-23.48h54.1l9.26 23.48h33.56l-50.39-117.26zm18.66 27.29 16.49 41.03H762.5zm73.38 89.95v-117.26h37.28l47.59 73.68v-73.68h29.31v117.26h-36.06l-48.8-75.6v75.6zM269.2 1677.39v-117.27h95.66v26.23h-66.04v20.06h64.5v24.69h-64.5v20.83h66.04v25.46zm468.75 0v-117.27h95.66v26.23h-66.04v20.06h64.19v24.69h-64.19v20.83h66.04v25.46zm-369.38 0 46.58-57.91-47.68-59.36h36.93l28.4 36.7 28.5-36.7h35.48l-47.06 58.63 46.67 58.64h-36.93l-27.58-36.12-26.9 36.12zm131.3-117.25v117.27h30.09v-37.04h30.86c26.1 0 45.9-13.85 45.9-40.79 0-22.31-15.52-39.44-42.1-39.44zm30.09 26.52h32.5c8.43 0 14.46 5.17 14.46 13.5 0 7.83-6 13.5-14.56 13.5h-32.4zm89.49-26.54v117.27h29.31v-41.66h12.35l35.15 41.66h35.82l-38.57-43.2a35.7 35.7 0 0 0 32.16-36.03c0-24.67-19.37-38.04-40.98-38.04zm29.31 26.23h33.51c8.04 0 13.9 6.29 13.9 12.35 0 7.79-7.59 12.34-13.46 12.34h-33.95zm198.43 91.04v-25.46h58.67c8.68 0 12.44-4.7 12.44-9.84 0-4.93-3.75-9.91-12.44-9.91h-26.51c-23.05 0-35.89-14.04-35.89-35.12 0-18.8 11.76-36.94 46-36.94h57.1l-12.35 26.39h-49.37c-9.44 0-12.35 4.95-12.35 9.68 0 4.86 3.6 10.22 10.8 10.22h27.78c25.69 0 36.83 14.57 36.83 33.66 0 20.51-12.42 37.32-38.23 37.32zm107.59 0v-25.46h58.67c8.69 0 12.44-4.7 12.44-9.84 0-4.93-3.74-9.91-12.44-9.91h-26.5c-23.05 0-35.89-14.04-35.89-35.12 0-18.8 11.76-36.94 46-36.94h57.09l-12.34 26.39h-49.38c-9.44 0-12.34 4.95-12.34 9.68 0 4.86 3.59 10.22 10.8 10.22h27.77c25.7 0 36.84 14.57 36.84 33.66 0 20.51-12.42 37.32-38.24 37.32z%22 style=%22fill:%23016fd0;fill-opacity:1;stroke:none%22 transform=%22translate(-55.5 -1002.35)%22/%3E%3C/svg%3E\", ar: 1.003, mono: false },\n \"applepay\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 baseProfile=%22tiny%22 viewBox=%220 0 512 210.2%22%3E%3Cpath d=%22M93.6 27.1C87.6 34.2 78 39.8 68.4 39c-1.2-9.6 3.5-19.8 9-26.1 6-7.3 16.5-12.5 25-12.9 1 10-2.9 19.8-8.8 27.1m8.7 13.8c-13.9-.8-25.8 7.9-32.4 7.9-6.7 0-16.8-7.5-27.8-7.3-14.3.2-27.6 8.3-34.9 21.2-15 25.8-3.9 64 10.6 85 7.1 10.4 15.6 21.8 26.8 21.4 10.6-.4 14.8-6.9 27.6-6.9 12.9 0 16.6 6.9 27.8 6.7 11.6-.2 18.9-10.4 26-20.8 8.1-11.8 11.4-23.3 11.6-23.9-.2-.2-22.4-8.7-22.6-34.3-.2-21.4 17.5-31.6 18.3-32.2-10-14.8-25.6-16.4-31-16.8m80.3-29v155.9h24.2v-53.3h33.5c30.6 0 52.1-21 52.1-51.4s-21.1-51.2-51.3-51.2zm24.2 20.4h27.9c21 0 33 11.2 33 30.9s-12 31-33.1 31h-27.8zM336.6 169c15.2 0 29.3-7.7 35.7-19.9h.5v18.7h22.4V90.2c0-22.5-18-37-45.7-37-25.7 0-44.7 14.7-45.4 34.9h21.8c1.8-9.6 10.7-15.9 22.9-15.9 14.8 0 23.1 6.9 23.1 19.6v8.6l-30.2 1.8c-28.1 1.7-43.3 13.2-43.3 33.2 0 20.2 15.7 33.6 38.2 33.6m6.5-18.5c-12.9 0-21.1-6.2-21.1-15.7 0-9.8 7.9-15.5 23-16.4l26.9-1.7v8.8c0 14.6-12.4 25-28.8 25m82 59.7c23.6 0 34.7-9 44.4-36.3L512 54.7h-24.6l-28.5 92.1h-.5l-28.5-92.1h-25.3l41 113.5-2.2 6.9c-3.7 11.7-9.7 16.2-20.4 16.2-1.9 0-5.6-.2-7.1-.4v18.7c1.4.4 7.4.6 9.2.6%22/%3E%3C/svg%3E\", ar: 2.436, mono: true },\n \"banorte\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 id=%22layer%22 x=%220%22 y=%220%22 version=%221.1%22 viewBox=%220 0 1920 235.2%22%3E%3Cstyle id=%22style2%22 type=%22text/css%22%3E.st0%7Bfill:%23ec1c2d%7D%3C/style%3E%3Cg id=%22g24%22 transform=%22matrix(3.2 0 0 3.2 -65.6 -911.04)%22%3E%3Cpath id=%22path4%22 d=%22M206.2 325.5h.7c3.9 0 7-3.1 7-7v-6.1c0-3.6-.4-5.3-1.8-7.2-2-2.5-5.5-3.6-8.9-3.6h-42.4v49.3h38.7c4.4 0 9.6-.6 12.3-3.5 2.5-2.7 2.6-4.8 2.6-11.4v-2.2a8.2 8.2 0 0 0-8.2-8.3m-33.1-14.9h25.6c1.3 0 4 .5 4 2.6v5.4c0 1.7-2.5 2.4-3.5 2.4h-26.1zm29.8 27.8c0 1.5-1.2 2.7-2.7 2.7h-27.1v-11H200c1.6 0 2.9 1.3 2.9 2.9z%22 class=%22st0%22/%3E%3Cpath id=%22path6%22 d=%22M274.3 351h14L260 301.7h-11.5L220.7 351h12.5l5.8-10.7h29.6zm-30.1-20.3 9.7-17.8 9.5 17.8z%22 class=%22st0%22/%3E%3Cpath id=%22polygon8%22 d=%22M304.1 301.7h-8.4V351h11.2v-24.8l-.3-7.6 38.3 32.4h8.6v-49.3h-11.2v24.8l.3 7.6z%22 class=%22st0%22/%3E%3Cpath id=%22path10%22 d=%22M416.6 351h-38.1c-3.4 0-7.1-.8-9.1-3.2-1.7-1.9-2-5.2-2-7.9v-27.1c0-3.1.4-6.4 2.4-8.4s5.6-2.7 8.7-2.7h38.1c3.4 0 7.1.7 9.1 3.1 1.6 1.9 2 5.3 2 8v27.1c0 2.8-.3 6-2 7.9-2 2.4-5.7 3.2-9.1 3.2m-37-39.4v29.5h35.9v-29.5z%22 class=%22st0%22/%3E%3Cpath id=%22path12%22 d=%22M483.9 351h17.3l-22.1-18.2h6.8c5.2 0 9.5-4.2 9.5-9.5v-12.2c0-5.2-4.2-9.5-9.5-9.5H442V351h12.2v-18.2h9.7zm-29.7-39.9H481c1.3 0 2.3 1 2.3 2.3v7.7c0 1.3-1 2.3-2.3 2.3h-26.8z%22 class=%22st0%22/%3E%3Cpath id=%22polygon14%22 d=%22M504.4 301.7v9.8h22.1V351h12.2v-39.5h22v-9.8h-34.2z%22 class=%22st0%22/%3E%3Cpath id=%22polygon16%22 d=%22M605.9 320.5h-23.1v-9.3H620v-9.5h-49.4V351h49.9v-10h-37.7v-11h23.1z%22 class=%22st0%22/%3E%3Cpath id=%22path18%22 d=%22M84.5 284.7c-28.5 0-51.6 7.5-51.6 16.8 0 7.8 16.1 14.3 38 16.2l9-27.7 1.6 28.2h3.1c28.5 0 51.6-7.5 51.6-16.8-.1-9.1-23.2-16.7-51.7-16.7%22 class=%22st0%22/%3E%3Cpath id=%22path20%22 d=%22M70.6 318.7c-27.8.3-50.1 9.1-50.1 20 0 9.2 15.8 16.9 37.4 19.3z%22 class=%22st0%22/%3E%3Cpath id=%22path22%22 d=%22m81.4 319 2.2 39.2c22.9-2 39.9-10 39.9-19.5.1-9.8-18.1-18-42.1-19.7%22 class=%22st0%22/%3E%3C/g%3E%3C/svg%3E\", ar: 8.163, mono: false },\n \"bbva\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 id=%22Capa_1%22 x=%220%22 y=%220%22 version=%221.1%22 viewBox=%220 0 600 179.8%22%3E%3Cstyle id=%22style1%22 type=%22text/css%22%3E.st0%7Bfill:%23004481%7D%3C/style%3E%3Cg id=%22g4%22%3E%3Cpath id=%22path1%22 d=%22m432.2 24.4-51.6 98.2c-1.1 2.1-4.3 2.1-5.4 0l-51.6-98.2c-.5-1-1.5-1.6-2.6-1.6h-25c-1.7 0-2.8 1.8-2 3.3l81.3 152.2c1.1 2.1 4.1 2.1 5.3 0l81.3-152.2c.8-1.5-.3-3.3-2-3.3h-25c-1.2 0-2.2.6-2.7 1.6%22 class=%22st0%22 style=%22fill:%23001391;fill-opacity:1%22/%3E%3Cpath id=%22path2%22 d=%22m461.5 155.5 51.6-98.2c1.1-2.1 4.3-2.1 5.4 0l51.6 98.2c.5 1 1.5 1.6 2.6 1.6h25c1.7 0 2.8-1.8 2-3.3L518.4 1.6c-1.1-2.1-4.1-2.1-5.3 0l-81.3 152.2c-.8 1.5.3 3.3 2 3.3h25c1.1-.1 2.2-.7 2.7-1.6%22 class=%22st0%22 style=%22fill:%23001391;fill-opacity:1%22/%3E%3Cpath id=%22path3%22 d=%22M108.8 95.2c10.8-5.4 17.5-17.1 17.5-31.4 0-24.5-19.1-41.1-46-41.1H3c-1.7 0-3 1.3-3 3v151.1c0 1.7 1.3 3 3 3h74c37 0 56.5-15.9 56.5-47.1 0-30.4-24.7-37.5-24.7-37.5M29 45.5h45.9c16.9 0 25.5 7.2 25.5 20.6s-8.6 20.6-25.5 20.6H29a3 3 0 0 1-3-3V48.5c0-1.7 1.3-3 3-3M75.5 157H29c-1.7 0-3-1.3-3-3v-41.7a3 3 0 0 1 3-3h46.5c22.2 0 32.1 6.3 32.1 23.8-.1 17.7-9.7 23.9-32.1 23.9%22 class=%22st0%22 style=%22fill:%23001391;fill-opacity:1%22/%3E%3Cpath id=%22path4%22 d=%22M267.5 95.2c10.8-5.4 17.5-17.1 17.5-31.4 0-24.5-19.1-41.1-46-41.1h-77.4c-1.7 0-3 1.3-3 3v151.1c0 1.7 1.3 3 3 3h74c37 0 56.5-15.9 56.5-47.1.1-30.4-24.6-37.5-24.6-37.5m-79.8-49.7h45.9c16.9 0 25.5 7.2 25.5 20.6s-8.6 20.6-25.5 20.6h-45.9c-1.7 0-3-1.3-3-3V48.5c0-1.7 1.3-3 3-3M234.1 157h-46.5a3 3 0 0 1-3-3v-41.7a3 3 0 0 1 3-3h46.5c22.2 0 32.1 6.3 32.1 23.8 0 17.7-9.7 23.9-32.1 23.9%22 class=%22st0%22 style=%22fill:%23001391;fill-opacity:1%22/%3E%3C/g%3E%3C/svg%3E\", ar: 3.337, mono: false },\n \"chedraui\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1920 148.64%22%3E%3Cpath d=%22m1277.47 263.16 90.62-132.68h45.73l88.95 132.68h20.56l-104.05-147.8h-55.8l-103.21 147.8zm273.26-46.91c0 25.19 19.3 47.02 44.89 47.02h135.51c23.91 0 46.15-16.8 46.15-41.57V115.47h-19.3v105.4c0 13.85-10.07 26.03-24.33 26.03h-138.03c-14.69 0-26.01-12.6-26.01-27.3V115.47h-18.88zm-314.75.94c0-12.6-3.78-16.38-6.72-17.64l-2.94-1.26 3.78-2.51c6.71-4.63 5.88-15.96 5.88-17.22v-23.94c0-21.41-17.63-39.04-39.02-39.04h-184.18v147.37l18.88-.42V131.11h160.68c13.43 0 25.17 10.5 25.17 24.35v23.94c0 6.72-3.35 15.12-7.13 17.21l-2.93 1.68 2.51 2.1c3.78 3.36 6.72 7.14 6.72 16.8v45.34h19.3z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3Cpath d=%22m3013.05 1.34 1.6 557.02h662.8c84.04 0 166.5-57.15 166.5-146V147.31c0-90.44-84.04-145.98-169.67-145.98zm66.53 59.28h594.61c50.74 0 101.49 33.3 101.49 87.27v255.5c0 55.54-47.57 96.8-101.49 96.8h-594.61z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.727499%22 transform=%22scale(.26458)%22/%3E%3Cpath d=%22M693.45 263.14v-15.96H492.9V131.29h200.55v-15.53H476.13v147.38zM-36.9 221.5c.42-7.56 0-66.76 0-68.02 1.26-13.44 5.46-22.67 25.6-22.67h172.85v-15.54H-10.88c-22.24 0-43.22 15.54-43.22 38.63v67.6c0 22.68 18.88 41.15 41.54 41.15h174.11V247.1H-12.56c-14.27-.42-24.34-12.17-24.34-25.6m1509.88 41.66h20.98l-28.53-40.3H1314.8l-27.69 39.88h21.82l14.26-24.35h133z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3Cpath d=%22M502.4 184.69h191.32v-17.64H518.77v-12.18h174.95v-15.11H502.4zm-.83 9.23v44.09l192.15.42v-16.38l-174.95.42v-13.85h174.95v-14.7zm-528.82 27.16c.42 8.82 5.88 17.22 14.27 17.64h174.53v-16.38h-173.7v-67.6h173.7v-15.12H-12.56c-9.23 0-14.69 5.46-14.69 15.12zm1758.38 1.46h-136.77V115.47H1578v105.81c0 9.24 6.7 17.64 16.36 17.64h136.77c9.65 0 18.04-7.56 18.04-17.22V115.47h-18.04zm-691.74 40.27h19.3v-45.35H1190v45.77h19.73v-46.19c0-10.49-9.66-15.1-19.73-15.1h-150.6z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3Cpath d=%22M4133.8 94.11v207.9h570.83c36.48 0 71.38-23.81 71.38-61.9v-76.17c0-38.08-30.13-69.83-68.2-69.83zm72.35 56.14h497.9l-1.57 93.65h-496.33zM3112.58 93.93v374.52h562.92c34.88 0 68.18-25.38 68.18-61.87V147.89c0-34.92-34.89-53.96-66.6-53.96zm68.64 56.55h493.14V406h-493.14z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.727499%22 transform=%22scale(.26458)%22/%3E%3Cpath d=%22M237.17 185.27h165.3v-69.7l-15.95.42v50.8h-133.4V116h-15.95zm0 8.4v69.7h15.94v-55h133.41v55.42l15.95-.42v-69.7z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3Cpath d=%22M5391.07 92.87 5200.8 370.59h520.1L5535.37 92.87zm26.25 55.1h90.4l98.3 153.95h-282.24z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.727499%22 transform=%22scale(.26458)%22/%3E%3Cpath d=%22M1848.28 115.57v147.38h17.62V115.57zm-10.91 147.38v-147.8h-18.46l.42 147.8zm-1607.76.84v-147.8h-15.94v147.38zm182.51-148.22v146.96h14.68V115.57z%22 style=%22fill:%23154281;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.192484%22 transform=%22translate(54.1 -115.15)%22/%3E%3C/svg%3E\", ar: 12.917, mono: false },\n \"circlek\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%220.86 0.86 274.53 274.52%22%3E%3Cpath fill=%22%23ec2024%22 d=%22M1 1h274.25v274.25H1z%22/%3E%3Cpath fill=%22%23fff%22 d=%22M203.1 93.69c9.63-12.92 6.67-29.84-5.67-39.08-12.39-9.21-29.43-7.24-39.1 5.71l-32.81 44.04V76c0-16.15-12.48-27.93-27.9-27.93-15.44 0-27.91 11.78-27.91 27.93v124.27c0 16.02 12.47 27.8 27.9 27.8s27.9-11.42 27.9-27.8l.05-37.02 66.29 74.9a113 113 0 0 1-53.7 13.48c-62.7 0-113.56-50.83-113.56-113.56 0-62.7 50.86-113.53 113.56-113.53s113.56 50.84 113.56 113.53c0 23-6.85 44.38-18.6 62.26l-59.58-67.04z%22/%3E%3Cpath fill=%22none%22 stroke=%22%23004b8d%22 stroke-width=%223.8%22 d=%22M203.1 93.69c9.63-12.92 6.67-29.84-5.67-39.08-12.39-9.21-29.43-7.24-39.1 5.71l-32.81 44.04V76c0-16.15-12.48-27.93-27.9-27.93-15.44 0-27.91 11.78-27.91 27.93v124.27c0 16.02 12.47 27.8 27.9 27.8s27.9-11.42 27.9-27.8l.05-37.02 66.29 74.9a113 113 0 0 1-53.7 13.48c-62.7 0-113.56-50.83-113.56-113.56 0-62.7 50.86-113.53 113.56-113.53s113.56 50.84 113.56 113.53c0 23-6.85 44.38-18.6 62.26l-59.58-67.04z%22/%3E%3C/svg%3E\", ar: 1, mono: false },\n \"citibanamex\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220.11 0.11 43.59 6.6%22%3E%3Cpath d=%22m33.87 146.96-.03-.06-.06-.02h-.15v.16h.15l.06-.01q.03-.03.03-.07m.1 0q0 .07-.04.11l-.09.06.12.23h-.11l-.11-.22h-.11v.22h-.1v-.57h.25l.07.01.06.03.04.05zm.2.12-.04-.17a.4.4 0 0 0-.23-.23l-.17-.03a.4.4 0 0 0-.31.12.4.4 0 0 0-.13.31.4.4 0 0 0 .13.31.4.4 0 0 0 .3.13.4.4 0 0 0 .32-.13.4.4 0 0 0 .12-.3m.08 0a.5.5 0 0 1-.15.37.5.5 0 0 1-.37.15.5.5 0 0 1-.37-.15.5.5 0 0 1-.15-.37.5.5 0 0 1 .15-.37.5.5 0 0 1 .37-.15.5.5 0 0 1 .37.15q.06.07.1.17t.05.2m-35.64 4.25v-3.64h.75v3.64zm-.62-.79.05-.02-.18.7h-.01a1 1 0 0 1-.66.17c-.5 0-.83-.4-.83-.95v-2.06h-.63v-.68h.63v-.74l.73-.4v1.14h.76v.68h-.76v1.94q0 .41.35.4.25 0 .55-.18m-3.66.8v-3.65h.74v3.64zm-2.88-1.82c0 .68.48 1.17 1.13 1.17q.48 0 .89-.4l.01-.03.43.51-.02.02q-.52.61-1.29.61-.8 0-1.33-.49a1.8 1.8 0 0 1-.57-1.39q0-.87.57-1.4c.34-.31.81-.48 1.33-.48q.77 0 1.3.61v.02l-.42.5-.01-.01a1.2 1.2 0 0 0-.89-.41c-.65 0-1.13.5-1.13 1.17m35.36 1.82h-.85l-.34-.64c-.15-.26-.31-.6-.38-.73l-.4.74-.35.63h-.8l1.1-1.89-1.03-1.75h.83l.28.51c.14.26.32.59.38.73l.39-.74.27-.5h.83l-1.05 1.75zm-5.64-2.16h1.8c-.04-.5-.33-.91-.92-.91-.48 0-.82.33-.88.91m2.51.26-.02.33h-2.5c.07.7.52.99.96.99.3 0 .63-.11.87-.3l.4.47q-.48.47-1.31.48c-.85 0-1.64-.68-1.64-1.89 0-1.23.72-1.9 1.66-1.9 1.03 0 1.58.84 1.58 1.82m-3.72-.22v2.12h-.74v-2.06c0-.74-.22-1-.7-1-.47 0-.68.34-.68.93v2.13h-.74v-2.06c0-.74-.22-1-.69-1s-.72.34-.72.93v2.13h-.73v-3.64h.73v.34c.18-.26.52-.42.89-.42.5 0 .8.19 1 .54.26-.33.54-.54 1.11-.54.84 0 1.27.38 1.27 1.6m-6.4 1.08v-.52q-.29-.15-.86-.16c-.46 0-.77.21-.77.54 0 .36.25.6.72.6.38 0 .74-.23.9-.46m-.7-2.68c.8 0 1.43.4 1.43 1.22v2.5h-.73v-.36a1.5 1.5 0 0 1-1.02.43c-.6 0-1.3-.33-1.3-1.22 0-.82.66-1.18 1.48-1.18q.53 0 .84.14v-.27c0-.4-.3-.62-.74-.62q-.53 0-.95.23l-.28-.54a2.3 2.3 0 0 1 1.26-.33m-6.44 2.68v-.52q-.29-.15-.86-.16c-.46 0-.78.21-.78.54 0 .36.26.6.73.6.38 0 .74-.23.9-.46m-.7-2.68c.8 0 1.43.4 1.43 1.22v2.5h-.73v-.36a1.5 1.5 0 0 1-1.03.43c-.59 0-1.3-.33-1.3-1.22 0-.82.67-1.18 1.49-1.18q.52 0 .84.14v-.27c0-.4-.3-.62-.74-.62-.38 0-.67.07-.95.23l-.28-.54a2.3 2.3 0 0 1 1.26-.33m5.08 1.63v2.09h-.73v-2.06c0-.74-.28-1-.75-1-.48 0-.77.34-.77.93v2.13h-.7v-3.64h.74v.34c.18-.26.58-.42.95-.42.84 0 1.3.47 1.3 1.63m-8.61 1.5c.5 0 .87-.38.87-1.15 0-.92-.38-1.32-.9-1.32-.34 0-.7.23-.88.46v1.54c.16.21.55.47.9.47m.1-3.13c.78 0 1.48.57 1.48 1.96 0 1.24-.76 1.83-1.52 1.83-.36 0-.76-.2-.96-.41v.34H.55v-4.38l.74-.4v1.48c.26-.24.62-.42 1-.42%22 style=%22fill:%2312417d;fill-opacity:1;stroke-width:.26458332%22 transform=%22translate(9.43 -145.43)%22/%3E%3Cpath d=%22M-.15 147.15h-.86a3 3 0 0 0-2.14-.93c-.8 0-1.55.32-2.14.93h-.85a3.7 3.7 0 0 1 3-1.6c1.22 0 2.37.66 2.99 1.6m32.4 1.68.6.18c.28.09.36.3.36.52 0 .43-.3 1.07-.61 1.4-.18.2-.32.28-.5.28q-.15 0-.36-.07c-.21-.06-.47-.17-.62-.22.01.2.02.3.02.62 0 .53-.6.57-.93.57-.32 0-.71-.06-1.02-.2-.34-.17-.45-.33-.45-.88l.02-.54q-.29.12-.59.21c-.5.17-.73-.38-.83-.7a3 3 0 0 1-.14-.8c0-.55.18-.74.6-.87.2-.07.48-.14.64-.18l-.39-.5a.5.5 0 0 1-.1-.29c0-.3.3-.55.52-.7.25-.18.74-.44 1.17-.44.23 0 .39.1.58.35.13.17.29.4.37.54q.16-.25.36-.51a.5.5 0 0 1 .4-.2c.25 0 .51.15.69.28.24.18.52.46.68.75q.14.23.14.4 0 .23-.2.48c-.14.18-.31.4-.42.52m-.7-.12c.13 0 .37.04.6.1a1.8 1.8 0 0 0-.72-1.2.2.2 0 0 0-.14-.04.15.15 0 0 0-.14.14q0 .12.12.26c.1.14.27.34.27.52 0 .12-.07.2-.1.23zm.24 1.53c.16-.24.26-.47.26-.57s-.1-.14-.16-.14q-.12 0-.25.2c-.13.18-.33.5-.6.41l-.07-.04.08.25q.05.19.06.46c.16-.08.45-.26.68-.57m-.9-.23-.03-.2q0-.2.1-.49c.1-.33.23-.49.36-.56q-.26.02-.66-.27c-.29-.2-.4-.37-.43-.52q-.06.25-.46.54c-.3.2-.48.26-.63.24q.22.14.37.6.09.25.09.42 0 .14-.05.23.2-.16.7-.16.5.01.64.17m-.75.98q.21-.01.2-.15-.01-.16-.28-.22c-.22-.07-.59-.16-.59-.44l.01-.08-.2.15q-.17.1-.42.2c.17.18.62.54 1.28.54m-1.42-1.57c0-.23-.03-.6.24-.69l.06-.01q-.16-.09-.52-.5c-.11.24-.32.77-.11 1.38q.08.18.2.14.16-.06.13-.32m.45-1.9q-.11.07-.1.15c0 .05.03.15.16.15.19 0 .44-.16.7-.16.23 0 .3.17.3.2q0-.18.3-.66l-.28-.02c-.3 0-.7.06-1.08.34%22 style=%22fill:%23e30b13;fill-opacity:1;stroke-width:.26458332%22 transform=%22translate(9.43 -145.43)%22/%3E%3C/svg%3E\", ar: 6.605, mono: false },\n \"clip\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 fill=%22none%22 viewBox=%220 0 64 64%22%3E%3Cg fill-rule=%22evenodd%22 clip-path=%22url(%23a)%22 clip-rule=%22evenodd%22%3E%3Cpath fill=%22%23FC4C02%22 d=%22M63.97 10.8A10.82 10.82 0 0 0 48.98.85L9.57 17.6A15.7 15.7 0 0 0 0 32.01v21.17a10.82 10.82 0 0 0 15.08 9.94l39.25-16.66a15.7 15.7 0 0 0 9.64-14.45z%22/%3E%3Cpath fill=%22%23fff%22 d=%22M27.71 40.51c-.46 0-.83-.41-.83-.92V20.12c0-.5.37-.92.83-.92s.83.41.83.92V39.6c0 .5-.37.92-.83.92m7.23-.88V24.42c0-.51-.37-.93-.83-.93s-.83.42-.83.93v15.22c0 .52.37.94.83.94s.83-.42.83-.94m0-19.58V20a.8.8 0 0 0-.83-.81.8.8 0 0 0-.83.8v.06c0 .44.37.8.83.8s.83-.36.83-.8M21.93 38.46a.93.93 0 0 0 0-1.32.94.94 0 0 0-1.33 0 7 7 0 0 1-9.84 0 6.87 6.87 0 0 1 0-9.76 7 7 0 0 1 4.92-2.02c1.86 0 3.6.71 4.92 2.02.37.36.96.36 1.33 0a.93.93 0 0 0 0-1.32 8.8 8.8 0 0 0-6.25-2.57 8.8 8.8 0 0 0-6.25 2.57 8.73 8.73 0 0 0 0 12.4 8.8 8.8 0 0 0 6.25 2.56c2.27 0 4.53-.85 6.25-2.56m19.62 5.86V32.24a6.9 6.9 0 0 1 13.8 0 6.9 6.9 0 0 1-6.9 6.88c-2.2 0-3.68-.83-3.7-.84a.93.93 0 0 0-.94 1.61c.08.05 1.91 1.1 4.64 1.1a8.77 8.77 0 0 0 8.77-8.75 8.77 8.77 0 0 0-17.54 0v12.08a.93.93 0 0 0 1.87 0%22/%3E%3Cpath fill=%22%23FC4C02%22 d=%22M63.8 50.5a2.69 2.69 0 1 1-5.37 0 2.69 2.69 0 0 1 5.38 0m-.42 0c0-1.27-1.01-2.3-2.26-2.3a2.3 2.3 0 0 0-2.26 2.3 2.3 2.3 0 0 0 2.26 2.29 2.3 2.3 0 0 0 2.26-2.3m-1.13 1.47h-.48l-.67-1.2h-.45v1.2h-.4v-2.95h1a.9.9 0 0 1 .92.88c0 .43-.26.7-.63.81zm-.5-2.07c0-.3-.22-.52-.55-.52h-.55v1.03h.55c.33 0 .56-.21.56-.5%22/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=%22a%22%3E%3Cpath fill=%22%23fff%22 d=%22M0 0h64v64H0z%22/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\", ar: 1, mono: false },\n \"dhl\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 overflow=%22visible%22 version=%221.0%22 viewBox=%220 0 175.75 38.79%22%3E%3Cpath fill=%22%23fecc00%22 d=%22M0 38.79V0h175.75v38.79z%22/%3E%3Cpath fill=%22%23d50029%22 d=%22m56.67 16.2-2.84 3.91c-.4.54-1.11 1.51 1.26 1.51h12.52l3.7-5.04c2.3-3.12.2-9.61-8.02-9.61H30.91l-5.62 7.62h30.6c1.55 0 1.53.6.78 1.62m-9.2 7.3c-2.38 0-1.66-.97-1.26-1.51l2.85-3.88c.76-1.03.78-1.62-.77-1.62h-14L23.03 31.82h27.5c9.08 0 14.14-6.18 15.7-8.32zm17.9 8.32h16.12l6.12-8.32H71.48zm41.62-24.86-6.2 8.41h-7.2l6.2-8.4H83.64L72.87 21.62h39.47L123.1 6.97Zm-18.3 24.86h16.13l6.12-8.32H94.81zM0 26.78v1.77h22.47l1.3-1.77zm26.18-3.28H0v1.77h24.88ZM0 31.82h20.06l1.3-1.76H0Zm152.07-3.27h23.68v-1.77h-22.38zm-2.4 3.27h26.08v-1.76h-24.8zm6.11-8.32-1.3 1.77h21.27V23.5Zm-21.12-1.88 10.79-14.65h-17.08l-10.8 14.65zm-18.47 1.88-1.76 2.4c-2.02 2.73-.23 5.92 6.38 5.92h25.9l6.12-8.31z%22/%3E%3C/svg%3E\", ar: 4.531, mono: false },\n \"estafeta\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%220 0 6834.46 1080%22%3E%3Cpath fill=%22%23c01818%22 d=%22m1423.74 511.84 213.92 182.45c40.33 38.22 65.32 92.83 65.32 153.05 0 115.32-92.33 208.87-206.48 208.87l-146.33.5H901.39l45.79-200.35 337.66.58c36.58 0 66.23-29.89 66.23-66.78a66.8 66.8 0 0 0-28.62-55.1L1133.9 596.1c-50.18-38.07-82.65-99.06-82.65-167.4 0-115.69 92.44-209.17 206.4-209.17l488.02-.35-40 176.47h-236.61c-36.46 0-66.08 29.83-66.08 66.66 0 19.55 8.06 37.11 21.16 49.35zm804.66 370.53h.86c-36.52 0-66.66-29.82-66.07-66.84 0-7.8 1.86-13.82 3.66-19.73l90.44-401.39h150.8l40.02-175.29h-150.76L2347.96 0h-289.03l-50.28 219.15h-157.79l-40.33 175.23h158.23l-116.6 510.27a122 122 0 0 0-2.72 27.2c0 68.98 55.44 125.38 124.02 125.38l249.14-1.08 40.18-174.61c.09.06-21.62.83-34.39.83m3183.11 0h.64c-36.52 0-66.5-29.82-65.88-66.84 0-7.8 1.7-13.82 3.37-19.73l90.64-401.39H5591l39.99-175.29h-150.51L5530.5 0h-288.35l-50.77 219.15h-157.42l-40.33 175.23h158.25L5035.2 904.65a116 116 0 0 0-3.04 27.2c.16 68.98 55.48 125.38 123.94 125.38h.21l249.45-1.08 39.9-174.61c-.03.06-21.22.83-34.17.83m-2068.96 173.41c18.93-8.06 32.06-24.6 36.95-45.2l1.61-6.69-.83 1.55 140.07-611.37h-115.6L3444.38 219h115.75l12.89-56.97 2.91-11.55C3601.4 64 3680.47.93 3774.15.93l.43-.59h274.26l-32 140.66-97.51-.28c-31.35 0-57 22-64.3 51.24v-1.12l-6.73 28.13h150.64l-39.47 175.75H3808.4l-124.58 548.3c-13.2 64.53-69.5 113-137.35 113zM2797.6 860.94l-1.3.62a104.3 104.3 0 0 1-58.23 17.5c-59.38 0-107.46-48.5-107.46-108.63 0-60.06 48.08-108.88 107.46-108.88l203.66.74c-17.12 85.59-70.93 157.8-144.13 198.65m506.74-533.31c0-60.06-48.23-108.5-107.43-108.5h-643.46l-39.3 174.1h444.25c18.52 0 33.55 14.72 33.55 33.21 0 2.54-.16 4.93-.78 7.38h-.4l-17.69 76.94h-311.43c-159.58 0-289.03 131.21-289.03 292.78 0 2.39 0 5.02.15 7.47 0 0 .1 8.3.28 13.66 4.4 150.72 139.7 255.24 287.08 255.24 18.53 0 33.55-1.37 54.43-4.96 59.22-10.6 103.02-27.5 143.3-59.16 19.54 24.72 50.2 39.99 83.84 39.99h271.94c-29.61-19.27-49-53.6-49-91.88 0-9.17.96-18.09 2.97-26.76l134.03-586.46v.83c1.74-7.65 2.7-15.7 2.7-23.88M656.28 434.06l-18.09 77.9H385.62l14.15-59.44c4.18-32.58 31.38-57.64 64.56-58.26l159.58.19c18.25 0 32.9 14.86 32.9 33.54 0 2.08 0 4-.53 6.07m205.65-214.88H278.76l-2.15-1.02c-65.57 0-121.02 45.7-136.07 107.67L2.14 925.31C.5 932.77 0 939.83 0 947.73c0 60.13 48.26 108.79 107.61 108.79h697.64l45.6-201.06H389.8l.93.34c-36.68 0-66.41-29.92-66.41-66.82 0-5.7 1.08-11.27 2.2-16.5l-.35.58 22.43-103h545.27l73.9-322.23a132 132 0 0 0 1.55-20.1c.03-59.85-47.95-108.55-107.39-108.55m5118.52 641.85-1.11.53a105.6 105.6 0 0 1-58.54 17.5c-59.26 0-107.03-48.5-107.03-108.63 0-60.16 47.8-108.88 107.03-108.88l203.78.62a294.3 294.3 0 0 1-144.13 198.86M6380.05 219h-643.78l-39.43 174.27h444.6a33.24 33.24 0 0 1 33.45 33.2c0 2.6-.19 4.93-.71 7.5l-.5-.15-17.35 76.94h-311.55c-159.5 0-289 131.3-289 292.78v7.53s.3 8.33.3 13.69c4.31 150.63 139.8 255.24 286.9 255.24 18.62 0 33.7-1.46 54.61-5.05 59.32-10.6 102.75-27.5 143.42-59.16 19.61 24.8 50.21 40.23 83.76 40.23h272.03c-29.8-19.51-49.31-53.83-49.31-92.12 0-9.07 1.08-18.09 3.25-26.76l133.9-586.43v.77c1.71-7.65 2.8-15.64 2.8-23.88-.1-60.16-48.33-108.6-107.4-108.6M4588 434.68l-17.8 78.03h-252.62l14.2-59.44c3.83-32.43 31.25-57.83 64.33-58.36l159.52.1c18.25 0 33.05 15.08 33.05 33.54 0 2.1-.18 4.15-.68 6.13m205.93-215.06h-583.27l-2.05-.93c-66 0-121.05 45.78-136.45 107.55L3933.9 926.02c-1.7 7.56-2.05 14.43-2.05 22.24 0 60.22 48.14 108.91 107.33 108.91h697.8l45.78-201.19h-461.2l.87.34c-36.68 0-66.08-29.8-66.08-66.66 0-5.85.62-11.4 2.02-16.66l-.78.71 22.86-103.33h545.46l73.47-322.34a100 100 0 0 0 1.92-19.67c0-60.06-47.98-108.75-107.36-108.75m1899.11 131.21h20.88l34.13 56.93h24.82l-37.36-58.6c20.23-2.14 34.6-12.17 34.6-36.18 0-27.17-16.05-38.32-48.5-38.32h-50.19v133.1h21.59v-56.93zm0-18.58v-38.91h26.52c13.07 0 28.9 1.95 28.9 17.94 0 19.36-14.62 20.97-30.73 20.97zm141.4 6.69c0-72.2-54.51-120.25-117.36-120.25-63.94 0-118.24 48.01-118.24 120.25 0 68.45 49.1 120.18 118.24 120.18 62.85 0 117.37-47.82 117.37-120.18m-25.65 0c0 58.76-40.67 99.21-91.72 99.21-57.34 0-92.68-44.6-92.68-99.21 0-58.33 40.33-99.22 92.68-99.22 51.05-.03 91.72 40.89 91.72 99.22%22/%3E%3C/svg%3E\", ar: 6.328, mono: false },\n \"farmaciasyza\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 141.31 65.39%22%3E%3Cg data-name=%22Grupo 3266%22%3E%3Cpath fill=%22%23009%22 d=%22M90.49 39.75a8 8 0 0 1-6.43 2.7c-4.17 0-6.01-2.16-6.4-4.51s-.63-8.66 7.77-8.66a13 13 0 0 1 5.05.83ZM69.71 30.1c-.95 2.13-2.29 7.57-.56 11.74 1.88 4.51 5.66 7.71 12.51 7.71s10.07-3.46 10.07-3.46c3.41 5.52 11.48 2.79 11.48 2.79l-.06-5.82h-1.92c-1.53 0-1.83-1.67-1.83-3.06V24.57c-3.88-1.88-13.5-2.54-18.1-1.78 0 0-8.81 1.09-11.59 7.32%22 data-name=%22Trazado 25280%22/%3E%3Cpath fill=%22%23009%22 d=%22M51.02 41.85 60.29 33a42 42 0 0 0 4.95-5.26l-.13-4.96H37.3v7.34h13.87C45.23 35.58 36.6 43.97 36.6 43.97v4.91h29.15l-.1-7.03Z%22 data-name=%22Trazado 25281%22/%3E%3Cpath fill=%22%233c3%22 d=%22M25.42 58.35h4v1.44h-2.26v1.43h1.48v1.34h-1.48v2.65H25.4Z%22 data-name=%22Trazado 25282%22/%3E%3Cpath fill=%22%233c3%22 d=%22M34.93 62.62h1.5l-.52-1.77-.13-.52h-.19l-.11.52Zm-.48-4.28h2.48L39 65.21h-1.8l-.34-1.15h-2.35l-.35 1.15h-1.78Z%22 data-name=%22Trazado 25283%22/%3E%3Cpath fill=%22%233c3%22 d=%22M45.98 59.97a.7.7 0 0 0-.54-.18h-.84v1.72h.84a.8.8 0 0 0 .54-.2 1 1 0 0 0 .2-.68 1 1 0 0 0-.2-.66m.74 2.66 1.6 2.58H46.3l-1.44-2.35h-.27v2.35h-1.74v-6.86h2.64a2.5 2.5 0 0 1 1.71.51 2.4 2.4 0 0 1 .71 1.8 2.2 2.2 0 0 1-.72 1.7 2 2 0 0 1-.47.28%22 data-name=%22Trazado 25284%22/%3E%3Cpath fill=%22%233c3%22 d=%22M56.18 64.34h-.86L54.2 61.9a5 5 0 0 1-.21-.63h-.14s.06.74.06 1.02v2.92h-1.75v-6.86h1.94l1.6 3.62h.1l1.6-3.62h1.94v6.86h-1.75V62.3c0-.29.06-1.02.06-1.02h-.14a5 5 0 0 1-.22.62Z%22 data-name=%22Trazado 25285%22/%3E%3Cpath fill=%22%233c3%22 d=%22M65.75 62.62h1.5l-.54-1.77-.12-.52h-.2l-.1.52Zm-.49-4.28h2.48l2.07 6.87h-1.79l-.34-1.15h-2.36l-.34 1.15h-1.79Z%22 data-name=%22Trazado 25286%22/%3E%3Cpath fill=%22%233c3%22 d=%22M78.25 64.9a4 4 0 0 1-2 .46 3.5 3.5 0 0 1-2.04-.61c-.54-.45-.95-1.18-.95-2.98 0-1.7.39-2.4.9-2.87a3 3 0 0 1 2.1-.72 5 5 0 0 1 1.77.33l-.3 1.36a4 4 0 0 0-1.2-.2 1.6 1.6 0 0 0-1.08.36c-.23.23-.43.68-.43 1.75 0 1.12.2 1.55.46 1.78a1.6 1.6 0 0 0 1.05.31 5 5 0 0 0 1.41-.27Z%22 data-name=%22Trazado 25287%22/%3E%3Cpath fill=%22%233c3%22 d=%22M82.14 58.35h1.75v6.85h-1.75z%22 data-name=%22Rect%C3%A1ngulo 1541%22/%3E%3Cpath fill=%22%233c3%22 d=%22M90.28 62.62h1.5l-.53-1.77-.12-.52h-.2l-.11.52Zm-.48-4.28h2.48l2.07 6.87h-1.79l-.34-1.15h-2.36l-.35 1.15h-1.78Z%22 data-name=%22Trazado 25288%22/%3E%3Cpath fill=%22%233c3%22 d=%22M100.66 65.36a6 6 0 0 1-2.54-.58l.31-1.4a5 5 0 0 0 2.04.5c.5 0 .86-.23.86-.7q.01-.51-.6-.66l-.74-.18c-1.11-.25-1.95-.69-1.95-2.02 0-1.28.86-2.13 2.5-2.13a5 5 0 0 1 2.08.48l-.48 1.39a4 4 0 0 0-1.53-.39c-.5 0-.78.26-.78.62a.5.5 0 0 0 .43.52l.82.2c1.2.28 2.03.76 2.03 2.08a2.13 2.13 0 0 1-2.46 2.27%22 data-name=%22Trazado 25289%22/%3E%3Cpath fill=%22%23009%22 d=%22m24.38 22.74-7.3 17.62-6.78-17.62H0l11.34 27.13a9 9 0 0 1-1.21.79 8 8 0 0 1-2.48.84 18 18 0 0 1-2.2.24q-1.06.04-2.07 0l-1.4 6.47q2.07.15 5.22.15a20 20 0 0 0 8.3-1.54 14 14 0 0 0 5.2-3.98 13 13 0 0 0 .85-1.1 9 9 0 0 0 .67-1.15l12.46-27.85Z%22 data-name=%22Trazado 25290%22/%3E%3Cpath fill=%22%233c3%22 d=%22M118.55 22.76v5.15a5.87 5.87 0 0 0 11.74 0v-5.15h5.15a5.87 5.87 0 0 0 0-11.74h-5.15V5.87a5.87 5.87 0 0 0-11.74 0v5.15h-5.15a5.87 5.87 0 0 0 0 11.74Z%22 data-name=%22Trazado 25291%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 12.63a.53.53 0 1 1 .54.53.53.53 0 0 1-.53-.53%22 data-name=%22Trazado 25292%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 12.63a.4.4 0 1 1 .4.41.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25293%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 12.63a.29.29 0 1 1 .3.29.3.3 0 0 1-.3-.3%22 data-name=%22Trazado 25294%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 12.63a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25295%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 14.74a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25296%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 16.86a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25297%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 18.97a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25298%22/%3E%3Cpath fill=%22%23009%22 d=%22M137.03 21.09a.14.14 0 1 1 .14.14.14.14 0 0 1-.14-.14%22 data-name=%22Trazado 25299%22/%3E%3Cpath fill=%22%23009%22 d=%22M131.44 13.69a.44.44 0 1 1 .44.44.44.44 0 0 1-.44-.44%22 data-name=%22Trazado 25300%22/%3E%3Cpath fill=%22%23009%22 d=%22M133.68 13.69a.32.32 0 1 1 .32.32.3.3 0 0 1-.32-.32%22 data-name=%22Trazado 25301%22/%3E%3Cpath fill=%22%23009%22 d=%22M135.91 13.69a.2.2 0 1 1 .2.2.2.2 0 0 1-.2-.2%22 data-name=%22Trazado 25302%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 14.74a.53.53 0 1 1 .54.54.53.53 0 0 1-.53-.54%22 data-name=%22Trazado 25303%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 14.74a.4.4 0 1 1 .4.41.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25304%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 14.74a.29.29 0 1 1 .09.2.3.3 0 0 1-.09-.2%22 data-name=%22Trazado 25305%22/%3E%3Cpath fill=%22%23009%22 d=%22M131.44 15.8a.44.44 0 1 1 .44.44.44.44 0 0 1-.44-.44%22 data-name=%22Trazado 25306%22/%3E%3Cpath fill=%22%23009%22 d=%22M133.68 15.8a.32.32 0 1 1 .32.32.3.3 0 0 1-.32-.32%22 data-name=%22Trazado 25307%22/%3E%3Cpath fill=%22%23009%22 d=%22M135.91 15.8a.2.2 0 1 1 .06.14.2.2 0 0 1-.06-.14%22 data-name=%22Trazado 25308%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 16.86a.53.53 0 1 1 .54.53.53.53 0 0 1-.53-.53%22 data-name=%22Trazado 25309%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 16.86a.4.4 0 1 1 .4.4.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25310%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 16.86a.29.29 0 1 1 .3.29.3.3 0 0 1-.3-.3%22 data-name=%22Trazado 25311%22/%3E%3Cpath fill=%22%23009%22 d=%22M131.44 17.92a.44.44 0 1 1 .44.44.44.44 0 0 1-.44-.44%22 data-name=%22Trazado 25312%22/%3E%3Cpath fill=%22%23009%22 d=%22M133.68 17.92a.32.32 0 1 1 .32.32.3.3 0 0 1-.32-.32%22 data-name=%22Trazado 25313%22/%3E%3Cpath fill=%22%23009%22 d=%22M135.91 17.92a.2.2 0 1 1 .06.14.2.2 0 0 1-.06-.14%22 data-name=%22Trazado 25314%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 18.98a.53.53 0 1 1 .54.53.53.53 0 0 1-.53-.53%22 data-name=%22Trazado 25315%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 18.97a.4.4 0 1 1 .4.41.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25316%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 18.97a.29.29 0 1 1 .3.3.3.3 0 0 1-.3-.3%22 data-name=%22Trazado 25317%22/%3E%3Cpath fill=%22%23009%22 d=%22M131.44 20.03a.44.44 0 1 1 .44.44.44.44 0 0 1-.44-.44%22 data-name=%22Trazado 25318%22/%3E%3Cpath fill=%22%23009%22 d=%22M133.68 20.03a.32.32 0 1 1 .32.32.3.3 0 0 1-.32-.32%22 data-name=%22Trazado 25319%22/%3E%3Cpath fill=%22%23009%22 d=%22M135.91 20.03a.2.2 0 1 1 .06.14.2.2 0 0 1-.06-.14%22 data-name=%22Trazado 25320%22/%3E%3Cpath fill=%22%23009%22 d=%22M130.3 21.09a.53.53 0 1 1 .54.53.53.53 0 0 1-.53-.53%22 data-name=%22Trazado 25321%22/%3E%3Cpath fill=%22%23009%22 d=%22M132.54 21.09a.4.4 0 1 1 .4.4.4.4 0 0 1-.4-.4%22 data-name=%22Trazado 25322%22/%3E%3Cpath fill=%22%23009%22 d=%22M134.77 21.1a.29.29 0 1 1 .3.28.3.3 0 0 1-.3-.29%22 data-name=%22Trazado 25323%22/%3E%3Cpath fill=%22%23009%22 d=%22M128.65 22.78a.53.53 0 1 1-.53.53.53.53 0 0 1 .53-.53%22 data-name=%22Trazado 25324%22/%3E%3Cpath fill=%22%23009%22 d=%22M128.65 25a.4.4 0 1 1-.4.42.4.4 0 0 1 .4-.41%22 data-name=%22Trazado 25325%22/%3E%3Cpath fill=%22%23009%22 d=%22M128.65 27.24a.29.29 0 1 1-.29.29.3.3 0 0 1 .3-.29%22 data-name=%22Trazado 25326%22/%3E%3Cpath fill=%22%23009%22 d=%22M128.65 29.5a.14.14 0 1 1-.14.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25327%22/%3E%3Cpath fill=%22%23009%22 d=%22M126.54 29.5a.14.14 0 1 1-.14.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25328%22/%3E%3Cpath fill=%22%23009%22 d=%22M124.42 29.5a.14.14 0 1 1-.14.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25329%22/%3E%3Cpath fill=%22%23009%22 d=%22M122.3 29.5a.14.14 0 1 1-.13.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25330%22/%3E%3Cpath fill=%22%23009%22 d=%22M120.2 29.5a.14.14 0 1 1-.15.14.14.14 0 0 1 .14-.14%22 data-name=%22Trazado 25331%22/%3E%3Cpath fill=%22%23009%22 d=%22M127.6 23.9a.44.44 0 1 1-.45.45.44.44 0 0 1 .44-.44%22 data-name=%22Trazado 25332%22/%3E%3Cpath fill=%22%23009%22 d=%22M127.6 26.14a.32.32 0 1 1-.32.33.3.3 0 0 1 .32-.33%22 data-name=%22Trazado 25333%22/%3E%3Cpath fill=%22%23009%22 d=%22M127.6 28.38a.2.2 0 1 1-.15.06.2.2 0 0 1 .14-.06%22 data-name=%22Trazado 25334%22/%3E%3Cpath fill=%22%23009%22 d=%22M126.54 22.78a.53.53 0 1 1-.54.53.53.53 0 0 1 .54-.53%22 data-name=%22Trazado 25335%22/%3E%3Cpath fill=%22%23009%22 d=%22M126.54 25a.4.4 0 1 1-.4.42.4.4 0 0 1 .4-.41%22 data-name=%22Trazado 25336%22/%3E%3Cpath fill=%22%23009%22 d=%22M126.54 27.24a.29.29 0 1 1-.3.29.3.3 0 0 1 .3-.29%22 data-name=%22Trazado 25337%22/%3E%3Cpath fill=%22%23009%22 d=%22M125.48 23.9a.44.44 0 1 1-.44.45.44.44 0 0 1 .44-.44%22 data-name=%22Trazado 25338%22/%3E%3Cpath fill=%22%23009%22 d=%22M125.48 26.14a.32.32 0 1 1-.32.33.3.3 0 0 1 .32-.33%22 data-name=%22Trazado 25339%22/%3E%3Cpath fill=%22%23009%22 d=%22M125.48 28.38a.2.2 0 1 1-.2.2.2.2 0 0 1 .2-.2%22 data-name=%22Trazado 25340%22/%3E%3Cpath fill=%22%23009%22 d=%22M124.42 22.78a.53.53 0 1 1-.53.53.53.53 0 0 1 .53-.53%22 data-name=%22Trazado 25341%22/%3E%3Cpath fill=%22%23009%22 d=%22M124.42 25a.4.4 0 1 1-.4.42.4.4 0 0 1 .4-.41%22 data-name=%22Trazado 25342%22/%3E%3Cpath fill=%22%23009%22 d=%22M124.42 27.24a.29.29 0 1 1-.29.29.3.3 0 0 1 .3-.29%22 data-name=%22Trazado 25343%22/%3E%3Cpath fill=%22%23009%22 d=%22M123.36 23.9a.44.44 0 1 1-.44.45.44.44 0 0 1 .44-.44%22 data-name=%22Trazado 25344%22/%3E%3Cpath fill=%22%23009%22 d=%22M123.36 26.14a.32.32 0 1 1-.32.33.3.3 0 0 1 .32-.33%22 data-name=%22Trazado 25345%22/%3E%3Cpath fill=%22%23009%22 d=%22M123.36 28.38a.2.2 0 1 1-.14.06.2.2 0 0 1 .14-.06%22 data-name=%22Trazado 25346%22/%3E%3Cpath fill=%22%23009%22 d=%22M122.3 22.78a.53.53 0 1 1-.53.53.53.53 0 0 1 .54-.53%22 data-name=%22Trazado 25347%22/%3E%3Cpath fill=%22%23009%22 d=%22M122.3 25a.4.4 0 1 1-.4.42.4.4 0 0 1 .4-.41%22 data-name=%22Trazado 25348%22/%3E%3Cpath fill=%22%23009%22 d=%22M122.3 27.24a.29.29 0 1 1-.28.29.3.3 0 0 1 .29-.29%22 data-name=%22Trazado 25349%22/%3E%3Cpath fill=%22%23009%22 d=%22M121.25 23.9a.44.44 0 1 1-.44.45.44.44 0 0 1 .44-.44%22 data-name=%22Trazado 25350%22/%3E%3Cpath fill=%22%23009%22 d=%22M121.25 26.14a.32.32 0 1 1-.23.1.3.3 0 0 1 .23-.1%22 data-name=%22Trazado 25351%22/%3E%3Cpath fill=%22%23009%22 d=%22M121.25 28.38a.2.2 0 1 1-.14.06.2.2 0 0 1 .14-.06%22 data-name=%22Trazado 25352%22/%3E%3Cpath fill=%22%23009%22 d=%22M120.2 22.78a.53.53 0 1 1-.54.53.53.53 0 0 1 .53-.53%22 data-name=%22Trazado 25353%22/%3E%3Cpath fill=%22%23009%22 d=%22M120.2 25a.4.4 0 1 1-.42.42.4.4 0 0 1 .41-.41%22 data-name=%22Trazado 25354%22/%3E%3Cpath fill=%22%23009%22 d=%22M120.2 27.24a.29.29 0 1 1-.21.08.3.3 0 0 1 .2-.08%22 data-name=%22Trazado 25355%22/%3E%3Cpath fill=%22%23009%22 d=%22M113.72 41.85h-1.14v1.9h1.06c.64 0 1.01-.19 1.01-.98 0-.62-.27-.92-.94-.92m-1.67-.5h1.86a1.28 1.28 0 0 1 1.31 1.44 1.36 1.36 0 0 1-1.12 1.44l1.54 2.18h-.67l-1.46-2.16h-.92v2.16h-.55Zm1.58-1.8a4.4 4.4 0 1 0 4.39 4.38 4.4 4.4 0 0 0-4.39-4.39m0 9.34a4.94 4.94 0 1 1 3.5-1.45 5 5 0 0 1-3.5 1.45%22 data-name=%22Trazado 25356%22/%3E%3C/g%3E%3C/svg%3E\", ar: 2.161, mono: false },\n \"fedex\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%22-0.81 -0.35 74.35 33.92%22%3E%3Cpath d=%22m59.95 7.77 2.98 3.28 2.87-3.28h6.12l-5.99 6.73L72 21.28h-6.37l-2.95-3.3-2.92 3.3h-6.15l6.01-6.75-6.01-6.76z%22 style=%22fill:%23ff5900%22 transform=%22translate(-.81 -.35)%22/%3E%3Cpath d=%22M53.61 7.77v4.57H46.8v4.19h6.81v4.75H41.79V0h11.82v4.74H46.8v3.03z%22 style=%22fill:%23ff5900%22 transform=%22translate(-.81 -.35)%22/%3E%3Cpath d=%22M36.81 0v8.71h-.05a5 5 0 0 0-4.09-1.7c-3.27 0-5.74 2.22-6.6 5.16-1-3.24-3.54-5.23-7.32-5.23-3.07 0-5.5 1.38-6.75 3.62V7.77H5.65V4.74h6.92V0H0v21.28h5.65v-8.94h5.64a9 9 0 0 0-.26 2.1c0 4.44 3.4 7.56 7.72 7.56 3.64 0 6.04-1.71 7.3-4.83h-4.84c-.65.94-1.15 1.22-2.46 1.22a2.9 2.9 0 0 1-2.83-2.9h9.87c.42 3.53 3.17 6.57 6.94 6.57 1.63 0 3.12-.8 4.03-2.15h.05v1.38h4.98V0zM16.08 12.4a2.7 2.7 0 0 1 2.67-2.23 2.6 2.6 0 0 1 2.7 2.23zm17.7 5.64c-1.83 0-2.97-1.7-2.97-3.5 0-1.9.99-3.74 2.98-3.74 2.06 0 2.88 1.83 2.88 3.74 0 1.81-.87 3.5-2.88 3.5m8.01 13.89V24.3H46v.57h-3.5v2.8h3.37v.58H42.5v3.1h3.68v.57zm4.87 0 2.05-2.74-1.95-2.6h.8l1.59 2.12 1.56-2.12h.78l-1.98 2.6 2.07 2.73h-.8l-1.7-2.26-1.63 2.26zm6.26 1.99h-.65V28.2q0-.8-.03-1.6h.63l.03.8c.4-.63.92-.92 1.71-.92 1.65 0 2.35 1.36 2.35 2.79s-.7 2.8-2.35 2.8q-1.11 0-1.7-.9zm3.36-4.66c0-1.14-.48-2.26-1.74-2.26-1.2 0-1.62.98-1.62 2.26s.43 2.25 1.62 2.25c1.26 0 1.74-1.11 1.74-2.25m3.98-2.17c-1.06 0-1.43.9-1.43 1.82v3.01h-.64v-3.76l-.03-1.57h.63l.04.77q.48-.9 1.55-.9l.3.03v.64zm1.2 2.29c0 1.2.57 2.19 1.74 2.19.9 0 1.33-.6 1.48-1.2h.62c-.29 1.11-.97 1.68-2.19 1.68-1.62 0-2.33-1.2-2.33-2.7 0-1.52.74-2.88 2.42-2.88 1.7 0 2.15 1.48 2.15 2.9zm.02-.49h3.18c0-1.04-.5-1.94-1.5-1.94-.92 0-1.55.7-1.68 1.94m6.38 3.16c-1.1 0-1.92-.52-1.92-1.68h.64c0 .8.53 1.2 1.3 1.2.74 0 1.3-.35 1.3-1.07 0-.64-.66-.8-1.35-1-.85-.25-1.76-.52-1.76-1.55 0-1.14.95-1.48 1.85-1.48 1.03 0 1.8.4 1.83 1.5h-.64c-.03-.63-.48-.98-1.17-.98-.54 0-1.19.2-1.19.9 0 .63.65.81 1.35 1 .84.23 1.77.49 1.77 1.52 0 1.2-.93 1.64-2.01 1.64m4.45 0c-1.1 0-1.91-.52-1.91-1.68h.64c0 .8.52 1.2 1.3 1.2.73 0 1.3-.35 1.3-1.07 0-.64-.66-.8-1.36-1-.84-.25-1.76-.52-1.76-1.55 0-1.14.96-1.48 1.86-1.48 1.03 0 1.8.4 1.83 1.5h-.64c-.03-.63-.49-.98-1.17-.98-.54 0-1.2.2-1.2.9 0 .63.66.81 1.36 1 .84.23 1.77.49 1.77 1.52 0 1.2-.93 1.64-2.02 1.64%22 style=%22fill:%232a007c%22 transform=%22translate(-.81 -.35)%22/%3E%3C/svg%3E\", ar: 2.192, mono: false },\n \"hsbc\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%220 0 315.9 85%22%3E%3Cpath fill=%22%23fff%22 d=%22M42.6 0h85v85h-85z%22/%3E%3Cpath fill=%22%23db0011%22 d=%22M170.1 42.6 127.6 0v85.1zm-85 0L127.6 0h-85z%22/%3E%3Cpath fill=%22%23db0011%22 d=%22m0 42.6 42.6 42.5V0zm85.1 0L42.6 85.1h85z%22/%3E%3Cpath d=%22M207.4 45.1H192v15.2h-7.7V24.7h7.7v14.6h15.4V24.7h7.7v35.6h-7.7zM233.7 61c-7.7 0-14-3.1-14.1-11.6h7.7c.1 3.8 2.3 6.1 6.5 6.1 3.1 0 6.7-1.6 6.7-5.1 0-2.8-2.4-3.6-6.4-4.8l-2.6-.7c-5.6-1.6-11.2-3.8-11.2-10.2 0-7.9 7.4-10.6 14.1-10.6 6.9 0 12.9 2.4 13 10.3h-7.7c-.3-3.2-2.2-5.1-5.8-5.1-2.9 0-5.7 1.5-5.7 4.7 0 2.6 2.4 3.4 7.4 5l3 .9c6.1 1.9 10 4 10 10-.1 8-7.9 11.1-14.9 11.1m19.2-36.2h12.4c2.3-.1 4.7 0 7 .4 4.3 1 7.6 3.8 7.6 8.6 0 4.6-2.9 6.9-7.1 8 4.8.9 8.4 3.3 8.4 8.6 0 8.1-8 9.9-14.2 9.9h-14zm12.4 14.8c3.4 0 6.9-.7 6.9-4.8 0-3.7-3.2-4.7-6.4-4.7h-5.4v9.5zM266 55c3.6 0 7.1-.8 7.1-5.2s-3-5.2-6.7-5.2h-6.1V55zm35.2 6c-11.5 0-16.6-7.3-16.6-18.2s5.7-18.8 17-18.8c7.1 0 14 3.2 14.2 11.2h-8c-.4-3.6-2.8-5.4-6.2-5.4-7 0-9.1 7.5-9.1 13.2s2.1 12.3 8.8 12.3c3.5 0 6.1-1.9 6.6-5.5h8c-.8 8.2-7.3 11.2-14.7 11.2%22/%3E%3C/svg%3E\", ar: 3.716, mono: false },\n \"imile\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 id=%22Layer_1%22 version=%221.1%22 viewBox=%22112 310 856 460%22%3E%3Cdefs%3E%3Cstyle%3E.st1%7Bfill:%230032a0%7D%3C/style%3E%3C/defs%3E%3Cpath d=%22M618.99 684.65h-21.53v64.79h18.97c6.74 0 12.27-1.17 16.42-3.48 4.18-2.32 7.29-5.99 9.24-10.9 1.93-4.87 2.91-11.36 2.91-19.29 0-10.22-2.2-18.04-6.54-23.25-4.36-5.22-10.91-7.87-19.46-7.87Zm15.17 31.12c0 8.7-1.31 15.07-3.9 18.93-2.55 3.81-6.71 5.74-12.37 5.74h-9.6v-46.79h10.34c5.36 0 9.33 1.77 11.78 5.25 2.49 3.53 3.76 9.21 3.76 16.87ZM673.04 702c-6.79 0-12.22 2.18-16.12 6.49-3.89 4.29-5.87 10.28-5.87 17.78s1.96 13.46 5.82 17.69c3.87 4.24 9.34 6.4 16.26 6.4 4 0 7.72-.83 11.06-2.46 3.35-1.64 5.96-3.95 7.76-6.88l.19-.3-5.63-5.42-.3.38c-3.18 4.07-7.43 6.13-12.62 6.13-3.64 0-6.53-1.03-8.6-3.07-1.99-1.96-3.26-4.87-3.78-8.65h32.45v-3.91c0-7.56-1.83-13.54-5.45-17.77-3.63-4.25-8.74-6.41-15.17-6.41m-.36 8.27c3.57 0 6.41 1.09 8.45 3.24 2.04 2.16 3.08 5.19 3.08 9.01v.2h-23.09c.46-3.91 1.66-6.98 3.58-9.13 1.97-2.2 4.66-3.32 7.98-3.32M720.44 741.75c-1.82.76-3.36 1.15-4.58 1.15-1.45 0-2.49-.35-3.1-1.04-.62-.7-.94-1.96-.94-3.73v-57.32h-9.92v57.32c0 3.99.93 7.05 2.76 9.1 1.84 2.06 4.6 3.11 8.18 3.11 3.79 0 6.94-.89 9.39-2.64l.24-.18-1.58-5.99-.47.19ZM729.86 702.91h9.92v46.53h-9.92zM734.77 684.37c-1.99 0-3.6.56-4.78 1.67-1.18 1.12-1.78 2.64-1.78 4.52s.6 3.4 1.78 4.52c1.17 1.11 2.78 1.67 4.78 1.67s3.61-.56 4.82-1.67c1.21-1.12 1.83-2.64 1.83-4.52s-.62-3.4-1.83-4.52c-1.21-1.11-2.83-1.67-4.82-1.67M769 736.9l-11.92-33.99h-10.26l17.87 46.53h8.64l17.86-46.53h-10.35zM814.48 702c-6.79 0-12.22 2.18-16.12 6.49-3.89 4.29-5.87 10.28-5.87 17.78s1.96 13.46 5.82 17.69c3.87 4.24 9.34 6.4 16.26 6.4 4 0 7.72-.83 11.06-2.46 3.35-1.64 5.96-3.95 7.76-6.88l.19-.3-5.63-5.42-.3.38c-3.18 4.07-7.43 6.13-12.62 6.13-3.64 0-6.53-1.03-8.6-3.07-1.99-1.96-3.26-4.88-3.78-8.65h32.45v-3.91c0-7.56-1.83-13.54-5.45-17.77-3.63-4.25-8.74-6.41-15.17-6.41m11.16 20.52v.2h-23.09c.46-3.91 1.66-6.98 3.58-9.13 1.97-2.2 4.66-3.32 7.98-3.32 3.57 0 6.41 1.09 8.45 3.24 2.04 2.16 3.08 5.19 3.08 9.01M867.53 702c-3.66 0-6.89.9-9.6 2.68-2.33 1.53-4.14 3.6-5.39 6.16-.01-2.7-.14-5.24-.37-7.53l-.04-.39h-9.36l.04.47c.18 2.23.27 5.96.27 11.11v34.95H853v-22.26c0-3.08.65-5.95 1.92-8.52s3.03-4.63 5.24-6.13c2.2-1.49 4.62-2.25 7.2-2.25 1.76 0 2.45.09 2.71.17l.56.16v-8.23l-.34-.08c-.82-.19-1.75-.28-2.75-.28ZM903.55 702.91l-9.93 32.18-11.17-32.18h-10.64l17.16 43.36c-1.84 4.77-3.78 8.23-5.78 10.28-1.97 2.03-4.42 3.06-7.26 3.06-1.7 0-3.18-.24-4.41-.7l-.6-.23v8.01l.33.08c2.22.55 4.22.84 5.95.84 9.11 0 15.82-5.78 19.95-17.18l17.1-47.52h-10.72ZM177.13 498.76v79.92c0 17.18-13.99 31.17-31.17 31.17s-31.3-13.99-31.3-31.17v-79.92c0-17.18 13.99-31.3 31.3-31.3 8.52 0 16.38 3.46 22.11 9.19 5.59 5.73 9.06 13.59 9.06 22.11%22 class=%22st1%22/%3E%3Cpath d=%22M177.13 418.83v79.79c0 17.32-13.99 31.3-31.17 31.3s-31.3-13.99-31.3-31.3v-79.79c0-17.18 13.99-31.17 31.3-31.17 8.52 0 16.38 3.46 22.11 9.19 5.59 5.59 9.06 13.45 9.06 21.98%22 class=%22st1%22/%3E%3Ccircle cx=%22145.91%22 cy=%22343.62%22 r=%2231.24%22 class=%22st1%22/%3E%3Cpath d=%22M177.13 498.76c0 8.66-3.46 16.38-9.06 22.11-5.73 5.59-13.59 9.06-22.11 9.06-17.32 0-31.3-13.85-31.3-31.17 0-8.52 3.46-16.38 9.19-22.11s13.45-9.19 22.11-9.19 16.38 3.46 22.11 9.19c5.59 5.73 9.06 13.59 9.06 22.11%22 style=%22fill:%233ccbda%22/%3E%3Cpath d=%22M392.62 609.86h-45.66l-52.47-148.19v148.19h-63.68V329.5h66.48l95.32 280.36Z%22 class=%22st1%22/%3E%3Cpath d=%22M442.28 329.5h66.48v280.36h-63.68V461.67l-52.47 148.19h-45.66l95.32-280.36ZM562.43 409.6h56.87v200.26h-56.87zM682.58 599.85c-9.61-9.34-14.42-22.83-14.42-40.45V312.68h56.87V560.6c0 9.61 5.87 14.42 17.62 14.42 6.67 0 14.55-1.86 23.63-5.61l8.41 29.64c-12.81 9.88-29.78 14.82-50.87 14.82-17.89 0-31.64-4.67-41.25-14.02ZM965.34 530.56H827.56c2.4 12.01 7.41 20.97 15.02 26.83 7.61 5.88 17.95 8.81 31.04 8.81 11.48 0 21.49-1.86 30.04-5.61 8.54-3.74 17.08-10.14 25.63-19.22l30.44 28.84c-7.75 13.08-19.82 23.63-36.25 31.64-16.42 8.01-34.24 12.01-53.47 12.01-31.51 0-56.21-9.14-74.1-27.44-17.89-18.29-26.83-43.59-26.83-75.9s8.94-58.2 26.83-76.9c17.89-18.69 42.46-28.04 73.69-28.04s53.33 9.28 70.29 27.83c16.95 18.56 25.43 44.13 25.43 76.7v20.43Zm-56.07-40.46c0-11.74-3.61-21.03-10.82-27.83-7.21-6.81-17.09-10.21-29.64-10.21-11.21 0-20.43 3.54-27.64 10.61-7.21 7.08-12.01 17.02-14.42 29.84h82.51v-2.4ZM590.87 324.49c17.45 0 31.6 14.15 31.6 31.6s-14.15 31.6-31.6 31.6-31.6-14.15-31.6-31.6 14.15-31.6 31.6-31.6%22 class=%22st1%22/%3E%3C/svg%3E\", ar: 1.861, mono: false },\n \"jtexpress\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220.63 0 998.75 209%22%3E%3Cg fill=%22red%22%3E%3Cpath d=%22M149.56 0h60.17c-15.74 69.29-31.6 138.55-47.44 207.82-53.78-.05-107.56.1-161.34.06 7.71-13.74 14.56-27.94 21.99-41.82 29.62.14 59.24.03 88.86.05C124.4 110.75 136.86 55.34 149.56 0m90.83 0h134.05c-10.56 19.06-20.98 38.2-31.6 57.24.02-5.07 1.03-10.15.33-15.19-1.03-5.79-6.09-9.84-11.33-11.84-9.46-3.61-20.81-3.55-29.5 2.08-11.92 7.26-17.2 23.7-11.15 36.4 5.61 11.14 13.97 20.6 22.57 29.52a317 317 0 0 0 33.23 29.24 23 23 0 0 0 4.07-7.44c2.91-8.48 4.75-17.29 6.45-26.08q20.77 5.93 41.54 11.89c-2.61 20.81-10.83 40.68-22.36 58.11 11.96 14.61 23.97 29.19 35.92 43.81-18.17.04-36.33-.02-54.49.03-3.93-4.09-7.7-8.33-11.63-12.41-18.28 8.5-38.43 12.66-58.52 13.31-23.29.34-47.55-4.97-66.47-19.1-10.68-10.48-16.99-25.92-15.08-40.96 1.47-12.06 7.38-23.11 14.69-32.63 9.51-12.22 21.35-22.51 34.22-31.06-14.01-15.65-23.53-36.72-20.95-58.04 1.83-9 3.98-17.93 6.01-26.88m19.88 138.34c-3.3 5.23-4.21 12.08-1.4 17.72 4.84 9.88 15.32 16.49 26.25 17.08 12.99.81 25.67-3.87 36.81-10.19-12.83-15.18-25.49-30.5-38.44-45.56-8.41 6.12-17.76 11.78-23.22 20.95%22/%3E%3Cpath d=%22M405.16 0h243.61c-4.7 4.53-9.26 9.21-13.92 13.77q-30.34-.05-60.67.01c-2.54 2.54-5.11 5.04-7.64 7.59 20.24.02 40.48-.02 60.72.02-3.96 3.57-7.31 8.09-11.63 11.08-20.3.21-40.61.07-60.91.06q-3.96 3.76-7.78 7.64c20.46.04 40.92 0 61.38.02q-8.32 8.34-16.7 16.61c-22.34.02-44.68.05-67.03-.02-12.67 50.32-25.09 100.7-37.71 151.04-19.59-.07-39.18.12-58.76-.1 11.83-50.46 25.07-100.58 37.51-150.9-30.51-.02-61.03.02-91.54-.02 10.39-18.92 20.59-37.94 31.07-56.8M889.2 138.19c4.89-7.7 13.89-11.85 22.72-12.95 8.51-.94 17.5-.27 25.24 3.68-1.82 4.86-3.68 9.7-5.45 14.57-6.69-3.04-14.53-4.87-21.71-2.52-4.16 1.26-7.57 6.15-5.31 10.38 2.65 4.41 7.7 6.42 11.92 9 6.43 3.45 12.81 8.45 14.83 15.79 2.1 8.77-.67 18.77-7.58 24.72-5.88 5.19-13.72 7.38-21.37 8.14h-7.78c-6.73-.68-13.6-1.97-19.37-5.7l5.86-14.39c7.19 3.88 15.62 6.17 23.79 4.67 4.19-.79 8.44-3.99 8.51-8.6.32-4.75-3.91-7.85-7.56-9.96-6.22-3.48-12.93-6.85-17.1-12.87-5-7.02-4.06-16.9.36-23.96m61.94-.04c4.91-7.7 13.91-11.82 22.74-12.92 8.5-.93 17.46-.23 25.2 3.68-1.82 4.86-3.69 9.7-5.45 14.58-6.12-2.81-13.05-4.44-19.75-3.11-3.45.72-7.01 2.96-7.81 6.6-.72 2.72.73 5.46 2.79 7.18 5.15 4.42 11.79 6.62 16.96 11.02 3.91 3.22 7.07 7.62 7.91 12.7 1.23 8.07-1.29 16.88-7.4 22.46-5.89 5.55-14 7.86-21.87 8.66h-7.8c-6.75-.68-13.63-1.97-19.42-5.7l5.88-14.39c7.21 3.9 15.67 6.18 23.86 4.66 4.14-.8 8.33-3.98 8.43-8.53.35-4.72-3.81-7.86-7.45-9.96-6.22-3.5-12.95-6.85-17.15-12.87-5.07-7.03-4.13-16.97.33-24.06m-391.76-11.96c16.18 0 32.35-.04 48.53.02-1.01 4.97-1.96 9.94-2.94 14.91h-30.82c-1.08 5.82-2.41 11.59-3.27 17.44 9.66-.14 19.33-.02 29-.06q-1.38 7.34-2.79 14.67c-9.7.04-19.41 0-29.12.02-1.24 6.58-2.59 13.13-3.7 19.73 10.86-.1 21.72-.02 32.58-.04l-2.8 14.93h-50.19c5.14-27.21 10.36-54.41 15.52-81.62m56.21-.01 18.53.01c3.06 9.57 6.23 19.13 8.64 28.9 1.12-.72 1.63-1.97 2.25-3.09 4.62-8.88 10.2-17.21 15.34-25.79 7-.05 14-.02 21.01-.02q-14.92 20.05-29.86 40.06c5.18 13.87 10.45 27.7 15.65 41.56-6.24-.02-12.48.06-18.72-.05-3.33-10.11-6.92-20.15-9.9-30.37a2578 2578 0 0 1-18.03 30.36c-7.06.14-14.13.03-21.19.06 10.16-13.97 20.55-27.78 30.61-41.83-4.88-13.22-9.55-26.53-14.33-39.8m75.28 1.54c9.93-2 20.24-2.83 30.31-1.47 8.21 1.14 16.8 5.46 20.08 13.51 4.28 11.17-.13 24.74-9.72 31.75-9.39 6.95-21.78 8.14-33.09 6.94l-5.58 29.37c-5.71.02-11.42-.06-17.12.04 4.88-26.74 10.1-53.43 15.12-80.14m14.89 12.35c-1.53 8.05-3.1 16.1-4.61 24.16 6.56 1.15 14.09.82 19.29-3.85 4.81-4.1 6.69-12.28 2.41-17.38-4.44-4.45-11.4-3.56-17.09-2.93m53.83-12.35c8.64-1.78 17.51-2.4 26.31-2 7.65.49 15.85 2.33 21.4 7.99 5.4 5.55 5.9 14.38 3.16 21.32-2.9 7.27-9.84 12.1-17.11 14.33 3.94 2.19 6.32 6.27 7.14 10.61 1.84 9.21 1.46 18.75 3.88 27.86-6.01-.04-12.02.01-18.02-.03-1.53-7.22-1.81-14.61-2.69-21.92-.45-3.51-1.69-7.49-5.1-9.18-3.41-1.55-7.27-.95-10.89-1.08q-3.06 16.1-6.08 32.19c-5.8.03-11.6-.03-17.39.04 5.02-26.73 10.25-53.42 15.39-80.13m14.89 12.39c-1.28 7.49-2.87 14.92-4.26 22.39 6.33.02 13.46.65 18.7-3.67 4.78-3.55 6.93-11.61 2.4-16.18-4.55-3.98-11.28-3.58-16.84-2.54m55.99-13.92h48.5q-1.44 7.47-2.91 14.93l-30.84.01c-1.11 5.79-2.26 11.57-3.36 17.36q14.53.02 29.1.01-1.37 7.35-2.79 14.68-14.56.01-29.11 0a3257 3257 0 0 0-3.76 19.7h32.63q-1.39 7.47-2.81 14.94h-50.18c5.15-27.22 10.36-54.42 15.53-81.63%22/%3E%3C/g%3E%3C/svg%3E\", ar: 4.779, mono: false },\n \"mastercard\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1000 618%22%3E%3Cpath fill=%22%23EB001B%22 d=%22M308 0a309 309 0 1 0 2 0z%22/%3E%3Cpath fill=%22%23F79E1B%22 d=%22M690 0a309 309 0 1 0 2 0z%22/%3E%3Cpath fill=%22%23FF5F00%22 d=%22M500 66a309 309 0 0 0 0 486 309 309 0 0 0 0-486%22/%3E%3C/svg%3E\", ar: 1.618, mono: false },\n \"mercadopago\": { src: \"data:image/png;base64,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\", ar: 3.838, mono: false },\n \"oxxo\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.0%22 viewBox=%2235.43 35.45 885.83 448.9%22%3E%3Cpath d=%22M-792.46-878.05c0-29.6 23.78-53.62 53.13-53.62H40.12c29.33 0 53.13 24.02 53.13 53.62v339.17c0 29.6-23.8 53.6-53.13 53.6h-779.45c-29.35 0-53.13-24-53.13-53.6z%22 style=%22fill:%23fff;fill-opacity:1;fill-rule:nonzero;stroke:none%22 transform=%22translate(827.89 968.22)%22/%3E%3Cpath d=%22M-791.84-883.46c0-27.22 21.88-49.3 48.86-49.3h787.5c26.99 0 48.85 22.08 48.85 49.3v1.57h-885.21zM93.37-534.4v1.22c0 27.23-21.86 49.31-48.84 49.31h-787.5c-26.99 0-48.87-22.08-48.87-49.3v-1.23z%22 style=%22fill:%23fbb110;fill-opacity:1;fill-rule:nonzero;stroke:none%22 transform=%22translate(827.89 968.22)%22/%3E%3Cpath d=%22M-179.2-708.84c0 68.92 55.35 124.79 123.66 124.79 68.29 0 123.67-55.87 123.67-124.8s-55.38-124.8-123.67-124.8c-68.3 0-123.66 55.87-123.66 124.82m-589.6 0c0 68.92 55.37 124.79 123.68 124.79 68.29 0 123.67-55.87 123.67-124.8s-55.38-124.81-123.67-124.81c-68.3 0-123.69 55.87-123.69 124.82m862.17 150.8h-609.75c10.99-7.78 21.22-18.43 32.39-32.8l62.11-80 27.13 34.6 30.19-40.52-26.4-33.9 63.22-81.44c20.07-25.83-18.31-56.19-38.4-30.36L-422-750.47l-56.8-72.93c-20.1-25.76-58.42 4.67-38.32 30.46l64.2 82.3-69.46 89.44c-24.68 31.78-49.31 60.92-98.2 63.17h-171.26v-300.24h606.54c-10.43 7.7-20.27 18-30.94 31.76l-62.1 79.96-27.15-34.57-30.16 40.52 26.4 33.89-63.25 81.43c-20.05 25.83 18.34 56.19 38.4 30.36l55.89-71.96 56.8 72.91c20.1 25.78 58.42-4.65 38.32-30.43l-64.2-82.34 69.46-89.41c22.67-29.23 45.32-56.22 86.8-62.12h184.4zm-222.94-150.81c0-41.28 33.15-74.73 74.03-74.73s74.02 33.45 74.02 74.73c0 41.25-33.13 74.7-74.02 74.7s-74.03-33.45-74.03-74.7m-589.58 0c0-41.28 33.15-74.73 74.03-74.73 40.87 0 74.02 33.45 74.02 74.73 0 41.25-33.15 74.7-74.02 74.7-40.88 0-74.03-33.45-74.03-74.7%22 style=%22fill:%23e70020;fill-opacity:1;fill-rule:nonzero;stroke:none%22 transform=%22translate(827.89 968.22)%22/%3E%3C/svg%3E\", ar: 1.973, mono: false },\n \"paquetexpress\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%2217 27 155 34%22%3E%3Crect x=%2217%22 y=%2227%22 width=%22155%22 height=%2234%22 rx=%223%22 fill=%22%23002a52%22/%3E%3Cg fill=%22%23FFF%22 fill-rule=%22evenodd%22%3E%3Cpath d=%22M35.6 46.8V30.3h3.3c1.7 0 3 .4 3.9 1.2.8.8 1.3 2 1.3 3.6s-.4 2.8-1.3 3.6c-.8.9-1.9 1.3-3.4 1.3h-.7l-.1 6.8h-3zm3-9.3h.4c.7 0 1.2-.2 1.5-.6.4-.4.6-1 .6-1.7 0-.8-.2-1.4-.5-1.8-.4-.4-.9-.5-1.6-.5h-.4v4.6zm26.6 9L63.5 48 62 46.3c-.3.2-.7.4-1.1.5-.4.1-.9.2-1.4.2-1.8 0-3.2-.8-4.2-2.3-.9-1.5-1.4-3.6-1.4-6.4 0-2.5.5-4.5 1.5-6s2.3-2.2 4.1-2.2c1.8 0 3.1.7 4.1 2.3 1 1.5 1.5 3.6 1.5 6.4 0 1.3-.1 2.5-.4 3.5-.2.9-.6 1.7-1.1 2.3l1.6 1.9zm-5.2-6l1.5 1.7c.1-.4.2-1 .3-1.5.1-.6.1-1.3.1-2.1 0-1.8-.2-3.1-.6-4-.4-.9-1-1.4-1.8-1.4-.9 0-1.5.5-1.9 1.4-.4.9-.6 2.4-.6 4.3 0 1.6.2 2.9.6 3.8.5.8 1.1 1.3 1.8 1.3.1 0 .2 0 .3-.1h.2L58.3 42l1.7-1.5zm16.5-10.2v10.4c0 1.3 0 2.2-.1 2.7s-.2 1-.4 1.3c-.4.8-.9 1.4-1.7 1.8-.7.3-1.6.5-2.8.5-1.1 0-2.1-.2-2.8-.5-.8-.4-1.3-1-1.7-1.8-.2-.4-.3-.8-.4-1.3 0-.6-.1-1.5-.1-2.7V30.3h3.2v10.6c0 1.4.1 2.3.4 2.7.3.3.7.5 1.4.5s1.2-.2 1.4-.6c.3-.4.4-1.2.4-2.6V30.3h3.2zM78.6 46.8V30.3h6.7v3.1h-3.7v3.3h3.3v3h-3.3v3.9h3.7v3.2zM89.4 46.8V33.4H87v-3.1h8.1v3.1h-2.5v13.4zM96.5 46.8V30.3h6.7v3.1h-3.7v3.3h3.3v3h-3.3v3.9h3.7v3.2zM111.5 46.8l-1.3-3.3-.3-1.2c-.1-.4-.2-.8-.3-1.3-.1.5-.2.9-.3 1.3-.1.5-.2.8-.3 1.2l-1.1 3.3h-3.6l3.7-8.3-3.4-8.2h3.4l1.2 3.5c0 .2.1.4.2.7.1.4.2.8.3 1.3.1-.5.1-.8.2-1.2.1-.3.2-.6.3-.8l1.2-3.5h3.3l-3.4 8.2 3.6 8.3h-3.4zm4.4 0V30.3h3.3c1.8 0 3.1.4 3.9 1.2.9.8 1.3 2 1.3 3.6s-.4 2.8-1.2 3.6c-.9.9-2 1.3-3.5 1.3h-.7v6.8h-3.1zm3.1-9.3H119.3c.7 0 1.2-.2 1.6-.6.3-.4.5-1 .5-1.7 0-.8-.2-1.4-.5-1.8-.3-.4-.9-.5-1.6-.5h-.2-.1v4.6zm6.6 9.3V30.3h3.3c1.8 0 3.1.4 4 1.1.8.8 1.2 1.9 1.2 3.6 0 1.1-.2 2.1-.6 2.8-.5.7-1.1 1.2-1.9 1.5l3 7.5h-3.3l-2.6-6.8v6.8h-3.1zm3.1-9.3H129c.7 0 1.2-.2 1.6-.6.3-.4.5-1 .5-1.8s-.1-1.3-.5-1.7c-.3-.4-.8-.5-1.5-.5h-.3-.1v4.6zM136 46.8V30.3h6.7v3.1h-3.6v3.3h3.3v3h-3.3v3.9h3.6v3.2zM144.6 46.3v-3.5c.4.4.8.7 1.2.8.4.2.8.3 1.2.3.5 0 1-.1 1.3-.4.3-.3.4-.7.4-1.2 0-.7-.4-1.3-1.2-2.1-.3-.2-.4-.3-.5-.4-1-1-1.7-1.8-2.1-2.5-.3-.7-.5-1.5-.5-2.4 0-1.5.4-2.6 1.2-3.5.7-.9 1.8-1.3 3-1.3.5 0 .9.1 1.3.2.5.1.9.3 1.4.6v2.9c-.6-.3-1-.4-1.3-.6-.3-.1-.6-.1-.8-.1-.5 0-.9.1-1.2.4-.3.3-.4.7-.4 1.2 0 .4.1.8.3 1.2.3.4.8.9 1.6 1.6 1 1 1.7 1.8 2 2.4.3.6.5 1.4.5 2.3 0 1.5-.4 2.7-1.2 3.5-.9.9-2 1.3-3.4 1.3-.5 0-1 0-1.5-.2-.4-.1-.9-.3-1.3-.5m8.4 0v-3.5c.4.4.8.7 1.2.8.4.2.8.3 1.2.3.5 0 1-.1 1.3-.4.3-.3.4-.7.4-1.2 0-.7-.4-1.3-1.2-2.1-.3-.2-.4-.3-.5-.4-1-1-1.7-1.8-2.1-2.5-.3-.7-.5-1.5-.5-2.4 0-1.5.4-2.6 1.2-3.5.7-.9 1.8-1.3 3-1.3.5 0 .9.1 1.3.2.5.1.9.3 1.4.6v2.9c-.6-.3-1-.4-1.3-.6-.3-.1-.6-.1-.8-.1-.5 0-.9.1-1.2.4-.3.3-.4.7-.4 1.2 0 .4.1.8.3 1.2.3.4.8.9 1.6 1.6 1 1 1.7 1.8 2 2.4.3.6.5 1.4.5 2.3 0 1.5-.4 2.7-1.2 3.5-.9.9-2 1.3-3.4 1.3-.5 0-1 0-1.5-.2-.4-.1-.9-.3-1.3-.5M163.6 46.8v-2.6h.8l.4 1.8.5-1.8h.8v2.6h-.5v-2l-.5 2h-.5l-.5-2v2z%22%3E%3C/path%3E %3Cpath d=%22M26 27h-8v26.7c0 3.5 2.7 6.3 6.1 6.3h146.5v-3.3H31.5c-3.1 0-5.5-2.5-5.5-5.6V27zm3.2 21.6c0 2.7 2.1 4.8 4.7 4.8h136.7v-3.3h-137c-.7 0-1.2-.5-1.2-1.2V27h-3.2v21.6zm19.4-11.5l-.4-2.5-.3 2.5-.7 4.4h2.2l-.8-4.4zm1.4-6.8l3.8 16.5h-3.3l-.6-2.8h-3.2l-.6 2.8H43l3.7-16.5H50zM166.6 46.8h.5v-.5h-.5zM168.1 45.3h.8c.1 0 .2-.1.2-.1V45v-.2c-.1-.1-.1-.1-.2-.1-.1-.1-.2-.1-.4-.1h-.4v.7zm-.5 1.5v-2.6h1.1c.2 0 .4 0 .6.1.1 0 .2.1.3.2 0 .1.1.3.1.4 0 .2-.1.4-.2.5-.1.2-.3.2-.5.3.1 0 .2.1.3.2 0 .1.1.2.3.4l.3.5h-.6l-.4-.5c-.1-.2-.2-.4-.3-.4 0-.1-.1-.1-.1-.1-.1-.1-.2-.1-.3-.1h-.1v1.1h-.5zM170.2 46.8h.4v-.5h-.4z%22%3E%3C/path%3E%3C/g%3E%3C/svg%3E\", ar: 4.559, mono: false },\n \"paypal\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1310 439.6%22%3E%3Cpath d=%22M1310 0v328.3h-74.7V0zm-102.2 110.8v218.1h-66.4v-18.8c-8.4 8.2-18 14.4-28.6 18.8a87 87 0 0 1-34.7 7c-15.6 0-30.1-2.9-43.4-8.7-13.3-6.1-24.9-14.4-34.7-24.8-9.9-10.5-17.7-22.7-23.5-36.6-5.5-14.2-8.2-29.5-8.2-45.8s2.7-31.4 8.2-45.3c5.8-14.2 13.6-26.6 23.5-37.1a104.5 104.5 0 0 1 34.7-24.4c13.3-6.1 27.8-9.2 43.4-9.2 12.4 0 24 2.3 34.7 7a88 88 0 0 1 28.6 18.8V111h66.4zm-117.7 158.7c13.6 0 24.7-4.6 33.4-14q13.5-13.95 13.5-35.7c0-21.75-4.5-26.5-13.5-35.7-8.7-9.3-19.9-14-33.4-14s-24.9 4.6-33.9 14c-8.7 9.3-13 21.2-13 35.7s4.4 26.5 13 35.7c9 9.3 20.3 14 33.9 14M861.7 0c19.7 0 36.5 2.8 50.4 8.3s25.6 13.2 35.2 23.1c9.8 10.2 17.5 21.8 23 34.9s8.2 27.2 8.2 42.3-2.7 29.2-8.2 42.3a112 112 0 0 1-23 34.9c-9.5 9.9-21.3 17.6-35.2 23.1s-30.7 8.3-50.4 8.3h-36v111.6h-76V0zm-10.9 149.6c10.2 0 17.9-1 23.5-3.1 5.8-2.3 10.6-5.3 14.3-8.7 7.8-7.3 11.7-17 11.7-29.2s-3.9-21.9-11.7-29.2c-3.8-3.5-8.5-6.3-14.3-8.3-5.5-2.3-13.3-3.5-23.5-3.5h-25.2v82zm-381.1-38.8h82.5l56 104.6h.9L659 110.8h76.4L571.7 439.6h-76l74.7-150.4zm-14.7 0v218.1h-66.4v-18.8c-8.4 8.2-18 14.4-28.6 18.8a87 87 0 0 1-34.7 7c-15.6 0-30.1-2.9-43.4-8.7-13.3-6.1-24.9-14.4-34.7-24.8-9.8-10.5-17.7-22.7-23.5-36.6-5.5-14.2-8.2-29.5-8.2-45.8s2.7-31.4 8.2-45.3c5.8-14.2 13.6-26.6 23.5-37.1a103.5 103.5 0 0 1 34.7-24.4c13.3-6.1 27.8-9.2 43.4-9.2 12.4 0 24 2.3 34.7 7a88 88 0 0 1 28.6 18.8V111H455zM337.3 269.5c13.6 0 24.7-4.6 33.5-14q13.5-13.95 13.5-35.7c0-21.75-4.5-26.5-13.5-35.7-8.7-9.3-19.9-14-33.5-14s-24.9 4.6-33.9 14c-8.7 9.3-13 21.2-13 35.7s4.4 26.5 13 35.7c9 9.3 20.3 14 33.9 14M112 0c19.7 0 36.5 2.8 50.4 8.3s25.6 13.2 35.2 23.1c9.8 10.2 17.5 21.8 23 34.9s8.2 27.2 8.2 42.3-2.7 29.2-8.2 42.3a112 112 0 0 1-23 34.9c-9.5 9.9-21.3 17.6-35.2 23.1s-30.7 8.3-50.4 8.3H76v111.6H0V0zm-10.8 149.6c10.2 0 17.9-1 23.5-3.1 5.8-2.3 10.6-5.3 14.3-8.7 7.8-7.3 11.7-17 11.7-29.2s-3.9-21.9-11.7-29.2c-3.8-3.5-8.5-6.3-14.3-8.3-5.5-2.3-13.3-3.5-23.5-3.5H76v82z%22/%3E%3C/svg%3E\", ar: 2.98, mono: true },\n \"santander\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.0%22 viewBox=%224 3.75 391.5 79%22%3E%3Cpath d=%22M-137.26 287.82a17.5 17.5 0 0 0 .55 7.23c.95 2.87 2.27 4.94 7.12 11.25 5.12 6.66 6.76 9.08 7.98 12.53 1 2.83 1.02 4.46.59 7.02 4.49.86 11.84 3.24 16.77 6.2 4.57 2.81 7.9 6.46 9.11 10 .72 2.09.7 5.33-.07 7.36a16 16 0 0 1-3.22 5.2c-5.9 6.46-17.6 11.1-31.67 12.59-3.11.32-10.74.56-13.36.4-18.8-1.1-33.92-7.59-38.22-16.42-1.8-3.67-1.75-6.83.14-10.46 1.55-3 5.82-6.7 10.83-9.4a85 85 0 0 1 14.2-5.43c.24 3.17 6.4 10.74 8.45 13.42 4.46 5.84 6.22 8.62 7.48 10.85.76 1.33 1.18 2.19.97 4.74 0 0 1.72-1.56 2.36-2.87.84-1.71 1.14-3.44.98-5.67-.2-2.68-.65-4.32-1.93-6.94-1.25-2.55-3.03-5.13-6.43-9.3-4.79-5.88-6.56-9.1-7.3-13.3-.8-4.66.5-9.6 3.18-12.02a10 10 0 0 1 1.53-1.04s-.08 1.2-.08 2.57c0 2.88.33 4.38 1.43 6.58 1.38 2.73 3.28 5.28 9.11 12.22 5.16 6.14 6.76 9.26 6.76 13.16v1.88s1.37-1.04 2-2c2-3.01 2.32-7.72.8-11.9-1.05-2.86-2.74-5.46-7.74-11.75-5.1-6.4-7.23-11.53-7.23-15.8s.92-8.35 4.91-10.9%22 style=%22fill:%23fe001e;fill-opacity:1;display:inline%22 transform=%22translate(184.65 -280.17)scale(.98661)%22/%3E%3Cg style=%22fill:%23fe001e;fill-opacity:1%22%3E%3Cpath d=%22M-41.6 350.75c.12-1.43.02-2.84-.14-3.59-.61-2.94-2.79-5.9-5.93-8.08a64 64 0 0 0-6.79-3.51c-5.94-2.75-7.6-3.74-9.09-5.4a7.2 7.2 0 0 1-2-5.38c0-1.55.08-2.01.58-3.1 1.62-3.52 5.65-5.4 10.35-4.8 2.76.35 4.21.97 5.84 2.5 1.7 1.59 2.57 3.43 3.04 6.46l.14 1.71h2.57l-.22-11.75-.85-.21c-.65-.16-4.9-.97-7.16-1.26-3.37-.42-4.73-.47-6.71-.24-3.84.44-7.01 1.9-9.4 4.31a12.2 12.2 0 0 0-3.81 8.4c-.2 3.42.9 6.25 3.34 8.67 2.04 2.03 2.92 2.56 9.24 5.57 8.1 3.85 9.93 4.99 11.16 7.88 1.06 2.51 1.14 5.33.04 7.59-2.82 5.76-11.7 7.26-17.22 2.92a11.4 11.4 0 0 1-4.06-6.61l-.26-1.34h-2.19l.39 11.26s4.2 1.13 6.17 1.33c1.48.16 2.95.45 4.44.45 3 0 4.38.39 7.48-.64 3.2-1.07 10.26-3.2 11.06-13.14m19.71-18.49c3.42 0 6.4 1.5 7.83 3.7a8.6 8.6 0 0 1 1.36 5.06v16.24c0 1.93 1.39 2.55 3.4 1.87l1.51-.58v2.13l-7.48 3.27c-.87.39-1.46-.5-1.88-2.13l-.47-1.57-1.24.98a11.7 11.7 0 0 1-7.52 2.66c-3.23.01-5.34-.43-7.44-3.78a8 8 0 0 1-.26-6.4c.96-2.18 2.86-3.3 10.85-6.39l5.4-2.02v-1.5c0-5.55-1.5-7.26-3.42-8.33-1.55-.86-3.6-.64-5.56.64-1.61 1.06-2.1 2.84-1.27 4.67.64 1.41.42.97.42 1.02l-4.39 2.31s-.76-1.3-.97-2c-1.01-3.3.28-5.17 5.24-7.9 2.59-1.42 4.11-1.95 5.89-1.95m4.06 15.39s-7.03 2.97-8.38 3.65c-1.08.55-2.32 1.53-2.73 2.33a5 5 0 0 0 .21 4.06 5.4 5.4 0 0 0 2.35 2.35c.35.15 1.53.42 2.35.43q2.52.02 5.22-2.18l.98-.81zm22.01-15.39v5.75l1.46-1.39c3.19-3 6.23-4.36 8.58-4.36 5.34 0 10.25 4.7 10.04 11.33v15.38c0 1.71.43 2.78 2.14 2.78h2.77v2.14H14.44v-2.14h2.14c1.7 0 2.35-1.07 2.35-2.78V343.6c0-3.2-1.18-4.8-2.14-5.77-1.28-1.28-2.84-1.64-5.13-1.5-1.77.12-3.6 1.06-5.68 2.75l-1.37 1.1v19.87c0 1.07.43 1.71 1.5 1.71h2.78v2.14H-5.64v-2.14h1.92c1.7 0 3-1.07 3-2.78v-16.45c0-4.27-1.3-5.55-4.92-3.63v-2.29c2.35-.7 6.62-2.84 8.97-4.34zm41.23 31.63c1.93 0 2.38-.22 4.17-1.73l3.52-2.97-.85-1.5-1.57.84c-2.35 1.25-4.2 1.51-6.55.44-2-.9-3.2-4.06-3.2-5.77v-17.3h9.82l1.07-3h-10.9v-9.82h-1.06c-2.57 4.7-6.41 9.18-11.11 11.96v.86h6.83v17.3c0 4.06 1.5 7.05 3.85 8.76a8.6 8.6 0 0 0 5.98 1.93m22.65-31.63c3.42 0 6.41 1.5 7.83 3.7a8.6 8.6 0 0 1 1.36 5.06v16.24c0 1.93 1.4 2.55 3.4 1.87l1.51-.58v2.13l-7.48 3.27c-.87.39-1.46-.5-1.87-2.13l-.48-1.57-1.24.98a11.7 11.7 0 0 1-7.52 2.66c-3.22.01-5.34-.43-7.44-3.78a8 8 0 0 1-.26-6.4c.96-2.18 2.87-3.3 10.85-6.39l5.4-2.02v-1.5c0-5.55-1.5-7.26-3.42-8.33-1.54-.86-3.6-.64-5.55.64-1.62 1.06-2.11 2.84-1.28 4.67.64 1.41.42.97.42 1.02l-4.39 2.31s-.75-1.3-.97-2c-1-3.3.28-5.17 5.24-7.9 2.6-1.42 4.11-1.95 5.9-1.95m4.06 15.39s-7.03 2.97-8.38 3.65c-1.08.55-2.32 1.53-2.73 2.33a5 5 0 0 0 .21 4.06 5.4 5.4 0 0 0 2.35 2.35c.36.15 1.53.42 2.35.43q2.52.02 5.22-2.18l.98-.81zm22-15.39v5.75l1.47-1.39c3.18-3 6.22-4.36 8.57-4.36 5.34 0 10.26 4.7 10.04 11.33v15.38c0 1.71.43 2.78 2.14 2.78h2.78v2.14h-14.75v-2.14h2.14c1.7 0 2.35-1.07 2.35-2.78V343.6c0-3.2-1.18-4.8-2.14-5.77-1.28-1.28-2.84-1.64-5.12-1.5-1.78.12-3.6 1.06-5.7 2.75l-1.36 1.1v19.87c0 1.07.43 1.71 1.5 1.71h2.78v2.14H84.3v-2.14h1.92c1.71 0 3-1.07 3-2.78v-16.45c0-4.27-1.29-5.55-4.92-3.63v-2.29c2.35-.7 6.62-2.84 8.97-4.34zm63.46 27.99v-2.13c-2.35 1.07-3.42 1.07-4.23.52-1.15-.78-1.12-2.23-1.12-2.23v-47h-.64a49 49 0 0 1-10.04 4.9v2.36c1.71-.64 2.99-.98 4.06-.43.7.39 1.07.85 1.07 1.92v15.98l-1.26-.5c-2.51-1.03-3.81-1.26-6.86-1.26-2.55 0-3.08.08-4.6.58-7.02 2.35-11.52 9.21-11.15 17.03.21 4.47 1.5 7.98 4.43 10.48 2.99 2.56 5.55 3.42 8.54 3.42 4.06 0 6.41-.81 9.36-2.81.9-.61 1.75-1.25 1.75-1.25a8.7 8.7 0 0 0 1.5 4.48zm-22.15-.38c-4-1.42-6.9-6.35-7.27-12.33-.47-7.48 3.67-12.71 10.06-12.71 2.69 0 4.75.73 7.23 2.58l1.23.91-.1 19.2-1.38.83a10.4 10.4 0 0 1-6.21 1.83c-2 .07-2.67.01-3.56-.3m45.11 3.69a26 26 0 0 0 6.95-3.1v-2.14c-2.35 1.71-6.08 2.77-9.4 2.78q-5.43 0-8.34-3.2c-2.83-3.16-3.63-5.77-4.12-12.18h22.5s0-3.21-1.28-6.2c-.88-2.05-1.71-3.63-4.06-5.13-2.2-1.4-5.17-2-7.7-2-2.62-.03-3.02.02-4.45.54-6.65 2.43-11.17 9.32-10.62 16.17.54 6.63 4.4 11.94 10.25 14.07 2.59.95 7.47 1.13 10.27.39m-12.28-26.4c1.5-1.49 3.2-2.34 5.98-2.34 2.56 0 4.27.64 5.98 2.35 1.29 1.28 1.93 2.35 2.2 5.98h-16.78c.27-2.56 1.12-4.49 2.62-5.98m32.48-4.92v7.06a23 23 0 0 1 4.05-5.13 7 7 0 0 1 4.92-1.93c1.07 0 3.84.86 3.84.86v6.4h-1.06c-.43-1.7-1.93-2.55-4.06-2.55-2.78 0-4.6 1.12-5.72 2.8s-1.55 2.54-1.55 6.17v14.1c0 1.07.43 1.71 1.5 1.71h2.78v2.14h-14.53v-2.14h1.92c1.7 0 3-1.07 3-2.78v-16.45c0-4.7-1.72-4.49-4.71-3.2v-2.14c2.78-1.07 6.2-2.57 8.76-4.92z%22 style=%22fill:%23fe001e;fill-opacity:1;display:inline%22 transform=%22translate(184.65 -280.17)scale(.98661)%22/%3E%3C/g%3E%3C/svg%3E\", ar: 4.956, mono: false },\n \"scotiabank\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220.14 0.09 71.91 10.28%22%3E%3Cpath d=%22M6.73 8.37q.24-.6.23-1.25c.02-.63-.2-1.24-.6-1.72a5 5 0 0 0-2.31-1.23q-.3-.09-.6-.22-.27-.13-.46-.33a.8.8 0 0 1-.2-.55c.01-.3.18-.57.44-.7a2 2 0 0 1 1.68 0q.36.12.69.32l.9-1.8A5 5 0 0 0 3.77.13q-.7 0-1.36.23A3 3 0 0 0 .7 2.06q-.24.6-.23 1.25c.02.68.31 1.32.8 1.8q.7.6 1.6.9l.8.27q.3.12.57.3a1 1 0 0 1 .31.36q.1.2.07.43a1 1 0 0 1-.3.58q-.44.31-.98.27-.61 0-1.18-.28a9 9 0 0 1-.95-.53L.13 9.27a4.8 4.8 0 0 0 4.62.84q.66-.23 1.21-.68.5-.46.77-1.06m5.82-.58a1.57 1.57 0 1 1 0-1.96l1.4-1.41a3.5 3.5 0 0 0-2.62-1.17c-1.96 0-3.65 1.4-3.65 3.55 0 2.16 1.7 3.56 3.66 3.56 1 0 1.96-.42 2.63-1.16zm0 0%22 style=%22fill:%23eb0f19;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.352778%22/%3E%3Cpath d=%22M17.6 3.25a3.56 3.56 0 1 0-.01 7.11 3.56 3.56 0 0 0 0-7.11m0 5.12a1.57 1.57 0 1 1 .02-3.14 1.57 1.57 0 0 1-.02 3.14m8.09-4.95h-.97v-2.1h-2.13v2.1h-.97v1.92h.97v4.85h2.13V5.34h.97zM27.72.13a1.19 1.19 0 1 0 0 2.38 1.19 1.19 0 0 0 0-2.38m-1.06 3.29h2.12v6.77h-2.12zM37.1 10.2V3.42h-2.08v.71l-.2-.16a2.6 2.6 0 0 0-1.79-.72c-1.83 0-3.37 1.63-3.37 3.55 0 1.93 1.55 3.56 3.37 3.56.67 0 1.31-.25 1.8-.72l.2-.17v.72Zm-3.72-1.8a1.6 1.6 0 1 1 .02-3.2 1.6 1.6 0 0 1-.02 3.2m6.88 1.8v-.72l.2.17a2.6 2.6 0 0 0 1.8.72c1.82 0 3.37-1.63 3.37-3.56s-1.55-3.56-3.38-3.56c-.67 0-1.31.26-1.8.72l-.19.17V.3H38.2v9.9Zm.05-3.39a1.6 1.6 0 1 1 1.6 1.6 1.6 1.6 0 0 1-1.6-1.6m13.47 3.39V3.42h-2.07v.71l-.2-.16a2.6 2.6 0 0 0-1.79-.72c-1.83 0-3.37 1.63-3.37 3.55 0 1.93 1.55 3.56 3.37 3.56.67 0 1.32-.25 1.8-.72l.2-.17v.72Zm-3.7-1.8a1.6 1.6 0 1 1 0-3.2 1.6 1.6 0 0 1 0 3.2m8.12-3.16c.69 0 1.26.57 1.26 1.27v3.7h2.12V6.24c0-1.8-1.04-2.97-2.68-2.97-.68 0-1.39.3-1.97 1.24V3.44H54.8v6.76h2.11V6.5a1.27 1.27 0 0 1 1.28-1.26m11.13 4.96-2.6-3.4 2.42-3.38h-2.48L64.7 6.16V.3h-2.13v9.9h2.13V7.4l2.14 2.8zm1.5-2.37a1.19 1.19 0 1 0-.01 2.37 1.19 1.19 0 0 0 .01-2.37m0 2.13a.95.95 0 1 1 0-1.9.95.95 0 0 1 0 1.9m0 0%22 style=%22fill:%23eb0f19;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.352778%22/%3E%3Cpath d=%22M70.82 9.2h-.19v.46h-.23v-1.3h.5c.23 0 .42.2.42.43q-.02.27-.24.38l.27.49h-.28Zm-.19-.2h.27q.18-.02.2-.2a.2.2 0 0 0-.2-.2h-.27zm0 0%22 style=%22fill:%23eb0f19;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.352778%22/%3E%3C/svg%3E\", ar: 6.995, mono: false },\n \"soriana\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 4319.99 1077.31%22%3E%3Cg fill=%22none%22 fill-rule=%22evenodd%22%3E%3Cpath fill=%22%23d52b1e%22 d=%22M938.1 105.38c-57.36 0-136.87 24.37-194.64 103.86-10.61 14.5-19.28 32.96-24.38 51.13-17.65 61.93-5.24 130.1 33.48 182.3 29.69 40.18 67.58 70.24 101.03 96.77 16.35 12.96 51.07 45.8 62.27 59.71 16.7 20.9 29.4 33.33 44.5 79.3 9.13 27.9 10.43 64.65 5.95 85.48 104.7-106.15 219.06-243.93 219.06-393.8 0-172.18-123.34-264.75-247.26-264.75%22/%3E%3Cpath fill=%22%23b6bf00%22 d=%22M743.28 687.53c-43.7-59.53-94.24-95.66-135.96-133.74-18.2-16.57-38.14-28.79-52.89-43.5-70.76-70.3-103.83-156.94-87.11-263.62 13.2-83.65 54.74-138.6 104.91-178.97C512.34 23.82 441.28 0 361 0 161.68 0-4.95 160.15.1 357.63 9.15 714.1 455.63 1017.85 639.6 1080c98.37-50.36 150.64-144.53 150.64-241.15 0-70.45-30.18-128.49-46.96-151.32%22/%3E%3Cpath fill=%22%23d52b1e%22 d=%22M1490.98 682.22c34.28 24.6 101.98 56.22 149.96 56.22 36.88 0 68.63-14.04 68.63-54.4 0-39.5-49.78-53.57-100.29-73.75-58.32-22.83-116.58-58.93-116.58-153.73 0-126.33 91.68-193.16 224.61-193.16 87.36 0 165.3 44.8 205.6 92.32l-87.41 92.91c-39.4-34.13-83.1-59.64-125.13-59.64-34.28 0-59.93 14.04-59.93 45.66 0 43.05 36.82 53.54 99.36 79.92 59.96 25.43 121.67 62.34 121.67 152.84 0 122.84-97.69 201.87-236.52 201.87-97.75 0-179.99-41.26-212.5-67.58l68.5-119.48zm698.76-42.64c5.09-28 6.78-53.36 6.78-72.46 0-41.96-12.74-67.27-42.49-67.27-39.9 0-66.25 40.12-79.02 112.7-5.1 27.83-7.65 57.6-7.65 80.22 0 38.45 10.18 69.86 41.65 69.86 41.6 0 66.28-37.58 80.73-123.05m-11.95-244.45c60.4 0 166.6 23.5 166.6 168.48 0 19.25-.86 41.87-4.32 65.47-26.23 171.17-131.64 240.2-252.29 240.2-105.34 0-164.87-62.95-164.87-174.65 0-20.99.84-46.3 5.06-70.76 31.45-183.38 152.13-228.74 249.82-228.74m353.81 447.8h-134.54l58.82-352.67 3.2-82.48h108l2.38 60.45c29.84-53.57 71.75-73.14 105.53-73.14 23.46 0 48.39 5.96 64.5 16.98l-38.67 118.18c-15.27-8.58-34.68-15.3-54.74-15.3-34.74 0-62.08 22.03-69.33 62.02l-45.15 265.99zm181.56 0 73.75-421.45h136.98l-73.78 421.44Zm170.34-632.18c41.22 0 66.74 30.5 66.74 67.67 0 50.46-40.4 90.35-92.23 90.35-42.1 0-65.82-27.61-65.82-65.6 0-49.43 38.63-92.45 91.3-92.45m358.97 293.7c-9.63-4.32-23.45-7-39.2-7-79.17 0-107.74 119.88-107.74 191.74 0 41.9 9.5 75.94 51.22 75.94 29.62 0 50.45-19.07 59.12-49.7l36.57-210.98zm97.32 257.29-6.08 94.51h-122.62v-41.16l-4.36-.83c-30.36 35.88-69.49 55.05-121.66 55.05-93.07 0-134.85-68.97-134.85-163.6 0-179.38 99.2-310.55 280.92-310.55 36.45 0 101.68 8.7 166.9 34.93zm58.26 81.21 59.5-347.57 4.93-87.57h114.05l1.66 46.78c32.22-36.54 75.2-59.43 130.6-59.43 68.56 0 109.87 32.24 110.7 105.31 0 13.58-1.66 30.67-4.16 46.69l-51.2 295.8h-138.05l43.05-254.08c2.47-13.58 6.57-33.2 6.57-49.31 0-17-6.57-35.67-31.41-35.67-35.58 0-56.22 27.24-62.02 62.85l-47.06 276.2zm766.27-338.5c-9.56-4.32-23.5-7-39.12-7-79.15 0-107.85 119.88-107.85 191.74 0 41.9 9.57 75.94 51.35 75.94 29.5 0 50.42-19.07 59.09-49.7zm97.39 257.29-6.11 94.51h-122.6v-41.16l-4.35-.83c-30.45 35.88-69.55 55.05-121.67 55.05-93.06 0-134.78-68.97-134.78-163.6 0-179.38 99.08-310.55 280.83-310.55 36.47 0 101.68 8.7 166.97 34.93z%22/%3E%3C/g%3E%3C/svg%3E\", ar: 4.01, mono: false },\n \"stp\": { src: \"data:image/png;base64,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\", ar: 1, mono: false },\n \"ups\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xmlns:xlink=%22http://www.w3.org/1999/xlink%22 viewBox=%220 0 73.48 87.13%22%3E%3Cdefs%3E%3Cpath id=%22a%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22b%22%3E%3Cuse xlink:href=%22%23a%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%231E0000%22 d=%22M36.73-.12c-14.4 0-26.28 2.74-36.75 8.29V51c0 9.15 3.44 16.8 9.95 22.14 5.87 4.82 24.67 13.06 26.8 13.99 2.13-.93 20.92-9.17 26.8-13.99 6.5-5.34 9.95-13 9.95-22.14V8.17C63 2.62 51.13-.13 36.73-.13%22 clip-path=%22url(%23b)%22/%3E%3Cdefs%3E%3Cpath id=%22c%22 d=%22M.73 8.62V51c0 8.91 3.35 16.37 9.68 21.56 5.8 4.75 24.2 12.83 26.32 13.75 2.11-.92 20.53-9 26.32-13.75 6.33-5.19 9.68-12.65 9.68-21.56V8.62c-10-5.3-22.11-8-36-8s-26 2.7-36 8%22/%3E%3C/defs%3E%3CclipPath id=%22f%22%3E%3Cuse xlink:href=%22%23c%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3CradialGradient id=%22d%22 cx=%22-14.27%22 cy=%22101%22 r=%221%22 gradientTransform=%22matrix(0 119.608 59.804 0 -6028.71 1722.48)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFDC00%22/%3E%3Cstop offset=%22.35%22 stop-color=%22%23FFBE00%22/%3E%3Cstop offset=%221%22 stop-color=%22%23C86E14%22/%3E%3C/radialGradient%3E%3Cpath fill=%22url(%23d)%22 d=%22M.73.63h72v85.68h-72z%22 clip-path=%22url(%23f)%22/%3E%3Cdefs%3E%3Cpath id=%22g%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22h%22%3E%3Cuse xlink:href=%22%23g%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%23C86E14%22 d=%22M59.7 81.45v3.67h.67V83.6h.1l1 1.53h.8l-1.1-1.62c.48-.11.8-.46.8-.97 0-.53-.32-1.08-1.22-1.08zm.97.53c.57 0 .64.28.64.52 0 .35-.15.58-.86.58h-.08v-1.1zm2.6 1.32a2.49 2.49 0 1 1-4.98-.02 2.49 2.49 0 0 1 4.98.02m-2.5-3.03a3.03 3.03 0 0 0 0 6.05 3.02 3.02 0 1 0 0-6.05%22 clip-path=%22url(%23h)%22/%3E%3Cdefs%3E%3Cpath id=%22i%22 d=%22M35.49 33.65v19.24c.45.17 1.18.38 2.03.38 3.6 0 5.33-3.3 5.33-10.15 0-7.02-1.5-9.92-5.14-9.92-.85 0-1.71.2-2.22.45M19.76 52.4V28.79H26v27.17c-2.4 1.63-5.6 2.52-9.44 2.52-6.2 0-9.34-3.37-9.34-10V28.79h6.26v19.97c0 1.77.43 4.4 3.3 4.4 1.28 0 2.29-.3 2.97-.76m9.46-22.02c2.27-1.46 5.03-2.23 8.45-2.23 7.47 0 11.58 5.68 11.58 14.8 0 9.16-4 15.42-10.94 15.42-1.29 0-2.2-.17-2.82-.36V71.2h-6.27zm31.46 19.44c-.04-1.96-1.15-3.03-3.9-4.65-5.17-3.03-6.1-5.52-6.11-8.85-.03-5.06 4.28-8.05 8.4-8.17 3.44-.1 5.77 1.2 6.87 2.04v5.44a8.4 8.4 0 0 0-5.6-2.57c-1.78-.02-3.63.77-3.69 3-.06 2.27 1.78 3.17 4.12 4.54 5.23 3.08 6.24 5.84 6.12 9.5-.12 4-2.88 8.38-9.06 8.38a13.7 13.7 0 0 1-6.89-1.95v-5.77c1.6 1.43 4 2.54 5.99 2.55h.02c2.29 0 3.79-1.31 3.73-3.49M4.04 26.76V51c0 7.9 2.92 14.49 8.47 19.01C17.4 74 32.47 80.82 36.72 82.7c4.2-1.85 19.23-8.59 24.22-12.69 5.58-4.6 8.47-11.04 8.47-19.01V9.51c-4.45-.41-9.06-.69-13.77-.69-17.45 0-36.15 3.75-51.61 17.94%22/%3E%3C/defs%3E%3CclipPath id=%22k%22%3E%3Cuse xlink:href=%22%23i%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3CradialGradient id=%22j%22 cx=%22-14.27%22 cy=%22101%22 r=%221%22 gradientTransform=%22matrix(0 118.6833 59.3417 0 -5981.98 1709.35)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%234B3333%22/%3E%3Cstop offset=%22.35%22 stop-color=%22%23351A1A%22/%3E%3Cstop offset=%22.85%22 stop-color=%22%231E0000%22/%3E%3Cstop offset=%221%22 stop-color=%22%231E0000%22/%3E%3C/radialGradient%3E%3Cpath fill=%22url(%23j)%22 d=%22M4.04 8.82h65.38V82.7H4.04z%22 clip-path=%22url(%23k)%22/%3E%3Cdefs%3E%3Cpath id=%22l%22 d=%22M4.04 51c0 7.9 2.92 14.49 8.46 19.01C17.4 74 32.48 80.82 36.73 82.7v-.5c-3.53-1.55-18.98-8.5-23.94-12.54-5.43-4.42-8.3-10.88-8.3-18.66z%22/%3E%3C/defs%3E%3CclipPath id=%22n%22%3E%3Cuse xlink:href=%22%23l%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22m%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.92%22 y2=%22100.92%22 gradientTransform=%22rotate(-136 638.5 -2395.2)scale(45.5362)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%22.02%22 stop-color=%22%23E39C15%22/%3E%3Cstop offset=%22.18%22 stop-color=%22%23DC9116%22/%3E%3Cstop offset=%22.4%22 stop-color=%22%23D88A17%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D78817%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23m)%22 d=%22M20.95 99.04-11.8 67.4l31.6-32.74L52.57 66.3%22 clip-path=%22url(%23n)%22/%3E%3Cdefs%3E%3Cpath id=%22o%22 d=%22M68.97 51c0 7.84-2.8 14.12-8.31 18.66-4.8 3.95-19.3 10.5-23.93 12.55v.49c4.2-1.85 19.23-8.59 24.21-12.7 5.59-4.59 8.48-11.03 8.48-19z%22/%3E%3C/defs%3E%3CclipPath id=%22q%22%3E%3Cuse xlink:href=%22%23o%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22p%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.09%22 y2=%22101.09%22 gradientTransform=%22rotate(-44 5492.21 -3109.85)scale(45.5362)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D89016%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23p)%22 d=%22m20.89 66.3 32.75-31.64L85.26 67.4 52.5 99.03%22 clip-path=%22url(%23q)%22/%3E%3Cdefs%3E%3Cpath id=%22r%22 d=%22m4.04 26.76.45.2C17.54 15.06 34.27 9.27 55.65 9.27c4.17 0 8.54.22 13.32.65l.45-.41c-4.45-.41-9.06-.69-13.77-.69-17.45 0-36.15 3.75-51.61 17.94%22/%3E%3C/defs%3E%3CclipPath id=%22t%22%3E%3Cuse xlink:href=%22%23r%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22s%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.97%22 y2=%22100.97%22 gradientTransform=%22rotate(-19.2 19730.5 -6247.85)scale(67.419)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%22.97%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23s)%22 d=%22m-1.6 10.79 63.95-22.27L75.05 25 11.11 47.26%22 clip-path=%22url(%23t)%22/%3E%3Cdefs%3E%3Cpath id=%22u%22 d=%22M42.4 43.12c0 5.53-1.1 9.7-4.88 9.7v.45c3.6 0 5.33-3.3 5.33-10.15z%22/%3E%3C/defs%3E%3CclipPath id=%22w%22%3E%3Cuse xlink:href=%22%23u%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22v%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.09%22 y2=%22101.09%22 gradientTransform=%22rotate(-63.3 920.39 -716.09)scale(11.4647)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%221%22 stop-color=%22%23BF7312%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23v)%22 d=%22m33.45 51.22 5.15-10.24 8.32 4.19-5.15 10.24%22 clip-path=%22url(%23w)%22/%3E%3Cdefs%3E%3Cpath id=%22x%22 d=%22M35.49 52.9c.45.16 1.18.37 2.03.37v-.45c-.61 0-1.17-.12-1.58-.25z%22/%3E%3C/defs%3E%3CclipPath id=%22z%22%3E%3Cuse xlink:href=%22%23x%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22y%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.01%22 y2=%22101.01%22 gradientTransform=%22rotate(-173 12.05 -79.76)scale(2.064)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23F0AF13%22/%3E%3Cstop offset=%221%22 stop-color=%22%23F0AF13%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23y)%22 d=%22m37.5 53.52-2.1-.26.12-.93 2.09.25%22 clip-path=%22url(%23z)%22/%3E%3Cdefs%3E%3Cpath id=%22A%22 d=%22m35.49 33.65.45.3a5 5 0 0 1 1.77-.3v-.45c-.85 0-1.71.2-2.22.45%22/%3E%3C/defs%3E%3CclipPath id=%22C%22%3E%3Cuse xlink:href=%22%23A%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22B%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.02%22 y2=%22101.02%22 gradientTransform=%22rotate(-14.7 1017.85 -360.03)scale(2.26)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23B)%22 d=%22m35.3 33.25 2.27-.6.32 1.25-2.26.59%22 clip-path=%22url(%23C)%22/%3E%3Cdefs%3E%3Cpath id=%22D%22 d=%22M37.7 33.65c3.7 0 4.7 3.45 4.7 9.47h.45c0-7.02-1.5-9.92-5.14-9.92z%22/%3E%3C/defs%3E%3CclipPath id=%22F%22%3E%3Cuse xlink:href=%22%23D%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22E%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.09%22 y2=%22101.09%22 gradientTransform=%22rotate(-116.9 301.64 -605.19)scale(11.171)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23E)%22 d=%22m38.76 45.19-5.05-9.96 8.08-4.1 5.06 9.96%22 clip-path=%22url(%23F)%22/%3E%3Cdefs%3E%3Cpath id=%22G%22 d=%22M50.22 36.32h.45c-.03-5.06 4.28-8.04 8.4-8.17l-.01-.44c-4.56.13-8.87 3.46-8.84 8.6%22/%3E%3C/defs%3E%3CclipPath id=%22I%22%3E%3Cuse xlink:href=%22%23G%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22H%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.09%22 y2=%22101.09%22 gradientTransform=%22rotate(137.9 -303.69 -564.18)scale(12.334)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D89016%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23H)%22 d=%22m63.36 32.45-9.18 8.29-8.27-9.16 9.17-8.3%22 clip-path=%22url(%23I)%22/%3E%3Cdefs%3E%3Cpath id=%22J%22 d=%22M56.65 36.06h.45c.02-.6.3-2.55 3.17-2.55l.07-.45h-.06c-1.76 0-3.57.8-3.63 3%22/%3E%3C/defs%3E%3CclipPath id=%22L%22%3E%3Cuse xlink:href=%22%23J%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22K%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.93%22 y2=%22100.93%22 gradientTransform=%22rotate(-41 683.04 -387.68)scale(4.7434)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23K)%22 d=%22m55.17 34.35 3.58-3.11 3.07 3.53-3.58 3.12%22 clip-path=%22url(%23L)%22/%3E%3Cdefs%3E%3Cpath id=%22M%22 d=%22M60.27 33.51c2.6 0 4.8 1.69 6.13 3.23l-.45-1.1a8.4 8.4 0 0 0-5.61-2.58z%22/%3E%3C/defs%3E%3CclipPath id=%22O%22%3E%3Cuse xlink:href=%22%23M%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22N%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.06%22 y2=%22101.06%22 gradientTransform=%22rotate(-152.5 74.72 -359.74)scale(7.0756)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23N)%22 d=%22m65.09 39.25-6.32-3.3 2.81-5.4 6.32 3.3%22 clip-path=%22url(%23O)%22/%3E%3Cdefs%3E%3Cpath id=%22P%22 d=%22m59.06 27.7.01.45c3.44-.1 5.77 1.2 6.88 2.04l.45-.22a11 11 0 0 0-7.34-2.27%22/%3E%3C/defs%3E%3CclipPath id=%22R%22%3E%3Cuse xlink:href=%22%23P%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22Q%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.98%22 y2=%22100.98%22 gradientTransform=%22rotate(17.9 -2574.26 161.57)scale(7.6762)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%221%22 stop-color=%22%23E49F15%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23Q)%22 d=%22m59.75 25.55 7.38 2.38-1.43 4.4-7.37-2.38%22 clip-path=%22url(%23R)%22/%3E%3Cdefs%3E%3Cpath id=%22S%22 d=%22M57.83 58.48v.45c5.67 0 9.36-3.78 9.52-8.82l-.45-.01c-.12 4-2.89 8.38-9.07 8.38%22/%3E%3C/defs%3E%3CclipPath id=%22U%22%3E%3Cuse xlink:href=%22%23S%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22T%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.92%22 y2=%22100.92%22 gradientTransform=%22scale(-12.968 12.968)rotate(44.4 109.2 63.52)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23T)%22 d=%22m71.76 54.6-9.27 9.08-9.08-9.26 9.28-9.08%22 clip-path=%22url(%23U)%22/%3E%3Cdefs%3E%3Cpath id=%22V%22 d=%22M50.5 56.79a14 14 0 0 0 7.33 2.14v-.45a13.7 13.7 0 0 1-6.89-1.95z%22/%3E%3C/defs%3E%3CclipPath id=%22X%22%3E%3Cuse xlink:href=%22%23V%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22W%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.03%22 y2=%22101.03%22 gradientTransform=%22scale(7.64 -7.64)rotate(-16.1 -387.2 -27.03)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23W)%22 d=%22m51.06 54.58 7.4 2.14-1.2 4.16-7.4-2.14%22 clip-path=%22url(%23X)%22/%3E%3Cdefs%3E%3Cpath id=%22Y%22 d=%22M50.94 50.77c1.6 1.42 4 2.53 5.99 2.54v-.45c-2.23-.01-4.8-1.45-6.44-3.1z%22/%3E%3C/defs%3E%3CclipPath id=%22aa%22%3E%3Cuse xlink:href=%22%23Y%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22Z%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.96%22 y2=%22100.96%22 gradientTransform=%22rotate(-154.1 67.44 -362.63)scale(7.3418)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%221%22 stop-color=%22%23F0AF13%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23Z)%22 d=%22m55.7 55.84-6.6-3.2 2.62-5.41 6.6 3.2%22 clip-path=%22url(%23aa)%22/%3E%3Cdefs%3E%3Cpath id=%22ab%22 d=%22M60.23 49.84c.05 2-1.34 3.04-3.3 3.02v.45c2.3.01 3.8-1.3 3.75-3.49z%22/%3E%3C/defs%3E%3CclipPath id=%22ad%22%3E%3Cuse xlink:href=%22%23ab%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22ac%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.08%22 y2=%22101.08%22 gradientTransform=%22rotate(-42.6 724.8 -399.27)scale(5.1262)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D89016%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23ac)%22 d=%22m55.19 51.43 3.8-3.5 3.5 3.79-3.82 3.5%22 clip-path=%22url(%23ad)%22/%3E%3Cdefs%3E%3Cpath id=%22ae%22 d=%22M50.22 36.32c.01 3.5 1.05 6.14 6.32 9.24 2.83 1.66 3.65 2.62 3.7 4.28l.44-.02c-.04-1.96-1.16-3.03-3.9-4.65-5.17-3.03-6.1-5.52-6.1-8.85z%22/%3E%3C/defs%3E%3CclipPath id=%22ag%22%3E%3Cuse xlink:href=%22%23ae%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22af%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.04%22 y2=%22101.04%22 gradientTransform=%22rotate(55.2 -1779.54 -562.57)scale(17.0604)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%22.4%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%22.6%22 stop-color=%22%23BF7312%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D89016%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23af)%22 d=%22m57.28 31.41 9.74 14.02-13.4 9.3-9.74-14.01%22 clip-path=%22url(%23ag)%22/%3E%3Cdefs%3E%3Cpath id=%22ah%22 d=%22M60.77 40.6c5.23 3.08 6.24 5.84 6.12 9.5l.45.01c.13-3.73-.9-6.69-6.34-9.9-2.22-1.34-3.96-2.07-3.9-4.14l-.45-.01c-.06 2.27 1.78 3.17 4.12 4.54%22/%3E%3C/defs%3E%3CclipPath id=%22aj%22%3E%3Cuse xlink:href=%22%23ah%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22ai%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.96%22 y2=%22100.96%22 gradientTransform=%22rotate(53.8 -1890.23 -569.12)scale(17.6596)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%22.4%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%22.6%22 stop-color=%22%23E49F15%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D78817%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23ai)%22 d=%22m63.67 30.87 10.5 14.34L60.38 55.3 49.9 40.96%22 clip-path=%22url(%23aj)%22/%3E%3Cdefs%3E%3Cpath id=%22ak%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22al%22%3E%3Cuse xlink:href=%22%23ak%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%238F4A02%22 d=%22M35.49 71.2h-6.27l-.45.45h7.17%22 clip-path=%22url(%23al)%22/%3E%3Cdefs%3E%3Cpath id=%22am%22 d=%22M35.94 58.59q1.06.23 2.37.23v-.45a10 10 0 0 1-2.82-.36z%22/%3E%3C/defs%3E%3CclipPath id=%22ao%22%3E%3Cuse xlink:href=%22%23am%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22an%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.02%22 y2=%22101.02%22 gradientTransform=%22matrix(2.874 .445 .445 -2.874 31.54 354.88)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23an)%22 d=%22m35.56 57.59 2.87.44-.19 1.22-2.87-.45%22 clip-path=%22url(%23ao)%22/%3E%3Cdefs%3E%3Cpath id=%22ap%22 d=%22M49.25 42.96c0 9.15-3.99 15.4-10.94 15.4v.46c8.07 0 11.39-7.71 11.39-15.86z%22/%3E%3C/defs%3E%3CclipPath id=%22ar%22%3E%3Cuse xlink:href=%22%23ap%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aq%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.9%22 y2=%22100.9%22 gradientTransform=%22rotate(125.6 -631.9 -879.37)scale(19.5286)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aq)%22 d=%22M57.2 48.33 45.85 64.21 30.8 53.45l11.37-15.88%22 clip-path=%22url(%23ar)%22/%3E%3Cdefs%3E%3Cpath id=%22as%22 d=%22m28.77 30.14.45.24c2.28-1.46 5.03-2.22 8.45-2.22v-.46c-3.47 0-6.5.8-8.9 2.44%22/%3E%3C/defs%3E%3CclipPath id=%22au%22%3E%3Cuse xlink:href=%22%23as%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22at%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.03%22 y2=%22101.03%22 gradientTransform=%22rotate(165.5 -107.94 -440.95)scale(9.218)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23F0AF13%22/%3E%3Cstop offset=%221%22 stop-color=%22%23F0AF13%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23at)%22 d=%22m38.32 30.22-8.99 2.32-1.2-4.67 8.98-2.32%22 clip-path=%22url(%23au)%22/%3E%3Cdefs%3E%3Cpath id=%22av%22 d=%22M37.67 28.16c7.47 0 11.58 5.67 11.58 14.8h.45c0-8.08-3.38-15.26-12.03-15.26z%22/%3E%3C/defs%3E%3CclipPath id=%22ax%22%3E%3Cuse xlink:href=%22%23av%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aw%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.9%22 y2=%22100.9%22 gradientTransform=%22rotate(51.9 -2162.24 -642.68)scale(19.428)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%221%22 stop-color=%22%23A65E0C%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aw)%22 d=%22m45.12 21.86 11.99 15.29L42.25 48.8 30.26 33.51%22 clip-path=%22url(%23ax)%22/%3E%3Cdefs%3E%3Cpath id=%22ay%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22az%22%3E%3Cuse xlink:href=%22%23ay%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%23FFC20E%22 d=%22M13.5 28.79H7.22l-.45-.45h7.16zm12.51 0h-6.25l-.45-.45h7.15z%22 clip-path=%22url(%23az)%22/%3E%3Cpath fill=%22%23D78817%22 d=%22M4.04 51V26.76l.45.2V51zM66.4 36.74v-6.77l-.45.22v5.44zM13.94 48.76V28.34l-.45.45v19.96z%22 clip-path=%22url(%23az)%22/%3E%3Cpath fill=%22%23D89016%22 d=%22M68.97 51V9.92l.45-.41V51zm-18.48-1.24v7.03l.45-.26v-5.77zM19.76 52.4V28.79l-.45-.45v23.81zM7.23 48.48V28.79l-.45-.45v20.14z%22 clip-path=%22url(%23az)%22/%3E%3Cdefs%3E%3Cpath id=%22aA%22 d=%22M6.78 48.48c0 6.63 3.11 10.45 9.8 10.45v-.45c-6.2 0-9.35-3.37-9.35-10z%22/%3E%3C/defs%3E%3CclipPath id=%22aC%22%3E%3Cuse xlink:href=%22%23aA%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aB%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.11%22 y2=%22101.11%22 gradientTransform=%22rotate(47.1 -1815.33 -457.46)scale(14.319)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23D89016%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aB)%22 d=%22m12.04 43.6 9.74 10.48-10.46 9.73-9.75-10.5%22 clip-path=%22url(%23aC)%22/%3E%3Cdefs%3E%3Cpath id=%22aD%22 d=%22M16.57 58.48v.45c4 0 7.24-.93 9.89-2.73l-.45-.24c-2.4 1.63-5.6 2.52-9.44 2.52%22/%3E%3C/defs%3E%3CclipPath id=%22aF%22%3E%3Cuse xlink:href=%22%23aD%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aE%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.98%22 y2=%22100.98%22 gradientTransform=%22scale(-10.2546 10.2546)rotate(14.5 366.91 99.18)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23A65E0C%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%238F4A02%22/%3E%3Cstop offset=%221%22 stop-color=%22%238F4A02%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aE)%22 d=%22m27.18 58.74-9.99 2.58-1.34-5.17 9.99-2.59%22 clip-path=%22url(%23aF)%22/%3E%3Cdefs%3E%3Cpath id=%22aG%22 d=%22M16.8 52.71v.45a5.3 5.3 0 0 0 2.96-.76l-.45-.25c-.64.36-1.52.56-2.52.56%22/%3E%3C/defs%3E%3CclipPath id=%22aI%22%3E%3Cuse xlink:href=%22%23aG%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aH%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22101.01%22 y2=%22101.01%22 gradientTransform=%22matrix(2.9715 -.73 -.73 -2.9715 132.9 342.77)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23F0AF13%22/%3E%3Cstop offset=%221%22 stop-color=%22%23F0AF13%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aH)%22 d=%22m16.56 52.2 3.03-.74.4 1.64-3.03.75%22 clip-path=%22url(%23aI)%22/%3E%3Cdefs%3E%3Cpath id=%22aJ%22 d=%22M13.5 48.76c0 1.77.42 4.4 3.3 4.4v-.45c-2.21 0-2.86-1.78-2.86-3.95z%22/%3E%3C/defs%3E%3CclipPath id=%22aL%22%3E%3Cuse xlink:href=%22%23aJ%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3ClinearGradient id=%22aK%22 x1=%22-14.27%22 x2=%22-13.27%22 y1=%22100.92%22 y2=%22100.92%22 gradientTransform=%22rotate(-126.2 123.53 -275.42)scale(5.506)%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.05%22 stop-color=%22%23FFC20E%22/%3E%3Cstop offset=%22.95%22 stop-color=%22%23D78817%22/%3E%3Cstop offset=%221%22 stop-color=%22%23D78817%22/%3E%3C/linearGradient%3E%3Cpath fill=%22url(%23aK)%22 d=%22m14.65 54.74-3.26-4.45 4.25-3.1 3.26 4.44%22 clip-path=%22url(%23aL)%22/%3E%3Cdefs%3E%3Cpath id=%22aM%22 d=%22M-14.27-14h102v115h-102z%22/%3E%3C/defs%3E%3CclipPath id=%22aN%22%3E%3Cuse xlink:href=%22%23aM%22 overflow=%22visible%22/%3E%3C/clipPath%3E%3Cpath fill=%22%23D78817%22 d=%22M28.77 30.14v41.51l.45-.45V30.38%22 clip-path=%22url(%23aN)%22/%3E%3Cpath fill=%22%23BF7312%22 d=%22M35.94 52.57V33.95l-.45-.3v19.24zm0 6.02v13.06l-.45-.45V58.01zm-9.48-2.39V28.34l-.45.45v27.17%22 clip-path=%22url(%23aN)%22/%3E%3C/svg%3E\", ar: 0.843, mono: false },\n \"usps\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%221.12 1.45 179.67 27.5%22%3E%3Cpath fill=%22%2315569c%22 d=%22M49.56.15H7.41L7.4.3s24.78 5.1 25.27 5.18c5.7 1 5.52 2.1 5.52 2.1 3.99-.02 4.48.14 5.17.73 2.1 1.75-1.3 6.91-1.3 6.91-.5.36-37.36 14.6-37.36 14.6h38.57zm8.09 0-1.6 7.54c-.58 2.6 1.18 3.78 4.1 3.78 2.94 0 5.17-1.18 5.73-3.78 1.63-7.54-.02 0 1.63-7.54h-2.46l-1.45 6.8c-.37 1.73-1.29 2.77-3.09 2.77-1.88-.02-2.26-1.06-1.88-2.78L60.1.15zm12.2 0L67.5 11.27h2.17l1.72-8.25h.05l2.75 8.25h3.08L79.63.15h-2.17L75.7 8.49h-.03L73.04.15Zm12.13 0-2.35 11.12h2.45L84.43.15Zm4.1 0-.4 1.77h3.47l-1.99 9.35h2.45l1.99-9.35h3.45l.38-1.77zm11 0L94.7 11.27h8.06l.37-1.77h-5.6l.64-3.04h4.89l.35-1.64h-4.88l.62-2.9h5.6l.37-1.77zm9.82 0-2.35 11.12h5.02c3.1 0 6.08-2.05 6.75-6.05.48-2.83-.65-5.07-4.02-5.07zm18.44 0c-2.89 0-4.32 1.02-4.53 2.62-.36 2.67 4.36 4.25 4 5.85-.22.93-1.36.88-2.3.88h-3.02l-.37 1.77h3.75c3.07 0 4.4-1.1 4.65-2.62.45-2.73-4.34-4.14-3.96-5.9.12-.55.72-.83 2.05-.83h2.63l.38-1.77zm4.54 0-.38 1.77h3.45l-1.98 9.35h2.45l1.98-9.35h3.46l.37-1.77zm11.95 0-6.37 11.12h2.45l4.88-8.91.98 7.14h-3.5l-.97 1.77h7.2L144.76.15zm5.64 0-.39 1.77h3.46l-1.99 9.35H151l2-9.35h3.45l.38-1.77zm10.98 0-2.37 11.12h8.06l.37-1.77h-5.6l.64-3.04h4.88l.36-1.64h-4.88l.62-2.9h5.6l.36-1.77zm13.44 0c-2.89 0-4.31 1.02-4.53 2.62-.36 2.67 4.35 4.25 4 5.85-.22.93-1.37.88-2.3.88h-3.02l-.37 1.77h3.75c3.07 0 4.4-1.1 4.65-2.62.45-2.73-4.34-4.14-3.97-5.9.13-.55.73-.83 2.07-.83h2.61l.4-1.77zm-62.9 1.77h2.5c2.04 0 2.76 1.5 2.45 3.27-.43 2.5-2.03 4.31-4.8 4.31h-1.75zM27.67 7.01H5.96L1.12 29.8s14.83-7.27 16.64-8.2c3.72-1.92 8.86-4.44 13.6-6.06.91-.3 4.79-1.5 7.05-1.9.87-.16 1.24-.3 1.23-.47-.03-.47-.91-.5-2.4-.42-4.55.21-13.26 3.68-15.77 5L18.64 9h18.09c.6-1.7-5.72-1.96-9.07-1.98zm9.59 2.11q-.18 0-.4.3c-.14.17-.25.3-.6.48-.57.27-2.03.42-2.71.48-.66.06-.84.12-.85.38 0 .22.1.35 1.04.35 2.17 0 6.07-.81 7.24-.44.62.2.12 1.3-.38 2.76-.2.56.19.52.4.27a10 10 0 0 0 1.36-3.04c.15-1.34-1-1.54-2.58-1.54zm32.05 9.37c-3.44 0-6.31 1.8-7.15 5.75C61.48 27.4 63.4 30 66.83 30c3.48 0 6.27-1.72 7.14-5.76.7-3.3-1.26-5.75-4.67-5.75m98.14 0c-3.41 0-6.7 1.76-7.53 5.75-.85 3.98 1.67 5.76 5.09 5.76q1.4-.02 2.74-.24l.6-1.91c-.88.22-1.81.39-2.97.39-2.22 0-3.47-1.5-2.95-4 .53-2.52 2.42-3.99 4.63-3.99 1.14 0 1.91.16 2.6.36l.23-1.88a14 14 0 0 0-2.44-.24m-87.48.2c-2.89 0-4.32 1.02-4.53 2.62-.36 2.67 4.35 4.25 4 5.84-.22.93-1.37.89-2.3.89h-3.02l-.37 1.76h3.75c3.07 0 4.4-1.1 4.65-2.62.45-2.72-4.34-4.14-3.97-5.9.13-.55.73-.83 2.07-.83h2.62l.39-1.77zm4.54 0-.38 1.76h3.45L85.6 29.8h2.45l1.99-9.35h3.45l.37-1.77zm35.8 0c-2.9 0-4.32 1.02-4.54 2.62-.36 2.67 4.36 4.25 4 5.84-.21.93-1.36.89-2.3.89h-3.02l-.37 1.76h3.75c3.07 0 4.4-1.1 4.65-2.62.45-2.72-4.33-4.14-3.97-5.9.13-.55.73-.83 2.07-.83h2.62l.38-1.77zm5.4 0-2.38 11.11h8.07l.37-1.76h-5.6l.64-3.04h4.88l.36-1.65h-4.88l.61-2.9h5.6l.37-1.77zm9.82 0-2.35 11.11h2.45l1.98-9.36h2.2c1.36 0 1.49.76 1.35 1.46-.26 1.31-1.41 1.84-2.67 1.84-.23 0-.62.02-.93-.03l2.02 6.1h2.68l-1.83-4.8a3.6 3.6 0 0 0 3.18-3.49c.14-1.86-.73-2.84-2.9-2.84zm36.34 0-2.37 11.11h8.06l.37-1.76h-5.6l.64-3.04h4.89l.35-1.65h-4.88l.62-2.9h5.6l.37-1.77zm-118.14 0L51.36 29.8h2.45l1.99-9.35h2c.9 0 1.51.45 1.25 1.66-.14.67-.74 1.82-2.42 1.82-.37 0-.77-.05-1.08-.08l.12 1.61c.36.04.78.1 1.17.1 2.2 0 4.14-1.28 4.59-3.39.29-1.4.01-3.48-2.4-3.48zm42.75 0L90.1 29.8h2.45l4.88-8.91.98 7.15h-3.5l-.97 1.76h7.2L99.4 18.7zm8.3 0L102.4 29.8h7.53l.38-1.76h-5.07l1.99-9.35zm40.13 0 1.67 11.11h2.9l6.33-11.11h-2.42l-4.88 8.91-1.15-8.91zm12.38 0-2.36 11.11h2.45l2.36-11.11zM68.9 20.25c2.26 0 3.02 1.74 2.54 3.99-.53 2.51-2.01 4-4.23 4-2.3 0-3.06-1.85-2.58-4 .58-2.51 2.05-3.99 4.27-3.99%22/%3E%3Cpath fill=%22%23ed192d%22 d=%22m54.59 14.57-.18.82h126.2l.17-.82z%22/%3E%3C/svg%3E\", ar: 6.533, mono: false },\n \"visa\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1000 324.06%22%3E%3Cpath fill=%22%231434cb%22 d=%22M651.19.5c-70.93 0-134.32 36.77-134.32 104.69 0 77.9 112.42 83.28 112.42 122.42 0 16.48-18.88 31.23-51.14 31.23-45.77 0-79.98-20.61-79.98-20.61l-14.64 68.55s39.41 17.41 91.73 17.41c77.55 0 138.58-38.57 138.58-107.66 0-82.32-112.89-87.54-112.89-123.86 0-12.91 15.5-27.05 47.66-27.05 36.29 0 65.89 14.99 65.89 14.99l14.33-66.2S696.61.5 651.18.5ZM2.22 5.5.5 15.49s29.84 5.46 56.72 16.36c34.61 12.49 37.07 19.77 42.9 42.35l63.51 244.83h85.14L379.93 5.5h-84.94l-84.28 213.17-34.39-180.7c-3.15-20.68-19.13-32.48-38.68-32.48zm411.87 0-66.63 313.53h81L494.85 5.5zm451.76 0c-19.53 0-29.88 10.46-37.47 28.73l-118.67 284.8h84.94l16.43-47.47h103.48l9.99 47.47h74.95L934.12 5.5zm11.05 84.71 25.18 117.65h-67.45z%22/%3E%3C/svg%3E\", ar: 3.086, mono: false },\n \"walmart\": { src: \"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xml:space=%22preserve%22 viewBox=%220 0 264.58 50.3%22%3E%3Cg style=%22font-variation-settings:normal;opacity:1;vector-effect:none;fill:%230053e2;fill-opacity:1;stroke-width:1.96006829;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:%23000;stop-opacity:1%22%3E%3Cpath fill=%22%23fff%22 d=%22m120.6 0-14.75 74.6L89.32 0H60.59L44.06 74.6 29.32 0H0l23.91 113.96h34.13l16.7-75.67 16.68 75.67h33.38L148.56 0Zm59.91 98.16c-6.61 0-10.22-4.1-10.22-9.72 0-7.3 5.72-10.18 12.93-12.77 3.76-1.43 7.53-2.91 10.08-5.16v12.6c0 9.58-4.97 15.05-12.78 15.05m3.9-77.19c-18.19 0-30.97 6.24-35.63 10.64v24.3a49 49 0 0 1 31.88-12c9.32 0 12.78 2.6 12.78 7.91 0 4.56-4.81 6.39-18.2 9.27-20.3 4.25-32.03 11.7-32.03 29.48 0 16.4 10.68 25.98 26.17 25.98 12.97 0 20.72-6.08 24.96-14.25v11.67h27.96V58.05c0-25.68-13.23-37.08-37.89-37.08M261.8 0h-29.02v113.96h29.03zm116.48 21.28c-14.08 0-23.18 8.55-27.94 19.94-2.55-12.2-11.03-19.94-22.89-19.94-13.42 0-22.18 7.91-26.61 19.02V23.86h-28.57v90.1h29.02V63.99c0-12.3 4.06-19.3 12.78-19.3 7.07 0 9.48 4.87 9.48 12.47v56.83h29.02v-50c0-12.3 4.06-19.29 12.78-19.29 7.06 0 9.47 4.86 9.47 12.46V114h29.02V53.03c0-18.99-8.87-31.75-25.56-31.75m69.16 76.88c-6.61 0-10.22-4.1-10.22-9.72 0-7.3 5.72-10.18 12.94-12.77 3.76-1.43 7.53-2.91 10.07-5.16v12.6c0 9.58-4.96 15.05-12.79 15.05m3.91-77.19c-18.2 0-30.98 6.24-35.64 10.64v24.3a49 49 0 0 1 31.88-12c9.32 0 12.78 2.6 12.78 7.91 0 4.56-4.81 6.39-18.2 9.27-20.3 4.25-32.03 11.7-32.03 29.48 0 16.4 10.68 25.98 26.17 25.98 12.97 0 20.72-6.08 24.96-14.25v11.67h27.97V58.05c0-25.68-13.24-37.08-37.9-37.08m76.25 28.34V23.86h-28.42v90.1h29.02V75.68c0-17.62 10.83-22.33 21.2-22.33 3.46 0 6.77.45 8.27.9V23.26c-16.33-.8-26.25 9.74-30.07 26.06M613 46.65v-22.8h-18.5V6.39h-29.02v77.5c0 21.72 12.18 31.9 31.58 31.9 9.03 0 13.84-1.82 15.94-3.19V89.95c-1.65 1.22-4.36 2.13-7.82 2.13-6.46.15-10.68-2.74-10.68-12.3V46.65z%22 style=%22font-variation-settings:normal;vector-effect:none;fill:%230053e2;fill-opacity:1;stroke-width:1.96006829;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:%23000;stop-opacity:1%22 transform=%22scale(.43162)%22/%3E%3C/g%3E%3C/svg%3E\", ar: 5.26, mono: false },\n}\n","/**\n * Shared catalog of the brands a checkout names: parcel carriers, card networks, wallets and cash payment points.\n *\n * Keys are the stable identifiers the providers already send (`ShippingRate.carrier` of Skydropx / Envía, the\n * `PaymentPoint.payment_point` or `id` of the payment addon, a `PaymentMethod.key`). Nothing here decides what a shop\n * offers: the server lists the rates and methods; this only gives each one its commercial name and a mark.\n *\n * Marks are drawn by `<BrandMark>` with this precedence: the provider's `logo_url` > the real logo bundled in\n * `brands/assets` (inline data URI, no request; provenance in `brands/LOGOS.md`) > a typographic badge (brand color +\n * short wordmark) for the brands without an available logo. The `bg`/`fg` colors here are close approximations of each\n * brand's public color and only paint that fallback badge.\n */\n\nimport { LOGOS, type LogoAsset } from './brands/logos.generated.js'\n\nexport type BrandKind = 'carrier' | 'card' | 'wallet' | 'cash' | 'bank'\n\nexport type Brand = {\n key: string\n /** Commercial name, as the brand writes it. */\n name: string\n kind: BrandKind\n /** Badge background. */\n bg: string\n /** Badge text color (AA on `bg`). */\n fg: string\n /** Short wordmark drawn in the badge (`\\n` = two lines). Default: `name`. */\n mark?: string\n /** Special drawings instead of a wordmark. */\n shape?: 'mastercard' | 'transfer'\n}\n\nconst B = (key: string, name: string, kind: BrandKind, bg: string, fg: string, mark?: string, shape?: Brand['shape']): Brand => ({\n key,\n name,\n kind,\n bg,\n fg,\n ...(mark ? { mark } : {}),\n ...(shape ? { shape } : {}),\n})\n\nconst LIST: Brand[] = [\n // Parcel carriers (Mexico and global).\n B('fedex', 'FedEx', 'carrier', '#4D148C', '#FFFFFF'),\n B('dhl', 'DHL', 'carrier', '#FFCC00', '#B00410'),\n B('estafeta', 'Estafeta', 'carrier', '#C8102E', '#FFFFFF'),\n B('paquetexpress', 'Paquetexpress', 'carrier', '#0B4EA2', '#FFFFFF', 'Paquet\\nexpress'),\n B('ups', 'UPS', 'carrier', '#351C15', '#FFB500'),\n B('redpack', 'Redpack', 'carrier', '#C8102E', '#FFFFFF'),\n B('99minutos', '99 Minutos', 'carrier', '#00704A', '#FFFFFF', '99'),\n B('jtexpress', 'J&T Express', 'carrier', '#C8102E', '#FFFFFF', 'J&T'),\n B('sendex', 'Sendex', 'carrier', '#003A70', '#FFFFFF'),\n B('ampm', 'AMPM', 'carrier', '#1D1D1B', '#FFFFFF'),\n B('tresguerras', 'Tresguerras', 'carrier', '#005BAC', '#FFFFFF', '3G'),\n B('quiken', 'Quiken', 'carrier', '#1D1D1B', '#FFFFFF'),\n B('imile', 'iMile', 'carrier', '#0057B8', '#FFFFFF'),\n B('carssa', 'Carssa', 'carrier', '#00529B', '#FFFFFF'),\n B('correosdemexico', 'Correos de México', 'carrier', '#7A1E3A', '#FFFFFF', 'Correos\\nMéxico'),\n B('usps', 'USPS', 'carrier', '#333366', '#FFFFFF'),\n B('canadapost', 'Canada Post', 'carrier', '#DA291C', '#FFFFFF', 'CPC'),\n // Card networks.\n B('visa', 'Visa', 'card', '#1A1F71', '#FFFFFF', 'VISA'),\n B('mastercard', 'Mastercard', 'card', '#FFFFFF', '#1D1D1B', 'MC', 'mastercard'),\n B('amex', 'American Express', 'card', '#1F72CD', '#FFFFFF', 'AMEX'),\n B('carnet', 'Carnet', 'card', '#003B71', '#FFFFFF'),\n // Wallets and payment providers.\n B('mercadopago', 'Mercado Pago', 'wallet', '#00B1EA', '#0B1F4E', 'mercado\\npago'),\n B('paypal', 'PayPal', 'wallet', '#003087', '#FFFFFF'),\n B('clip', 'Clip', 'wallet', '#FC4C02', '#1D1D1B'),\n B('applepay', 'Apple Pay', 'wallet', '#000000', '#FFFFFF', 'Pay'),\n B('googlepay', 'Google Pay', 'wallet', '#FFFFFF', '#3C4043', 'G Pay'),\n // Cash points and transfers (Mexico).\n B('oxxo', 'OXXO', 'cash', '#E21E26', '#FFE600'),\n B('spei', 'SPEI', 'bank', '#14365F', '#FFFFFF', undefined, 'transfer'),\n B('stp', 'STP', 'bank', '#14365F', '#FFFFFF', 'SPEI', 'transfer'),\n B('7eleven', '7-Eleven', 'cash', '#00704A', '#FFFFFF', '7-11'),\n B('circlek', 'Circle K', 'cash', '#DA291C', '#FFFFFF', 'K'),\n B('soriana', 'Soriana', 'cash', '#C8102E', '#FFFFFF'),\n B('extra', 'Extra', 'cash', '#E35205', '#FFFFFF'),\n B('kiosko', 'Kiosko', 'cash', '#C8102E', '#FFFFFF'),\n B('calimax', 'Calimax', 'cash', '#D52B1E', '#FFFFFF'),\n B('farmaciasyza', 'Farmacias Yza', 'cash', '#0A5A9C', '#FFFFFF', 'Yza'),\n B('chedraui', 'Chedraui', 'cash', '#0047BB', '#FFFFFF'),\n B('casaley', 'Casa Ley', 'cash', '#C8102E', '#FFFFFF', 'Ley'),\n B('telecomm', 'Telecomm', 'cash', '#6F1D46', '#FFFFFF'),\n B('walmart', 'Walmart', 'cash', '#0071CE', '#FFFFFF'),\n B('bodegaaurrera', 'Bodega Aurrerá', 'cash', '#0F4C97', '#FFFFFF', 'Bodega\\nAurrerá'),\n B('farmaciasguadalajara', 'Farmacias Guadalajara', 'cash', '#005BAC', '#FFFFFF', 'Farm.\\nGuadalajara'),\n B('farmaciadelahorro', 'Farmacia del Ahorro', 'cash', '#00539F', '#FFFFFF', 'Farmacia\\ndel Ahorro'),\n B('santander', 'Santander', 'bank', '#C00000', '#FFFFFF'),\n B('hsbc', 'HSBC', 'bank', '#DB0011', '#FFFFFF'),\n B('scotiabank', 'Scotiabank', 'bank', '#EC111A', '#FFFFFF', 'Scotia'),\n B('bbva', 'BBVA', 'bank', '#004481', '#FFFFFF'),\n B('citibanamex', 'Citibanamex', 'bank', '#004B8D', '#FFFFFF', 'Citi'),\n B('banorte', 'Banorte', 'bank', '#C8102E', '#FFFFFF'),\n]\n\n/** Alternative spellings that providers send for the same brand (already normalized by `brandKey`). */\nconst ALIASES: Record<string, string> = {\n fedexmx: 'fedex',\n fedexexpress: 'fedex',\n dhlexpress: 'dhl',\n dhlmx: 'dhl',\n paquetexpres: 'paquetexpress',\n paqueteexpress: 'paquetexpress',\n jt: 'jtexpress',\n jandtexpress: 'jtexpress',\n noventaynueveminutos: '99minutos',\n correos: 'correosdemexico',\n sepomex: 'correosdemexico',\n master: 'mastercard',\n americanexpress: 'amex',\n mercadopagomx: 'mercadopago',\n mp: 'mercadopago',\n clabe: 'spei',\n banktransfer: 'spei',\n seveneleven: '7eleven',\n '711': '7eleven',\n circulok: 'circlek',\n yza: 'farmaciasyza',\n bancomer: 'bbva',\n banamex: 'citibanamex',\n ley: 'casaley',\n aurrera: 'bodegaaurrera',\n guadalajara: 'farmaciasguadalajara',\n fguadalajara: 'farmaciasguadalajara',\n farmaciaguadalajara: 'farmaciasguadalajara',\n fahorro: 'farmaciadelahorro',\n delahorro: 'farmaciadelahorro',\n farmaciasdelahorro: 'farmaciadelahorro',\n hsbcmexico: 'hsbc',\n scotia: 'scotiabank',\n walmartmexico: 'walmart',\n walmartsupercenter: 'walmart',\n oxxopay: 'oxxo',\n upsexpress: 'ups',\n estafetamexicana: 'estafeta',\n}\n\nconst BY_KEY = new Map(LIST.map((b) => [b.key, b]))\n\n/** `\"FedEx México\"`, `\"fedex_mx\"` and `\"FEDEX\"` all become `fedex`. Lowercase ASCII letters and digits only. */\nexport function brandKey(raw: string | null | undefined): string {\n const flat = (raw ?? '')\n .normalize('NFD')\n .replace(/[̀-ͯ]/g, '')\n .toLowerCase()\n .replace(/&/g, 'and')\n .replace(/[^a-z0-9]/g, '')\n const noCountry = flat.endsWith('mexico') && flat !== 'correosdemexico' ? flat.slice(0, -6) : flat\n return ALIASES[noCountry] ?? (BY_KEY.has(noCountry) ? noCountry : ALIASES[flat] ?? flat)\n}\n\n/** Catalog entry for a provider identifier, or `null` when the brand is not in the catalog. */\nexport function findBrand(raw: string | null | undefined): Brand | null {\n return BY_KEY.get(brandKey(raw)) ?? null\n}\n\n/**\n * Commercial name for a provider identifier: the catalog's (`fedex` → \"FedEx\") or, for an unknown one, the identifier\n * in title case (`\"envios_rapidos\"` → \"Envios Rapidos\"). `null` for an empty input.\n */\nexport function brandName(raw: string | null | undefined): string | null {\n const brand = findBrand(raw)\n if (brand) return brand.name\n const text = (raw ?? '').trim()\n if (!text) return null\n // Already cased by the provider (\"Envía Plus\"): keep it.\n if (text !== text.toLowerCase() && text !== text.toUpperCase()) return text\n return text\n .toLowerCase()\n .split(/[\\s_-]+/)\n .filter(Boolean)\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ')\n}\n\n/** Every brand of the catalog (for docs, previews and tests). */\nexport function listBrands(kind?: BrandKind): Brand[] {\n return kind ? LIST.filter((b) => b.kind === kind) : [...LIST]\n}\n\n/** Real logo bundled for a provider identifier (inline data URI), or `null` when the brand only has the fallback badge. */\nexport function brandLogo(raw: string | null | undefined): (LogoAsset & { key: string }) | null {\n const b = findBrand(raw)\n const logo = b ? LOGOS[b.key] : undefined\n return b && logo ? { ...logo, key: b.key } : null\n}\n","import type { CSSProperties } from 'react'\nimport { brandLogo, brandName, findBrand } from './brands.js'\n\nexport type BrandMarkProps = {\n /** Provider identifier (`fedex`, `oxxo`, `mercadopago`, `7eleven`…). Unknown keys get a neutral monogram. */\n brand: string | null | undefined\n /** Licensed logo sent by the provider (`PaymentPoint.logo_url`…). Only `https:`; it wins over the bundled logo and the badge. */\n logoUrl?: string | null\n /** Height in px of the box. Badges are 3:2 (width = 1.5 × height); real logos get a width that follows their shape. Default 24. */\n size?: number\n /**\n * Accessible name. Omit it when the brand name is already written next to the mark (the usual case): the mark is then\n * decorative (`aria-hidden`).\n */\n title?: string\n className?: string\n}\n\nfunction safeLogo(url: string | null | undefined): string | null {\n if (!url) return null\n try {\n return new URL(url).protocol === 'https:' ? url : null\n } catch {\n return null\n }\n}\n\n/** Letters of a monogram for a brand outside the catalog: \"envios rapidos\" → \"ER\". */\nfunction monogram(raw: string): string {\n const words = (brandName(raw) ?? raw).split(/\\s+/).filter(Boolean)\n const letters = words.length > 1 ? words.slice(0, 2).map((w) => w[0]) : [(words[0] ?? '?').slice(0, 2)]\n return letters.join('').toUpperCase()\n}\n\n/** What the mark ended up drawing: the provider's logo, the bundled real logo, or the typographic fallback. */\nexport type BrandMarkSource = 'provider' | 'logo' | 'badge'\n\nconst PLATE_RING = 'var(--sf-brand-mark-ring, rgb(127 127 127 / 0.35))'\n/** Neutral plate behind a real logo: always white, so an unrecolored logo reads the same on light and dark themes. */\nconst PLATE_BG = 'var(--sf-brand-mark-plate, #fff)'\n\n/** Box of a real logo: fixed height, width follows the logo's aspect ratio (clamped), so it never shifts the layout. */\nexport function logoBox(ar: number, size: number) {\n const pad = Math.max(2, Math.round(size * 0.16))\n const padX = Math.max(3, Math.round(size * 0.2))\n const innerH = size - pad * 2\n const maxW = size * 2.6\n const innerW = Math.min(innerH * ar, maxW)\n const imgH = Math.min(innerH, innerW / ar)\n return { width: Math.round(Math.max(innerW, innerH * 0.9) + padX * 2), height: size, imgW: Math.round(innerW), imgH: Math.round(imgH), pad, padX }\n}\n\n/**\n * The mark of a carrier, card network, wallet or cash point. Precedence: the provider's `logoUrl` (https, lazy) > the\n * real logo bundled with the package (inline data URI: no network request, same size on the server and in the browser)\n * > a typographic badge in the brand color for the brands without an available logo.\n *\n * Logos are never recolored; they sit on a white plate with a hairline (`--sf-brand-mark-ring`, plate color\n * `--sf-brand-mark-plate`) so they keep their contrast on light and dark themes. The element carries\n * `data-sf-brand-mark=\"<key>\"` and `data-sf-brand-source=\"provider|logo|badge\"`.\n */\nexport function BrandMark({ brand, logoUrl, size = 24, title, className }: BrandMarkProps) {\n const height = size\n const width = Math.round(size * 1.5)\n const a11y = title ? { role: 'img' as const, 'aria-label': title } : { 'aria-hidden': true as const }\n const logo = safeLogo(logoUrl)\n const found = findBrand(brand)\n const key = found?.key ?? 'generic'\n const style: CSSProperties = { width, height, flex: 'none' }\n const plate = (w: number, pad: number, padX: number): CSSProperties => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxSizing: 'border-box',\n flex: 'none',\n width: w,\n height,\n padding: `${pad}px ${padX}px`,\n background: PLATE_BG,\n border: `1px solid ${PLATE_RING}`,\n borderRadius: Math.round(size * 0.2),\n overflow: 'hidden',\n })\n if (logo) {\n const b = logoBox(1.5, size)\n return (\n <span className={className} style={plate(width, b.pad, b.padX)} data-sf-brand-mark={key} data-sf-brand-source=\"provider\" {...a11y}>\n <img\n src={logo}\n alt={title ?? ''}\n width={width - b.padX * 2}\n height={height - b.pad * 2}\n loading=\"lazy\"\n decoding=\"async\"\n style={{ objectFit: 'contain', maxWidth: '100%', maxHeight: '100%' }}\n {...(title ? {} : { 'aria-hidden': true })}\n />\n </span>\n )\n }\n const real = brandLogo(brand)\n if (found && real) {\n const b = logoBox(real.ar, size)\n // The plate is a role=\"img\" with the commercial name; the <img> inside is decorative so it is not announced twice.\n const label = title ?? found.name\n return (\n <span className={className} style={plate(b.width, b.pad, b.padX)} data-sf-brand-mark={key} data-sf-brand-source=\"logo\" {...(title ? { role: 'img', 'aria-label': label } : { 'aria-hidden': true })}>\n <img src={real.src} alt=\"\" width={b.imgW} height={b.imgH} decoding=\"async\" draggable={false} style={{ display: 'block', maxWidth: 'none' }} />\n </span>\n )\n }\n const ring = PLATE_RING\n if (found?.shape === 'mastercard') {\n return (\n <svg viewBox=\"0 0 48 32\" width={width} height={height} className={className} style={style} data-sf-brand-mark={key} data-sf-brand-source=\"badge\" focusable=\"false\" {...a11y}>\n <rect x=\"0.5\" y=\"0.5\" width=\"47\" height=\"31\" rx=\"5\" fill={found.bg} stroke={ring} />\n <circle cx=\"19\" cy=\"16\" r=\"9\" fill=\"#EB001B\" />\n <circle cx=\"29\" cy=\"16\" r=\"9\" fill=\"#F79E1B\" />\n <path d=\"M24 8.52a9 9 0 0 1 0 14.96a9 9 0 0 1 0-14.96z\" fill=\"#FF5F00\" />\n </svg>\n )\n }\n if (found?.shape === 'transfer') {\n // Generic bank-transfer badge (two opposing arrows + the name). SPEI has no logo we may redistribute (see\n // brands/LOGOS.md), so this is deliberately NOT an imitation of the official mark.\n const label = (found.mark ?? found.name).split('\\n')[0]!\n return (\n <svg viewBox=\"0 0 48 32\" width={width} height={height} className={className} style={style} data-sf-brand-mark={key} data-sf-brand-source=\"badge\" focusable=\"false\" {...a11y}>\n <rect x=\"0.5\" y=\"0.5\" width=\"47\" height=\"31\" rx=\"5\" fill={found.bg} stroke={ring} />\n <path d=\"M6 12h11m0 0-3-3m3 3-3 3M17 20H6m0 0 3-3m-3 3 3 3\" fill=\"none\" stroke={found.fg} strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <text x=\"33\" y=\"16.5\" dominantBaseline=\"central\" textAnchor=\"middle\" fill={found.fg} fontFamily=\"system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif\" fontWeight={800} fontSize={11} textLength={22} lengthAdjust=\"spacingAndGlyphs\">\n {label}\n </text>\n </svg>\n )\n }\n const text = found ? (found.mark ?? found.name) : monogram(brand ?? '')\n const bg = found?.bg ?? 'var(--sf-brand-mark-bg, #E7E9EE)'\n const fg = found?.fg ?? 'var(--sf-brand-mark-fg, #2B2F38)'\n const lines = text.split('\\n')\n const longest = Math.max(...lines.map((l) => l.length))\n // Short marks grow; long ones are squeezed into the badge (textLength) so every badge has the same box.\n const fontSize = lines.length > 1 ? (longest <= 5 ? 11 : 9.5) : longest <= 2 ? 15 : longest <= 4 ? 16 : 10\n const fit = (l: string) => (l.length > 5 ? { textLength: 40, lengthAdjust: 'spacingAndGlyphs' as const } : l.length === 4 ? { textLength: 36, lengthAdjust: 'spacingAndGlyphs' as const } : {})\n const italic = found?.key === 'visa' || found?.key === 'fedex' ? 'italic' : undefined\n const common = {\n textAnchor: 'middle' as const,\n fill: fg,\n fontFamily: \"system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif\",\n fontWeight: 800,\n fontSize,\n fontStyle: italic,\n }\n return (\n <svg viewBox=\"0 0 48 32\" width={width} height={height} className={className} style={style} data-sf-brand-mark={key} data-sf-brand-source=\"badge\" focusable=\"false\" {...a11y}>\n <rect x=\"0.5\" y=\"0.5\" width=\"47\" height=\"31\" rx=\"5\" fill={bg} stroke={ring} />\n {lines.length > 1 ? (\n lines.slice(0, 2).map((l, i) => (\n <text key={i} x=\"24\" y={i === 0 ? 15 : 25.5} {...common} {...fit(l)}>\n {l}\n </text>\n ))\n ) : (\n <text x=\"24\" y=\"16\" dominantBaseline=\"central\" letterSpacing={longest <= 4 ? 0.3 : 0} {...common} {...fit(text)}>\n {text}\n </text>\n )}\n </svg>\n )\n}\n","/**\n * Which carrier rates to show first. Pure: no DOM, no amounts computed (costs are only compared, as the server sends\n * them). A long quote (10+ services, several per carrier) becomes up to three recommended rows (the cheapest, the\n * fastest and the best balance of both) plus the rest grouped by carrier, so the buyer compares three things instead of\n * scanning a flat list.\n */\nimport type { ShippingRate } from '@asteby/storefront'\nimport { brandKey } from './brands.js'\n\n/** Why a rate is recommended. `best_value` balances price and arrival time. */\nexport type RateTag = 'cheapest' | 'fastest' | 'best_value'\n\nexport type RecommendedRate<R extends ShippingRate = ShippingRate> = { rate: R; tags: RateTag[] }\n\nexport type RateGroup<R extends ShippingRate = ShippingRate> = {\n /** Brand key of the carrier (`fedex`), or `''` for rates without one. */\n key: string\n /** Carrier as the server sends it (first rate of the group), for `BrandMark` and the group name. */\n carrier: string | null\n rates: R[]\n}\n\nexport type RecommendRatesOptions = {\n /** How many rates to recommend. Default 3. */\n count?: number\n /**\n * With this many rates or fewer every rate is recommended (no \"more options\"): hiding one or two rates behind a\n * toggle costs more than it saves. Default `count + 1`.\n */\n collapseAfter?: number\n /** Drop repeated services (same carrier and service, e.g. quoted by two providers), keeping the cheapest. Default true. */\n dedupe?: boolean\n}\n\nexport type RecommendedRates<R extends ShippingRate = ShippingRate> = {\n recommended: RecommendedRate<R>[]\n /** Everything else, grouped by carrier; groups ordered by their cheapest rate, rates by cost. */\n more: RateGroup<R>[]\n /** Number of rates in `more`. */\n moreCount: number\n}\n\nconst costOf = (r: ShippingRate) => {\n const n = Number(r.cost.amount)\n return Number.isFinite(n) ? n : null\n}\nconst daysOf = (r: ShippingRate) => r.eta_days_max ?? r.eta_days_min ?? null\nconst norm = (s: string | null | undefined) => (s ?? '').trim().toLowerCase()\nconst carrierKey = (r: ShippingRate) => (r.carrier ? brandKey(r.carrier) : r.provider ? brandKey(r.provider) : '')\n\n/** Repeated services (same carrier, same service code or title, same arrival): only the cheapest stays. Order kept. */\nexport function dedupeRates<R extends ShippingRate>(rates: readonly R[]): R[] {\n const best = new Map<string, R>()\n const keyOf = (r: R) => `${carrierKey(r)}|${norm(r.service_code) || norm(r.title)}|${daysOf(r) ?? ''}|${r.cost.currency_code}`\n for (const r of rates) {\n const k = keyOf(r)\n const prev = best.get(k)\n const c = costOf(r)\n if (!prev || (c !== null && (costOf(prev) === null || c < costOf(prev)!))) best.set(k, r)\n }\n const keep = new Set(best.values())\n return rates.filter((r) => keep.has(r))\n}\n\n/**\n * Up to `count` recommended rates and the rest by carrier.\n * - **cheapest**: lowest cost (only when every rate shares the currency); a tie goes to the faster one.\n * - **fastest**: fewest business days; a tie goes to the cheaper one. Only when some rate is strictly faster than the\n * cheapest, so the tag always tells the buyer something.\n * - **best_value**: the remaining rate with the best combined position in price and in time (sum of ranks), a tie goes\n * to the cheaper one. Fills the remaining slots.\n * Recommended rows come back cheapest first. Pickup is not a rate and is never hidden (the component shows it apart).\n */\nexport function recommendRates<R extends ShippingRate>(input: readonly R[], options: RecommendRatesOptions = {}): RecommendedRates<R> {\n const count = Math.max(1, options.count ?? 3)\n const rates = options.dedupe === false ? [...input] : dedupeRates(input)\n const collapseAfter = options.collapseAfter ?? count + 1\n const sameCurrency = new Set(rates.map((r) => r.cost.currency_code)).size <= 1\n const byCost = (a: R, b: R) => (costOf(a) ?? Infinity) - (costOf(b) ?? Infinity)\n const byDays = (a: R, b: R) => (daysOf(a) ?? Infinity) - (daysOf(b) ?? Infinity)\n const tags = new Map<R, RateTag[]>()\n const tag = (r: R, t: RateTag) => tags.set(r, [...(tags.get(r) ?? []), t])\n\n const cheapest = sameCurrency && rates.length > 1 ? [...rates].sort((a, b) => byCost(a, b) || byDays(a, b))[0] : undefined\n if (cheapest && costOf(cheapest) !== null) tag(cheapest, 'cheapest')\n const fastest = rates.length > 1 ? [...rates].sort((a, b) => byDays(a, b) || byCost(a, b))[0] : undefined\n if (fastest && daysOf(fastest) !== null && (!cheapest || fastest === cheapest || (daysOf(cheapest) ?? Infinity) > daysOf(fastest)!)) tag(fastest, 'fastest')\n\n const chosen: R[] = []\n for (const r of [cheapest, fastest]) if (r && tags.has(r) && !chosen.includes(r)) chosen.push(r)\n\n if (rates.length > collapseAfter) {\n // Rank in price and in time (ties share a rank); the best sum fills the remaining slots.\n const rank = (sorted: R[], val: (r: R) => number | null) => {\n const out = new Map<R, number>()\n let pos = 0\n let last: number | null | undefined\n sorted.forEach((r, i) => {\n const v = val(r)\n if (v !== last) pos = i\n last = v\n out.set(r, v === null ? sorted.length : pos)\n })\n return out\n }\n const priceRank = rank([...rates].sort(byCost), costOf)\n const timeRank = rank([...rates].sort(byDays), daysOf)\n const rest = rates\n .filter((r) => !chosen.includes(r))\n .sort((a, b) => priceRank.get(a)! + timeRank.get(a)! - (priceRank.get(b)! + timeRank.get(b)!) || byCost(a, b))\n let first = true\n for (const r of rest) {\n if (chosen.length >= count) break\n chosen.push(r)\n if (first) tag(r, 'best_value')\n first = false\n }\n } else {\n for (const r of rates) if (!chosen.includes(r)) chosen.push(r)\n }\n\n const recommended = chosen.sort(byCost).map((rate) => ({ rate, tags: tags.get(rate) ?? [] }))\n const groups = new Map<string, RateGroup<R>>()\n for (const r of [...rates].sort(byCost)) {\n if (chosen.includes(r)) continue\n const key = carrierKey(r)\n const g = groups.get(key) ?? { key, carrier: r.carrier ?? r.provider ?? null, rates: [] }\n g.rates.push(r)\n groups.set(key, g)\n }\n const more = [...groups.values()]\n return { recommended, more, moreCount: more.reduce((n, g) => n + g.rates.length, 0) }\n}\n\nexport type FlatRatesOptions = {\n /** Count used to decide the `best_value` tag, as in `recommendRates` (default 3: only with more than 4 services). */\n count?: number\n /** Drop repeated services keeping the cheapest. Default true. */\n dedupe?: boolean\n /** Id of the chosen rate: it stays in the list even if it is a repeated service. */\n keepId?: string | null\n}\n\n/**\n * ONE flat list for `layout=\"flat\"`: every service (repeated ones dropped, the cheapest stays), ordered from the\n * lowest to the highest price, with the same tags `recommendRates` assigns (cheapest, fastest and, on long quotes,\n * best_value) on the rows that earn them. Nothing is hidden or grouped.\n */\nexport function flatRates<R extends ShippingRate>(input: readonly R[], options: FlatRatesOptions = {}): RecommendedRate<R>[] {\n const count = options.count ?? 3\n const rates = options.dedupe === false ? [...input] : dedupeRates(input)\n const tags = new Map<R, RateTag[]>()\n for (const { rate, tags: t } of recommendRates(rates, { count, dedupe: false }).recommended) tags.set(rate, t)\n const list = [...rates]\n const kept = options.keepId ? input.find((r) => r.id === options.keepId) : undefined\n if (kept && !list.includes(kept)) list.push(kept)\n const byCost = (a: R, b: R) => (costOf(a) ?? Infinity) - (costOf(b) ?? Infinity)\n // Array.prototype.sort is stable: equal prices keep the server order.\n return list.sort(byCost).map((rate) => ({ rate, tags: tags.get(rate) ?? [] }))\n}\n","/**\n * Pure helpers for the \"Delivery\" step: how to name a carrier rate, its arrival time, which rate is the cheapest or the\n * fastest, and one human note for the quote deadline. No amounts are computed: `cost` is shown as the server sends it;\n * comparing two costs to flag the cheapest is the only arithmetic.\n */\nimport type { ShippingRate } from '@asteby/storefront'\nimport { brandName } from './brands.js'\n\nexport type DeliveryMessages = {\n /** `{n}` = business days. */\n etaOne: string\n etaMany: string\n /** `{min}` / `{max}` = business days. */\n etaRange: string\n etaUpTo: string\n etaFrom: string\n cheapest: string\n fastest: string\n free: string\n pickupTitle: string\n /** Quote deadline, `{time}` = local time. */\n quoteToday: string\n quoteTomorrow: string\n /** `{date}` = short date + time. */\n quoteLater: string\n quoteSoon: string\n partial: string\n loading: string\n /** The quote expired or changed and the rates were reloaded. */\n requoted: string\n /** Tag of the recommended rate that balances price and arrival time (`layout=\"recommended\"`). */\n bestValue: string\n /** Toggle of the other rates, `{n}` = how many. */\n moreOptions: string\n /** Title of the group of rates without a carrier. */\n otherCarriers: string\n /** The rates could not be quoted (`error`). */\n error: string\n retry: string\n}\n\nconst ES: DeliveryMessages = {\n etaOne: 'Llega en 1 día hábil',\n etaMany: 'Llega en {n} días hábiles',\n etaRange: 'Llega en {min} a {max} días hábiles',\n etaUpTo: 'Llega en máximo {max} días hábiles',\n etaFrom: 'Llega en {min} días hábiles o más',\n cheapest: 'Más económico',\n fastest: 'Más rápido',\n free: 'Gratis',\n pickupTitle: 'Recoger en {name}',\n quoteToday: 'Precios de envío vigentes hasta las {time}.',\n quoteTomorrow: 'Precios de envío vigentes hasta mañana a las {time}.',\n quoteLater: 'Precios de envío vigentes hasta el {date}.',\n quoteSoon: 'Los precios de envío vencen pronto ({time}).',\n partial: 'Algunas paqueterías no respondieron a tiempo; estas son las opciones disponibles.',\n loading: 'Buscando opciones de envío…',\n requoted: 'Las tarifas de envío cambiaron y ya están actualizadas. Revisa tu envío antes de pagar.',\n bestValue: 'Recomendado',\n moreOptions: 'Ver más opciones ({n})',\n otherCarriers: 'Otras opciones',\n error: 'No pudimos consultar las opciones de envío en este momento.',\n retry: 'Intentar de nuevo',\n}\n\nconst EN: DeliveryMessages = {\n etaOne: 'Arrives in 1 business day',\n etaMany: 'Arrives in {n} business days',\n etaRange: 'Arrives in {min} to {max} business days',\n etaUpTo: 'Arrives in up to {max} business days',\n etaFrom: 'Arrives in {min}+ business days',\n cheapest: 'Cheapest',\n fastest: 'Fastest',\n free: 'Free',\n pickupTitle: 'Pick up at {name}',\n quoteToday: 'Shipping prices valid until {time}.',\n quoteTomorrow: 'Shipping prices valid until tomorrow at {time}.',\n quoteLater: 'Shipping prices valid until {date}.',\n quoteSoon: 'Shipping prices expire soon ({time}).',\n partial: \"We couldn't reach every carrier. These are the options available now.\",\n loading: 'Looking for delivery options…',\n requoted: 'Shipping rates changed and are now up to date. Check your delivery before paying.',\n bestValue: 'Recommended',\n moreOptions: 'Show more options ({n})',\n otherCarriers: 'Other options',\n error: \"We couldn't get delivery options right now.\",\n retry: 'Try again',\n}\n\n/** Messages for a locale (`es*` default, `en*`), with optional overrides. */\nexport function deliveryMessages(locale?: string | null, overrides?: Partial<DeliveryMessages> | null): DeliveryMessages {\n const base = (locale ?? 'es-MX').toLowerCase().startsWith('en') ? EN : ES\n return overrides ? { ...base, ...overrides } : base\n}\n\n// A value that already ends in a period (\"9:39 p.m.\") does not get a second one from the template.\nconst fill = (tpl: string, vars: Record<string, string | number>) => tpl.replace(/\\{(\\w+)\\}/g, (_, k: string) => String(vars[k] ?? '')).replace(/\\.\\.$/, '.')\n\n/** Commercial carrier name of a rate (`fedex` → \"FedEx\"); `null` without carrier. */\nexport function rateCarrier(rate: Pick<ShippingRate, 'carrier'>): string | null {\n return brandName(rate.carrier)\n}\n\n/**\n * Service name without the carrier repeated: \"FedEx Express Saver\" with carrier `fedex` → \"Express Saver\". Falls back\n * to the title when stripping would leave nothing.\n */\nexport function rateService(rate: Pick<ShippingRate, 'title' | 'carrier'>): string {\n const title = rate.title.trim()\n const carrier = rateCarrier(rate)\n if (!carrier) return title\n for (const prefix of [carrier, rate.carrier ?? '']) {\n if (!prefix) continue\n if (title.toLowerCase().startsWith(prefix.toLowerCase())) {\n const rest = title.slice(prefix.length).replace(/^[\\s·:|-]+/, '')\n if (rest) return rest\n }\n }\n return title\n}\n\n/** Arrival time of a rate: business days from the provider, else the server `eta` text as is. */\nexport function rateEta(\n rate: Pick<ShippingRate, 'eta' | 'eta_days_min' | 'eta_days_max'>,\n messages: DeliveryMessages = ES,\n): string | null {\n const { eta_days_min: min, eta_days_max: max } = rate\n if (typeof min === 'number' && typeof max === 'number') {\n if (min === max) return min === 1 ? messages.etaOne : fill(messages.etaMany, { n: min })\n return fill(messages.etaRange, { min, max })\n }\n if (typeof max === 'number') return max === 1 ? messages.etaOne : fill(messages.etaUpTo, { max })\n if (typeof min === 'number') return min === 1 ? messages.etaOne : fill(messages.etaFrom, { min })\n return rate.eta ?? null\n}\n\nexport type RateBadge = 'cheapest' | 'fastest'\n\nconst costOf = (r: ShippingRate) => {\n const n = Number(r.cost.amount)\n return Number.isFinite(n) ? n : null\n}\nconst daysOf = (r: ShippingRate) => r.eta_days_max ?? r.eta_days_min ?? null\n\n/**\n * Badges per rate id. Only with two or more rates, only when one rate is strictly the cheapest (same currency) or\n * strictly the fastest: a tie gets no badge, so the badge always tells the buyer something.\n */\nexport function rateBadges(rates: readonly ShippingRate[]): Map<string, RateBadge[]> {\n const out = new Map<string, RateBadge[]>()\n if (rates.length < 2) return out\n const add = (id: string, b: RateBadge) => out.set(id, [...(out.get(id) ?? []), b])\n const unique = (values: Array<[string, number | null]>) => {\n const known = values.filter((v): v is [string, number] => v[1] !== null)\n if (known.length < 2) return null\n const min = Math.min(...known.map((v) => v[1]))\n const winners = known.filter((v) => v[1] === min)\n return winners.length === 1 ? winners[0]![0] : null\n }\n const currencies = new Set(rates.map((r) => r.cost.currency_code))\n if (currencies.size === 1) {\n const id = unique(rates.map((r) => [r.id, costOf(r)]))\n if (id) add(id, 'cheapest')\n }\n const fast = unique(rates.map((r) => [r.id, daysOf(r)]))\n if (fast) add(fast, 'fastest')\n return out\n}\n\n/** Earliest `expires_at` of the rates (the deadline of the whole list), or `null`. */\nexport function quoteDeadline(rates: readonly Pick<ShippingRate, 'expires_at'>[]): Date | null {\n let best: Date | null = null\n for (const r of rates) {\n if (!r.expires_at) continue\n const d = new Date(r.expires_at)\n if (Number.isNaN(d.getTime())) continue\n if (!best || d < best) best = d\n }\n return best\n}\n\nexport type QuoteNote = { text: string; soon: boolean }\n\n/**\n * One human note for the quote deadline, in the buyer's time zone (or `timeZone`): \"valid until 9:39 p.m.\", \"until\n * tomorrow at…\", \"until Oct 24, …\", or \"expire soon\" within `soonMinutes` (default 15). `null` when already past.\n */\nexport function quoteNote(\n deadline: Date | null,\n opts: { locale?: string; now?: Date; timeZone?: string; soonMinutes?: number; messages?: DeliveryMessages } = {},\n): QuoteNote | null {\n if (!deadline) return null\n const now = opts.now ?? new Date()\n const left = deadline.getTime() - now.getTime()\n if (left <= 0) return null\n const m = opts.messages ?? ES\n const locale = opts.locale ?? 'es-MX'\n const tz = opts.timeZone ? { timeZone: opts.timeZone } : {}\n const time = new Intl.DateTimeFormat(locale, { hour: 'numeric', minute: '2-digit', ...tz }).format(deadline)\n if (left <= (opts.soonMinutes ?? 15) * 60_000) return { text: fill(m.quoteSoon, { time }), soon: true }\n const day = (d: Date) => new Intl.DateTimeFormat('en-CA', { year: 'numeric', month: '2-digit', day: '2-digit', ...tz }).format(d)\n if (day(deadline) === day(now)) return { text: fill(m.quoteToday, { time }), soon: false }\n if (day(deadline) === day(new Date(now.getTime() + 86_400_000))) return { text: fill(m.quoteTomorrow, { time }), soon: false }\n const date = new Intl.DateTimeFormat(locale, { day: 'numeric', month: 'short', hour: 'numeric', minute: '2-digit', ...tz }).format(deadline)\n return { text: fill(m.quoteLater, { date }), soon: false }\n}\n\n/** Error codes a server uses (or will use) when the chosen rate is no longer quotable. */\nconst QUOTE_CODES = new Set(['quote_expired', 'rate_expired', 'rate_changed', 'rate_unavailable', 'rate_not_found', 'stale_rate', 'invalid_rate'])\n\n/**\n * `true` when saving a shipping rate failed because the quote expired or the rates changed, so the shop should reload\n * the rates (and keep the address) instead of showing a generic failure. Recognizes the explicit codes\n * (`quote_expired`, `rate_expired`…, any status), a `409`, and the generic `422` on the rate field that older servers\n * answer when the provider re-quoted with new ids. 5xx and other 4xx stay real failures.\n */\nexport function isQuoteChange(err: { status?: number; code?: string | null; field?: string | null } | null | undefined): boolean {\n if (!err) return false\n if (err.code && QUOTE_CODES.has(err.code)) return true\n if (err.status === 409) return true\n return err.status === 422 && (err.field === 'rate_id' || err.field === 'delivery' || err.field === 'delivery.rate_id' || !err.field)\n}\n\n/**\n * The rate of a fresh quote that matches the one the buyer had chosen (same carrier and service), so a re-quote keeps\n * the choice even though the provider issued new ids. `null` when that service is no longer offered.\n */\nexport function matchRate<R extends Pick<ShippingRate, 'id' | 'carrier' | 'service_code' | 'title'>>(previous: Pick<ShippingRate, 'carrier' | 'service_code' | 'title'> | null | undefined, rates: readonly R[]): R | null {\n if (!previous) return null\n const norm = (s: string | null | undefined) => (s ?? '').trim().toLowerCase()\n const sameCarrier = (r: R) => norm(r.carrier) === norm(previous.carrier)\n if (previous.service_code) {\n const hit = rates.find((r) => sameCarrier(r) && norm(r.service_code) === norm(previous.service_code))\n if (hit) return hit\n }\n return rates.find((r) => sameCarrier(r) && norm(r.title) === norm(previous.title)) ?? null\n}\n","import { useMemo, useSyncExternalStore, type CSSProperties, type ReactNode } from 'react'\nimport { formatMoney, type Money, type PickupOption, type ShippingRate } from '@asteby/storefront'\nimport { useResolvedLocale } from '../locale.js'\nimport { BrandMark } from './brand-mark.js'\nimport { flatRates, recommendRates, type RateTag } from './recommend.js'\nimport {\n deliveryMessages,\n quoteDeadline,\n quoteNote,\n rateBadges,\n rateCarrier,\n rateEta,\n rateService,\n type DeliveryMessages,\n type RateBadge,\n} from './delivery.js'\n\nexport type DeliveryOptionsClassNames = Partial<\n Record<\n | 'root'\n | 'option'\n | 'radio'\n | 'mark'\n | 'body'\n | 'title'\n | 'carrier'\n | 'service'\n | 'eta'\n | 'badges'\n | 'badge'\n | 'price'\n | 'free'\n | 'note'\n | 'partial'\n | 'skeleton'\n | 'more'\n | 'moreSummary'\n | 'group'\n | 'groupTitle'\n | 'error'\n | 'retry',\n string\n >\n>\n\nexport type DeliveryOptionsProps = {\n rates: readonly ShippingRate[]\n pickup?: readonly PickupOption[]\n /** Radio group name. Default `delivery_choice`. */\n name?: string\n /** Form value of a rate. Default `rate:<id>`. */\n rateValue?: (rate: ShippingRate) => string\n /** Form value of a pickup branch. Default `pickup:<branch_id>`. */\n pickupValue?: (branch: PickupOption) => string\n /** Uncontrolled preselection. Default: the first rate. `null`: nothing preselected. */\n defaultValue?: string | null\n /** Controlled value (use with `onValueChange`). */\n value?: string\n onValueChange?: (value: string) => void\n /** Some provider did not answer (`DeliveryOptions.partial`): one neutral note above the list. */\n partial?: boolean\n /** The previous quote expired or changed and these rates are fresh: one status note above the list. */\n requoted?: boolean\n /** Rates are being quoted again: skeleton rows (no rates yet) or the current rows dimmed, `aria-busy`. */\n loading?: boolean\n /** Quote deadline note: `always` (default), only when it is `soon`, or `never`. */\n quoteNote?: 'always' | 'soon' | 'never'\n /** Time zone of the note. Default: the buyer's browser. */\n timeZone?: string\n /** Show the carrier marks. Default true. */\n marks?: boolean\n /** Cheapest / fastest badges. Default true. */\n badges?: boolean\n required?: boolean\n locale?: string\n messages?: Partial<DeliveryMessages>\n renderAmount?: (amount: Money) => ReactNode\n classNames?: DeliveryOptionsClassNames\n /**\n * `list` (default): every rate, as the server orders them. `recommended`: up to `recommendedCount` rates (cheapest,\n * fastest and the best balance, tagged) and the rest under \"Show more options (N)\", grouped by carrier so the carrier\n * name is not repeated on every row. Repeated services are dropped (the cheapest stays). Works without JavaScript\n * (`<details>`); it opens by itself when the chosen rate is inside. `flat`: ONE plain list like most online shops:\n * every service ordered from the lowest to the highest price, repeated services dropped (the cheapest stays), the\n * cheapest / fastest / recommended tags on the rows that earn them, no `<details>` and no groups. The chosen rate is\n * always listed, and with no explicit default the preselected row is the first one (the cheapest).\n */\n layout?: 'list' | 'recommended' | 'flat'\n /** Rates recommended in `layout=\"recommended\"`. Default 3. */\n recommendedCount?: number\n /**\n * The rates could not be quoted (provider down, timeout): one friendly alert instead of the list, with a retry button\n * when `onRetry` is set. `true` uses the default text; a string replaces it.\n */\n error?: boolean | string\n onRetry?: () => void\n /** `data-testid` of every radio. */\n testId?: string\n /** Rows the shop renders before the rates (e.g. \"home delivery, rates after the address\"). */\n children?: ReactNode\n}\n\nconst SR_ONLY: CSSProperties = { position: 'absolute', width: 1, height: 1, overflow: 'hidden', clip: 'rect(0 0 0 0)', whiteSpace: 'nowrap' }\n\nconst useHydrated = () =>\n useSyncExternalStore(\n () => () => {},\n () => true,\n () => false,\n )\n\nfunction PickupGlyph({ size = 24 }: { size?: number }) {\n return (\n <svg viewBox=\"0 0 48 32\" width={Math.round(size * 1.5)} height={size} aria-hidden=\"true\" focusable=\"false\" style={{ flex: 'none' }} data-sf-brand-mark=\"pickup\">\n <rect x=\"0.5\" y=\"0.5\" width=\"47\" height=\"31\" rx=\"5\" fill=\"var(--sf-brand-mark-bg, #E7E9EE)\" stroke=\"var(--sf-brand-mark-ring, rgb(127 127 127 / 0.35))\" />\n <path d=\"M15 13.5 17 9h14l2 4.5M15 13.5h18M15 13.5V23h18v-9.5M21 23v-5h6v5\" fill=\"none\" stroke=\"var(--sf-brand-mark-fg, #2B2F38)\" strokeWidth=\"1.8\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\n/**\n * The rates and pickup branches of \"Delivery\" as native radios: carrier mark and commercial name, readable service,\n * arrival time, cheapest / fastest badges, price as the server sends it, and ONE note for the quote deadline in the\n * buyer's time zone. Works without JavaScript (plain radios in the page form); the note appears after hydration in a\n * reserved line, so it never shifts the layout.\n *\n * Wrap it in the shop's own `<fieldset><legend>`. Style it with `classNames` and/or the default sheet\n * `@asteby/storefront-react/checkout.css`.\n */\nexport function DeliveryOptions(props: DeliveryOptionsProps) {\n const {\n rates,\n pickup = [],\n name = 'delivery_choice',\n rateValue = (r) => `rate:${r.id}`,\n pickupValue = (b) => `pickup:${b.branch_id}`,\n value,\n onValueChange,\n partial = false,\n requoted = false,\n loading = false,\n timeZone,\n marks = true,\n badges: showBadges = true,\n required = true,\n renderAmount,\n classNames: cx = {},\n testId,\n children,\n layout = 'list',\n error,\n onRetry,\n } = props\n const locale = useResolvedLocale(props.locale)\n const m = useMemo(() => deliveryMessages(locale, props.messages), [locale, props.messages])\n const hydrated = useHydrated()\n const badges = useMemo(() => (showBadges ? rateBadges(rates) : new Map<string, RateBadge[]>()), [rates, showBadges])\n const flat = useMemo(\n () => (layout === 'flat' ? flatRates(rates, { count: props.recommendedCount ?? 3, keepId: value ? rates.find((r) => rateValue(r) === value)?.id ?? null : null }) : null),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [layout, rates, props.recommendedCount, value],\n )\n const firstRate = flat ? flat[0]?.rate : rates[0]\n const firstValue = firstRate ? rateValue(firstRate) : null\n const defaultValue = props.defaultValue === undefined ? firstValue : props.defaultValue\n const amount = (money: Money) => (Number(money.amount) === 0 ? <span className={cx.free} data-sf-delivery-free>{m.free}</span> : renderAmount ? renderAmount(money) : formatMoney(money, locale))\n const mode = props.quoteNote ?? 'always'\n const deadline = mode === 'never' ? null : quoteDeadline(rates)\n const note = hydrated && deadline ? quoteNote(deadline, { locale, messages: m, ...(timeZone ? { timeZone } : {}) }) : null\n const shownNote = note && (mode === 'always' || note.soon) ? note : null\n\n const current = value ?? defaultValue ?? null\n const plan = useMemo(\n () => (layout === 'recommended' ? recommendRates(rates, { count: props.recommendedCount ?? 3 }) : null),\n [layout, rates, props.recommendedCount],\n )\n const inMore = plan ? plan.more.some((g) => g.rates.some((r) => rateValue(r) === current)) : false\n\n const radio = (v: string, describedBy?: string) => (\n <input\n type=\"radio\"\n name={name}\n value={v}\n required={required}\n className={cx.radio}\n {...(describedBy ? { 'aria-describedby': describedBy } : {})}\n {...(value !== undefined ? { checked: value === v, onChange: () => onValueChange?.(v) } : { defaultChecked: v === defaultValue, ...(onValueChange ? { onChange: () => onValueChange(v) } : {}) })}\n {...(testId ? { 'data-testid': testId } : {})}\n />\n )\n\n const tagText = (t: RateTag | RateBadge) => (t === 'cheapest' ? m.cheapest : t === 'fastest' ? m.fastest : m.bestValue)\n\n /** One row: [radio] [mark] carrier + service / arrival / tags ........ price. In a carrier group the mark and the carrier name live in the group title. */\n const rateRow = (rate: ShippingRate, opts: { tags: readonly (RateTag | RateBadge)[]; grouped?: boolean }) => {\n const carrier = rateCarrier(rate)\n const service = rateService(rate)\n const eta = rateEta(rate, m)\n return (\n <label key={rate.id} className={cx.option} data-sf-delivery-option data-loading={loading || undefined} data-grouped={opts.grouped || undefined}>\n {radio(rateValue(rate))}\n {marks && !opts.grouped ? (\n // Fixed slot: logos of different widths do not push the text column out of line.\n <span data-sf-delivery-mark aria-hidden=\"true\">\n <BrandMark brand={rate.carrier ?? rate.provider ?? rate.title} size={28} {...(cx.mark ? { className: cx.mark } : {})} />\n </span>\n ) : null}\n <span className={cx.body} data-sf-delivery-body>\n <span className={cx.title} data-sf-delivery-title>\n {carrier ? (\n opts.grouped ? (\n <>\n {/* The group title already shows the carrier: only screen readers hear it again (each radio keeps a full name). */}\n <span style={SR_ONLY}>{carrier} </span>\n <span className={cx.carrier} data-sf-delivery-carrier data-sf-delivery-service-only>\n {service}\n </span>\n </>\n ) : (\n <>\n <span className={cx.carrier} data-sf-delivery-carrier>\n {carrier}\n </span>{' '}\n <span className={cx.service} data-sf-delivery-service>\n {service}\n </span>\n </>\n )\n ) : (\n <span className={cx.carrier} data-sf-delivery-carrier>\n {service}\n </span>\n )}\n </span>\n {eta ? (\n <span className={cx.eta} data-sf-delivery-eta>\n {eta}\n </span>\n ) : null}\n {opts.tags.length ? (\n <span className={cx.badges} data-sf-delivery-badges>\n {opts.tags.map((b) => (\n <span key={b} className={cx.badge} data-sf-delivery-badge={b}>\n {tagText(b)}\n </span>\n ))}\n </span>\n ) : null}\n </span>\n <span className={cx.price} data-sf-delivery-price>\n {amount(rate.cost)}\n </span>\n </label>\n )\n }\n\n const errorText = error ? (typeof error === 'string' ? error : m.error) : null\n\n return (\n <div className={cx.root} data-sf-delivery data-layout={layout} aria-busy={loading || undefined}>\n {partial && !errorText ? (\n <p role=\"status\" className={cx.partial} data-sf-delivery-partial>\n {m.partial}\n </p>\n ) : null}\n {requoted ? (\n <p role=\"status\" className={cx.partial} data-sf-delivery-requoted>\n {m.requoted}\n </p>\n ) : null}\n {loading ? (\n <span style={SR_ONLY} role=\"status\" data-sf-delivery-loading>\n {m.loading}\n </span>\n ) : null}\n {errorText && rates.length === 0 && !loading ? (\n <div role=\"alert\" className={cx.error} data-sf-delivery-error>\n <p>{errorText}</p>\n {onRetry ? (\n <button type=\"button\" className={cx.retry} onClick={onRetry} data-sf-delivery-retry>\n {m.retry}\n </button>\n ) : null}\n </div>\n ) : null}\n {children}\n {loading && rates.length === 0\n ? [0, 1, 2].map((i) => <div key={i} className={cx.skeleton} data-sf-delivery-skeleton aria-hidden=\"true\" />)\n : null}\n {flat\n ? flat.map(({ rate, tags }) => rateRow(rate, { tags: showBadges ? tags : [] }))\n : plan\n ? plan.recommended.map(({ rate, tags }) => rateRow(rate, { tags: showBadges ? tags : [] }))\n : rates.map((rate) => rateRow(rate, { tags: badges.get(rate.id) ?? [] }))}\n {plan && plan.moreCount > 0 ? (\n <details className={cx.more} data-sf-delivery-more {...(inMore ? { open: true } : {})}>\n <summary className={cx.moreSummary} data-sf-delivery-more-summary>\n {m.moreOptions.replace('{n}', String(plan.moreCount))}\n </summary>\n <div data-sf-delivery-groups>\n {plan.more.map((g) => {\n const carrierName = g.carrier ? rateCarrier({ carrier: g.carrier }) : null\n const id = `${name}-group-${g.key || 'other'}`\n return (\n <div key={g.key || 'other'} role=\"group\" aria-labelledby={id} className={cx.group} data-sf-delivery-group={g.key || 'other'}>\n <p id={id} className={cx.groupTitle} data-sf-delivery-group-title>\n {marks && g.carrier ? <BrandMark brand={g.carrier} size={22} /> : null}\n <span>{carrierName ?? m.otherCarriers}</span>\n </p>\n {g.rates.map((rate) => rateRow(rate, { tags: [], grouped: Boolean(carrierName) }))}\n </div>\n )\n })}\n </div>\n </details>\n ) : null}\n {pickup.map((b) => (\n <label key={b.branch_id} className={cx.option} data-sf-delivery-option data-sf-delivery-pickup>\n {radio(pickupValue(b))}\n {marks ? <PickupGlyph size={28} /> : null}\n <span className={cx.body} data-sf-delivery-body>\n <span className={cx.title} data-sf-delivery-title>\n <span className={cx.carrier} data-sf-delivery-carrier>\n {m.pickupTitle.replace('{name}', b.name)}\n </span>\n </span>\n {b.address || b.city ? (\n <span className={cx.eta} data-sf-delivery-eta>\n {[b.address, b.city].filter(Boolean).join(', ')}\n </span>\n ) : null}\n </span>\n <span className={cx.price} data-sf-delivery-price>\n <span className={cx.free} data-sf-delivery-free>\n {m.free}\n </span>\n </span>\n </label>\n ))}\n {deadline ? (\n <p className={cx.note} data-sf-delivery-note data-soon={shownNote?.soon || undefined} aria-live=\"polite\">\n {shownNote?.text ?? ''}\n </p>\n ) : null}\n </div>\n )\n}\n"]}
|