{"version":3,"sources":["../src/components/BitteAiChat.tsx","../src/lib/chat.ts","../src/lib/fetchChatHistory.ts","../src/components/AccountContext.tsx","../src/components/chat/ChatContent.tsx","../src/lib/utils.ts","../src/types/types.ts","../src/components/ui/button.tsx","../src/assets/bitte_animation.json","../src/components/chat/BitteSpinner.tsx","../src/components/chat/ChatInput.tsx","../src/components/ui/textarea.tsx","../src/components/chat/AgentPill.tsx","../src/components/chat/MessageGroup.tsx","../src/lib/constants.ts","../src/lib/regex.ts","../src/components/ui/accordion.tsx","../src/components/ui/card.tsx","../src/components/ui/ImageWithFallback.tsx","../src/components/chat/CodeBlock.tsx","../src/components/chat/ErrorBoundary.tsx","../src/components/chat/Message.tsx","../src/components/chat/MarkdownTable.tsx","../src/components/ui/table.tsx","../src/components/chat/ShareDropButton.tsx","../src/hooks/useIsClient.ts","../src/components/ui/modal/ShareModal.tsx","../src/hooks/useWindowSize.ts","../src/components/ui/dialog.tsx","../src/components/ui/drawer.tsx","../src/components/ui/input.tsx","../src/components/ui/label.tsx","../src/components/chat/transactions/EvmTxCard.tsx","../src/hooks/useTransaction.ts","../src/components/chat/CopyStandard.tsx","../src/components/chat/LoadingMessage.tsx","../src/components/chat/transactions/TransactionDetail.tsx","../src/components/chat/transactions/TransactionResult.tsx","../src/components/chat/transactions/ReviewTransaction.tsx","../src/hooks/useAccountBalance.ts","../src/hooks/useTxnFees.ts","../src/hooks/useTxnPrice.ts","../src/components/ui/badge.tsx","../src/components/chat/transactions/TxnBadge.tsx","../src/components/chat/transactions/TxnDetailMultipleAction.tsx","../src/components/chat/transactions/TxAccordion.tsx","../src/components/chat/transactions/multiple-transactions/MultipleTxnMultiAction.tsx","../src/components/chat/transactions/TxnDetail.tsx","../src/components/chat/transactions/multiple-transactions/MultipleTxnSingleAction.tsx","../src/components/chat/transactions/multiple-transactions/MultipleTxnDetail.tsx","../src/components/chat/transactions/ShowDetailsBtn.tsx","../src/components/chat/transactions/single-transaction/SingleTxnMultipleAction.tsx","../src/components/chat/transactions/single-transaction/SingleTxnSingleAction.tsx","../src/components/chat/transactions/single-transaction/SingleTxnDetail.tsx","../src/components/chat/transactions/TxnFees.tsx","../src/components/chat/transactions/TxnListWrapper.tsx"],"sourcesContent":["import { Message } from \"ai\";\nimport { useEffect, useState } from \"react\";\nimport { convertToUIMessages } from \"../lib/chat\";\nimport { fetchChatHistory } from \"../lib/fetchChatHistory\";\nimport { BitteAiChatProps } from \"../types/types\";\nimport { AccountProvider } from \"./AccountContext\";\nimport { ChatContent } from \"./chat/ChatContent\";\n\nexport const BitteAiChat = ({\n  wallet,\n  apiUrl,\n  historyApiUrl,\n  agentid,\n  options,\n  theme = \"dark\",\n}: BitteAiChatProps) => {\n  const [loadedData, setLoadedData] = useState({\n    agentIdLoaded: \"\",\n    uiMessages: [] as Message[],\n  });\n\n  const chatId =\n    typeof window !== \"undefined\" && sessionStorage.getItem(\"chatId\");\n\n  console.log(\"pnpm link working 3 COLORs\");\n  useEffect(() => {\n    const fetchData = async () => {\n      if (chatId && historyApiUrl) {\n        const chat = await fetchChatHistory(chatId, historyApiUrl);\n        if (chat) {\n          const uiMessages = convertToUIMessages(chat.messages);\n          setLoadedData({\n            agentIdLoaded: chat.agentId,\n            uiMessages: uiMessages,\n          });\n        }\n      }\n    };\n\n    fetchData();\n  }, [chatId, historyApiUrl]);\n\n  const { agentIdLoaded, uiMessages } = loadedData;\n\n  return (\n    <AccountProvider wallet={wallet}>\n      <div className={theme}>\n        <ChatContent\n          wallet={wallet}\n          apiUrl={apiUrl}\n          agentid={agentid ?? agentIdLoaded}\n          messages={uiMessages}\n          options={{\n            agentName: options?.agentName,\n            agentImage: options?.agentImage,\n            chatId: options?.chatId ?? (chatId || undefined),\n          }}\n        />\n      </div>\n    </AccountProvider>\n  );\n};\n","import {\n  CoreAssistantMessage,\n  CoreToolMessage,\n  Message,\n  ToolInvocation,\n  convertToCoreMessages,\n  generateId,\n} from \"ai\";\nimport {\n  SmartActionAiMessage,\n  SmartActionMessage,\n  SmartAction,\n  SmartActionChat,\n} from \"../types\";\n\nexport const convertToSmartActionMessages = ({\n  messages,\n  agentId,\n}: {\n  messages: Message[];\n  agentId?: string;\n}): SmartActionMessage[] => {\n  const smartActionMessages = convertToCoreMessages(messages).map(\n    (message, index) => ({\n      ...message,\n      id: messages[index]?.id,\n      agentId,\n    })\n  );\n\n  return smartActionMessages;\n};\n\nexport const convertResponseMessages = (\n  messages: (CoreAssistantMessage | CoreToolMessage)[],\n  agentId?: string\n): SmartActionMessage[] => {\n  return messages.map((message) => ({\n    ...message,\n    id: generateId(),\n    agentId,\n  }));\n};\n\nexport const getAgentIdFromMessage = (\n  message: SmartActionAiMessage\n): string | undefined => {\n  const { annotations } = message;\n  const agentIdAnnotation = annotations?.[0];\n\n  if (agentIdAnnotation && typeof agentIdAnnotation === \"object\") {\n    if (\n      \"agentId\" in agentIdAnnotation &&\n      typeof agentIdAnnotation.agentId === \"string\"\n    ) {\n      return agentIdAnnotation.agentId;\n    }\n  }\n};\n\nfunction addToolMessageToChat({\n  toolMessage,\n  messages,\n}: {\n  toolMessage: CoreToolMessage;\n  messages: Array<Message & { agentId?: string }>;\n}): Array<Message> {\n  return messages.map((message) => {\n    if (message.toolInvocations) {\n      return {\n        ...message,\n        toolInvocations: message.toolInvocations.map((toolInvocation) => {\n          const toolResult = toolMessage.content.find(\n            (tool) => tool.toolCallId === toolInvocation.toolCallId\n          );\n\n          if (toolResult) {\n            return {\n              ...toolInvocation,\n              state: \"result\",\n              result: toolResult.result,\n            };\n          }\n\n          return toolInvocation;\n        }),\n        annotations: message.agentId\n          ? [{ agentId: message.agentId }]\n          : undefined,\n      };\n    }\n\n    return message;\n  });\n}\n\nexport function convertToUIMessages(\n  messages: Array<SmartActionMessage>\n): Array<Message> {\n  return messages.reduce<Array<Message>>((chatMessages, message) => {\n    const annotations = message.agentId\n      ? [{ agentId: message.agentId }]\n      : undefined;\n\n    if (message.role === \"tool\") {\n      return addToolMessageToChat({\n        toolMessage: message,\n        messages: chatMessages,\n      });\n    }\n\n    let textContent = \"\";\n    const toolInvocations: Array<ToolInvocation> = [];\n\n    if (typeof message.content === \"string\") {\n      textContent = message.content;\n    } else if (Array.isArray(message.content)) {\n      for (const content of message.content) {\n        if (content.type === \"text\") {\n          textContent += content.text;\n        } else if (content.type === \"tool-call\") {\n          toolInvocations.push({\n            state: \"call\",\n            toolCallId: content.toolCallId,\n            toolName: content.toolName,\n            args: content.args,\n          });\n        }\n      }\n    }\n\n    chatMessages.push({\n      id: message.id || generateId(),\n      role: message.role,\n      content: textContent,\n      toolInvocations,\n      annotations,\n    });\n\n    return chatMessages;\n  }, []);\n}\n\nexport const getTypedToolInvocations = <TTools>(\n  toolInvocation: ToolInvocation\n) => {\n  type ExecuteArgs<T> = T extends {\n    execute: (\n      args: infer A,\n      options?: {\n        abortSignal?: AbortSignal;\n      }\n    ) => unknown;\n  }\n    ? A\n    : never;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  type ExecuteReturn<T> = T extends { execute: (...args: any) => infer R }\n    ? Awaited<R>\n    : never;\n\n  type TypedToolInvocation = {\n    [T in keyof TTools]: Omit<\n      ToolInvocation,\n      \"toolName\" | \"args\" | \"result\"\n    > & {\n      toolName: T;\n      args: ExecuteArgs<TTools[T]>;\n      result: ExecuteReturn<TTools[T]>;\n    };\n  }[keyof TTools];\n\n  const toolName = toolInvocation.toolName as keyof TTools;\n\n  if (toolInvocation.state === \"result\") {\n    const result = toolInvocation.result as ExecuteReturn<\n      TTools[typeof toolName]\n    >;\n    return { ...toolInvocation, toolName, result } as TypedToolInvocation;\n  }\n\n  return { ...toolInvocation, toolName } as TypedToolInvocation;\n};\n","import { SmartActionChat } from \"../types\";\n\nexport const fetchChatHistory = async (\n  id: string,\n  url: string\n): Promise<SmartActionChat | null> => {\n  try {\n    const response = await fetch(`${url}?id=${id}`, {\n      method: \"GET\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n    });\n\n    if (!response.ok) {\n      console.error(\"Failed to fetch chat history:\", response.statusText);\n      return null;\n    }\n\n    const chat = await response.json();\n    return chat;\n  } catch (error) {\n    console.error(\"Error fetching chat history:\", error);\n    return null;\n  }\n};\n","import { Wallet } from \"@near-wallet-selector/core\";\nimport { Account } from \"near-api-js\";\nimport React, {\n  createContext,\n  useContext,\n  ReactNode,\n  useState,\n  useEffect,\n} from \"react\";\nimport { EVMWalletAdapter, WalletOptions } from \"../types\";\n\ninterface AccountContextType {\n  wallet?: Wallet;\n  account?: Account;\n  accountId: string | null;\n  evmWallet?: EVMWalletAdapter;\n  evmAddress?: string;\n}\n\nconst AccountContext = createContext<AccountContextType | undefined>(undefined);\n\ninterface AccountProviderProps {\n  children: ReactNode;\n  wallet?: WalletOptions;\n}\n\nexport function AccountProvider({\n  children,\n  wallet: { near, evm } = {},\n}: AccountProviderProps) {\n  const [accountId, setAccountId] = useState<string | null>(null);\n\n  useEffect(() => {\n    const getAccountId = async () => {\n      if (!accountId && near?.wallet) {\n        const accounts = await near.wallet.getAccounts();\n        setAccountId(\n          accounts?.[0]?.accountId || near.account?.accountId || null\n        );\n      }\n    };\n    getAccountId();\n  }, [near, accountId]);\n\n  useEffect(() => {\n    if (!near?.account && !near?.wallet && !evm) {\n      console.warn(\n        \"No wallet or account configured - users will not be able to send transactions\"\n      );\n    }\n  }, [near, evm]);\n\n  return (\n    <AccountContext.Provider\n      value={{\n        wallet: near?.wallet,\n        account: near?.account,\n        accountId,\n        evmWallet: evm,\n        evmAddress: evm?.address,\n      }}\n    >\n      {children}\n    </AccountContext.Provider>\n  );\n}\n\nexport function useAccount() {\n  const context = useContext(AccountContext);\n  if (context === undefined) {\n    throw new Error(\"useAccount must be used within an AccountProvider\");\n  }\n  return context;\n}\n\nexport function useWallet() {\n  const context = useContext(AccountContext);\n  if (context === undefined) {\n    throw new Error(\"useWallet must be used within an AccountProvider\");\n  }\n  return context.wallet;\n}\n","import { generateId } from \"ai\";\nimport { Message, useChat } from \"ai/react\";\nimport { ArrowDown } from \"lucide-react\";\nimport React, {\n  useCallback,\n  useEffect,\n  useLayoutEffect,\n  useMemo,\n  useRef,\n  useState,\n} from \"react\";\nimport { Hex } from \"viem\";\nimport { cn } from \"../../lib/utils\";\nimport {\n  AssistantsMode,\n  BitteAiChatProps,\n  ChatRequestBody,\n} from \"../../types/types\";\nimport { useAccount } from \"../AccountContext\";\nimport { Button } from \"../ui/button\";\nimport { BitteSpinner } from \"./BitteSpinner\";\nimport { SmartActionsInput } from \"./ChatInput\";\nimport { MessageGroup } from \"./MessageGroup\";\n\nexport const ChatContent = ({\n  agentid,\n  apiUrl,\n  options,\n  messages: initialMessages,\n}: BitteAiChatProps) => {\n  const chatId = useRef(options?.chatId || generateId()).current;\n  const [isAtBottom, setIsAtBottom] = useState(true);\n  const [autoScrollEnabled, setAutoScrollEnabled] = useState(true);\n  const messagesRef = useRef<HTMLDivElement | null>(null);\n\n  const { accountId, evmAddress } = useAccount();\n\n  const {\n    messages,\n    input,\n    handleInputChange,\n    isLoading: isInProgress,\n    handleSubmit,\n    reload,\n    error,\n  } = useChat({\n    id: chatId,\n    api: apiUrl,\n    onError: (e) => {\n      console.error(e);\n    },\n    sendExtraMessageFields: true,\n    initialMessages,\n    body: {\n      id: chatId,\n      config: {\n        mode: AssistantsMode.DEFAULT,\n        agentId: agentid,\n      },\n      accountId: accountId || \"\",\n      evmAddress: evmAddress as Hex,\n    } satisfies ChatRequestBody,\n  });\n\n  const groupedMessages = useMemo(() => {\n    return messages?.reduce<Message[][]>((groups, message) => {\n      if (message.role === \"user\") {\n        groups.push([message]);\n      } else {\n        const lastGroup = groups[groups.length - 1];\n        if (!lastGroup || lastGroup[0].role === \"user\") {\n          groups.push([message]);\n        } else {\n          lastGroup.push(message);\n        }\n      }\n      return groups;\n    }, []);\n  }, [messages]);\n\n  const scrollToBottom = useCallback((element: HTMLDivElement | null) => {\n    if (element) {\n      element.scrollTo({\n        top: element.scrollHeight,\n        behavior: \"smooth\",\n      });\n    }\n  }, []);\n\n  useLayoutEffect(() => {\n    if (isAtBottom && autoScrollEnabled) {\n      requestAnimationFrame(() => {\n        scrollToBottom(messagesRef.current);\n      });\n    }\n  }, [isAtBottom, autoScrollEnabled, scrollToBottom]);\n\n  const handleSubmitChat = async (e: React.FormEvent<HTMLFormElement>) => {\n    e.preventDefault();\n    handleSubmit(e);\n  };\n\n  const handleScroll = useCallback(() => {\n    if (messagesRef.current) {\n      const { scrollTop, scrollHeight, clientHeight } = messagesRef.current;\n      const atBottom = scrollTop + clientHeight >= scrollHeight - 100;\n      setIsAtBottom(atBottom);\n      setAutoScrollEnabled(atBottom);\n    }\n  }, []);\n\n  useEffect(() => {\n    const scrollElement = messagesRef.current;\n    if (scrollElement) {\n      scrollElement.addEventListener(\"scroll\", handleScroll);\n      handleScroll();\n    }\n    return () => {\n      if (scrollElement) {\n        scrollElement.removeEventListener(\"scroll\", handleScroll);\n      }\n    };\n  }, [handleScroll]);\n\n  const scrollToBottomHandler = useCallback(() => {\n    scrollToBottom(messagesRef.current);\n    setAutoScrollEnabled(true);\n  }, [scrollToBottom]);\n\n  return (\n    <div className='flex h-full w-full flex-col gap-4 text-justify'>\n      <div className='relative flex h-[400px] w-full grow-0 overflow-y-auto rounded-lg max-lg:flex-col lg:border lg:border-shad-gray-20 lg:bg-gray-30 lg:px-6'>\n        {!isAtBottom ? (\n          <Button\n            size='icon'\n            variant='outline'\n            className='absolute bottom-2 left-1/2 -translate-x-1/2 rounded-full hover:bg-inherit'\n            onClick={scrollToBottomHandler}\n          >\n            <ArrowDown className='h-4 w-4' />\n          </Button>\n        ) : null}\n\n        <div\n          ref={messagesRef}\n          className='flex h-full w-full justify-center overflow-y-auto p-4'\n        >\n          <div\n            className={cn(\n              \"mx-auto flex w-full flex-col md:max-w-[480px] xl:max-w-[600px] 2xl:mx-56 2xl:max-w-[800px]\",\n              !!agentid ? \"h-[calc(100%-240px)]\" : \"h-[calc(100%-208px)]\"\n            )}\n          >\n            {messages.length === 0 && (\n              <div className='flex h-full flex-col items-center justify-center'>\n                <img src='/bitte_transparent.svg' className='mx-auto mb-4' />\n                <div className='mb-14 text-[20px] font-medium text-gray-40'>\n                  Execute Transactions with AI\n                </div>\n              </div>\n            )}\n            <div className='flex w-full flex-col space-y-4 py-6'>\n              {groupedMessages.map((messages: Message[]) => {\n                const groupKey = `group-${messages?.[0]?.id}`;\n                return (\n                  <MessageGroup\n                    chatId={chatId}\n                    key={groupKey}\n                    groupKey={groupKey}\n                    accountId={accountId!}\n                    messages={messages}\n                    isLoading={isInProgress}\n                    agentImage={options?.agentImage}\n                    agentName={options?.agentName}\n                  />\n                );\n              })}\n              {error && (\n                <div className='flex flex-col items-center justify-center space-y-2 px-6 pb-6 text-center text-sm'>\n                  {!accountId ? (\n                    <p>\n                      An error occurred. <br />\n                      Please connect your wallet and try again.\n                    </p>\n                  ) : (\n                    <>\n                      <p>An error occurred.</p>\n                      <Button\n                        type='button'\n                        variant='secondary'\n                        size='sm'\n                        onClick={() => reload()}\n                      >\n                        Retry\n                      </Button>\n                    </>\n                  )}\n                </div>\n              )}\n              {isInProgress ? (\n                <div className='flex w-full flex-col items-center justify-center text-gray-600'>\n                  <BitteSpinner width={100} height={100} />\n                </div>\n              ) : null}\n            </div>\n          </div>\n        </div>\n      </div>\n      <div className='z-10 rounded-lg border border-shad-gray-20 bg-background p-6'>\n        <SmartActionsInput\n          input={input}\n          handleChange={handleInputChange}\n          handleSubmit={handleSubmitChat}\n          isLoading={isInProgress}\n          agentName={options?.agentName}\n        />\n      </div>\n    </div>\n  );\n};\n","import BN from \"bn.js\";\nimport { clsx, type ClassValue } from \"clsx\";\nimport { formatNearAmount } from \"near-api-js/lib/utils/format\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Cost } from \"../types/types\";\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n\nexport const formatName = (name: string, size?: number) => {\n  const nameSize = size ?? 19;\n\n  return name?.length > nameSize ? `${name.slice(0, size ?? 20)}...` : name;\n};\n\nexport function errorString(error: unknown): string {\n  if (error === undefined) {\n    return \"Undefined Error\";\n  }\n  return error instanceof Error ? error.message : JSON.stringify(error);\n}\n\nexport function dynamicToFixed(value: number, maxDecimals: number = 6): string {\n  const minValue = Math.pow(10, -maxDecimals);\n  if (value === 0) {\n    return \"0\";\n  } else if (value < minValue) {\n    return `< ${minValue.toFixed(maxDecimals)}`;\n  } else if (value >= 1) {\n    // If the value is greater than or equal to 1, show up to 2 decimal places\n    return value.toFixed(2).replace(/\\.?0+$/, \"\");\n  } else {\n    // If the value is less than 1, find the first non-zero digit after the decimal\n    const decimalPlaces = Math.min(\n      Math.ceil(-Math.log10(value) + 1),\n      maxDecimals\n    );\n    // Show decimal places up to the first non-zero digit, capped at maxDecimals\n    return value.toFixed(decimalPlaces).replace(/\\.?0+$/, \"\");\n  }\n}\n\nexport function shortenString(\n  input: string,\n  length: number,\n  url?: boolean\n): string {\n  if (input?.length <= length * 2) {\n    return input;\n  }\n\n  if (url && input?.length) {\n    const urlParts = input?.split(/(https?:\\/\\/|\\/|\\?|&|=)/);\n    let currentLength = 0;\n    let result = \"\";\n\n    for (const part of urlParts) {\n      const partLength = part.length;\n      if (currentLength + partLength <= length) {\n        result += part;\n        currentLength += partLength;\n      } else {\n        const remaining = length - currentLength;\n        result += part.substring(0, remaining);\n        result += \"...\";\n        break;\n      }\n    }\n\n    return result;\n  } else {\n    const prefix = input?.slice(0, length);\n    const suffix = input?.slice(-length);\n\n    return `${prefix}...${suffix}`;\n  }\n}\n\n// Safely parse JSON or return the input as-is; if parsing fails, return the default value\nexport function safeJsonParse<T>(input: unknown, defaultValue: T): T {\n  try {\n    const parsed = typeof input === \"string\" ? JSON.parse(input) : input;\n    return typeof parsed === typeof defaultValue ? (parsed as T) : defaultValue;\n  } catch (error) {\n    console.error(\"Failed to parse JSON:\", error);\n    return defaultValue;\n  }\n}\n\nexport function removeTrailingZeros(value: string): string {\n  const formattedValue = Number(value).toFixed(8); // Set the desired precision\n\n  return formattedValue.replace(/\\.?0+$/, \"\");\n}\n\nexport const getNearblocksURL = (\n  accountId: string,\n  txnHash?: string,\n  address?: string\n) => {\n  const isTestnet = accountId?.includes(\"testnet\");\n  const prefix = isTestnet ? \"testnet.\" : \"\";\n\n  return !!address\n    ? `https://${prefix}nearblocks.io/address/${address}`\n    : `https://${prefix}nearblocks.io/txns/${txnHash}`;\n};\n\nexport function formatCosts(\n  costs: Cost[] | null,\n  gasPrice: string\n): { deposit: string; gas: string } {\n  if (costs && costs[0]) {\n    return {\n      gas: removeTrailingZeros(\n        formatNearAmount(costs[0].gas.mul(new BN(gasPrice)).toString(), 6)\n      ),\n      deposit: removeTrailingZeros(\n        formatNearAmount(costs[0].deposit.toString(), 3)\n      ),\n    };\n  }\n  return { gas: \"0\", deposit: \"0\" };\n}\n","import { ReactNode } from \"react\";\n\nimport {\n  FunctionCallAction,\n  Transaction,\n  TransferAction,\n  Wallet,\n} from \"@near-wallet-selector/core\";\nimport { CoreMessage, CoreTool, JSONValue, Message } from \"ai\";\nimport { AssistantTool, FunctionTool } from \"openai/resources/beta/assistants\";\nimport { FunctionDefinition } from \"openai/resources/index\";\nimport { OpenAPIV3 } from \"openapi-types\";\n\nimport BN from \"bn.js\";\nimport { Account } from \"near-api-js/lib/account\";\nimport { Hex } from \"viem\";\nimport { BittePrimitiveName } from \"../lib/constants\";\nimport { TransactionOperation } from \"./transaction\";\n\nexport type BitteMetadata = {\n  [key: string]: unknown;\n};\n\nexport type BittePrimitiveRef = {\n  type: string;\n};\n\nexport type BitteOpenAPISpec = OpenAPIV3.Document & {\n  \"x-mb\": {\n    \"account-id\": string;\n    assistant?: Pick<\n      BitteAssistantConfig,\n      \"name\" | \"description\" | \"instructions\" | \"tools\" | \"image\"\n    > & {\n      tools?: (AssistantTool | BittePrimitiveRef)[];\n    };\n  };\n};\n\nexport type ExecutionDefinition = {\n  baseUrl: string;\n  path: string;\n  httpMethod: string;\n};\n\nexport type PluginToolSpec = {\n  id: string;\n  agentId: string;\n  type: \"function\";\n  function: FunctionDefinition;\n  execution: ExecutionDefinition;\n  verified: boolean;\n};\n\nexport type BitteToolSpec = PluginToolSpec | FunctionTool;\n\nexport type BitteToolWarning = {\n  message: string;\n  final: boolean;\n};\n\nexport type BitteToolResult<TResult = unknown> = {\n  data: TResult | null;\n  warnings: BitteToolWarning[] | null;\n  error: Error | null;\n};\n\nexport type BitteToolExecutor<\n  TArgs = Record<string, JSONValue>,\n  TResult = unknown,\n> = (\n  args: TArgs,\n  metadata?: BitteMetadata\n) => Promise<BitteToolResult<TResult>>;\n\nexport type BitteToolRenderer<TArgs = unknown> = (\n  args: TArgs,\n  metadata?: BitteMetadata\n) => ReactNode | null;\n\nexport type BitteTool<TArgs = Record<string, JSONValue>, TResult = unknown> = {\n  toolSpec: FunctionTool;\n  execute: BitteToolExecutor<TArgs, TResult>;\n  render?: BitteToolRenderer;\n};\n\n// TODO: Remove this once we have a better way to handle this.\nexport type AnyBitteTool = BitteTool<any>; // eslint-disable-line @typescript-eslint/no-explicit-any\n\nexport type BitteAssistantConfig = {\n  id: string;\n  name: string;\n  accountId: string;\n  description: string;\n  instructions: string;\n  verified: boolean;\n  tools?: BitteToolSpec[];\n  image?: string;\n};\n\nexport type BitteAssistant = Omit<BitteAssistantConfig, \"tools\"> & {\n  toolSpecs?: FunctionTool[];\n  tools?: Record<string, CoreTool>;\n};\n\nexport type FunctionDataMessage = {\n  functionName: BittePrimitiveName | string;\n  isPrimitive: boolean;\n  description?: string;\n  value: JSONValue;\n};\n\nexport type SmartAction = {\n  id: string;\n  agentId: string;\n  message: string;\n  creator: string;\n  createdAt: number;\n};\n\nexport type SmartActionMessage = CoreMessage & {\n  id?: string;\n  agentId?: string;\n};\n\nexport type SmartActionAiMessage = Message & {\n  id?: string;\n  agentId?: string;\n};\n\nexport type SmartActionChat = SmartAction & {\n  messages: SmartActionMessage[];\n};\n\nexport type SaveSmartAction = {\n  agentId: string;\n  creator: string;\n  message: string;\n};\n\nexport type SaveSmartActionMessages = {\n  id: string;\n  agentId: string;\n  creator: string;\n  messages: SmartActionMessage[];\n};\n\ntype TransferTransaction = Omit<Transaction, \"actions\"> & {\n  actions: Array<TransferAction>;\n};\n\nexport type AccountTransaction = Omit<Transaction, \"actions\"> & {\n  actions: Array<FunctionCallAction | TransferAction>;\n};\n\nexport type SmartActionTransaction =\n  | {\n      args: Record<string, unknown> | string;\n      contractName: string;\n      deposit: string;\n      gas: string;\n      methodName: string;\n    }\n  | TransferTransaction;\n\nexport enum AssistantsMode {\n  DEFAULT = \"default\",\n  DEBUG = \"debug\",\n}\n\nexport enum Model {\n  GPT4o = \"gpt4o\",\n  Grok2 = \"grok2\",\n  Sonnet = \"sonnet\",\n}\n\n/**\n * Props for the BitteAiChat component\n * @param agentid - ID of the AI agent to use for chat interactions\n * @param apiUrl - Internal API URL for chat communication (e.g. api/chat).\n *                 Used to proxy requests to bitte api to not expose api key.\n * @param wallet - Optional wallet configuration for allowing transactions through the component see {@link WalletOptions} for more details\n */\nexport interface BitteAiChatProps {\n  agentid: string;\n  apiUrl: string;\n  historyApiUrl?: string;\n  messages?: Message[];\n  wallet?: WalletOptions;\n  options?: {\n    agentName?: string;\n    agentImage?: string;\n    chatId?: string;\n  };\n  theme?: \"dark\" | \"light\";\n}\n\n/**\n * Configuration options for wallet integrations\n *\n * For NEAR:\n * - Uses either near-api-js Account object for direct account access\n * - Or Wallet from near-wallet-selector for wallet integrations\n *\n * For EVM:\n * - Typically configured using wagmi hooks with WalletConnect:\n * - address: From useAppKitAccount() hook\n * - sendTransaction: From useSendTransaction() hook\n * - hash: Transaction hash returned after sending\n */\nexport type WalletOptions = {\n  near?: {\n    wallet?: Wallet; // From near-wallet-selector\n    account?: Account; // From near-api-js\n  };\n  evm?: EVMWalletAdapter; // Interface matching wagmi hook outputs\n};\n\nexport type SelectedAgent = {\n  id?: string;\n  name?: string;\n};\n\nexport interface AssistantsRequestBody {\n  threadId: string | null;\n  message: string;\n  accountId: string;\n  kvId: string;\n  config?: {\n    mode?: AssistantsMode;\n    agentId?: string;\n  };\n}\n\nexport interface ChatRequestBody {\n  id?: string;\n  config?: {\n    mode?: string;\n    agentId?: string;\n    model?: string;\n  };\n  accountId?: string;\n  network?: string;\n  evmAddress?: Hex;\n}\n\nexport type AllowlistedToken = {\n  name: string;\n  symbol: string;\n  contractId: string;\n  decimals: number;\n  icon?: string;\n};\n\nexport interface EVMWalletAdapter {\n  sendTransaction: (params: {\n    to: string;\n    value?: bigint;\n    data?: string;\n    from: string;\n    gas?: bigint;\n  }) => Promise<void>;\n  address: string | undefined;\n  hash?: string;\n}\n\nexport type GenerateImageResponse = {\n  url: string;\n  hash: string;\n};\n\nexport type TransactionListProps = {\n  accountId: string;\n  operation?: TransactionOperation;\n  transaction: Transaction[];\n  modifiedUrl: string;\n  showDetails: boolean;\n  showTxnDetail: boolean;\n  setShowTxnDetail: (showTxnDetail: boolean) => void;\n  costs: Cost[];\n  gasPrice: string;\n};\n\nexport interface Cost {\n  deposit: BN;\n  gas: BN;\n}\n\nexport interface AccountCreationData {\n  devicePublicKey: string;\n  accountId: string;\n  isCreated: boolean;\n  txnHash?: string; // TODO - I believe this field is unused.\n}\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n  \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n  {\n    variants: {\n      variant: {\n        default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n        destructive:\n          \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n        outline:\n          \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n        secondary:\n          \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n        ghost: \"hover:bg-accent hover:text-accent-foreground\",\n        link: \"text-primary underline-offset-4 hover:underline\",\n      },\n      size: {\n        default: \"h-10 px-4 py-2\",\n        sm: \"h-9 rounded-md px-3\",\n        lg: \"h-11 rounded-md px-8\",\n        icon: \"h-10 w-10\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"default\",\n    },\n  }\n);\n\nexport interface ButtonProps\n  extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n    VariantProps<typeof buttonVariants> {\n  asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant, size, asChild = false, ...props }, ref) => {\n    const Comp = asChild ? Slot : \"button\";\n    return (\n      <Comp\n        className={cn(buttonVariants({ variant, size, className }))}\n        ref={ref}\n        {...props}\n      />\n    );\n  }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","{\n  \"v\": \"5.12.1\",\n  \"fr\": 29.9700012207031,\n  \"ip\": 0,\n  \"op\": 96.0000039101602,\n  \"w\": 1080,\n  \"h\": 1080,\n  \"nm\": \"marcelokunze   3_v2\",\n  \"ddd\": 0,\n  \"assets\": [],\n  \"layers\": [\n      {\n          \"ddd\": 0,\n          \"ind\": 1,\n          \"ty\": 3,\n          \"nm\": \"Adjustment Layer 1\",\n          \"sr\": 1,\n          \"ks\": {\n              \"o\": {\n                  \"a\": 0,\n                  \"k\": 100,\n                  \"ix\": 11\n              },\n              \"r\": {\n                  \"a\": 0,\n                  \"k\": 0,\n                  \"ix\": 10\n              },\n              \"p\": {\n                  \"a\": 0,\n                  \"k\": [\n                      540,\n                      540,\n                      0\n                  ],\n                  \"ix\": 2,\n                  \"l\": 2\n              },\n              \"a\": {\n                  \"a\": 0,\n                  \"k\": [\n                      540,\n                      540,\n                      0\n                  ],\n                  \"ix\": 1,\n                  \"l\": 2\n              },\n              \"s\": {\n                  \"a\": 0,\n                  \"k\": [\n                      100,\n                      100,\n                      100\n                  ],\n                  \"ix\": 6,\n                  \"l\": 2\n              }\n          },\n          \"ao\": 0,\n          \"ef\": [\n              {\n                  \"ty\": 5,\n                  \"nm\": \"Invert\",\n                  \"np\": 4,\n                  \"mn\": \"ADBE Invert\",\n                  \"ix\": 1,\n                  \"en\": 1,\n                  \"ef\": [\n                      {\n                          \"ty\": 7,\n                          \"nm\": \"Channel\",\n                          \"mn\": \"ADBE Invert-0001\",\n                          \"ix\": 1,\n                          \"v\": {\n                              \"a\": 0,\n                              \"k\": 1,\n                              \"ix\": 1\n                          }\n                      },\n                      {\n                          \"ty\": 0,\n                          \"nm\": \"Blend With Original\",\n                          \"mn\": \"ADBE Invert-0002\",\n                          \"ix\": 2,\n                          \"v\": {\n                              \"a\": 0,\n                              \"k\": 0,\n                              \"ix\": 2\n                          }\n                      }\n                  ]\n              }\n          ],\n          \"ip\": -21.0000008553475,\n          \"op\": 279.000011363903,\n          \"st\": -21.0000008553475,\n          \"bm\": 0\n      },\n      {\n          \"ddd\": 0,\n          \"ind\": 2,\n          \"ty\": 4,\n          \"nm\": \"star 1 Outlines\",\n          \"sr\": 1,\n          \"ks\": {\n              \"o\": {\n                  \"a\": 0,\n                  \"k\": 100,\n                  \"ix\": 11\n              },\n              \"r\": {\n                  \"a\": 0,\n                  \"k\": 0,\n                  \"ix\": 10\n              },\n              \"p\": {\n                  \"a\": 0,\n                  \"k\": [\n                      522.185,\n                      483.019,\n                      0\n                  ],\n                  \"ix\": 2,\n                  \"l\": 2\n              },\n              \"a\": {\n                  \"a\": 0,\n                  \"k\": [\n                      41.269,\n                      41.27,\n                      0\n                  ],\n                  \"ix\": 1,\n                  \"l\": 2\n              },\n              \"s\": {\n                  \"a\": 1,\n                  \"k\": [\n                      {\n                          \"i\": {\n                              \"x\": [\n                                  0.15,\n                                  0.15,\n                                  0.15\n                              ],\n                              \"y\": [\n                                  1,\n                                  1,\n                                  1\n                              ]\n                          },\n                          \"o\": {\n                              \"x\": [\n                                  0.23,\n                                  0.23,\n                                  0.23\n                              ],\n                              \"y\": [\n                                  0,\n                                  0,\n                                  0\n                              ]\n                          },\n                          \"t\": 45,\n                          \"s\": [\n                              0,\n                              0,\n                              100\n                          ]\n                      },\n                      {\n                          \"i\": {\n                              \"x\": [\n                                  0.15,\n                                  0.15,\n                                  0.15\n                              ],\n                              \"y\": [\n                                  1,\n                                  1,\n                                  1\n                              ]\n                          },\n                          \"o\": {\n                              \"x\": [\n                                  0.695,\n                                  0.695,\n                                  0.167\n                              ],\n                              \"y\": [\n                                  0,\n                                  0,\n                                  0\n                              ]\n                          },\n                          \"t\": 74,\n                          \"s\": [\n                              100,\n                              100,\n                              100\n                          ]\n                      },\n                      {\n                          \"i\": {\n                              \"x\": [\n                                  0.667,\n                                  0.667,\n                                  0.667\n                              ],\n                              \"y\": [\n                                  1,\n                                  1,\n                                  1\n                              ]\n                          },\n                          \"o\": {\n                              \"x\": [\n                                  0.695,\n                                  0.695,\n                                  0.167\n                              ],\n                              \"y\": [\n                                  0,\n                                  0,\n                                  0\n                              ]\n                          },\n                          \"t\": 81,\n                          \"s\": [\n                              100,\n                              100,\n                              100\n                          ]\n                      },\n                      {\n                          \"t\": 95.0000038694293,\n                          \"s\": [\n                              0,\n                              0,\n                              100\n                          ]\n                      }\n                  ],\n                  \"ix\": 6,\n                  \"l\": 2\n              }\n          },\n          \"ao\": 0,\n          \"shapes\": [\n              {\n                  \"ty\": \"gr\",\n                  \"it\": [\n                      {\n                          \"ind\": 0,\n                          \"ty\": \"sh\",\n                          \"ix\": 1,\n                          \"ks\": {\n                              \"a\": 0,\n                              \"k\": {\n                                  \"i\": [\n                                      [\n                                          -0.883,\n                                          -0.263\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          -0.503,\n                                          -0.503\n                                      ],\n                                      [\n                                          -0.203,\n                                          -0.682\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          -0.739,\n                                          -0.55\n                                      ],\n                                      [\n                                          -0.921,\n                                          0\n                                      ],\n                                      [\n                                          -0.738,\n                                          0.552\n                                      ],\n                                      [\n                                          -0.264,\n                                          0.883\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          -0.503,\n                                          0.503\n                                      ],\n                                      [\n                                          -0.681,\n                                          0.203\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          -0.551,\n                                          0.739\n                                      ],\n                                      [\n                                          0,\n                                          0.922\n                                      ],\n                                      [\n                                          0.551,\n                                          0.739\n                                      ],\n                                      [\n                                          0.883,\n                                          0.264\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          0.503,\n                                          0.502\n                                      ],\n                                      [\n                                          0.203,\n                                          0.681\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          0.739,\n                                          0.551\n                                      ],\n                                      [\n                                          0.922,\n                                          0\n                                      ],\n                                      [\n                                          0.739,\n                                          -0.551\n                                      ],\n                                      [\n                                          0.263,\n                                          -0.883\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          0.503,\n                                          -0.503\n                                      ],\n                                      [\n                                          0.681,\n                                          -0.202\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          0.551,\n                                          -0.738\n                                      ],\n                                      [\n                                          0,\n                                          -0.921\n                                      ],\n                                      [\n                                          -0.551,\n                                          -0.739\n                                      ]\n                                  ],\n                                  \"o\": [\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          0.681,\n                                          0.203\n                                      ],\n                                      [\n                                          0.503,\n                                          0.503\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          0.263,\n                                          0.883\n                                      ],\n                                      [\n                                          0.739,\n                                          0.552\n                                      ],\n                                      [\n                                          0.922,\n                                          0\n                                      ],\n                                      [\n                                          0.739,\n                                          -0.55\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          0.203,\n                                          -0.682\n                                      ],\n                                      [\n                                          0.503,\n                                          -0.503\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          0.883,\n                                          -0.263\n                                      ],\n                                      [\n                                          0.551,\n                                          -0.739\n                                      ],\n                                      [\n                                          0,\n                                          -0.921\n                                      ],\n                                      [\n                                          -0.551,\n                                          -0.738\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          -0.681,\n                                          -0.202\n                                      ],\n                                      [\n                                          -0.503,\n                                          -0.503\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          -0.264,\n                                          -0.883\n                                      ],\n                                      [\n                                          -0.738,\n                                          -0.551\n                                      ],\n                                      [\n                                          -0.921,\n                                          0\n                                      ],\n                                      [\n                                          -0.739,\n                                          0.551\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          -0.203,\n                                          0.681\n                                      ],\n                                      [\n                                          -0.503,\n                                          0.502\n                                      ],\n                                      [\n                                          0,\n                                          0\n                                      ],\n                                      [\n                                          -0.883,\n                                          0.264\n                                      ],\n                                      [\n                                          -0.551,\n                                          0.739\n                                      ],\n                                      [\n                                          0,\n                                          0.922\n                                      ],\n                                      [\n                                          0.551,\n                                          0.739\n                                      ]\n                                  ],\n                                  \"v\": [\n                                      [\n                                          -37.962,\n                                          4.1\n                                      ],\n                                      [\n                                          -14.089,\n                                          11.21\n                                      ],\n                                      [\n                                          -12.285,\n                                          12.286\n                                      ],\n                                      [\n                                          -11.21,\n                                          14.09\n                                      ],\n                                      [\n                                          -4.1,\n                                          37.962\n                                      ],\n                                      [\n                                          -2.557,\n                                          40.171\n                                      ],\n                                      [\n                                          0,\n                                          41.02\n                                      ],\n                                      [\n                                          2.557,\n                                          40.171\n                                      ],\n                                      [\n                                          4.101,\n                                          37.962\n                                      ],\n                                      [\n                                          11.21,\n                                          14.09\n                                      ],\n                                      [\n                                          12.285,\n                                          12.286\n                                      ],\n                                      [\n                                          14.089,\n                                          11.21\n                                      ],\n                                      [\n                                          37.962,\n                                          4.1\n                                      ],\n                                      [\n                                          40.171,\n                                          2.558\n                                      ],\n                                      [\n                                          41.019,\n                                          0\n                                      ],\n                                      [\n                                          40.171,\n                                          -2.557\n                                      ],\n                                      [\n                                          37.962,\n                                          -4.1\n                                      ],\n                                      [\n                                          14.089,\n                                          -11.21\n                                      ],\n                                      [\n                                          12.285,\n                                          -12.284\n                                      ],\n                                      [\n                                          11.21,\n                                          -14.088\n                                      ],\n                                      [\n                                          4.101,\n                                          -37.962\n                                      ],\n                                      [\n                                          2.557,\n                                          -40.171\n                                      ],\n                                      [\n                                          0,\n                                          -41.02\n                                      ],\n                                      [\n                                          -2.557,\n                                          -40.171\n                                      ],\n                                      [\n                                          -4.1,\n                                          -37.962\n                                      ],\n                                      [\n                                          -11.21,\n                                          -14.088\n                                      ],\n                                      [\n                                          -12.285,\n                                          -12.284\n                                      ],\n                                      [\n                                          -14.089,\n                                          -11.21\n                                      ],\n                                      [\n                                          -37.962,\n                                          -4.1\n                                      ],\n                                      [\n                                          -40.171,\n                                          -2.557\n                                      ],\n                                      [\n                                          -41.019,\n                                          0\n                                      ],\n                                      [\n                                          -40.171,\n                                          2.558\n                                      ]\n                                  ],\n                                  \"c\": true\n                              },\n                              \"ix\": 2\n                          },\n                          \"nm\": \"Path 1\",\n                          \"mn\": \"ADBE Vector Shape - Group\",\n                          \"hd\": false\n                      },\n                      {\n                          \"ty\": \"fl\",\n                          \"c\": {\n                              \"a\": 0,\n                              \"k\": [\n                                  0,\n                                  0,\n                                  0,\n                                  1\n                              ],\n                              \"ix\": 4\n                          },\n                          \"o\": {\n                              \"a\": 0,\n                              \"k\": 100,\n                              \"ix\": 5\n                          },\n                          \"r\": 1,\n                          \"bm\": 0,\n                          \"nm\": \"Fill 1\",\n                          \"mn\": \"ADBE Vector Graphic - Fill\",\n                          \"hd\": false\n                      },\n                      {\n                          \"ty\": \"tr\",\n                          \"p\": {\n                              \"a\": 0,\n                              \"k\": [\n                                  41.269,\n                                  41.27\n                              ],\n                              \"ix\": 2\n                          },\n                          \"a\": {\n                              \"a\": 0,\n                              \"k\": [\n                                  0,\n                                  0\n                              ],\n                              \"ix\": 1\n                          },\n                          \"s\": {\n                              \"a\": 0,\n                              \"k\": [\n                                  100,\n                                  100\n                              ],\n                              \"ix\": 3\n                          },\n                          \"r\": {\n                              \"a\": 0,\n                              \"k\": 0,\n                              \"ix\": 6\n                          },\n                          \"o\": {\n                              \"a\": 0,\n                              \"k\": 100,\n                              \"ix\": 7\n                          },\n                          \"sk\": {\n                              \"a\": 0,\n                              \"k\": 0,\n                              \"ix\": 4\n                          },\n                          \"sa\": {\n                              \"a\": 0,\n                              \"k\": 0,\n                              \"ix\": 5\n                          },\n                          \"nm\": \"Transform\"\n                      }\n                  ],\n                  \"nm\": \"Group 1\",\n                  \"np\": 2,\n                  \"cix\": 2,\n                  \"bm\": 0,\n                  \"ix\": 1,\n                  \"mn\": \"ADBE Vector Group\",\n                  \"hd\": false\n              }\n          ],\n          \"ip\": -21.0000008553475,\n          \"op\": 279.000011363903,\n          \"st\": -21.0000008553475,\n          \"ct\": 1,\n          \"bm\": 0\n      },\n      {\n          \"ddd\": 0,\n          \"ind\": 3,\n          \"ty\": 4,\n          \"nm\": \"star 2 Outlines\",\n          \"sr\": 1,\n          \"ks\": {\n              \"o\": {\n                  \"a\": 0,\n                  \"k\": 100,\n                  \"ix\": 11\n              },\n              \"r\": {\n                  \"a\": 0,\n                  \"k\": 0,\n                  \"ix\": 10\n              },\n              \"p\": {\n                  \"a\": 1,\n                  \"k\": [\n                      {\n                          \"i\": {\n                              \"x\": 0.667,\n                              \"y\": 1\n                          },\n                          \"o\": {\n                              \"x\": 0.693,\n                              \"y\": 0\n                          },\n                          \"t\": 37,\n                          \"s\": [\n                              540.525,\n                              566.696,\n                              0\n                          ],\n                          \"to\": [\n                              9,\n                              0,\n                              0\n                          ],\n                          \"ti\": [\n                              -9,\n                              0,\n                              0\n                          ]\n                      },\n                      {\n                          \"i\": {\n                              \"x\": 0.667,\n                              \"y\": 0.667\n                          },\n                          \"o\": {\n                              \"x\": 0.333,\n                              \"y\": 0.333\n                          },\n                          \"t\": 62,\n                          \"s\": [\n                              594.525,\n                              566.696,\n                              0\n                          ],\n                          \"to\": [\n                              0,\n                              0,\n                              0\n                          ],\n                          \"ti\": [\n                              0,\n                              0,\n                              0\n                          ]\n                      },\n                      {\n                          \"t\": 74.0000030140818,\n                          \"s\": [\n                              594.525,\n                              566.696,\n                              0\n                          ]\n                      }\n                  ],\n                  \"ix\": 2,\n                  \"l\": 2\n              },\n              \"a\": {\n                  \"a\": 0,\n                  \"k\": [\n                      204.258,\n                      69.681,\n                      0\n                  ],\n                  \"ix\": 1,\n                  \"l\": 2\n              },\n              \"s\": {\n                  \"a\": 1,\n                  \"k\": [\n                      {\n                          \"i\": {\n                              \"x\": [\n                                  0.1,\n                                  0.1,\n                                  0.1\n                              ],\n                              \"y\": [\n                                  1,\n                                  1,\n                                  1\n                              ]\n                          },\n                          \"o\": {\n                              \"x\": [\n                                  0.19,\n                                  0.19,\n                                  0.19\n                              ],\n                              \"y\": [\n                                  0,\n                                  0,\n                                  0\n                              ]\n                          },\n                          \"t\": 0,\n                          \"s\": [\n                              0,\n                              0,\n                              100\n                          ]\n                      },\n                      {\n                          \"i\": {\n                              \"x\": [\n                                  0.1,\n                                  0.1,\n                                  0.1\n                              ],\n                              \"y\": [\n                                  1,\n                                  1,\n                                  1\n                              ]\n                          },\n                          \"o\": {\n                              \"x\": [\n                                  0.167,\n                                  0.167,\n                                  0.167\n                              ],\n                              \"y\": [\n                                  0,\n                                  0,\n                                  0\n                              ]\n                          },\n                          \"t\": 34,\n                          \"s\": [\n                              100,\n                              100,\n                              100\n                          ]\n                      },\n                      {\n                          \"i\": {\n                              \"x\": [\n                                  0.315,\n                                  0.315,\n                                  0.833\n                              ],\n                              \"y\": [\n                                  1,\n                                  1,\n                                  1\n                              ]\n                          },\n                          \"o\": {\n                              \"x\": [\n                                  0.281,\n                                  0.281,\n                                  0.167\n                              ],\n                              \"y\": [\n                                  0,\n                                  0,\n                                  0\n                              ]\n                          },\n                          \"t\": 81,\n                          \"s\": [\n                              100,\n                              100,\n                              100\n                          ]\n                      },\n                      {\n                          \"t\": 95.0000038694293,\n                          \"s\": [\n                              0,\n                              0,\n                              100\n                          ]\n                      }\n                  ],\n                  \"ix\": 6,\n                  \"l\": 2\n              }\n          },\n          \"ao\": 0,\n          \"shapes\": [\n              {\n                  \"ty\": \"gr\",\n                  \"it\": [\n                      {\n                          \"ind\": 0,\n                          \"ty\": \"sh\",\n                          \"ix\": 1,\n                          \"ks\": {\n                              \"a\": 1,\n                              \"k\": [\n                                  {\n                                      \"i\": {\n                                          \"x\": 0.271,\n                                          \"y\": 1\n                                      },\n                                      \"o\": {\n                                          \"x\": 0.333,\n                                          \"y\": 0\n                                      },\n                                      \"t\": 31,\n                                      \"s\": [\n                                          {\n                                              \"i\": [\n                                                  [\n                                                      -1.495,\n                                                      -0.445\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.851,\n                                                      -0.852\n                                                  ],\n                                                  [\n                                                      -0.344,\n                                                      -1.153\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.25,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      -1.561,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.251,\n                                                      0.932\n                                                  ],\n                                                  [\n                                                      -0.445,\n                                                      1.496\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.852,\n                                                      0.85\n                                                  ],\n                                                  [\n                                                      -1.153,\n                                                      0.343\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      1.56\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      1.25\n                                                  ],\n                                                  [\n                                                      1.496,\n                                                      0.445\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.85,\n                                                      0.851\n                                                  ],\n                                                  [\n                                                      0.344,\n                                                      1.154\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.251,\n                                                      0.933\n                                                  ],\n                                                  [\n                                                      1.559,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.25,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      0.445,\n                                                      -1.495\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.851,\n                                                      -0.851\n                                                  ],\n                                                  [\n                                                      1.153,\n                                                      -0.344\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      -1.56\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      -1.251\n                                                  ]\n                                              ],\n                                              \"o\": [\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.153,\n                                                      0.343\n                                                  ],\n                                                  [\n                                                      0.851,\n                                                      0.85\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.445,\n                                                      1.496\n                                                  ],\n                                                  [\n                                                      1.25,\n                                                      0.932\n                                                  ],\n                                                  [\n                                                      1.559,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.251,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.344,\n                                                      -1.153\n                                                  ],\n                                                  [\n                                                      0.85,\n                                                      -0.852\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.496,\n                                                      -0.445\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      -1.56\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.153,\n                                                      -0.344\n                                                  ],\n                                                  [\n                                                      -0.852,\n                                                      -0.851\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.445,\n                                                      -1.495\n                                                  ],\n                                                  [\n                                                      -1.251,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      -1.561,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.25,\n                                                      0.933\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.344,\n                                                      1.154\n                                                  ],\n                                                  [\n                                                      -0.851,\n                                                      0.851\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.495,\n                                                      0.445\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      1.25\n                                                  ],\n                                                  [\n                                                      0,\n                                                      1.559\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      1.251\n                                                  ]\n                                              ],\n                                              \"v\": [\n                                                  [\n                                                      -0.834,\n                                                      6.896\n                                                  ],\n                                                  [\n                                                      44.729,\n                                                      18.975\n                                                  ],\n                                                  [\n                                                      47.783,\n                                                      20.794\n                                                  ],\n                                                  [\n                                                      49.603,\n                                                      23.848\n                                                  ],\n                                                  [\n                                                      61.637,\n                                                      64.255\n                                                  ],\n                                                  [\n                                                      64.249,\n                                                      67.995\n                                                  ],\n                                                  [\n                                                      68.578,\n                                                      69.431\n                                                  ],\n                                                  [\n                                                      72.906,\n                                                      67.995\n                                                  ],\n                                                  [\n                                                      75.518,\n                                                      64.255\n                                                  ],\n                                                  [\n                                                      87.551,\n                                                      23.848\n                                                  ],\n                                                  [\n                                                      89.372,\n                                                      20.794\n                                                  ],\n                                                  [\n                                                      92.425,\n                                                      18.975\n                                                  ],\n                                                  [\n                                                      132.833,\n                                                      6.94\n                                                  ],\n                                                  [\n                                                      136.572,\n                                                      4.328\n                                                  ],\n                                                  [\n                                                      138.008,\n                                                      0\n                                                  ],\n                                                  [\n                                                      136.572,\n                                                      -4.328\n                                                  ],\n                                                  [\n                                                      132.833,\n                                                      -6.94\n                                                  ],\n                                                  [\n                                                      92.425,\n                                                      -18.974\n                                                  ],\n                                                  [\n                                                      89.372,\n                                                      -20.794\n                                                  ],\n                                                  [\n                                                      87.551,\n                                                      -23.848\n                                                  ],\n                                                  [\n                                                      75.518,\n                                                      -64.257\n                                                  ],\n                                                  [\n                                                      72.906,\n                                                      -67.995\n                                                  ],\n                                                  [\n                                                      68.578,\n                                                      -69.431\n                                                  ],\n                                                  [\n                                                      64.249,\n                                                      -67.995\n                                                  ],\n                                                  [\n                                                      61.637,\n                                                      -64.257\n                                                  ],\n                                                  [\n                                                      49.603,\n                                                      -23.848\n                                                  ],\n                                                  [\n                                                      47.783,\n                                                      -20.794\n                                                  ],\n                                                  [\n                                                      44.729,\n                                                      -18.974\n                                                  ],\n                                                  [\n                                                      -0.834,\n                                                      -6.985\n                                                  ],\n                                                  [\n                                                      -4.572,\n                                                      -4.373\n                                                  ],\n                                                  [\n                                                      -6.008,\n                                                      -0.044\n                                                  ],\n                                                  [\n                                                      -4.572,\n                                                      4.284\n                                                  ]\n                                              ],\n                                              \"c\": true\n                                          }\n                                      ]\n                                  },\n                                  {\n                                      \"i\": {\n                                          \"x\": 0.667,\n                                          \"y\": 1\n                                      },\n                                      \"o\": {\n                                          \"x\": 0.693,\n                                          \"y\": 0\n                                      },\n                                      \"t\": 37,\n                                      \"s\": [\n                                          {\n                                              \"i\": [\n                                                  [\n                                                      -1.495,\n                                                      -0.445\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.851,\n                                                      -0.852\n                                                  ],\n                                                  [\n                                                      -0.344,\n                                                      -1.153\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.25,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      -1.561,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.251,\n                                                      0.932\n                                                  ],\n                                                  [\n                                                      -0.445,\n                                                      1.496\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.852,\n                                                      0.85\n                                                  ],\n                                                  [\n                                                      -1.153,\n                                                      0.343\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      1.56\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      1.25\n                                                  ],\n                                                  [\n                                                      1.496,\n                                                      0.445\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.85,\n                                                      0.851\n                                                  ],\n                                                  [\n                                                      0.344,\n                                                      1.154\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.251,\n                                                      0.933\n                                                  ],\n                                                  [\n                                                      1.559,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.25,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      0.445,\n                                                      -1.495\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.851,\n                                                      -0.851\n                                                  ],\n                                                  [\n                                                      1.153,\n                                                      -0.344\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      -1.56\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      -1.251\n                                                  ]\n                                              ],\n                                              \"o\": [\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.153,\n                                                      0.343\n                                                  ],\n                                                  [\n                                                      0.851,\n                                                      0.85\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.445,\n                                                      1.496\n                                                  ],\n                                                  [\n                                                      1.25,\n                                                      0.932\n                                                  ],\n                                                  [\n                                                      1.559,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.251,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.344,\n                                                      -1.153\n                                                  ],\n                                                  [\n                                                      0.85,\n                                                      -0.852\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.496,\n                                                      -0.445\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      -1.56\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.153,\n                                                      -0.344\n                                                  ],\n                                                  [\n                                                      -0.852,\n                                                      -0.851\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.445,\n                                                      -1.495\n                                                  ],\n                                                  [\n                                                      -1.251,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      -1.561,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.25,\n                                                      0.933\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.344,\n                                                      1.154\n                                                  ],\n                                                  [\n                                                      -0.851,\n                                                      0.851\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.495,\n                                                      0.445\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      1.25\n                                                  ],\n                                                  [\n                                                      0,\n                                                      1.559\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      1.251\n                                                  ]\n                                              ],\n                                              \"v\": [\n                                                  [\n                                                      -0.834,\n                                                      6.896\n                                                  ],\n                                                  [\n                                                      44.729,\n                                                      18.975\n                                                  ],\n                                                  [\n                                                      47.783,\n                                                      20.794\n                                                  ],\n                                                  [\n                                                      49.603,\n                                                      23.848\n                                                  ],\n                                                  [\n                                                      61.637,\n                                                      64.255\n                                                  ],\n                                                  [\n                                                      64.249,\n                                                      67.995\n                                                  ],\n                                                  [\n                                                      68.578,\n                                                      69.431\n                                                  ],\n                                                  [\n                                                      72.906,\n                                                      67.995\n                                                  ],\n                                                  [\n                                                      75.518,\n                                                      64.255\n                                                  ],\n                                                  [\n                                                      87.551,\n                                                      23.848\n                                                  ],\n                                                  [\n                                                      89.372,\n                                                      20.794\n                                                  ],\n                                                  [\n                                                      92.425,\n                                                      18.975\n                                                  ],\n                                                  [\n                                                      132.833,\n                                                      6.94\n                                                  ],\n                                                  [\n                                                      136.572,\n                                                      4.328\n                                                  ],\n                                                  [\n                                                      138.008,\n                                                      0\n                                                  ],\n                                                  [\n                                                      136.572,\n                                                      -4.328\n                                                  ],\n                                                  [\n                                                      132.833,\n                                                      -6.94\n                                                  ],\n                                                  [\n                                                      92.425,\n                                                      -18.974\n                                                  ],\n                                                  [\n                                                      89.372,\n                                                      -20.794\n                                                  ],\n                                                  [\n                                                      87.551,\n                                                      -23.848\n                                                  ],\n                                                  [\n                                                      75.518,\n                                                      -64.257\n                                                  ],\n                                                  [\n                                                      72.906,\n                                                      -67.995\n                                                  ],\n                                                  [\n                                                      68.578,\n                                                      -69.431\n                                                  ],\n                                                  [\n                                                      64.249,\n                                                      -67.995\n                                                  ],\n                                                  [\n                                                      61.637,\n                                                      -64.257\n                                                  ],\n                                                  [\n                                                      49.603,\n                                                      -23.848\n                                                  ],\n                                                  [\n                                                      47.783,\n                                                      -20.794\n                                                  ],\n                                                  [\n                                                      44.729,\n                                                      -18.974\n                                                  ],\n                                                  [\n                                                      -0.834,\n                                                      -6.985\n                                                  ],\n                                                  [\n                                                      -4.572,\n                                                      -4.373\n                                                  ],\n                                                  [\n                                                      -6.008,\n                                                      -0.044\n                                                  ],\n                                                  [\n                                                      -4.572,\n                                                      4.284\n                                                  ]\n                                              ],\n                                              \"c\": true\n                                          }\n                                      ]\n                                  },\n                                  {\n                                      \"i\": {\n                                          \"x\": 0.667,\n                                          \"y\": 1\n                                      },\n                                      \"o\": {\n                                          \"x\": 0.333,\n                                          \"y\": 0\n                                      },\n                                      \"t\": 62,\n                                      \"s\": [\n                                          {\n                                              \"i\": [\n                                                  [\n                                                      -1.495,\n                                                      -0.445\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.851,\n                                                      -0.852\n                                                  ],\n                                                  [\n                                                      -0.344,\n                                                      -1.153\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.25,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      -1.561,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.251,\n                                                      0.932\n                                                  ],\n                                                  [\n                                                      -0.445,\n                                                      1.496\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.852,\n                                                      0.85\n                                                  ],\n                                                  [\n                                                      -1.153,\n                                                      0.343\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      1.56\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      1.25\n                                                  ],\n                                                  [\n                                                      1.496,\n                                                      0.445\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.85,\n                                                      0.851\n                                                  ],\n                                                  [\n                                                      0.344,\n                                                      1.154\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.251,\n                                                      0.933\n                                                  ],\n                                                  [\n                                                      1.559,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.25,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      0.445,\n                                                      -1.495\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.851,\n                                                      -0.851\n                                                  ],\n                                                  [\n                                                      1.153,\n                                                      -0.344\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      -1.56\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      -1.251\n                                                  ]\n                                              ],\n                                              \"o\": [\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.153,\n                                                      0.343\n                                                  ],\n                                                  [\n                                                      0.851,\n                                                      0.85\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.445,\n                                                      1.496\n                                                  ],\n                                                  [\n                                                      1.25,\n                                                      0.932\n                                                  ],\n                                                  [\n                                                      1.559,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.251,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.344,\n                                                      -1.153\n                                                  ],\n                                                  [\n                                                      0.85,\n                                                      -0.852\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.496,\n                                                      -0.445\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      -1.56\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.153,\n                                                      -0.344\n                                                  ],\n                                                  [\n                                                      -0.852,\n                                                      -0.851\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.445,\n                                                      -1.495\n                                                  ],\n                                                  [\n                                                      -1.251,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      -1.561,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.25,\n                                                      0.933\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.344,\n                                                      1.154\n                                                  ],\n                                                  [\n                                                      -0.851,\n                                                      0.851\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.495,\n                                                      0.445\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      1.25\n                                                  ],\n                                                  [\n                                                      0,\n                                                      1.559\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      1.251\n                                                  ]\n                                              ],\n                                              \"v\": [\n                                                  [\n                                                      -132.834,\n                                                      6.94\n                                                  ],\n                                                  [\n                                                      44.729,\n                                                      18.975\n                                                  ],\n                                                  [\n                                                      47.783,\n                                                      20.794\n                                                  ],\n                                                  [\n                                                      49.603,\n                                                      23.848\n                                                  ],\n                                                  [\n                                                      61.637,\n                                                      64.255\n                                                  ],\n                                                  [\n                                                      64.249,\n                                                      67.995\n                                                  ],\n                                                  [\n                                                      68.578,\n                                                      69.431\n                                                  ],\n                                                  [\n                                                      72.906,\n                                                      67.995\n                                                  ],\n                                                  [\n                                                      75.518,\n                                                      64.255\n                                                  ],\n                                                  [\n                                                      87.551,\n                                                      23.848\n                                                  ],\n                                                  [\n                                                      89.372,\n                                                      20.794\n                                                  ],\n                                                  [\n                                                      92.425,\n                                                      18.975\n                                                  ],\n                                                  [\n                                                      132.833,\n                                                      6.94\n                                                  ],\n                                                  [\n                                                      136.572,\n                                                      4.328\n                                                  ],\n                                                  [\n                                                      138.008,\n                                                      0\n                                                  ],\n                                                  [\n                                                      136.572,\n                                                      -4.328\n                                                  ],\n                                                  [\n                                                      132.833,\n                                                      -6.94\n                                                  ],\n                                                  [\n                                                      92.425,\n                                                      -18.974\n                                                  ],\n                                                  [\n                                                      89.372,\n                                                      -20.794\n                                                  ],\n                                                  [\n                                                      87.551,\n                                                      -23.848\n                                                  ],\n                                                  [\n                                                      75.518,\n                                                      -64.257\n                                                  ],\n                                                  [\n                                                      72.906,\n                                                      -67.995\n                                                  ],\n                                                  [\n                                                      68.578,\n                                                      -69.431\n                                                  ],\n                                                  [\n                                                      64.249,\n                                                      -67.995\n                                                  ],\n                                                  [\n                                                      61.637,\n                                                      -64.257\n                                                  ],\n                                                  [\n                                                      49.603,\n                                                      -23.848\n                                                  ],\n                                                  [\n                                                      47.783,\n                                                      -20.794\n                                                  ],\n                                                  [\n                                                      44.729,\n                                                      -18.974\n                                                  ],\n                                                  [\n                                                      -132.834,\n                                                      -6.94\n                                                  ],\n                                                  [\n                                                      -136.572,\n                                                      -4.328\n                                                  ],\n                                                  [\n                                                      -138.008,\n                                                      0.001\n                                                  ],\n                                                  [\n                                                      -136.572,\n                                                      4.328\n                                                  ]\n                                              ],\n                                              \"c\": true\n                                          }\n                                      ]\n                                  },\n                                  {\n                                      \"t\": 74.0000030140818,\n                                      \"s\": [\n                                          {\n                                              \"i\": [\n                                                  [\n                                                      -1.495,\n                                                      -0.445\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.851,\n                                                      -0.852\n                                                  ],\n                                                  [\n                                                      -0.344,\n                                                      -1.153\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.25,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      -1.561,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.251,\n                                                      0.932\n                                                  ],\n                                                  [\n                                                      -0.445,\n                                                      1.496\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.852,\n                                                      0.85\n                                                  ],\n                                                  [\n                                                      -1.153,\n                                                      0.343\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      1.56\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      1.25\n                                                  ],\n                                                  [\n                                                      1.496,\n                                                      0.445\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.85,\n                                                      0.851\n                                                  ],\n                                                  [\n                                                      0.344,\n                                                      1.154\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.251,\n                                                      0.933\n                                                  ],\n                                                  [\n                                                      1.559,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.25,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      0.445,\n                                                      -1.495\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.851,\n                                                      -0.851\n                                                  ],\n                                                  [\n                                                      1.153,\n                                                      -0.344\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      -1.56\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      -1.251\n                                                  ]\n                                              ],\n                                              \"o\": [\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.153,\n                                                      0.343\n                                                  ],\n                                                  [\n                                                      0.851,\n                                                      0.85\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.445,\n                                                      1.496\n                                                  ],\n                                                  [\n                                                      1.25,\n                                                      0.932\n                                                  ],\n                                                  [\n                                                      1.559,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.251,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      0.344,\n                                                      -1.153\n                                                  ],\n                                                  [\n                                                      0.85,\n                                                      -0.852\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      1.496,\n                                                      -0.445\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      -1.56\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      -1.251\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.153,\n                                                      -0.344\n                                                  ],\n                                                  [\n                                                      -0.852,\n                                                      -0.851\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.445,\n                                                      -1.495\n                                                  ],\n                                                  [\n                                                      -1.251,\n                                                      -0.932\n                                                  ],\n                                                  [\n                                                      -1.561,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.25,\n                                                      0.933\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -0.344,\n                                                      1.154\n                                                  ],\n                                                  [\n                                                      -0.851,\n                                                      0.851\n                                                  ],\n                                                  [\n                                                      0,\n                                                      0\n                                                  ],\n                                                  [\n                                                      -1.495,\n                                                      0.445\n                                                  ],\n                                                  [\n                                                      -0.933,\n                                                      1.25\n                                                  ],\n                                                  [\n                                                      0,\n                                                      1.559\n                                                  ],\n                                                  [\n                                                      0.932,\n                                                      1.251\n                                                  ]\n                                              ],\n                                              \"v\": [\n                                                  [\n                                                      -132.834,\n                                                      6.94\n                                                  ],\n                                                  [\n                                                      44.729,\n                                                      18.975\n                                                  ],\n                                                  [\n                                                      47.783,\n                                                      20.794\n                                                  ],\n                                                  [\n                                                      49.603,\n                                                      23.848\n                                                  ],\n                                                  [\n                                                      61.637,\n                                                      64.255\n                                                  ],\n                                                  [\n                                                      64.249,\n                                                      67.995\n                                                  ],\n                                                  [\n                                                      68.578,\n                                                      69.431\n                                                  ],\n                                                  [\n                                                      72.906,\n                                                      67.995\n                                                  ],\n                                                  [\n                                                      75.518,\n                                                      64.255\n                                                  ],\n                                                  [\n                                                      87.551,\n                                                      23.848\n                                                  ],\n                                                  [\n                                                      89.372,\n                                                      20.794\n                                                  ],\n                                                  [\n                                                      92.425,\n                                                      18.975\n                                                  ],\n                                                  [\n                                                      132.833,\n                                                      6.94\n                                                  ],\n                                                  [\n                                                      136.572,\n                                                      4.328\n                                                  ],\n                                                  [\n                                                      138.008,\n                                                      0\n                                                  ],\n                                                  [\n                                                      136.572,\n                                                      -4.328\n                                                  ],\n                                                  [\n                                                      132.833,\n                                                      -6.94\n                                                  ],\n                                                  [\n                                                      92.425,\n                                                      -18.974\n                                                  ],\n                                                  [\n                                                      89.372,\n                                                      -20.794\n                                                  ],\n                                                  [\n                                                      87.551,\n                                                      -23.848\n                                                  ],\n                                                  [\n                                                      75.518,\n                                                      -64.257\n                                                  ],\n                                                  [\n                                                      72.906,\n                                                      -67.995\n                                                  ],\n                                                  [\n                                                      68.578,\n                                                      -69.431\n                                                  ],\n                                                  [\n                                                      64.249,\n                                                      -67.995\n                                                  ],\n                                                  [\n                                                      61.637,\n                                                      -64.257\n                                                  ],\n                                                  [\n                                                      49.603,\n                                                      -23.848\n                                                  ],\n                                                  [\n                                                      47.783,\n                                                      -20.794\n                                                  ],\n                                                  [\n                                                      44.729,\n                                                      -18.974\n                                                  ],\n                                                  [\n                                                      -132.834,\n                                                      -6.94\n                                                  ],\n                                                  [\n                                                      -136.572,\n                                                      -4.328\n                                                  ],\n                                                  [\n                                                      -138.008,\n                                                      0.001\n                                                  ],\n                                                  [\n                                                      -136.572,\n                                                      4.328\n                                                  ]\n                                              ],\n                                              \"c\": true\n                                          }\n                                      ]\n                                  }\n                              ],\n                              \"ix\": 2\n                          },\n                          \"nm\": \"Path 1\",\n                          \"mn\": \"ADBE Vector Shape - Group\",\n                          \"hd\": false\n                      },\n                      {\n                          \"ty\": \"fl\",\n                          \"c\": {\n                              \"a\": 0,\n                              \"k\": [\n                                  0,\n                                  0,\n                                  0,\n                                  1\n                              ],\n                              \"ix\": 4\n                          },\n                          \"o\": {\n                              \"a\": 0,\n                              \"k\": 100,\n                              \"ix\": 5\n                          },\n                          \"r\": 1,\n                          \"bm\": 0,\n                          \"nm\": \"Fill 1\",\n                          \"mn\": \"ADBE Vector Graphic - Fill\",\n                          \"hd\": false\n                      },\n                      {\n                          \"ty\": \"tr\",\n                          \"p\": {\n                              \"a\": 0,\n                              \"k\": [\n                                  138.258,\n                                  69.681\n                              ],\n                              \"ix\": 2\n                          },\n                          \"a\": {\n                              \"a\": 0,\n                              \"k\": [\n                                  0,\n                                  0\n                              ],\n                              \"ix\": 1\n                          },\n                          \"s\": {\n                              \"a\": 0,\n                              \"k\": [\n                                  100,\n                                  100\n                              ],\n                              \"ix\": 3\n                          },\n                          \"r\": {\n                              \"a\": 0,\n                              \"k\": 0,\n                              \"ix\": 6\n                          },\n                          \"o\": {\n                              \"a\": 0,\n                              \"k\": 100,\n                              \"ix\": 7\n                          },\n                          \"sk\": {\n                              \"a\": 0,\n                              \"k\": 0,\n                              \"ix\": 4\n                          },\n                          \"sa\": {\n                              \"a\": 0,\n                              \"k\": 0,\n                              \"ix\": 5\n                          },\n                          \"nm\": \"Transform\"\n                      }\n                  ],\n                  \"nm\": \"Group 1\",\n                  \"np\": 2,\n                  \"cix\": 2,\n                  \"bm\": 0,\n                  \"ix\": 1,\n                  \"mn\": \"ADBE Vector Group\",\n                  \"hd\": false\n              }\n          ],\n          \"ip\": -21.0000008553475,\n          \"op\": 135.000005498663,\n          \"st\": -21.0000008553475,\n          \"ct\": 1,\n          \"bm\": 0\n      }\n  ],\n  \"markers\": [],\n  \"props\": {}\n}","import bitteAnimation from \"./../../assets/bitte_animation.json\";\nimport Lottie from \"react-lottie-player/dist/LottiePlayerLight\";\n\nexport const BitteSpinner = ({\n  width = 200,\n  height = 200,\n}: {\n  width?: number;\n  height?: number;\n}) => {\n  return (\n    <div className='dark:invert'>\n      <Lottie\n        loop\n        animationData={bitteAnimation}\n        play\n        speed={1.5}\n        style={{ width, height }}\n      />\n    </div>\n  );\n};\n","import { ArrowUp } from \"lucide-react\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Button } from \"../ui/button\";\nimport { Textarea } from \"../ui/textarea\";\nimport { AgentPill } from \"./AgentPill\";\n\ninterface SmartActionsInputProps {\n  input: string;\n  isLoading: boolean;\n  agentName?: string;\n  handleChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n  handleSubmit: (e: React.FormEvent<HTMLFormElement>) => void;\n}\n\nexport const SmartActionsInput = ({\n  input,\n  isLoading,\n  agentName,\n  handleChange,\n  handleSubmit,\n}: SmartActionsInputProps) => {\n  const agentNameRef = useRef<HTMLDivElement>(null);\n  const [paddingLeft, setPaddingLeft] = useState<number>(16);\n  const [previousAgentName, setPreviousAgentName] = useState(\"Select Agent\");\n\n  useEffect(() => {\n    if (agentNameRef.current) {\n      setPaddingLeft(agentNameRef.current.offsetWidth + 16);\n    } else {\n      setPaddingLeft(16);\n    }\n  }, [agentName]);\n\n  useEffect(() => {\n    if (agentName && agentName !== previousAgentName) {\n      setPreviousAgentName(agentName);\n    }\n  }, [agentName]);\n\n  return (\n    <form\n      className='relative mb-0 flex w-full items-center justify-center gap-4 max-lg:flex-wrap'\n      onSubmit={handleSubmit}\n    >\n      <div className='w-full relative'>\n        {agentName ? (\n          <AgentPill name={agentName} ref={agentNameRef} />\n        ) : (\n          <div\n            ref={agentNameRef}\n            className='w-fit rounded-full border text-gray-40 border-gray-40 border-dashed px-2 py-1 text-xs font-semibold uppercase absolute left-2 top-1/2 -translate-y-1/2 text-opacity-0'\n          >\n            {previousAgentName}\n          </div>\n        )}\n        <Textarea\n          placeholder='Message Smart Actions'\n          style={{\n            paddingLeft: `${paddingLeft}px`,\n          }}\n          className='h-[42px] w-full resize-none min-h-0'\n          onChange={handleChange}\n          onKeyDown={(e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n            if (e.key === \"Enter\" && !e.shiftKey) {\n              e.preventDefault();\n              handleSubmit(e as unknown as React.FormEvent<HTMLFormElement>);\n            }\n          }}\n          value={input}\n        />\n      </div>\n      <Button\n        type='submit'\n        disabled={!input || isLoading}\n        className='h-[42px] w-full lg:w-[42px] p-0 disabled:opacity-20 bg-gray-800'\n      >\n        <ArrowUp className='h-[16px] w-[16px] hidden lg:block' />\n        <span className='lg:hidden'>Send</span>\n      </Button>\n    </form>\n  );\n};\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface TextareaProps\n  extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n  ({ className, style, ...props }, ref) => {\n    return (\n      <textarea\n        className={cn(\n          \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n          className\n        )}\n        ref={ref}\n        {...props}\n      />\n    );\n  }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import { forwardRef } from \"react\";\n\ninterface AgentPillProps {\n  name: string;\n}\n\nexport const AgentPill = forwardRef<HTMLDivElement, AgentPillProps>(\n  ({ name }, ref) => (\n    <div\n      ref={ref}\n      className='w-fit rounded-full border border-dashed border-gray-40 px-2 py-1 text-xs font-semibold uppercase text-purple-100 absolute left-2 top-1/2 -translate-y-1/2'\n    >\n      {name}\n    </div>\n  )\n);\n\nAgentPill.displayName = \"AgentPill\";\n","import { MessageSquare } from \"lucide-react\";\n\nimport { NearSafe } from \"near-safe\";\n\nimport { Wallet } from \"@near-wallet-selector/core\";\nimport { Account } from \"near-api-js\";\nimport { cn } from \"../../lib/utils\";\n\nimport { getAgentIdFromMessage, getTypedToolInvocations } from \"../../lib/chat\";\nimport { BittePrimitiveName, DEFAULT_AGENT_ID } from \"../../lib/constants\";\nimport { isDataString } from \"../../lib/regex\";\nimport { SmartActionAiMessage } from \"../../types/types\";\nimport {\n  Accordion,\n  AccordionContent,\n  AccordionItem,\n  AccordionTrigger,\n} from \"../ui/accordion\";\nimport { Button } from \"../ui/button\";\nimport { Card } from \"../ui/card\";\nimport { ImageWithFallback } from \"../ui/ImageWithFallback\";\nimport { CodeBlock } from \"./CodeBlock\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\nimport { SAMessage } from \"./Message\";\nimport ShareDropButton from \"./ShareDropButton\";\nimport { EvmTxCard } from \"./transactions/EvmTxCard\";\nimport { ReviewTransaction } from \"./transactions/ReviewTransaction\";\n\ninterface MessageGroupProps {\n  chatId: string | undefined;\n  groupKey: string;\n  messages: SmartActionAiMessage[];\n  accountId: string;\n  creator?: string;\n  isLoading?: boolean;\n  agentImage?: string;\n  agentName?: string;\n  evmAdapter?: NearSafe;\n  account?: Account;\n  wallet?: Wallet;\n}\n\nexport const MessageGroup = ({\n  groupKey,\n  messages,\n  accountId,\n  creator,\n  isLoading,\n  agentImage,\n  agentName,\n  chatId,\n}: MessageGroupProps) => {\n  return (\n    <div>\n      {messages?.map((message, index) => {\n        let agentId = getAgentIdFromMessage(message);\n\n        if (!agentId) {\n          agentId = DEFAULT_AGENT_ID;\n        }\n\n        const uniqueKey = `${groupKey}-${index}`;\n\n        if (message.toolInvocations) {\n          for (const invocation of message.toolInvocations) {\n            const { toolName, state, result } = getTypedToolInvocations(\n              invocation\n            ) as {\n              toolName: string;\n              state: string;\n              result: any;\n            };\n\n            if (state !== \"result\") {\n              continue;\n            }\n\n            if (\n              toolName === BittePrimitiveName.GENERATE_TRANSACTION ||\n              toolName === BittePrimitiveName.TRANSFER_FT ||\n              toolName === BittePrimitiveName.GENERATE_EVM_TX\n            ) {\n              const [transactions, evmSignRequest] =\n                result.data && \"evmSignRequest\" in result.data\n                  ? [result.data.transactions, result.data.evmSignRequest]\n                  : [result.data.transactions, undefined];\n              return (\n                <ErrorBoundary key={`${groupKey}-${message.id}`}>\n                  {evmSignRequest ? (\n                    <EvmTxCard evmData={evmSignRequest} />\n                  ) : (\n                    <div className='my-6'>\n                      <ReviewTransaction\n                        chatId={chatId}\n                        creator={creator}\n                        transactions={transactions || []}\n                        warnings={result.warnings}\n                        evmData={evmSignRequest}\n                        agentId={agentId}\n                        walletLoading={isLoading}\n                      />\n                    </div>\n                  )}\n                </ErrorBoundary>\n              );\n            }\n          }\n        }\n\n        return (\n          <Card className='p-6' key={`${message.id}-${index}`}>\n            <Accordion\n              type='single'\n              collapsible\n              className='w-full'\n              defaultValue={uniqueKey}\n            >\n              <AccordionItem value={uniqueKey} className='border-0'>\n                <AccordionTrigger className='p-0 hover:no-underline'>\n                  <div className='flex items-center justify-center gap-2'>\n                    {message.role === \"user\" ? (\n                      <>\n                        <MessageSquare className='h-[18px] w-[18px]' />\n                        <p className='text-[14px] text-shad-blue-100'>\n                          {creator || accountId}\n                        </p>\n                      </>\n                    ) : (\n                      <>\n                        <ImageWithFallback\n                          src={agentImage}\n                          fallbackSrc='/bitte-symbol-black.svg'\n                          className={cn(\n                            \"h-[18px] w-[18px] rounded\",\n                            agentImage === \"/bitte-symbol-black.svg\"\n                              ? \"invert-0 dark:invert\"\n                              : \"dark:bg-card-list\"\n                          )}\n                          alt={`${agentName} icon`}\n                        />\n                        <p className='text-[14px]'>\n                          {agentName ?? \"Bitte Assistant\"}\n                        </p>\n                      </>\n                    )}\n                  </div>\n                </AccordionTrigger>\n\n                <AccordionContent className='mt-6 border-t border-gray-40 pb-0'>\n                  <div className='mt-6 flex w-full flex-col gap-2'>\n                    {message.content && (\n                      <div className='flex flex-col gap-4 text-zinc-800 dark:text-zinc-300'>\n                        <SAMessage content={message.content} />\n                      </div>\n                    )}\n\n                    {message.toolInvocations?.map((toolInvocation, index) => {\n                      const { toolName, toolCallId, state, result } =\n                        getTypedToolInvocations(toolInvocation) as {\n                          toolCallId: string;\n                          toolName: string;\n                          state: string;\n                          result: any;\n                        };\n\n                      return (\n                        <div key={`${toolCallId}-${index}`}>\n                          <div className='flex w-full items-center justify-between text-[12px] text-text-secondary'>\n                            <div>Tool Call</div>\n                            <div className='rounded bg-shad-white-10 px-2 py-1'>\n                              <code>{toolName}</code>\n                            </div>\n                          </div>\n                          <div className='p-4'>\n                            {(() => {\n                              if (state === \"result\") {\n                                switch (toolName) {\n                                  case BittePrimitiveName.GENERATE_IMAGE: {\n                                    return (\n                                      <img\n                                        src={result.data?.url}\n                                        className='w-full'\n                                      />\n                                    );\n                                  }\n                                  case BittePrimitiveName.CREATE_DROP: {\n                                    return (\n                                      <div className='flex items-center justify-center gap-2'>\n                                        <Button asChild variant='link'>\n                                          <a\n                                            href={`/claim/${result.data}`}\n                                            target='_blank'\n                                          >\n                                            View Drop\n                                          </a>\n                                        </Button>\n                                        <ShareDropButton\n                                          dropId={result.data || \"\"}\n                                        />\n                                      </div>\n                                    );\n                                  }\n                                  default: {\n                                    const stringifiedData = JSON.stringify(\n                                      result.data\n                                    );\n                                    return isDataString(stringifiedData) ? (\n                                      <CodeBlock content={stringifiedData} />\n                                    ) : (\n                                      <div>{stringifiedData}</div>\n                                    );\n                                  }\n                                }\n                              }\n                            })()}\n                          </div>\n\n                          <div className='mt-2 border-t border-gray-40' />\n                        </div>\n                      );\n                    })}\n                  </div>\n                </AccordionContent>\n              </AccordionItem>\n            </Accordion>\n          </Card>\n        );\n      })}\n    </div>\n  );\n};\n","export const RPC_URL = \"https://rpc.mainnet.near.org\";\n\nexport const OPEN_API_SPEC_PATH = \".well-known/ai-plugin.json\";\n\nexport const PLUGINS_COLLECTION = \"ai-plugins\";\nexport const ASSISTANTS_COLLECTION = \"ai-assistants\";\nexport const TOOLS_COLLECTION = \"ai-tools\";\nexport const API_KEYS_COLLECTION = \"ai-api-keys\";\n\nexport const DEFAULT_MODEL = \"gpt-4o\";\nexport const DEFAULT_ASSISTANT_ID = \"asst_9akhoUCRuq2fi36e1aSDVv4e\";\nexport const DEFAULT_AGENT_ID = \"bitte-assistant\";\nexport const DISCOVERY_ASSISTANT_ID = \"asst_5mlinuGadyp8PiI8203Uvh3C\";\nexport const DISCOVERY_VECTOR_STORE_ID = \"vs_iv6JjMEYtBVnQ91MVqS0PwTs\";\n\nexport const PLUGINS_OAI_VECTOR_STORE = \"oai-vector-store-ai-plugins\";\nexport const ASSISTANTS_OAI_VECTOR_STORE = \"oai-vector-store-ai-assistants\";\nexport const TOOLS_OAI_VECTOR_STORE = \"oai-vector-store-ai-tools\";\n\nexport enum BittePrimitiveName {\n  TRANSFER_FT = \"transfer-ft\",\n  GENERATE_TRANSACTION = \"generate-transaction\",\n  SUBMIT_QUERY = \"submit-query\",\n  GENERATE_IMAGE = \"generate-image\",\n  CREATE_DROP = \"create-drop\",\n  GET_SWAP_TRANSACTIONS = \"getSwapTransactions\",\n  GET_TOKEN_METADATA = \"getTokenMetadata\",\n  GENERATE_EVM_TX = \"generate-evm-tx\",\n}\n","export const isMarkdownTableString = (message: string) => {\n  // Match a line that starts with a pipe (|)and includes at least one more pipe\n  const regex = /^\\|.*\\|.*$/gm;\n\n  return regex.test(message);\n};\n\nexport const isDataString = (str: string): boolean => {\n  const cleaned = str\n    .replace(/\\\\n/g, \"\") // Remove escaped newlines\n    .replace(/\\s+/g, \" \") // Replace multiple whitespace with single space\n    .replace(/['\"]/g, \"\") // Remove quotes\n    .trim();\n\n  // Match a string that starts with {, [, or contains :\n  const regex = /^\\s*[{\\[]|:\\s*/;\n  return regex.test(cleaned);\n};\n","import * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = React.forwardRef<\n  React.ElementRef<typeof AccordionPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n  <AccordionPrimitive.Item\n    ref={ref}\n    className={cn(\"border-b\", className)}\n    {...props}\n  />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = React.forwardRef<\n  React.ElementRef<typeof AccordionPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n  <AccordionPrimitive.Header className='flex'>\n    <AccordionPrimitive.Trigger\n      ref={ref}\n      className={cn(\n        \"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n        className\n      )}\n      {...props}\n    >\n      {children}\n      <ChevronDown className='h-4 w-4 shrink-0 transition-transform duration-200' />\n    </AccordionPrimitive.Trigger>\n  </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n  React.ElementRef<typeof AccordionPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, style, ...props }, ref) => (\n  <AccordionPrimitive.Content\n    ref={ref}\n    className='overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down'\n    {...props}\n  >\n    <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n  </AccordionPrimitive.Content>\n));\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Card = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, style, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\"rounded-lg border bg-card shadow-sm\", className)}\n    {...props}\n  />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, style, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n    {...props}\n  />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\n      \"text-2xl font-semibold leading-none tracking-tight\",\n      className\n    )}\n    {...props}\n  />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\"text-sm text-muted-foreground\", className)}\n    {...props}\n  />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\"flex items-center p-6 pt-0\", className)}\n    {...props}\n  />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n  Card,\n  CardContent,\n  CardDescription,\n  CardFooter,\n  CardHeader,\n  CardTitle\n};\n\n","import { useEffect, useState } from \"react\";\n\ninterface ImageWithFallbackProps {\n  fallbackSrc: string;\n  src?: string;\n  alt: string;\n  className: string;\n}\n\nexport const ImageWithFallback = ({\n  fallbackSrc,\n  alt,\n  src,\n  className,\n}: ImageWithFallbackProps) => {\n  const [error, setError] = useState(false);\n\n  useEffect(() => {\n    setError(false);\n  }, [src]);\n\n  return (\n    <img\n      alt={alt}\n      onError={() => setError(true)}\n      src={error ? fallbackSrc : src}\n      className={className}\n    />\n  );\n};\n","import React from \"react\";\n\ninterface CodeBlockProps {\n  content: string;\n}\n\nexport const CodeBlock = ({ content }: CodeBlockProps) => {\n  return (\n    <div className='w-full'>\n      <pre className='disable-scrollbars w-full overflow-x-auto rounded-lg bg-secondary p-4 text-secondary-foreground'>\n        <code\n          className='block w-[400px] font-mono text-sm'\n          aria-label='Code example'\n        >\n          {content}\n        </code>\n      </pre>\n    </div>\n  );\n};\n","import React from \"react\";\n\ninterface Props {\n  children: React.ReactNode;\n}\n\ninterface State {\n  hasError: boolean;\n}\n\nexport class ErrorBoundary extends React.Component<Props, State> {\n  state = { hasError: false };\n\n  static getDerivedStateFromError(): State {\n    return { hasError: true };\n  }\n\n  componentDidCatch(error: Error) {\n    console.error(\"Generationerror:\", error);\n  }\n\n  render() {\n    if (this.state.hasError) {\n      return (\n        <p className='my-6 overflow-auto text-center text-text-secondary'>\n          Something went wrong\n        </p>\n      );\n    }\n\n    return this.props.children;\n  }\n}\n","import React, { FC, memo } from \"react\";\n\nimport ReactMarkdown, { Options } from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkMath from \"remark-math\";\nimport { MarkdownTable } from \"./MarkdownTable\";\nimport { isMarkdownTableString } from \"../../lib/regex\";\n\nconst MemoizedReactMarkdown: FC<Options> = memo(\n  ReactMarkdown,\n  (prevProps, nextProps) =>\n    prevProps.children === nextProps.children &&\n    prevProps.className === nextProps.className\n);\n\nconst LinkRenderer = ({\n  href,\n  children,\n  ...props\n}: React.AnchorHTMLAttributes<HTMLAnchorElement>) => {\n  return (\n    <a\n      href={href as string}\n      target='_blank'\n      rel='noopener noreferrer'\n      className='text-blue-300'\n      {...props}\n    >\n      {children}\n    </a>\n  );\n};\n\nexport const SAMessage = memo(({ content }: { content: string }) => {\n  return isMarkdownTableString(content) ? (\n    <MarkdownTable content={content} />\n  ) : (\n    <MemoizedReactMarkdown\n      className='prose dark:prose-invert prose-p:leading-relaxed prose-pre:p-0 break-words'\n      remarkPlugins={[remarkGfm, remarkMath]}\n      components={{\n        a: LinkRenderer,\n      }}\n    >\n      {content}\n    </MemoizedReactMarkdown>\n  );\n});\n\nSAMessage.displayName = \"SAMessage\";\n","import { ArrowUpRight } from \"lucide-react\";\nimport { Button } from \"../ui/button\";\nimport {\n  Table,\n  TableBody,\n  TableCell,\n  TableHead,\n  TableHeader,\n  TableRow,\n} from \"../ui/table\";\n\nconst IMAGE_API =\n  \"https://image-cache-service-z3w7d7dnea-ew.a.run.app/media?url=\";\n\nexport const MarkdownTable = ({ content }: { content: string }) => {\n  // Split the markdown string into lines\n  const lines = content.split(\"\\n\");\n\n  // Filter out the lines that are part of the table\n  const tableLines = lines.filter(\n    (line) => line.startsWith(\"|\") && !line.includes(\"---\")\n  );\n\n  // Split each line into cells\n  const cells = tableLines.map((line) =>\n    line\n      .split(\"|\")\n      .slice(1, -1)\n      .map((cell) => cell.trim())\n  );\n\n  return (\n    <Table className='mt-4 w-full'>\n      <TableHeader>\n        <TableRow className='border-none hover:bg-transparent'>\n          {cells[0].map((header, index) => (\n            <TableHead\n              key={index}\n              className='whitespace-nowrap px-4 text-left text-[12px] font-medium'\n            >\n              {header}\n            </TableHead>\n          ))}\n        </TableRow>\n      </TableHeader>\n      <TableBody>\n        {cells.slice(1).map((row, rowIndex) => (\n          <TableRow key={rowIndex} className='border-none hover:bg-transparent'>\n            {row.map((cell, cellIndex) => {\n              const linkMatchQuery = cell.match(/\\[Link\\]\\((.*)\\)/);\n              const linkValue = linkMatchQuery?.[1];\n              const imageMatchQuery = cell.match(/!\\[.*\\]\\((.*)\\)/);\n              const imageMatch = imageMatchQuery?.[1];\n              const imageValue = imageMatch?.startsWith(\"https://\")\n                ? imageMatch\n                : \"/bitte-symbol-black.svg\";\n\n              return (\n                <TableCell\n                  key={cellIndex}\n                  className='whitespace-nowrap px-4 text-left'\n                >\n                  <div className='max-w-[250px] break-words'>\n                    {linkValue ? (\n                      <a href={linkValue} target='_blank'>\n                        <Button\n                          variant='ghost'\n                          className='flex items-center gap-2 p-0 text-shad-blue-100 hover:text-shad-blue-100'\n                        >\n                          View\n                          <ArrowUpRight className='h-4 w-4' />\n                        </Button>\n                      </a>\n                    ) : imageMatch ? (\n                      <div className='relative h-24 w-24'>\n                        <img\n                          src={`${IMAGE_API}${imageValue}`}\n                          alt={`result-${cellIndex}`}\n                        />\n                      </div>\n                    ) : (\n                      <div className='truncate'>{cell}</div>\n                    )}\n                  </div>\n                </TableCell>\n              );\n            })}\n          </TableRow>\n        ))}\n      </TableBody>\n    </Table>\n  );\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Table = React.forwardRef<\n  HTMLTableElement,\n  React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n  <div className='relative w-full overflow-auto'>\n    <table\n      ref={ref}\n      className={cn(\"w-full caption-bottom text-sm\", className)}\n      {...props}\n    />\n  </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <tbody\n    ref={ref}\n    className={cn(\"[&_tr:last-child]:border-0\", className)}\n    {...props}\n  />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <tfoot\n    ref={ref}\n    className={cn(\n      \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n      className\n    )}\n    {...props}\n  />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n  HTMLTableRowElement,\n  React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n  <tr\n    ref={ref}\n    className={cn(\n      \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n      className\n    )}\n    {...props}\n  />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n  HTMLTableCellElement,\n  React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n  <th\n    ref={ref}\n    className={cn(\n      \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n      className\n    )}\n    {...props}\n  />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n  HTMLTableCellElement,\n  React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n  <td\n    ref={ref}\n    className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n    {...props}\n  />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n  HTMLTableCaptionElement,\n  React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n  <caption\n    ref={ref}\n    className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n    {...props}\n  />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n  Table,\n  TableHeader,\n  TableBody,\n  TableFooter,\n  TableHead,\n  TableRow,\n  TableCell,\n  TableCaption,\n};\n","import React, { useMemo } from \"react\";\n\nimport { Share } from \"lucide-react\";\nimport { useIsClient } from \"../../hooks/useIsClient\";\nimport ShareModal from \"../ui/modal/ShareModal\";\nimport { Button } from \"../ui/button\";\n\ninterface ShareDropButtonProps {\n  dropId: string;\n  isSuccess?: boolean;\n  isActions?: boolean;\n  isApps?: boolean;\n  hoverState?: string | null;\n}\n\nconst ShareDropButton: React.FC<ShareDropButtonProps> = ({\n  dropId,\n  isSuccess,\n  isActions,\n  isApps,\n  hoverState,\n}) => {\n  const isClient = useIsClient();\n\n  const shareLink = useMemo(\n    () => (isClient ? `${window.location.origin}/claim/${dropId}` : \"\"),\n    [isClient, dropId]\n  );\n\n  return (\n    <ShareModal\n      title='Share Token Drop'\n      subtitle='Anyone who has this link and an Bitte Wallet account will be\n        able to mint this token drop.'\n      shareLink={shareLink}\n      shareText='Check my Token Drop on Bitte Wallet!'\n      trigger={\n        isActions ? (\n          <span\n            className={`flex cursor-pointer items-center gap-1 ${\n              isApps ? \"text-white\" : \"text-gray-800\"\n            }`}\n          >\n            <Share size={16} color={isApps ? \"#FFFFFF\" : \"#0f172a\"} />\n            Share\n          </span>\n        ) : isApps ? (\n          <div\n            className={`flex cursor-pointer items-center justify-center rounded-md border border-[#313E52] px-2 py-1 ease-out hover:border-none ${\n              hoverState === dropId\n                ? \"border-none bg-white\"\n                : \"bg-[#414D7D40] backdrop-blur-sm\"\n            } transition-all duration-500 ease-in-out`}\n          >\n            <p\n              className={`text-sm font-normal ${\n                hoverState === dropId ? \"text-black\" : \"text-white\"\n              }`}\n            >\n              Share\n            </p>\n          </div>\n        ) : (\n          <Button\n            className={\n              !isSuccess\n                ? \"hover:bg-shad-slate-30 font-semi-bold bg-shad-white-10 text-gray-800\"\n                : \"w-full bg-transparent\"\n            }\n            {...(isSuccess && { variant: \"outline\" })}\n          >\n            Share\n          </Button>\n        )\n      }\n    />\n  );\n};\n\nexport default ShareDropButton;\n","import { useEffect, useState } from \"react\";\n\nexport const useIsClient = () => {\n  const [isClient, setIsClient] = useState(false);\n  useEffect(() => {\n    setIsClient(true);\n  }, []);\n  return isClient;\n};\n","import React, { useState } from \"react\";\n\nimport { useWindowSize } from \"../../../hooks/useWindowSize\";\nimport { Button } from \"../button\";\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogHeader,\n  DialogTitle,\n  DialogTrigger,\n} from \"../dialog\";\nimport { Drawer, DrawerContent, DrawerFooter } from \"../drawer\";\nimport { Input } from \"../input\";\nimport { Label } from \"../label\";\n\ninterface ShareModalProps {\n  title: string;\n  shareText: string;\n  trigger: JSX.Element;\n  shareLink: string;\n  subtitle?: string;\n}\n\nconst ShareModal: React.FC<ShareModalProps> = ({\n  title,\n  shareText,\n  trigger,\n  shareLink,\n  subtitle,\n}) => {\n  const [open, setOpen] = useState(false);\n  const [showLinkCopiedText, setShowLinkCopiedText] = useState(false);\n\n  const { width } = useWindowSize();\n  const isMobile = !!width && width < 640;\n\n  const social = {\n    twitter: `https://twitter.com/intent/tweet?url=${shareLink}&text=${shareText}`,\n    facebook: `https://www.facebook.com/sharer/sharer.php?u=${shareLink}`,\n    telegram: `https://telegram.me/share/url?url=${shareLink}&text=${shareText}`,\n  };\n\n  const handleCopyLink = async () => {\n    const url = new URL(shareLink);\n\n    await navigator.clipboard.writeText(url.href);\n\n    setShowLinkCopiedText(true);\n    setTimeout(() => setShowLinkCopiedText(false), 3000);\n  };\n\n  const dialogTitleInfo = (\n    <>\n      <DialogTitle className='mb-2 text-[20px] font-semibold'>\n        {title}\n      </DialogTitle>\n      {subtitle && <p className='text-[14px]'>{subtitle}</p>}\n    </>\n  );\n\n  if (!isMobile) {\n    return (\n      <Dialog open={open} onOpenChange={setOpen}>\n        <DialogTrigger asChild>{trigger}</DialogTrigger>\n        <DialogContent className='sm:w-[400px]'>\n          <DialogHeader>\n            <DialogTitle className='mb-2 text-center text-xl text-gray-800'>\n              {title}\n            </DialogTitle>\n            <DialogDescription className='text-center text-gray-800'>\n              {subtitle}\n            </DialogDescription>\n          </DialogHeader>\n          <div className='mt-4 grid w-full max-w-sm items-center gap-1.5'>\n            <Label htmlFor='smart-action-link' className='text-gray-800'>\n              Link\n            </Label>\n            <Input\n              id='smart-action-link'\n              value={shareLink}\n              readOnly\n              className='text-gray-800'\n            />\n          </div>\n          <div className='flex items-center gap-4'>\n            <Button\n              className='w-full'\n              variant='outline'\n              onClick={() => window.open(social.twitter, \"_blank\")}\n            >\n              <img src='/twitter_black.svg' className='theme-icon h-5 w-5' />\n            </Button>\n            <Button\n              className='w-full'\n              variant='outline'\n              onClick={() => window.open(social.telegram, \"_blank\")}\n            >\n              <img src='/telegram_black.svg' className='theme-icon h-5 w-5' />\n            </Button>\n            <Button\n              className='w-full'\n              variant='outline'\n              onClick={() => window.open(social.facebook, \"_blank\")}\n            >\n              <img src='/facebook_black.svg' className='theme-icon h-5 w-5' />\n            </Button>\n          </div>\n          <div>\n            <Button className='w-full' onClick={handleCopyLink}>\n              {showLinkCopiedText ? \"Copied\" : \"Copy Link\"}\n            </Button>\n          </div>\n        </DialogContent>\n      </Dialog>\n    );\n  }\n\n  return (\n    <Drawer open={open} onOpenChange={setOpen}>\n      <DialogTrigger className='border-0 focus:ring-0' asChild>\n        {trigger}\n      </DialogTrigger>\n      <DrawerContent className='flex gap-4 px-2'>\n        <div className='text-center text-gray-800'>{dialogTitleInfo}</div>\n        <div className='mt-4 grid w-full items-center gap-1.5'>\n          <Label htmlFor='smart-action-link' className='text-gray-800'>\n            Link\n          </Label>\n          <Input\n            id='smart-action-link'\n            value={shareLink}\n            readOnly\n            className='text-gray-800'\n          />\n        </div>\n        <div className='flex items-center gap-4'>\n          <Button\n            className='w-full'\n            variant='outline'\n            onClick={() => window.open(social.twitter, \"_blank\")}\n          >\n            <img src='/twitter_black.svg' className='theme-icon h-5 w-5' />\n          </Button>\n          <Button\n            className='w-full'\n            variant='outline'\n            onClick={() => window.open(social.telegram, \"_blank\")}\n          >\n            <img src='/telegram_black.svg' className='theme-icon h-5 w-5' />\n          </Button>\n          <Button\n            className='w-full'\n            variant='outline'\n            onClick={() => window.open(social.facebook, \"_blank\")}\n          >\n            <img src='/facebook_black.svg' className='theme-icon h-5 w-5' />\n          </Button>\n        </div>\n        <DrawerFooter className='gap-4 border-t border-shad-gray-20 p-4'>\n          <div>\n            <Button className='w-full' onClick={handleCopyLink}>\n              {showLinkCopiedText ? \"Copied\" : \"Copy Link\"}\n            </Button>\n          </div>\n        </DrawerFooter>\n      </DrawerContent>\n    </Drawer>\n  );\n};\n\nexport default ShareModal;\n","import { useEffect, useState } from \"react\";\n\ntype WindowSize = {\n  width?: number;\n  height?: number;\n};\n\nexport const useWindowSize = () => {\n  const [windowSize, setWindowSize] = useState<WindowSize>({\n    width: undefined,\n    height: undefined,\n  });\n  useEffect(() => {\n    function handleResize() {\n      setWindowSize({\n        width: window.innerWidth,\n        height: window.innerHeight,\n      });\n    }\n\n    window.addEventListener(\"resize\", handleResize);\n\n    handleResize();\n\n    return () => window.removeEventListener(\"resize\", handleResize);\n  }, []);\n  return windowSize;\n};\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Overlay\n    ref={ref}\n    className={cn(\n      \"fixed inset-0 z-50 bg-black/80  data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n      className\n    )}\n    {...props}\n  />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n  <DialogPortal>\n    <DialogOverlay />\n    <DialogPrimitive.Content\n      ref={ref}\n      className={cn(\n        \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n        className\n      )}\n      {...props}\n    >\n      {children}\n      <DialogPrimitive.Close className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground'>\n        <X className='h-4 w-4' />\n        <span className='sr-only'>Close</span>\n      </DialogPrimitive.Close>\n    </DialogPrimitive.Content>\n  </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    className={cn(\n      \"flex flex-col space-y-1.5 text-center sm:text-left\",\n      className\n    )}\n    {...props}\n  />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    className={cn(\n      \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n      className\n    )}\n    {...props}\n  />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Title\n    ref={ref}\n    className={cn(\n      \"text-lg font-semibold leading-none tracking-tight\",\n      className\n    )}\n    {...props}\n  />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Description\n    ref={ref}\n    className={cn(\"text-sm text-muted-foreground\", className)}\n    {...props}\n  />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n  Dialog,\n  DialogPortal,\n  DialogOverlay,\n  DialogClose,\n  DialogTrigger,\n  DialogContent,\n  DialogHeader,\n  DialogFooter,\n  DialogTitle,\n  DialogDescription,\n};\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Drawer = ({\n  shouldScaleBackground = true,\n  ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n  <DrawerPrimitive.Root\n    shouldScaleBackground={shouldScaleBackground}\n    {...props}\n  />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n  React.ElementRef<typeof DrawerPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n  <DrawerPrimitive.Overlay\n    ref={ref}\n    className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n    {...props}\n  />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n  React.ElementRef<typeof DrawerPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n  <DrawerPortal>\n    <DrawerOverlay />\n    <DrawerPrimitive.Content\n      ref={ref}\n      className={cn(\n        \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n        className\n      )}\n      {...props}\n    >\n      <div className='mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted' />\n      {children}\n    </DrawerPrimitive.Content>\n  </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n    {...props}\n  />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n    {...props}\n  />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n  React.ElementRef<typeof DrawerPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <DrawerPrimitive.Title\n    ref={ref}\n    className={cn(\n      \"text-lg font-semibold leading-none tracking-tight\",\n      className\n    )}\n    {...props}\n  />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n  React.ElementRef<typeof DrawerPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <DrawerPrimitive.Description\n    ref={ref}\n    className={cn(\"text-sm text-muted-foreground\", className)}\n    {...props}\n  />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n  Drawer,\n  DrawerPortal,\n  DrawerOverlay,\n  DrawerTrigger,\n  DrawerClose,\n  DrawerContent,\n  DrawerHeader,\n  DrawerFooter,\n  DrawerTitle,\n  DrawerDescription,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n  ({ className, type, ...props }, ref) => {\n    return (\n      <input\n        type={type}\n        className={cn(\n          \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n          className\n        )}\n        ref={ref}\n        {...props}\n      />\n    );\n  }\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst labelVariants = cva(\n  \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n);\n\nconst Label = React.forwardRef<\n  React.ElementRef<typeof LabelPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n    VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n  <LabelPrimitive.Root\n    ref={ref}\n    className={cn(labelVariants(), className)}\n    {...props}\n  />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import { EthTransactionParams, Network, SignRequestData } from \"near-safe\";\nimport { useEffect, useState } from \"react\";\nimport { formatEther } from \"viem\";\nimport { useTransaction } from \"../../../hooks/useTransaction\";\nimport { useWindowSize } from \"../../../hooks/useWindowSize\";\nimport { shortenString } from \"../../../lib/utils\";\nimport { useAccount } from \"../../AccountContext\";\nimport {\n  Accordion,\n  AccordionContent,\n  AccordionItem,\n  AccordionTrigger,\n} from \"../../ui/accordion\";\nimport { Button } from \"../../ui/button\";\nimport { Card, CardFooter, CardHeader } from \"../../ui/card\";\nimport { CopyStandard } from \"./../CopyStandard\";\nimport LoadingMessage from \"./../LoadingMessage\";\nimport { TransactionDetail } from \"./TransactionDetail\";\nimport { TransactionResult } from \"./TransactionResult\";\n\nexport const EvmTxCard = ({ evmData }: { evmData?: SignRequestData }) => {\n  const { width } = useWindowSize();\n  const isMobile = !!width && width < 640;\n  const [errorMsg, setErrorMsg] = useState(\"\");\n  const [isLoading, setIsLoading] = useState(false);\n  const [txHash, setTxHash] = useState<string | undefined>();\n  const { evmAddress, evmWallet } = useAccount();\n\n  if (!evmData)\n    return (\n      <p className='my-6 overflow-auto text-center'>\n        Unable to create evm transaction.\n      </p>\n    );\n\n  if (\n    !Array.isArray(evmData.params) ||\n    !evmData.params.every(isValidEvmParams)\n  ) {\n    return (\n      <p className='my-6 overflow-auto text-center'>\n        Invalid EVM transaction parameters.\n      </p>\n    );\n  }\n\n  useEffect(() => {\n    if (evmWallet?.hash) {\n      setIsLoading(false);\n      setTxHash(evmWallet.hash);\n    }\n  }, [evmWallet?.hash]);\n\n  const network = Network.fromChainId(evmData.chainId);\n  const { handleTxn } = useTransaction({ evmWallet: evmWallet });\n\n  const handleSmartAction = async () => {\n    setIsLoading(true);\n    try {\n      await handleTxn({ evmData });\n    } catch (error: any) {\n      setErrorMsg(error.message);\n    }\n  };\n\n  return (\n    <>\n      <div className='mb-8 flex justify-center'>\n        <Card className='w-full'>\n          <CardHeader className='border-b border-slate-200 p-4 text-center md:p-6'>\n            <p className='text-xl font-semibold'>EVM Transaction</p>\n          </CardHeader>\n          <div>\n            {evmData ? (\n              <div className='p-6'>\n                <div className='flex flex-col gap-6 text-sm'>\n                  <TransactionDetail\n                    label='Chain ID'\n                    value={shortenString(\n                      evmData.chainId.toString(),\n                      isMobile ? 13 : 21\n                    )}\n                  />\n                  <TransactionDetail label='Network' value={network.name} />\n                  <Accordion\n                    type='single'\n                    collapsible\n                    defaultValue='transaction-0'\n                  >\n                    {evmData.params.map((transaction, index) => (\n                      <AccordionItem\n                        key={transaction.to}\n                        value={`transaction-${index}`}\n                        className='border-0'\n                      >\n                        <AccordionTrigger className='pt-0 hover:no-underline'>\n                          <div className='flex items-center justify-between text-sm'>\n                            <p className='text-text-secondary'>\n                              Transaction {index + 1}\n                            </p>\n                          </div>\n                        </AccordionTrigger>\n                        <AccordionContent className='flex flex-col gap-6 border-0'>\n                          {transaction.to && (\n                            <TransactionDetail\n                              label='To'\n                              className='-mr-2.5'\n                              value={\n                                <CopyStandard\n                                  text={transaction.to}\n                                  textSize='sm'\n                                  textColor='gray-800'\n                                  charSize={isMobile ? 7 : 12}\n                                />\n                              }\n                            />\n                          )}\n                          <TransactionDetail\n                            label='Value'\n                            value={\n                              transaction.value\n                                ? formatEther(BigInt(transaction.value))\n                                : \"0\"\n                            }\n                          />\n                          <TransactionDetail\n                            label='Data'\n                            value={\n                              <CopyStandard\n                                text={transaction.data || \"0x\"}\n                                textSize='sm'\n                                charSize={isMobile ? 10 : 15}\n                              />\n                            }\n                          />\n                        </AccordionContent>\n                      </AccordionItem>\n                    ))}\n                  </Accordion>\n                </div>\n              </div>\n            ) : null}\n          </div>\n\n          {errorMsg && !isLoading ? (\n            <div className='flex flex-col items-center gap-4 px-6 pb-6 text-center text-sm'>\n              <p className='text-red-300'>\n                An error occurred trying to execute your transaction: {errorMsg}\n                .\n              </p>\n              <Button\n                className='w-1/2'\n                variant='outline'\n                onClick={() => {\n                  setErrorMsg(\"\");\n                }}\n              >\n                Dismiss\n              </Button>\n            </div>\n          ) : null}\n\n          {isLoading ? <LoadingMessage /> : null}\n          {txHash ? (\n            <TransactionResult\n              result={{ evm: { txHash, chainId: evmData.chainId } }}\n              accountId={evmAddress}\n            />\n          ) : null}\n          {!isLoading && !errorMsg && !txHash ? (\n            <CardFooter className='flex items-center gap-6'>\n              <>\n                <Button variant='outline' className='w-1/2'>\n                  Decline\n                </Button>\n\n                <Button\n                  className='w-1/2'\n                  onClick={handleSmartAction}\n                  disabled={isLoading}\n                >\n                  {isLoading ? \"Confirming...\" : \"Approve\"}\n                </Button>\n              </>\n            </CardFooter>\n          ) : null}\n        </Card>\n      </div>\n    </>\n  );\n};\n\nconst isValidEvmParams = (data: unknown): data is EthTransactionParams => {\n  return (\n    typeof data === \"object\" &&\n    data !== null &&\n    \"to\" in data &&\n    typeof data.to === \"string\" &&\n    data.to.startsWith(\"0x\")\n  );\n};\n","import {\n  FinalExecutionOutcome,\n  Transaction,\n  Wallet,\n} from \"@near-wallet-selector/core\";\nimport { Account } from \"near-api-js\";\nimport {\n  EthTransactionParams,\n  SignRequestData\n} from \"near-safe\";\nimport { EVMWalletAdapter } from \"../types\";\n\nexport interface SuccessInfo {\n  near: {\n    receipts: FinalExecutionOutcome[];\n    transactions: Transaction[];\n    encodedTxn?: string;\n  };\n}\n\ninterface UseTransactionProps {\n  account?: Account;\n  wallet?: Wallet;\n  evmWallet?: EVMWalletAdapter;\n}\n\ninterface HandleTxnOptions {\n  transactions?: Transaction[];\n  evmData?: SignRequestData;\n}\n\nexport const useTransaction = ({\n  account,\n  wallet,\n  evmWallet,\n}: UseTransactionProps) => {\n  const handleTxn = async ({\n    transactions,\n    evmData,\n  }: HandleTxnOptions): Promise<SuccessInfo> => {\n    const hasNoWalletOrAccount = !wallet && !account && !evmWallet?.address;\n    if (hasNoWalletOrAccount) {\n      throw new Error(\"No wallet or account provided\");\n    }\n\n    let nearResult;\n    if (transactions) {\n      nearResult = account\n        ? await executeWithAccount(transactions, account)\n        : await executeWithWallet(transactions, wallet);\n    }\n\n    if (evmData && evmWallet) {\n      await executeWithEvmWallet(evmData, evmWallet);\n    }\n\n    return {\n      near: {\n        receipts: Array.isArray(nearResult) ? nearResult : [],\n        transactions: transactions || [],\n      },\n    };\n  };\n\n  return {\n    handleTxn,\n  };\n};\n\nexport const executeWithAccount = async (\n  transactions: Transaction[],\n  account: Account\n): Promise<FinalExecutionOutcome[]> => {\n  const results = await Promise.all(\n    transactions.map(async (txn) => {\n      if (txn.actions.every((action) => action.type === \"FunctionCall\")) {\n        try {\n          return await account.functionCall({\n            contractId: txn.receiverId,\n            methodName: txn.actions[0].params.methodName,\n            args: txn.actions[0].params.args,\n            attachedDeposit: BigInt(txn.actions[0].params.deposit),\n            gas: BigInt(txn.actions[0].params.gas),\n          });\n        } catch (error) {\n          console.error(\n            `Transaction failed for contract ${txn.receiverId}, method ${txn.actions[0].params.methodName}:`,\n            error\n          );\n          return null;\n        }\n      }\n      return null;\n    })\n  );\n  return results.filter(\n    (result): result is FinalExecutionOutcome => result !== null\n  );\n};\n\nexport const executeWithWallet = async (\n  transactions: Transaction[],\n  wallet: Wallet | undefined\n): Promise<void | FinalExecutionOutcome[]> => {\n  if (!wallet) {\n    throw new Error(\"Can't have undefined account and wallet\");\n  }\n  return wallet.signAndSendTransactions({\n    transactions: transactions,\n  });\n};\n\nexport const executeWithEvmWallet = async (\n  evmData: SignRequestData,\n  evmWallet: EVMWalletAdapter\n): Promise<void> => {\n  if (!Array.isArray(evmData.params)) {\n    throw new Error(\"Invalid transaction parameters\");\n  }\n\n  if (\n    !evmData.params.every(\n      (tx): tx is EthTransactionParams => typeof tx === \"object\" && \"to\" in tx\n    )\n  ) {\n    throw new Error(\"Invalid transaction parameters\");\n  }\n\n  const txPromises = evmData.params.map((tx) => {\n    const rawTxParams = {\n      to: tx.to,\n      value: tx.value ? BigInt(tx.value) : BigInt(0),\n      data: tx.data || \"0x\",\n      from: tx.from,\n      gas: tx.gas ? BigInt(tx.gas) : undefined,\n    };\n\n    return evmWallet.sendTransaction(rawTxParams);\n  });\n\n  await Promise.all(txPromises);\n};\n","import { CopyIcon } from \"lucide-react\";\nimport React, { useState } from \"react\";\nimport { useWindowSize } from \"../../hooks/useWindowSize\";\nimport { formatName, shortenString } from \"../../lib/utils\";\n\nexport const CopyStandard = ({\n  text,\n  textColor,\n  textSize,\n  charSize,\n  isUrl,\n}: {\n  text: string;\n  textColor?: string;\n  textSize?: string;\n  charSize?: number;\n  isUrl?: boolean;\n}) => {\n  const [showLinkCopiedText, setShowLinkCopiedText] = useState(false);\n\n  const { width } = useWindowSize();\n  const isMobile = !!width && width < 1024;\n\n  const handleCopyLink = async () => {\n    await navigator.clipboard.writeText(text);\n\n    setShowLinkCopiedText(true);\n    setTimeout(() => setShowLinkCopiedText(false), 3000);\n  };\n\n  return (\n    <div id='copy' className='cursor-pointer p-2.5' onClick={handleCopyLink}>\n      <span\n        className={`relative flex items-center justify-center gap-2 ${\n          textColor ? `text-${textColor}` : \"text-shad-blue-100\"\n        } ${textSize ? `text-${textSize}` : \"text-base\"}`}\n      >\n        {showLinkCopiedText\n          ? \"Copied\"\n          : isUrl\n          ? formatName(text, isMobile ? charSize ?? 18 : charSize ?? 35)\n          : shortenString(\n              text,\n              isMobile ? charSize ?? 18 : charSize ?? 35\n            )}{\" \"}\n        <CopyIcon size={16} className='text-shad-blue-100' />\n      </span>\n    </div>\n  );\n};\n","import { BitteSpinner } from \"./BitteSpinner\";\n\nconst LoadingMessage = () => (\n  <div className='flex flex-col items-center justify-center'>\n    <div className='flex w-full items-center justify-center text-gray-600'>\n      <BitteSpinner width={100} height={100} />\n    </div>\n  </div>\n);\n\nexport default LoadingMessage;\n","\nexport const TransactionDetail = ({\n  label,\n  value,\n  className,\n}: {\n  label: string;\n  value: string | JSX.Element;\n  className?: string;\n}) => (\n  <div className={`flex items-center justify-between text-sm ${className}`}>\n    <div className='text-text-secondary'>{label}</div>\n    <div className='break-all text-gray-800'>{value}</div>\n  </div>\n);\n","import { MoveUpRight } from \"lucide-react\";\nimport { Network } from \"near-safe\";\nimport { getNearblocksURL, shortenString } from \"../../../lib/utils\";\n\nexport const TransactionResult = ({\n  result: { evm, near },\n  accountId,\n}: any) => {\n  const scanUrl = evm?.txHash\n    ? `${Network.fromChainId(evm.chainId).scanUrl}/tx/${evm.txHash}`\n    : null;\n\n  return (\n    <div className='mt-4'>\n      <p className='text-center text-[14px] font-semibold'>\n        Transaction success\n      </p>\n      <div className='flex flex-col gap-4 p-6 text-[14px]'>\n        {evm?.txHash && scanUrl && (\n          <div className='flex items-center justify-between px-6 text-[14px]'>\n            <div className='text-text-secondary'>EVM Transaction</div>\n            <a\n              className='flex gap-1 text-gray-800 items-center'\n              href={scanUrl}\n              target='_blank'\n              rel='noopener noreferrer'\n            >\n              {shortenString(evm.txHash, 10)}\n              <MoveUpRight width={12} height={12} />\n            </a>\n          </div>\n        )}\n        {near?.receipts &&\n          near.receipts.map((receipt: any) => (\n            <div\n              key={receipt.transaction.hash}\n              className='flex items-center justify-between px-6 text-[14px]'\n            >\n              <div className='text-text-secondary'>Near Transaction</div>\n              <a\n                className='flex gap-1 items-center text-gray-800'\n                href={getNearblocksURL(accountId, receipt.transaction.hash)}\n                target='_blank'\n                rel='noopener noreferrer'\n              >\n                {shortenString(receipt.transaction.hash, 10)}\n                <MoveUpRight width={12} height={12} />\n              </a>\n            </div>\n          ))}\n      </div>\n    </div>\n  );\n};\n","import { Transaction } from \"@near-wallet-selector/core\";\nimport BN from \"bn.js\";\nimport { SafeEncodedSignRequest } from \"near-safe\";\nimport { useState } from \"react\";\nimport { useAccountBalance } from \"../../../hooks/useAccountBalance\";\nimport { SuccessInfo, useTransaction } from \"../../../hooks/useTransaction\";\nimport { useTxnFees } from \"../../../hooks/useTxnFees\";\nimport { useTxnPrice } from \"../../../hooks/useTxnPrice\";\nimport { useWindowSize } from \"../../../hooks/useWindowSize\";\nimport { safeJsonParse, shortenString } from \"../../../lib/utils\";\nimport { BitteToolWarning } from \"../../../types\";\nimport { useAccount } from \"../../AccountContext\";\nimport { Button } from \"../../ui/button\";\nimport { Card, CardFooter, CardHeader } from \"../../ui/card\";\nimport LoadingMessage from \"../LoadingMessage\";\nimport { TransactionResult } from \"./TransactionResult\";\nimport TxnBadge from \"./TxnBadge\";\nimport { TxnListWrapper } from \"./TxnListWrapper\";\n\nexport const ReviewTransaction = ({\n  transactions,\n  warnings,\n  walletLoading,\n  chatId,\n}: {\n  transactions: Transaction[];\n  warnings?: BitteToolWarning[] | null;\n  creator?: string;\n  evmData?: SafeEncodedSignRequest;\n  agentId: string;\n  walletLoading?: boolean;\n  chatId: string | undefined;\n}) => {\n  const [showTxnDetail, setShowTxnDetail] = useState(false);\n  const [errorMsg, setErrorMsg] = useState(\"\");\n  const [result, setResult] = useState<any>();\n  const [isLoading, setIsLoading] = useState(false);\n  const { wallet, account, accountId } = useAccount();\n  const { handleTxn } = useTransaction({\n    account,\n    wallet,\n  });\n\n  const { balance } = useAccountBalance(account);\n\n  const { costs, gasPrice } = useTxnPrice(new BN(balance || 0), transactions);\n  const { totalDeposit } = useTxnFees(transactions, costs, gasPrice);\n\n  const loading = walletLoading || isLoading;\n\n  const { width } = useWindowSize();\n  const isMobile = !!width && width < 640;\n\n  if (!transactions || transactions.length === 0) {\n    return (\n      <p className='my-6 overflow-auto text-center text-text-secondary'>\n        Unable to create transaction.\n      </p>\n    );\n  }\n\n  const firstAction = transactions[0]?.actions[0];\n  const isTransfer = firstAction?.type === \"Transfer\";\n  const isFunctionCall = firstAction?.type === \"FunctionCall\";\n  const isMint = isFunctionCall && firstAction.params.methodName === \"mint\";\n  const transactionType = isTransfer\n    ? \"Send\"\n    : transactions.length > 1\n      ? \"multi\"\n      : firstAction?.type === \"FunctionCall\"\n        ? firstAction.params.methodName\n        : \"unknown\";\n\n  const to = shortenString(transactions[0]?.receiverId, isMobile ? 13 : 15);\n\n  const txArgs = isFunctionCall\n    ? safeJsonParse(firstAction.params?.args, {})\n    : null;\n\n  let txImage = null;\n  if (txArgs && typeof txArgs === \"object\" && \"metadata\" in txArgs) {\n    const metadata = safeJsonParse<{ media?: string }>(txArgs.metadata, {});\n    if (\n      metadata &&\n      typeof metadata === \"object\" &&\n      \"media\" in metadata &&\n      typeof metadata.media === \"string\"\n    ) {\n      txImage = metadata.media;\n    }\n  }\n\n  const handleSmartAction = async () => {\n    // TO DO: add saving to local storage chat id here\n    setIsLoading(true);\n    setErrorMsg(\"\");\n\n    if (chatId) {\n      sessionStorage.setItem(\"chatId\", chatId);\n    }\n    try {\n      const successInfo = (await handleTxn({\n        transactions: transactions,\n      })) as SuccessInfo;\n\n      if (successInfo?.near?.receipts?.length > 0) {\n        setResult(successInfo);\n      }\n    } catch (error: any) {\n      setErrorMsg(error.message);\n    } finally {\n      setIsLoading(false);\n    }\n  };\n\n  return (\n    <Card>\n      <CardHeader className='border-b border-slate-200 text-center'>\n        <p className='text-[20px] font-semibold'>Review Transaction</p>\n      </CardHeader>\n\n      <div>\n        {isMint && txImage ? (\n          <div className='border-b border-slate-200'>\n            <div className='p-6'>\n              <div className='flex items-center justify-between text-[14px]'>\n                <div className='text-text-secondary'>Asset</div>\n                <img\n                  src={`${\n                    txImage.includes(\"https://\")\n                      ? txImage\n                      : `https://arweave.net/${txImage}`\n                  }`}\n                  width={64}\n                  height={64}\n                  className='rounded-md'\n                />\n              </div>\n            </div>\n          </div>\n        ) : null}\n        <div className='p-6'>\n          <div className='flex items-center justify-between text-[14px]'>\n            <div className='text-text-secondary'>Tx Type</div>\n\n            <TxnBadge transactionType={transactionType} />\n          </div>\n        </div>\n        <div className='flex flex-col gap-6 p-6'>\n          <div className='flex items-center justify-between text-[14px]'>\n            <div className='text-text-secondary'>Amount</div>\n            <div className='font-semibold text-gray-800'>\n              {totalDeposit} NEAR\n            </div>\n          </div>\n          <div className='flex items-center justify-between text-[14px]'>\n            <div className='text-text-secondary'>From</div>\n            <div className='text-gray-800'>{accountId}</div>\n          </div>\n          <div className='flex items-center justify-between text-[14px]'>\n            <div className='text-text-secondary'>To</div>\n            <div className='text-gray-800'>{to}</div>\n          </div>\n        </div>\n\n        {warnings && warnings.length > 0 && (\n          <div className='px-6 pb-8'>\n            <div className='border-t p-4 border-slate-200' />\n            {warnings.map((warning, index) => (\n              <div\n                key={index}\n                className='flex items-center justify-between text-sm'\n              >\n                <div className='text-red-500'>Warning</div>\n                <div className='text-gray-800'>{warning.message}</div>\n              </div>\n            ))}\n          </div>\n        )}\n\n        <TxnListWrapper\n          transaction={transactions}\n          accountId={accountId || \"\"}\n          costs={costs || []}\n          gasPrice={gasPrice || \"0\"}\n          showDetails={showTxnDetail}\n          modifiedUrl={`https://wallet.bitte.ai`}\n          setShowTxnDetail={setShowTxnDetail}\n          showTxnDetail={showTxnDetail}\n        />\n      </div>\n\n      {errorMsg && !loading ? (\n        <div className='flex flex-col items-center gap-4 px-6 pb-6 text-center text-sm'>\n          <p className='text-red-300'>\n            An error occurred trying to execute your transaction: {errorMsg}.\n          </p>\n          <Button\n            className='w-1/2'\n            variant='outline'\n            onClick={() => {\n              setErrorMsg(\"\");\n            }}\n          >\n            Dismiss\n          </Button>\n        </div>\n      ) : null}\n\n      {loading ? <LoadingMessage /> : null}\n      {result && !loading ? (\n        <TransactionResult result={result} accountId={accountId} />\n      ) : null}\n      {!loading && !result && !errorMsg && accountId ? (\n        <CardFooter className='flex items-center gap-6'>\n          <>\n            <Button variant='outline' className='w-1/2'>\n              Decline\n            </Button>\n\n            <Button className='w-1/2' onClick={handleSmartAction}>\n              Approve\n            </Button>\n          </>\n        </CardFooter>\n      ) : null}\n    </Card>\n  );\n};\n","import { Account } from \"near-api-js\";\nimport { useEffect, useState } from \"react\";\n\nexport function useAccountBalance(account?: Account) {\n  const [balance, setBalance] = useState<number | null>(null);\n\n  useEffect(() => {\n    const fetchBalance = async () => {\n      if (!account) return;\n      try {\n        const accountBalance = await account.getAccountBalance();\n        setBalance(Number(accountBalance.available));\n      } catch (error) {\n        console.error(\"Error fetching balance:\", error);\n      }\n    };\n\n    if (account) {\n      fetchBalance();\n    }\n  }, [account]);\n\n  return { balance };\n}\n","import { Transaction } from \"@near-wallet-selector/core\";\nimport BN from \"bn.js\";\nimport { formatNearAmount } from \"near-api-js/lib/utils/format\";\nimport { formatUnits } from \"viem\";\nimport { removeTrailingZeros } from \"../lib/utils\";\nimport { Cost } from \"../types\";\n\nexport const useTxnFees = (\n  transactions: Transaction[],\n  costs: Cost[],\n  gasPrice: string\n) => {\n  const feeLimitTgasBN =\n    transactions?.reduce(\n      (acc, txn) =>\n        costs && costs.length > 0 ? costs[transactions.indexOf(txn)]?.gas : acc,\n      new BN(0)\n    ) || new BN(0);\n\n  const feeLimitTgas = formatUnits(BigInt(feeLimitTgasBN.toString()), 12);\n  const feeLimitNear = formatNearAmount(\n    feeLimitTgasBN.mul(new BN(gasPrice)).toString(),\n    6\n  );\n\n  const totalDeposit = transactions?.reduce(\n    (acc, txn) =>\n      acc +\n      (costs && costs.length > 0\n        ? parseFloat(\n            removeTrailingZeros(\n              formatNearAmount(\n                costs[transactions.indexOf(txn)]?.deposit?.toString() || \"0\",\n                3\n              )\n            )\n          )\n        : 0),\n    0\n  );\n\n  return {\n    totalGas: feeLimitNear,\n    totalDeposit,\n    feeLimitTgas,\n  };\n};\n","import { getLatestGasPrice } from \"@mintbase-js/rpc/lib/methods/getLatestGasPrice\";\nimport {\n  Action,\n  FunctionCallAction,\n  Transaction,\n} from \"@near-wallet-selector/core\";\nimport BN from \"bn.js/\";\nimport { formatNearAmount } from \"near-api-js/lib/utils/format\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { RPC_URL } from \"../lib/constants\";\nimport { Cost } from \"../types\";\nimport { ActionCosts } from \"../types/transaction\";\n\nexport const useTxnPrice = (balance: BN, transactions?: Transaction[]) => {\n  const [hasBalance, setHasBalance] = useState(true);\n  const [loaded, setLoaded] = useState(false);\n\n  const [priceState, setPriceState] = useState<{\n    gasPrice: string;\n    costs: Cost[];\n    price: string;\n  }>({\n    gasPrice: \"0\",\n    costs: [],\n    price: \"0\",\n  });\n\n  const gasPriceFetched = useRef(false);\n  const costsCalculated = useRef(false);\n\n  const updatePriceState = (updates: Partial<typeof priceState>) => {\n    setPriceState((prevState) => ({ ...prevState, ...updates }));\n  };\n\n  const COSTS: Record<ActionCosts, BN> = {\n    CreateAccount: new BN(420000000000),\n    Transfer: new BN(450000000000),\n    Stake: new BN(50000000000),\n    AddFullAccessKey: new BN(420000000000),\n    DeleteKey: new BN(410000000000),\n  };\n\n  useEffect(() => {\n    const definePrice = async () => {\n      try {\n        const currentGasPrice = await getLatestGasPrice(RPC_URL);\n        updatePriceState({ gasPrice: currentGasPrice.toString() });\n        gasPriceFetched.current = true;\n      } catch (error) {\n        console.error(\"Failed to fetch gas price:\", error);\n        updatePriceState({ gasPrice: '100000000' });\n      }\n    };\n    if (priceState?.gasPrice === \"0\") {\n      definePrice();\n    }\n  }, [priceState?.gasPrice]);\n\n  useEffect(() => {\n    const defineCosts = () => {\n      if (!transactions || transactions.length === 0) return;\n      const costs = transactions.map((txn) => {\n        const actionCosts = txn.actions.map((action: Action) => {\n          switch (action.type) {\n            case \"FunctionCall\":\n              return {\n                deposit: new BN(action.params.deposit || \"0\"),\n                gas: new BN(action.params.gas),\n              };\n            case \"Transfer\":\n              return {\n                deposit: new BN(action.params.deposit || \"0\"),\n                gas: COSTS[action.type as ActionCosts],\n              };\n            default:\n              return {\n                deposit: new BN(\"0\"),\n                gas: COSTS[action.type as ActionCosts],\n              };\n          }\n        });\n        return actionCosts.reduce((acc, x) => ({\n          deposit: acc.deposit.add(x.deposit),\n          gas: acc.gas.add(x.gas),\n        }));\n      });\n\n      if (JSON.stringify(priceState.costs) !== JSON.stringify(costs)) {\n        updatePriceState({ costs: costs });\n      }\n\n      const { deposit } = costs.reduce((acc, x) => ({\n        deposit: acc.deposit.add(x.deposit),\n        gas: acc.gas.add(x.gas),\n      }));\n\n      const hasBalance = deposit.lt(balance);\n\n      updatePriceState({\n        price: deposit.toString(),\n      });\n\n      if (hasBalance !== hasBalance) {\n        setHasBalance(hasBalance);\n      }\n\n      if (!loaded) {\n        setLoaded(true);\n      }\n\n      costsCalculated.current = true;\n    };\n\n    if (\n      !costsCalculated.current &&\n      Number(priceState?.gasPrice) !== 0 &&\n      balance !== undefined\n    ) {\n      defineCosts();\n    }\n  }, [priceState?.gasPrice, balance, transactions]);\n\n  const otherTokensAmount = useMemo(() => {\n    if (!transactions?.length) return;\n    return transactions\n      .map((txn) => {\n        const functionCallAction = txn.actions.find(\n          (action) =>\n            action.type === \"FunctionCall\" &&\n            action.params.methodName !== \"storage_deposit\"\n        );\n\n        if (!functionCallAction) return null;\n        const args = (functionCallAction as FunctionCallAction)?.params?.args;\n\n        return (\n          (\"amount\" in args &&\n            typeof args?.amount === \"string\" &&\n            args?.amount) ||\n          null\n        );\n      })\n      .find((amount) => amount !== null);\n  }, [transactions]);\n\n  const amount = useMemo(() => {\n    const costsAmount =\n      priceState.costs?.[0]?.deposit &&\n      formatNearAmount(priceState.costs?.[0]?.deposit.toString(), 3);\n    if (\n      [\"0\", \"0.000\", null, undefined, \"\"].includes(costsAmount) ||\n      isNaN(Number(costsAmount))\n    ) {\n      return formatNearAmount(otherTokensAmount || \"0\", 3);\n    } else {\n      return costsAmount;\n    }\n  }, [priceState.price, otherTokensAmount, priceState?.costs]);\n\n  const memoizedReturn = useMemo(() => {\n    return {\n      amount,\n      gasPrice: priceState?.gasPrice,\n      hasBalance: !!loaded ? hasBalance : true,\n      costs: priceState.costs,\n      loaded,\n    };\n  }, [amount, priceState?.gasPrice, hasBalance, priceState?.costs, loaded]);\n\n  return memoizedReturn;\n};\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n  \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n  {\n    variants: {\n      variant: {\n        default:\n          \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n        secondary:\n          \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n        destructive:\n          \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n        outline: \"text-foreground\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  }\n);\n\nexport interface BadgeProps\n  extends React.HTMLAttributes<HTMLDivElement>,\n    VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n  return (\n    <div className={cn(badgeVariants({ variant }), className)} {...props} />\n  );\n}\n\nexport { Badge, badgeVariants };\n","import React from \"react\";\nimport { Badge } from \"../../ui/badge\";\n\nconst TxnBadge = ({ transactionType }: { transactionType: string }) => {\n  let styleClass = \"\";\n  let displayName = \"\";\n\n  switch (transactionType) {\n    case \"nft_batch_mint\":\n    case \"mint\":\n      styleClass = \"bg-shad-white-10 text-shad-slate-20\";\n      displayName = \"Mint\";\n      break;\n    case \"nft_transfer\":\n      styleClass = \"bg-shad-bg-light-blue-10 text-shad-blue-100\";\n      displayName = \"Transfer\";\n      break;\n    case \"nft_approve\":\n      styleClass = \"bg-light-purple text-purple-100\";\n      displayName = \"List\";\n      break;\n    case \"nft_batch_burn\":\n      styleClass = \"bg-shad-error-5 text-shad-error\";\n      displayName = \"Burn\";\n      break;\n    case \"buy\":\n      styleClass = \"bg-shad-light-green text-shad-green-20\";\n      displayName = \"Buy\";\n      break;\n    case \"ft_transfer\":\n    case \"Send\":\n      styleClass = \"bg-shad-light-green text-shad-green-20\";\n      displayName = \"Send\";\n      break;\n    default: // Default styles\n      styleClass = \"bg-shad-white-10 text-shad-slate-20\";\n      displayName = transactionType; // Default to raw transaction type if not matched\n  }\n\n  return <Badge className={`px-2 ${styleClass}`}>{displayName}</Badge>;\n};\n\nexport default TxnBadge;\n","import { FunctionCallAction } from \"@near-wallet-selector/core\";\nimport { MoveUpRight } from \"lucide-react\";\nimport { getNearblocksURL, shortenString } from \"../../../lib/utils\";\nimport { TransactionDetailProps } from \"../../../types/transaction\";\nimport TxAccordion from \"./TxAccordion\";\n\nconst DetailMethods = ({\n  action,\n  method,\n}: {\n  action: FunctionCallAction;\n  method: string;\n}) => {\n  return (\n    <>\n      <TxAccordion label='Function Call' methodName={method}>\n        <div className='overflow-x-auto rounded bg-shad-white-10 p-2 text-sm'>\n          <pre className='p-2 md:p-4'>\n            <code>{JSON.stringify(action, null, 2)}</code>\n          </pre>\n        </div>\n      </TxAccordion>\n    </>\n  );\n};\n\nexport const TxnDetailMultipleAction = ({\n  data,\n  accountId,\n  actions,\n  showDetails,\n}: {\n  data: TransactionDetailProps;\n  accountId: string;\n  actions: FunctionCallAction[];\n  showDetails: boolean;\n}): JSX.Element => {\n  const { transaction } = data;\n\n  const contractName = transaction.receiverId;\n\n  return (\n    <>\n      {showDetails && (\n        <div className='flex flex-col'>\n          {transaction?.actions?.[0].type === \"FunctionCall\" && (\n            <div className='relative flex w-full flex-col gap-4 rounded p-6'>\n              <span className='text-sm font-semibold text-gray-800'>\n                Contract Details\n              </span>\n              <div className='flex flex-col items-start justify-start gap-2 text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n                <span className='text-text-secondary'>For Contract</span>\n                <span className='cursor-pointer'>\n                  <a\n                    className='flex gap-1 items-center text-gray-800'\n                    href={getNearblocksURL(accountId, undefined, contractName)}\n                    target='_blank'\n                  >\n                    {shortenString(contractName, 14)}\n                    <MoveUpRight width={12} height={12} />\n                  </a>\n                </span>\n              </div>\n              {actions.length > 1\n                ? actions.map((action: FunctionCallAction, idx: number) => {\n                    return (\n                      <DetailMethods\n                        key={idx}\n                        action={action}\n                        method={action.params.methodName}\n                      />\n                    );\n                  })\n                : null}\n            </div>\n          )}\n        </div>\n      )}\n    </>\n  );\n};\n","import { ChevronDown } from \"lucide-react\";\nimport { useState } from \"react\";\n\nconst TxAccordion = ({\n  label,\n  methodName,\n  children,\n}: {\n  label: string;\n  methodName: string;\n  children: React.ReactNode;\n}) => {\n  const [isOpen, setIsOpen] = useState<boolean>(false);\n\n  const toggleAccordion = () => {\n    setIsOpen((prevIsOpen) => !prevIsOpen);\n  };\n\n  return (\n    <>\n      <div className='flex items-center justify-between'>\n      <div className='text-[14px] text-text-secondary'>{label}</div>\n\n        <div className='flex cursor-pointer gap-0.5' onClick={toggleAccordion}>\n          <span className='flex items-center justify-center bg-shad-white-10 p-1 px-2 text-[14px] text-text-primary'>\n            <code>{methodName}</code>\n          </span>\n          <div className='flex w-[30px] items-center justify-center rounded-r-sm bg-shad-white-10 text-text-primary'>\n            <ChevronDown\n              className={`${isOpen ? \"rotate-180\" : \"\"}`}\n              width={16}\n            />\n          </div>\n        </div>\n      </div>\n\n      {isOpen && <div className='mt-2 w-full'>{children}</div>}\n    </>\n  );\n};\n\nexport default TxAccordion;\n","import { FunctionCallAction, Transaction } from \"@near-wallet-selector/core\";\nimport { formatCosts } from \"../../../../lib/utils\";\nimport { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { TxnDetailMultipleAction } from \"../TxnDetailMultipleAction\";\n\nexport const MultipleTxnMultiActionDetails = ({\n  accountId,\n  transaction,\n  modifiedUrl,\n  showDetails,\n  showTxnDetail,\n  costs,\n  gasPrice,\n}: TxnDetailWrapperProps): JSX.Element => {\n  return (\n    <>\n      {transaction.map((txn: Transaction, txnIdx: number) => {\n        const txnData = {\n          // TODO: Ensure that the actions are always FunctionCallAction.\n          transaction: txn,\n          showDetails,\n          modifiedUrl,\n          gasPrice,\n          ...formatCosts(costs, gasPrice),\n        };\n\n        return (\n          <TxnDetailMultipleAction\n            accountId={accountId}\n            key={txnIdx}\n            data={txnData}\n            showDetails={showTxnDetail}\n            actions={txnData.transaction.actions as FunctionCallAction[]}\n          />\n        );\n      })}\n    </>\n  );\n};\n","import { MoveUpRight } from \"lucide-react\";\nimport { getNearblocksURL, shortenString } from \"../../../lib/utils\";\nimport { TransactionDetailProps } from \"../../../types/transaction\";\nimport TxAccordion from \"./TxAccordion\";\n\nexport const TxnDetail = ({\n  data,\n  showDetails,\n  showTitle,\n  methodName,\n  accountId,\n}: {\n  data: TransactionDetailProps;\n  showDetails: boolean;\n  showTitle: boolean;\n  methodName?: string;\n  accountId: string;\n}): JSX.Element => {\n  const { transaction } = data;\n\n  let method = methodName;\n  if (!method && transaction?.actions?.[0]?.type == \"FunctionCall\") {\n    method = transaction.actions[0].params.methodName;\n  }\n\n  const contractName = transaction.receiverId;\n\n  return (\n    <>\n      {!!showDetails && (\n        <div className='flex flex-col'>\n          {transaction?.actions?.[0].type === \"FunctionCall\" && (\n            <div className='relative flex w-full flex-col gap-4 rounded p-6'>\n              {showTitle ? (\n                <span className='text-sm font-semibold text-gray-800'>\n                  Contract Details\n                </span>\n              ) : null}\n              <div className='flex flex-col items-start justify-start gap-2 text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n                <span className='text-text-secondary'>For Contract</span>\n                <span className='cursor-pointer'>\n                  <a\n                    className='flex gap-1 items-center text-gray-800'\n                    href={getNearblocksURL(accountId, undefined, contractName)}\n                    target='_blank'\n                  >\n                    {shortenString(contractName, 14)}\n                    <MoveUpRight width={12} height={12} />\n                  </a>\n                </span>\n              </div>\n              {method && (\n                <>\n                  <TxAccordion label='Function Call' methodName={method}>\n                    <div className='overflow-x-auto rounded bg-shad-white-10 p-2 text-sm text-text-primary'>\n                      <pre className='p-2 md:p-4'>\n                        <code>\n                          {JSON.stringify(\n                            transaction?.actions?.[0].params?.args,\n                            null,\n                            2\n                          )}\n                        </code>\n                      </pre>\n                    </div>\n                  </TxAccordion>\n                </>\n              )}\n            </div>\n          )}\n        </div>\n      )}\n    </>\n  );\n};\n","import { Transaction } from \"@near-wallet-selector/core\";\nimport { formatCosts } from \"../../../../lib/utils\";\nimport { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { TxnDetail } from \"../TxnDetail\";\n\nexport const MultipleTxnSingleActionDetail = ({\n  accountId,\n  transaction,\n  modifiedUrl,\n  showDetails,\n  showTxnDetail,\n  gasPrice,\n  costs,\n}: TxnDetailWrapperProps): JSX.Element => {\n  return (\n    <>\n      {transaction.map((txn: Transaction, idx: number) => {\n        const txnData = {\n          transaction: txn,\n          showDetails,\n          modifiedUrl,\n          gasPrice,\n          ...formatCosts(costs, gasPrice),\n        };\n\n        return (\n          <div className='mb-1' key={idx}>\n            <TxnDetail\n              accountId={accountId}\n              showTitle={idx === 0}\n              data={txnData}\n              showDetails={showTxnDetail}\n            />\n          </div>\n        );\n      })}\n    </>\n  );\n};\n","import { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { MultipleTxnMultiActionDetails } from \"./MultipleTxnMultiAction\";\nimport { MultipleTxnSingleActionDetail } from \"./MultipleTxnSingleAction\";\n\nexport const MultipleTxnDetail = ({\n  accountId,\n  transaction,\n  modifiedUrl,\n  showDetails,\n  showTxnDetail,\n  costs,\n  gasPrice,\n}: TxnDetailWrapperProps): JSX.Element => {\n  const hasMultipleActions = transaction.every(\n    (tx) => tx.actions && tx.actions.length > 1\n  );\n\n  return hasMultipleActions ? (\n    <MultipleTxnMultiActionDetails\n      accountId={accountId}\n      costs={costs}\n      gasPrice={gasPrice}\n      transaction={transaction}\n      modifiedUrl={modifiedUrl}\n      showDetails={showDetails}\n      showTxnDetail={showTxnDetail}\n    />\n  ) : (\n    <MultipleTxnSingleActionDetail\n      accountId={accountId}\n      costs={costs}\n      gasPrice={gasPrice}\n      transaction={transaction}\n      modifiedUrl={modifiedUrl}\n      showDetails={showDetails}\n      showTxnDetail={showTxnDetail}\n    />\n  );\n};\n","import { ChevronsDownUp, ChevronsUpDown } from \"lucide-react\";\n\nexport const ShowDetailsBtn = ({\n  setShowDetails,\n  showDetails,\n  displayName,\n}: {\n  setShowDetails: (showDetails: boolean) => void;\n  showDetails: boolean;\n  displayName: string;\n}): JSX.Element => {\n  return (\n    <div\n      className='flex cursor-pointer items-center justify-center gap-2 bg-shad-white-30 py-4'\n      onClick={() => setShowDetails(!showDetails)}\n    >\n      {showDetails ? (\n        <ChevronsDownUp width={16} height={16} color='#64748B' />\n      ) : (\n        <ChevronsUpDown width={16} height={16} color='#64748B' />\n      )}\n      <span className='text-[12px] text-text-secondary'>{displayName}</span>\n      </div>\n  );\n};\n","import { FunctionCallAction } from \"@near-wallet-selector/core\";\nimport { formatCosts } from \"../../../../lib/utils\";\nimport { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { TxnDetailMultipleAction } from \"../TxnDetailMultipleAction\";\n\nexport const SingleTxnMultipleAction = ({\n  transaction,\n  accountId,\n  modifiedUrl,\n  showDetails,\n  showTxnDetail,\n  costs,\n  gasPrice,\n}: TxnDetailWrapperProps): JSX.Element => {\n  const txnData = {\n    transaction: transaction[0],\n    showDetails,\n    modifiedUrl,\n    gasPrice,\n    ...formatCosts(costs, gasPrice),\n  };\n\n  return (\n    <TxnDetailMultipleAction\n      accountId={accountId}\n      data={txnData}\n      showDetails={showTxnDetail}\n      actions={txnData.transaction.actions as FunctionCallAction[]}\n    />\n  );\n};\n","import { formatCosts } from \"../../../../lib/utils\";\nimport { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { TxnDetail } from \"../TxnDetail\";\nexport const SingleTxnSingleAction = ({\n  accountId,\n  transaction,\n  modifiedUrl,\n  showDetails,\n  showTxnDetail,\n  costs,\n  gasPrice,\n}: TxnDetailWrapperProps): JSX.Element => {\n  const txnData = {\n    transaction: transaction[0],\n    showDetails,\n    modifiedUrl,\n    gasPrice,\n    ...formatCosts(costs, gasPrice),\n  };\n\n  return (\n    <TxnDetail\n      accountId={accountId}\n      showTitle\n      data={txnData}\n      showDetails={showTxnDetail}\n    />\n  );\n};\n","import { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { SingleTxnMultipleAction } from \"./SingleTxnMultipleAction\";\nimport { SingleTxnSingleAction } from \"./SingleTxnSingleAction\";\n\nexport const SingleTxnDetail = ({\n  accountId,\n  costs,\n  gasPrice,\n  transaction,\n  modifiedUrl,\n  showDetails,\n  showTxnDetail,\n}: TxnDetailWrapperProps): JSX.Element => {\n  const hasMultipleActions = transaction?.[0]?.actions?.length > 1;\n\n  return hasMultipleActions ? (\n    <SingleTxnMultipleAction\n      accountId={accountId}\n      costs={costs}\n      gasPrice={gasPrice}\n      transaction={transaction}\n      modifiedUrl={modifiedUrl}\n      showDetails={showDetails}\n      showTxnDetail={showTxnDetail}\n    />\n  ) : (\n    <SingleTxnSingleAction\n      accountId={accountId}\n      costs={costs}\n      gasPrice={gasPrice}\n      transaction={transaction}\n      modifiedUrl={modifiedUrl}\n      showDetails={showDetails}\n      showTxnDetail={showTxnDetail}\n    />\n  );\n};\n","import { Transaction } from \"@near-wallet-selector/core\";\nimport { useTxnFees } from \"../../../hooks/useTxnFees\";\nimport { Cost } from \"../../../types\";\nimport { TransactionOperation } from \"../../../types/transaction\";\n\nexport const TxnFees = ({\n  transaction,\n  operation,\n  costs,\n  gasPrice,\n}: {\n  transaction: Transaction[];\n  operation?: TransactionOperation;\n  costs: Cost[];\n  gasPrice: string;\n}): JSX.Element => {\n  const { totalGas, totalDeposit, feeLimitTgas } = useTxnFees(\n    transaction,\n    costs,\n    gasPrice\n  );\n\n  const showNoTxnFeeHighlight =\n    operation?.operation === \"relay\" || operation?.operation === \"sponsor\";\n\n  return (\n    <div className='px-6'>\n      <div className='relative mb-1 flex w-full flex-col gap-4 rounded border-b border-slate-200 py-6'>\n        <span className='text-sm font-semibold text-gray-800'>\n          Network Fees\n        </span>\n        <div className='flex flex-col items-start justify-start text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n          <span className='text-text-secondary'>Estimated Fees</span>\n          <div className='flex flex-col'>\n            <span\n              className={`text-gray-800 ${showNoTxnFeeHighlight ? \"line-through\" : \"\"}`}\n            >\n              {Number(totalGas).toFixed(5)} NEAR\n            </span>\n            {showNoTxnFeeHighlight ? (\n              <span className='text-end text-shad-green-30'>0 NEAR</span>\n            ) : null}\n          </div>\n        </div>\n        <div className='flex flex-col items-start justify-start text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n          <span className='text-text-secondary'>Fee Limit</span>\n          <span className='text-gray-800'>\n            {feeLimitTgas} {\"\"}\n            Tgas\n          </span>\n        </div>\n        <div className='flex flex-col items-start justify-start text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n          <span className='text-text-secondary'>Deposit</span>\n          <span className='text-gray-800'>\n            {totalDeposit} {\"\"}\n            NEAR\n          </span>\n        </div>\n      </div>\n    </div>\n  );\n};\n","import { TransactionListProps } from \"../../../types\";\nimport { MultipleTxnDetail } from \"./multiple-transactions/MultipleTxnDetail\";\nimport { ShowDetailsBtn } from \"./ShowDetailsBtn\";\nimport { SingleTxnDetail } from \"./single-transaction/SingleTxnDetail\";\nimport { TxnFees } from \"./TxnFees\";\n\nexport const TxnListWrapper = ({\n  accountId,\n  costs,\n  gasPrice,\n  transaction,\n  modifiedUrl,\n  showDetails,\n  showTxnDetail,\n  setShowTxnDetail,\n  operation,\n}: TransactionListProps): JSX.Element => {\n  return (\n    <div className='mx-auto flex w-full flex-col gap-1'>\n      <div className='flex w-full flex-col justify-center rounded'>\n        <ShowDetailsBtn\n          setShowDetails={setShowTxnDetail}\n          showDetails={showTxnDetail}\n          displayName='Transaction Details'\n        />\n\n        {showTxnDetail ? (\n          <TxnFees\n            costs={costs || []}\n            gasPrice={gasPrice || \"\"}\n            transaction={transaction}\n            operation={operation}\n          />\n        ) : null}\n\n        {transaction?.length > 1 ? (\n          <MultipleTxnDetail\n            accountId={accountId}\n            costs={costs || []}\n            gasPrice={gasPrice || \"\"}\n            transaction={transaction}\n            modifiedUrl={modifiedUrl}\n            showDetails={showDetails}\n            showTxnDetail={showTxnDetail}\n          />\n        ) : (\n          <SingleTxnDetail\n            accountId={accountId}\n            costs={costs || []}\n            gasPrice={gasPrice || \"\"}\n            transaction={transaction}\n            modifiedUrl={modifiedUrl}\n            showDetails={showDetails}\n            showTxnDetail={showTxnDetail}\n          />\n        )}\n      </div>\n    </div>\n  );\n};\n"],"mappings":"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A;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA,GAAK;AAAA,oBACD;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA,GAAK;AAAA,oBACD;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA,GAAK;AAAA,gBACT;AAAA,gBACA,IAAM;AAAA,cACV;AAAA,cACA,IAAM;AAAA,cACN,IAAM;AAAA,cACN,IAAM;AAAA,YACV;AAAA,YACA;AAAA,cACI,IAAM;AAAA,cACN,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,IAAM;AAAA,cACV;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,gBACL,IAAM;AAAA,cACV;AAAA,cACA,GAAK;AAAA,cACL,IAAM;AAAA,cACN,IAAM;AAAA,cACN,IAAM;AAAA,cACN,IAAM;AAAA,YACV;AAAA,YACA;AAAA,cACI,IAAM;AAAA,cACN,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,IAAM;AAAA,cACV;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,IAAM;AAAA,cACV;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,IAAM;AAAA,cACV;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,gBACL,IAAM;AAAA,cACV;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,gBACL,IAAM;AAAA,cACV;AAAA,cACA,IAAM;AAAA,gBACF,GAAK;AAAA,gBACL,GAAK;AAAA,gBACL,IAAM;AAAA,cACV;AAAA,cACA,IAAM;AAAA,gBACF,GAAK;AAAA,gBACL,GAAK;AAAA,gBACL,IAAM;AAAA,cACV;AAAA,cACA,IAAM;AAAA,YACV;AAAA,UACJ;AAAA,UACA,IAAM;AAAA,UACN,IAAM;AAAA,UACN,KAAO;AAAA,UACP,IAAM;AAAA,UACN,IAAM;AAAA,UACN,IAAM;AAAA,UACN,IAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA,IAAM;AAAA,MACN,IAAM;AAAA,MACN,IAAM;AAAA,MACN,IAAM;AAAA,MACN,IAAM;AAAA,IACV;AAAA,IACA;AAAA,MACI,KAAO;AAAA,MACP,KAAO;AAAA,MACP,IAAM;AAAA,MACN,IAAM;AAAA,MACN,IAAM;AAAA,MACN,IAAM;AAAA,QACF,GAAK;AAAA,UACD,GAAK;AAAA,UACL,GAAK;AAAA,UACL,IAAM;AAAA,QACV;AAAA,QACA,GAAK;AAAA,UACD,GAAK;AAAA,UACL,GAAK;AAAA,UACL,IAAM;AAAA,QACV;AAAA,QACA,GAAK;AAAA,UACD,GAAK;AAAA,UACL,GAAK;AAAA,YACD;AAAA,cACI,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,cACT;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,cACT;AAAA,cACA,GAAK;AAAA,cACL,GAAK;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,cACA,IAAM;AAAA,gBACF;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,cACA,IAAM;AAAA,gBACF;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,YACJ;AAAA,YACA;AAAA,cACI,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,cACT;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,gBACL,GAAK;AAAA,cACT;AAAA,cACA,GAAK;AAAA,cACL,GAAK;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,cACA,IAAM;AAAA,gBACF;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,cACA,IAAM;AAAA,gBACF;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,YACJ;AAAA,YACA;AAAA,cACI,GAAK;AAAA,cACL,GAAK;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,UACA,IAAM;AAAA,UACN,GAAK;AAAA,QACT;AAAA,QACA,GAAK;AAAA,UACD,GAAK;AAAA,UACL,GAAK;AAAA,YACD;AAAA,YACA;AAAA,YACA;AAAA,UACJ;AAAA,UACA,IAAM;AAAA,UACN,GAAK;AAAA,QACT;AAAA,QACA,GAAK;AAAA,UACD,GAAK;AAAA,UACL,GAAK;AAAA,YACD;AAAA,cACI,GAAK;AAAA,gBACD,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,cACJ;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,cACJ;AAAA,cACA,GAAK;AAAA,cACL,GAAK;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,YACJ;AAAA,YACA;AAAA,cACI,GAAK;AAAA,gBACD,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,cACJ;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,cACJ;AAAA,cACA,GAAK;AAAA,cACL,GAAK;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,YACJ;AAAA,YACA;AAAA,cACI,GAAK;AAAA,gBACD,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,cACJ;AAAA,cACA,GAAK;AAAA,gBACD,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA,GAAK;AAAA,kBACD;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,cACJ;AAAA,cACA,GAAK;AAAA,cACL,GAAK;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,YACJ;AAAA,YACA;AAAA,cACI,GAAK;AAAA,cACL,GAAK;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,UACA,IAAM;AAAA,UACN,GAAK;AAAA,QACT;AAAA,MACJ;AAAA,MACA,IAAM;AAAA,MACN,QAAU;AAAA,QACN;AAAA,UACI,IAAM;AAAA,UACN,IAAM;AAAA,YACF;AAAA,cACI,KAAO;AAAA,cACP,IAAM;AAAA,cACN,IAAM;AAAA,cACN,IAAM;AAAA,gBACF,GAAK;AAAA,gBACL,GAAK;AAAA,kBACD;AAAA,oBACI,GAAK;AAAA,sBACD,GAAK;AAAA,sBACL,GAAK;AAAA,oBACT;AAAA,oBACA,GAAK;AAAA,sBACD,GAAK;AAAA,sBACL,GAAK;AAAA,oBACT;AAAA,oBACA,GAAK;AAAA,oBACL,GAAK;AAAA,sBACD;AAAA,wBACI,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,sBACT;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA;AAAA,oBACI,GAAK;AAAA,sBACD,GAAK;AAAA,sBACL,GAAK;AAAA,oBACT;AAAA,oBACA,GAAK;AAAA,sBACD,GAAK;AAAA,sBACL,GAAK;AAAA,oBACT;AAAA,oBACA,GAAK;AAAA,oBACL,GAAK;AAAA,sBACD;AAAA,wBACI,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,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AAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,sBACT;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA;AAAA,oBACI,GAAK;AAAA,oBACL,GAAK;AAAA,sBACD;AAAA,wBACI,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;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","names":["useEffect","useState","generateId","useEffect","useMemo","useRef","useState","AssistantsMode","Model","React","jsx","jsx","useEffect","useState","React","jsx","forwardRef","jsx","jsx","useState","useEffect","React","jsx","jsxs","React","jsx","useEffect","useState","jsx","jsx","React","jsx","React","jsx","jsx","jsxs","jsx","useEffect","useState","useState","useEffect","useState","React","jsx","jsxs","jsx","jsxs","React","jsx","jsxs","React","jsx","React","cva","jsx","cva","jsx","jsxs","useState","jsx","jsxs","Network","useEffect","useState","useState","jsx","jsxs","useState","jsx","jsx","jsxs","jsx","jsxs","Fragment","jsx","jsxs","useState","useEffect","Network","BN","useState","useEffect","useState","BN","formatNearAmount","BN","formatNearAmount","BN","formatNearAmount","useEffect","useMemo","useRef","useState","useState","useRef","BN","useEffect","hasBalance","useMemo","amount","formatNearAmount","cva","jsx","cva","jsx","MoveUpRight","ChevronDown","useState","Fragment","jsx","jsxs","Fragment","jsx","jsxs","MoveUpRight","Fragment","jsx","MoveUpRight","Fragment","jsx","jsxs","MoveUpRight","Fragment","jsx","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","Fragment","jsx","jsxs","useState","BN","Fragment","jsx","jsxs","index","Fragment","jsx","jsxs","useRef","generateId","useState","useMemo","useEffect","messages","jsx","useState","useEffect","uiMessages"]}