espial 0.0.26 → 0.0.34
raw patch · 75 files changed
+3110/−1502 lines, 75 filesbinary-addedPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Handler.Add: _handleFormSuccess :: BookmarkForm -> Handler (UpsertResult (Key Bookmark))
- Handler.Add: bookmarkFormUrl :: Handler BookmarkForm
- Handler.Archive: _archiveUserAgent :: Handler ByteString
- Handler.Archive: _buildArchiveSubmitRequest :: (String, String) -> String -> Handler Request
- Handler.Archive: _fetchArchiveSubmitInfo :: Handler (Either String (String, String))
- Handler.Archive: _isArchiveBlacklisted :: Bookmark -> Bool
- Handler.Archive: _parseRefreshHeaderUrl :: ByteString -> Maybe Text
- Handler.Archive: _parseSubstring :: Parser ByteString -> Parser Char -> ByteString -> Either String String
- Handler.Archive: buildRequest :: String -> Handler Request
- Handler.Archive: fetchPageTitle :: String -> Handler (Either String Text)
- Handler.Archive: getArchiveManager :: Handler Manager
- Model: AccountSettingsForm :: Bool -> Bool -> Bool -> Bool -> AccountSettingsForm
- Model: BookmarkForm :: Text -> Maybe Text -> Maybe Textarea -> Maybe Text -> Maybe Bool -> Maybe Bool -> Maybe Int64 -> Maybe BmSlug -> Maybe Bool -> Maybe UTCTimeStr -> Maybe Text -> BookmarkForm
- Model: FFBookmarkNode :: Maybe [FFBookmarkNode] -> !POSIXTime -> !Text -> !Maybe Text -> !Int -> !Int -> !POSIXTime -> !Maybe Text -> !Text -> !Text -> !Int -> !Maybe Text -> FFBookmarkNode
- Model: FileBookmark :: !Text -> !Text -> !Text -> !UTCTime -> !Bool -> !Bool -> !Maybe Bool -> !Maybe Text -> !Text -> FileBookmark
- Model: FileNote :: !Text -> !Text -> !Text -> !Int -> !UTCTime -> !UTCTime -> FileNote
- Model: Suggestion :: Text -> Int -> Suggestion
- Model: TagSuggestionRequest :: Text -> Maybe [Text] -> TagSuggestionRequest
- Model: TagSuggestionResponse :: [Suggestion] -> TagSuggestionResponse
- Model: [_archiveDefault] :: AccountSettingsForm -> Bool
- Model: [_archiveUrl] :: BookmarkForm -> Maybe Text
- Model: [_bid] :: BookmarkForm -> Maybe Int64
- Model: [_count] :: Suggestion -> Int
- Model: [_currentTags] :: TagSuggestionRequest -> Maybe [Text]
- Model: [_description] :: BookmarkForm -> Maybe Textarea
- Model: [_privacyLock] :: AccountSettingsForm -> Bool
- Model: [_privateDefault] :: AccountSettingsForm -> Bool
- Model: [_private] :: BookmarkForm -> Maybe Bool
- Model: [_query] :: TagSuggestionRequest -> Text
- Model: [_selected] :: BookmarkForm -> Maybe Bool
- Model: [_slug] :: BookmarkForm -> Maybe BmSlug
- Model: [_suggestTags] :: AccountSettingsForm -> Bool
- Model: [_suggestions] :: TagSuggestionResponse -> [Suggestion]
- Model: [_tags] :: BookmarkForm -> Maybe Text
- Model: [_term] :: Suggestion -> Text
- Model: [_time] :: BookmarkForm -> Maybe UTCTimeStr
- Model: [_title] :: BookmarkForm -> Maybe Text
- Model: [_toread] :: BookmarkForm -> Maybe Bool
- Model: [_url] :: BookmarkForm -> Text
- Model: [fileBookmarkArchiveHref] :: FileBookmark -> !Maybe Text
- Model: [fileBookmarkDescription] :: FileBookmark -> !Text
- Model: [fileBookmarkExtended] :: FileBookmark -> !Text
- Model: [fileBookmarkHref] :: FileBookmark -> !Text
- Model: [fileBookmarkSelected] :: FileBookmark -> !Maybe Bool
- Model: [fileBookmarkShared] :: FileBookmark -> !Bool
- Model: [fileBookmarkTags] :: FileBookmark -> !Text
- Model: [fileBookmarkTime] :: FileBookmark -> !UTCTime
- Model: [fileBookmarkToRead] :: FileBookmark -> !Bool
- Model: [fileNoteCreatedAt] :: FileNote -> !UTCTime
- Model: [fileNoteId] :: FileNote -> !Text
- Model: [fileNoteLength] :: FileNote -> !Int
- Model: [fileNoteText] :: FileNote -> !Text
- Model: [fileNoteTitle] :: FileNote -> !Text
- Model: [fileNoteUpdatedAt] :: FileNote -> !UTCTime
- Model: [firefoxBookmarkChildren] :: FFBookmarkNode -> Maybe [FFBookmarkNode]
- Model: [firefoxBookmarkDateAdded] :: FFBookmarkNode -> !POSIXTime
- Model: [firefoxBookmarkGuid] :: FFBookmarkNode -> !Text
- Model: [firefoxBookmarkIconUri] :: FFBookmarkNode -> !Maybe Text
- Model: [firefoxBookmarkId] :: FFBookmarkNode -> !Int
- Model: [firefoxBookmarkIndex] :: FFBookmarkNode -> !Int
- Model: [firefoxBookmarkLastModified] :: FFBookmarkNode -> !POSIXTime
- Model: [firefoxBookmarkRoot] :: FFBookmarkNode -> !Maybe Text
- Model: [firefoxBookmarkTitle] :: FFBookmarkNode -> !Text
- Model: [firefoxBookmarkTypeCode] :: FFBookmarkNode -> !Int
- Model: [firefoxBookmarkType] :: FFBookmarkNode -> !Text
- Model: [firefoxBookmarkUri] :: FFBookmarkNode -> !Maybe Text
- Model: _toBookmark :: UserId -> BookmarkForm -> IO Bookmark
- Model: _toBookmarkForm :: (Entity Bookmark, [Entity BookmarkTag]) -> BookmarkForm
- Model: _toBookmarkForm' :: (Entity Bookmark, Maybe Text) -> BookmarkForm
- Model: bookmarkTofileBookmark :: Bookmark -> Text -> FileBookmark
- Model: boolFromYesNo :: Text -> Bool
- Model: boolToYesNo :: Bool -> Text
- Model: data AccountSettingsForm
- Model: data BookmarkForm
- Model: data FFBookmarkNode
- Model: data FileBookmark
- Model: data FileNote
- Model: data Suggestion
- Model: data TagSuggestionRequest
- Model: data TagSuggestionResponse
- Model: exportFileBookmarks :: Key User -> FilePath -> DB ()
- Model: fileBookmarkToBookmark :: UserId -> FileBookmark -> IO Bookmark
- Model: fileNoteToNote :: UserId -> FileNote -> IO Note
- Model: firefoxBookmarkNodeToBookmark :: UserId -> FFBookmarkNode -> IO [Bookmark]
- Model: gDefaultFormOptions :: Options
- Model: getFileBookmarks :: Key User -> DB [FileBookmark]
- Model: getTagSuggestions :: Key User -> TagSuggestionRequest -> Int -> DB TagSuggestionResponse
- Model: insertDirFileNotes :: Key User -> FilePath -> DB (Either String Int)
- Model: insertFFBookmarks :: Key User -> FilePath -> DB (Either String Int)
- Model: insertFileBookmarks :: Key User -> FilePath -> DB (Either String Int)
- Model: instance Data.Aeson.Types.FromJSON.FromJSON Model.AccountSettingsForm
- Model: instance Data.Aeson.Types.FromJSON.FromJSON Model.BookmarkForm
- Model: instance Data.Aeson.Types.FromJSON.FromJSON Model.FFBookmarkNode
- Model: instance Data.Aeson.Types.FromJSON.FromJSON Model.FileBookmark
- Model: instance Data.Aeson.Types.FromJSON.FromJSON Model.FileNote
- Model: instance Data.Aeson.Types.FromJSON.FromJSON Model.Suggestion
- Model: instance Data.Aeson.Types.FromJSON.FromJSON Model.TagSuggestionRequest
- Model: instance Data.Aeson.Types.FromJSON.FromJSON Model.TagSuggestionResponse
- Model: instance Data.Aeson.Types.ToJSON.ToJSON Model.AccountSettingsForm
- Model: instance Data.Aeson.Types.ToJSON.ToJSON Model.BookmarkForm
- Model: instance Data.Aeson.Types.ToJSON.ToJSON Model.FileBookmark
- Model: instance Data.Aeson.Types.ToJSON.ToJSON Model.FileNote
- Model: instance Data.Aeson.Types.ToJSON.ToJSON Model.Suggestion
- Model: instance Data.Aeson.Types.ToJSON.ToJSON Model.TagSuggestionRequest
- Model: instance Data.Aeson.Types.ToJSON.ToJSON Model.TagSuggestionResponse
- Model: instance Database.Persist.Class.PersistEntity.SymbolToField "apiToken" Model.User (GHC.Maybe.Maybe ModelCustom.HashedApiKey)
- Model: instance Database.Persist.Class.PersistEntity.SymbolToField "passwordHash" Model.User ModelCustom.BCrypt
- Model: instance Database.Persist.Class.PersistEntity.SymbolToField "slug" Model.Bookmark ModelCustom.BmSlug
- Model: instance Database.Persist.Class.PersistEntity.SymbolToField "slug" Model.Note ModelCustom.NtSlug
- Model: instance GHC.Classes.Eq Model.AccountSettingsForm
- Model: instance GHC.Classes.Eq Model.BookmarkForm
- Model: instance GHC.Classes.Eq Model.FFBookmarkNode
- Model: instance GHC.Classes.Eq Model.FileBookmark
- Model: instance GHC.Classes.Eq Model.FileNote
- Model: instance GHC.Classes.Eq Model.Suggestion
- Model: instance GHC.Classes.Eq Model.TagSuggestionRequest
- Model: instance GHC.Classes.Eq Model.TagSuggestionResponse
- Model: instance GHC.Classes.Ord Model.FFBookmarkNode
- Model: instance GHC.Classes.Ord Model.FileBookmark
- Model: instance GHC.Classes.Ord Model.FileNote
- Model: instance GHC.Generics.Generic Model.AccountSettingsForm
- Model: instance GHC.Generics.Generic Model.BookmarkForm
- Model: instance GHC.Generics.Generic Model.Suggestion
- Model: instance GHC.Generics.Generic Model.TagSuggestionRequest
- Model: instance GHC.Generics.Generic Model.TagSuggestionResponse
- Model: instance GHC.Read.Read Model.AccountSettingsForm
- Model: instance GHC.Read.Read Model.BookmarkForm
- Model: instance GHC.Read.Read Model.Suggestion
- Model: instance GHC.Read.Read Model.TagSuggestionRequest
- Model: instance GHC.Read.Read Model.TagSuggestionResponse
- Model: instance GHC.Show.Show Model.AccountSettingsForm
- Model: instance GHC.Show.Show Model.BookmarkForm
- Model: instance GHC.Show.Show Model.FFBookmarkNode
- Model: instance GHC.Show.Show Model.FileBookmark
- Model: instance GHC.Show.Show Model.FileNote
- Model: instance GHC.Show.Show Model.Suggestion
- Model: instance GHC.Show.Show Model.TagSuggestionRequest
- Model: instance GHC.Show.Show Model.TagSuggestionResponse
- Model: readFFBookmarks :: MonadIO m => FilePath -> m (Either String FFBookmarkNode)
- Model: readFileBookmarks :: MonadIO m => FilePath -> m (Either String [FileBookmark])
- Model: readFileNoteTime :: MonadFail m => String -> m UTCTime
- Model: showFileNoteTime :: UTCTime -> String
- Model: toAccountSettingsForm :: User -> AccountSettingsForm
- Model: toBookmarkFormList :: [(Entity Bookmark, Maybe Text)] -> [BookmarkForm]
- Model: updateUserFromAccountSettingsForm :: Key User -> AccountSettingsForm -> DB ()
- ModelCustom: ApiKey :: Text -> ApiKey
- ModelCustom: BCrypt :: Text -> BCrypt
- ModelCustom: BmSlug :: Text -> BmSlug
- ModelCustom: HashedApiKey :: Text -> HashedApiKey
- ModelCustom: NtSlug :: Text -> NtSlug
- ModelCustom: [unApiKey] :: ApiKey -> Text
- ModelCustom: [unBCrypt] :: BCrypt -> Text
- ModelCustom: [unBmSlug] :: BmSlug -> Text
- ModelCustom: [unNtSlug] :: NtSlug -> Text
- ModelCustom: generateApiKey :: IO ApiKey
- ModelCustom: hashApiKey :: ApiKey -> HashedApiKey
- ModelCustom: hashPassword :: Text -> IO BCrypt
- ModelCustom: instance Data.Aeson.Types.FromJSON.FromJSON ModelCustom.BCrypt
- ModelCustom: instance Data.Aeson.Types.FromJSON.FromJSON ModelCustom.BmSlug
- ModelCustom: instance Data.Aeson.Types.FromJSON.FromJSON ModelCustom.HashedApiKey
- ModelCustom: instance Data.Aeson.Types.FromJSON.FromJSON ModelCustom.NtSlug
- ModelCustom: instance Data.Aeson.Types.ToJSON.ToJSON ModelCustom.BCrypt
- ModelCustom: instance Data.Aeson.Types.ToJSON.ToJSON ModelCustom.BmSlug
- ModelCustom: instance Data.Aeson.Types.ToJSON.ToJSON ModelCustom.HashedApiKey
- ModelCustom: instance Data.Aeson.Types.ToJSON.ToJSON ModelCustom.NtSlug
- ModelCustom: instance Database.Persist.Class.PersistField.PersistField ModelCustom.BCrypt
- ModelCustom: instance Database.Persist.Class.PersistField.PersistField ModelCustom.BmSlug
- ModelCustom: instance Database.Persist.Class.PersistField.PersistField ModelCustom.HashedApiKey
- ModelCustom: instance Database.Persist.Class.PersistField.PersistField ModelCustom.NtSlug
- ModelCustom: instance Database.Persist.Sql.Class.PersistFieldSql ModelCustom.BCrypt
- ModelCustom: instance Database.Persist.Sql.Class.PersistFieldSql ModelCustom.BmSlug
- ModelCustom: instance Database.Persist.Sql.Class.PersistFieldSql ModelCustom.HashedApiKey
- ModelCustom: instance Database.Persist.Sql.Class.PersistFieldSql ModelCustom.NtSlug
- ModelCustom: instance GHC.Classes.Eq ModelCustom.BCrypt
- ModelCustom: instance GHC.Classes.Eq ModelCustom.BmSlug
- ModelCustom: instance GHC.Classes.Eq ModelCustom.HashedApiKey
- ModelCustom: instance GHC.Classes.Eq ModelCustom.NtSlug
- ModelCustom: instance GHC.Classes.Ord ModelCustom.BCrypt
- ModelCustom: instance GHC.Classes.Ord ModelCustom.BmSlug
- ModelCustom: instance GHC.Classes.Ord ModelCustom.HashedApiKey
- ModelCustom: instance GHC.Classes.Ord ModelCustom.NtSlug
- ModelCustom: instance GHC.Read.Read ModelCustom.BmSlug
- ModelCustom: instance GHC.Read.Read ModelCustom.NtSlug
- ModelCustom: instance GHC.Show.Show ModelCustom.BCrypt
- ModelCustom: instance GHC.Show.Show ModelCustom.BmSlug
- ModelCustom: instance GHC.Show.Show ModelCustom.HashedApiKey
- ModelCustom: instance GHC.Show.Show ModelCustom.NtSlug
- ModelCustom: mkBmSlug :: IO BmSlug
- ModelCustom: mkNtSlug :: IO NtSlug
- ModelCustom: mkSlug :: Int -> IO Text
- ModelCustom: newtype ApiKey
- ModelCustom: newtype BCrypt
- ModelCustom: newtype BmSlug
- ModelCustom: newtype HashedApiKey
- ModelCustom: newtype NtSlug
- ModelCustom: policy :: HashingPolicy
- ModelCustom: validatePasswordHash :: BCrypt -> Text -> Bool
- PathPiece: instance Web.PathPieces.PathPiece ModelCustom.BmSlug
- PathPiece: instance Web.PathPieces.PathPiece ModelCustom.NtSlug
- Settings.StaticFiles: js_app_OTQLPXA7_min_js :: StaticRoute
- Settings.StaticFiles: js_app_OTQLPXA7_min_js_gz :: StaticRoute
- Settings.StaticFiles: js_app_OTQLPXA7_min_js_map :: StaticRoute
- Settings.StaticFiles: js_app_OTQLPXA7_min_js_map_gz :: StaticRoute
+ Archiver.ArchiveBox07: archiveBox07Backend :: AppSettings -> ConnectionPool -> LogFunc -> IO (Maybe ArchiverBackend)
+ Archiver.Backend: ArchiverBackend :: (Key User -> Key Bookmark -> UserAgent -> Url -> IO ()) -> (Url -> Bool) -> ArchiverBackend
+ Archiver.Backend: [isUrlDenylisted] :: ArchiverBackend -> Url -> Bool
+ Archiver.Backend: [runArchiver] :: ArchiverBackend -> Key User -> Key Bookmark -> UserAgent -> Url -> IO ()
+ Archiver.Backend: data ArchiverBackend
+ Archiver.Debug: debugArchiverBackend :: LogFunc -> ArchiverBackend
+ Archiver.WaybackMachine: waybackMachineBackend :: Text -> Text -> ConnectionPool -> Manager -> LogFunc -> ArchiverBackend
+ Foundation: [appArchiver] :: App -> Maybe ArchiverBackend
+ Handler.Archive: postArchiveBookmarkR :: Int64 -> Handler ()
+ Handler.Common: browserUserAgent :: UserAgent
+ Handler.Common: espialUserAgent :: Handler UserAgent
+ Model: Url :: Text -> Url
+ Model: UserAgent :: Text -> UserAgent
+ Model: [unUrl] :: Url -> Text
+ Model: [unUserAgent] :: UserAgent -> Text
+ Model: instance Database.Persist.Class.PersistEntity.SymbolToField "apiToken" Model.User (GHC.Maybe.Maybe Model.Custom.HashedApiKey)
+ Model: instance Database.Persist.Class.PersistEntity.SymbolToField "passwordHash" Model.User Model.Custom.BCrypt
+ Model: instance Database.Persist.Class.PersistEntity.SymbolToField "slug" Model.Bookmark Model.Custom.BmSlug
+ Model: instance Database.Persist.Class.PersistEntity.SymbolToField "slug" Model.Note Model.Custom.NtSlug
+ Model: instance GHC.Classes.Eq Model.Url
+ Model: instance GHC.Classes.Eq Model.UserAgent
+ Model: instance GHC.Read.Read Model.Url
+ Model: instance GHC.Read.Read Model.UserAgent
+ Model: instance GHC.Show.Show Model.Url
+ Model: instance GHC.Show.Show Model.UserAgent
+ Model: newtype Url
+ Model: newtype UserAgent
+ Model.Custom: ApiKey :: Text -> ApiKey
+ Model.Custom: BCrypt :: Text -> BCrypt
+ Model.Custom: BmSlug :: Text -> BmSlug
+ Model.Custom: HashedApiKey :: Text -> HashedApiKey
+ Model.Custom: NtSlug :: Text -> NtSlug
+ Model.Custom: [unApiKey] :: ApiKey -> Text
+ Model.Custom: [unBCrypt] :: BCrypt -> Text
+ Model.Custom: [unBmSlug] :: BmSlug -> Text
+ Model.Custom: [unNtSlug] :: NtSlug -> Text
+ Model.Custom: generateApiKey :: IO ApiKey
+ Model.Custom: hashApiKey :: ApiKey -> HashedApiKey
+ Model.Custom: hashPassword :: Text -> IO BCrypt
+ Model.Custom: instance Data.Aeson.Types.FromJSON.FromJSON Model.Custom.BCrypt
+ Model.Custom: instance Data.Aeson.Types.FromJSON.FromJSON Model.Custom.BmSlug
+ Model.Custom: instance Data.Aeson.Types.FromJSON.FromJSON Model.Custom.HashedApiKey
+ Model.Custom: instance Data.Aeson.Types.FromJSON.FromJSON Model.Custom.NtSlug
+ Model.Custom: instance Data.Aeson.Types.ToJSON.ToJSON Model.Custom.BCrypt
+ Model.Custom: instance Data.Aeson.Types.ToJSON.ToJSON Model.Custom.BmSlug
+ Model.Custom: instance Data.Aeson.Types.ToJSON.ToJSON Model.Custom.HashedApiKey
+ Model.Custom: instance Data.Aeson.Types.ToJSON.ToJSON Model.Custom.NtSlug
+ Model.Custom: instance Database.Persist.Class.PersistField.PersistField Model.Custom.BCrypt
+ Model.Custom: instance Database.Persist.Class.PersistField.PersistField Model.Custom.BmSlug
+ Model.Custom: instance Database.Persist.Class.PersistField.PersistField Model.Custom.HashedApiKey
+ Model.Custom: instance Database.Persist.Class.PersistField.PersistField Model.Custom.NtSlug
+ Model.Custom: instance Database.Persist.Sql.Class.PersistFieldSql Model.Custom.BCrypt
+ Model.Custom: instance Database.Persist.Sql.Class.PersistFieldSql Model.Custom.BmSlug
+ Model.Custom: instance Database.Persist.Sql.Class.PersistFieldSql Model.Custom.HashedApiKey
+ Model.Custom: instance Database.Persist.Sql.Class.PersistFieldSql Model.Custom.NtSlug
+ Model.Custom: instance GHC.Classes.Eq Model.Custom.BCrypt
+ Model.Custom: instance GHC.Classes.Eq Model.Custom.BmSlug
+ Model.Custom: instance GHC.Classes.Eq Model.Custom.HashedApiKey
+ Model.Custom: instance GHC.Classes.Eq Model.Custom.NtSlug
+ Model.Custom: instance GHC.Classes.Ord Model.Custom.BCrypt
+ Model.Custom: instance GHC.Classes.Ord Model.Custom.BmSlug
+ Model.Custom: instance GHC.Classes.Ord Model.Custom.HashedApiKey
+ Model.Custom: instance GHC.Classes.Ord Model.Custom.NtSlug
+ Model.Custom: instance GHC.Read.Read Model.Custom.BmSlug
+ Model.Custom: instance GHC.Read.Read Model.Custom.NtSlug
+ Model.Custom: instance GHC.Show.Show Model.Custom.BCrypt
+ Model.Custom: instance GHC.Show.Show Model.Custom.BmSlug
+ Model.Custom: instance GHC.Show.Show Model.Custom.HashedApiKey
+ Model.Custom: instance GHC.Show.Show Model.Custom.NtSlug
+ Model.Custom: mkBmSlug :: IO BmSlug
+ Model.Custom: mkNtSlug :: IO NtSlug
+ Model.Custom: mkSlug :: Int -> IO Text
+ Model.Custom: newtype ApiKey
+ Model.Custom: newtype BCrypt
+ Model.Custom: newtype BmSlug
+ Model.Custom: newtype HashedApiKey
+ Model.Custom: newtype NtSlug
+ Model.Custom: policy :: HashingPolicy
+ Model.Custom: validatePasswordHash :: BCrypt -> Text -> Bool
+ Model.FileBookmark: FileBookmark :: !Text -> !Text -> !Text -> !UTCTime -> !Bool -> !Bool -> !Maybe Bool -> !Maybe Text -> !Text -> FileBookmark
+ Model.FileBookmark: [fileBookmarkArchiveHref] :: FileBookmark -> !Maybe Text
+ Model.FileBookmark: [fileBookmarkDescription] :: FileBookmark -> !Text
+ Model.FileBookmark: [fileBookmarkExtended] :: FileBookmark -> !Text
+ Model.FileBookmark: [fileBookmarkHref] :: FileBookmark -> !Text
+ Model.FileBookmark: [fileBookmarkSelected] :: FileBookmark -> !Maybe Bool
+ Model.FileBookmark: [fileBookmarkShared] :: FileBookmark -> !Bool
+ Model.FileBookmark: [fileBookmarkTags] :: FileBookmark -> !Text
+ Model.FileBookmark: [fileBookmarkTime] :: FileBookmark -> !UTCTime
+ Model.FileBookmark: [fileBookmarkToRead] :: FileBookmark -> !Bool
+ Model.FileBookmark: bookmarkTofileBookmark :: Bookmark -> Text -> FileBookmark
+ Model.FileBookmark: boolFromYesNo :: Text -> Bool
+ Model.FileBookmark: boolToYesNo :: Bool -> Text
+ Model.FileBookmark: data FileBookmark
+ Model.FileBookmark: exportFileBookmarks :: Key User -> FilePath -> DB ()
+ Model.FileBookmark: fileBookmarkToBookmark :: UserId -> FileBookmark -> IO Bookmark
+ Model.FileBookmark: insertFileBookmarks :: Key User -> FilePath -> DB (Either String Int)
+ Model.FileBookmark: instance Data.Aeson.Types.FromJSON.FromJSON Model.FileBookmark.FileBookmark
+ Model.FileBookmark: instance Data.Aeson.Types.ToJSON.ToJSON Model.FileBookmark.FileBookmark
+ Model.FileBookmark: instance GHC.Classes.Eq Model.FileBookmark.FileBookmark
+ Model.FileBookmark: instance GHC.Classes.Ord Model.FileBookmark.FileBookmark
+ Model.FileBookmark: instance GHC.Show.Show Model.FileBookmark.FileBookmark
+ Model.FileBookmark: readFileBookmarks :: MonadIO m => FilePath -> m (Either String [FileBookmark])
+ Model.FileFirefox: FirefoxBookmarkNode :: Maybe [FirefoxBookmarkNode] -> !POSIXTime -> !Text -> !Maybe Text -> !Int -> !Int -> !POSIXTime -> !Maybe Text -> !Text -> !Text -> !Int -> !Maybe Text -> FirefoxBookmarkNode
+ Model.FileFirefox: [firefoxBookmarkChildren] :: FirefoxBookmarkNode -> Maybe [FirefoxBookmarkNode]
+ Model.FileFirefox: [firefoxBookmarkDateAdded] :: FirefoxBookmarkNode -> !POSIXTime
+ Model.FileFirefox: [firefoxBookmarkGuid] :: FirefoxBookmarkNode -> !Text
+ Model.FileFirefox: [firefoxBookmarkIconUri] :: FirefoxBookmarkNode -> !Maybe Text
+ Model.FileFirefox: [firefoxBookmarkId] :: FirefoxBookmarkNode -> !Int
+ Model.FileFirefox: [firefoxBookmarkIndex] :: FirefoxBookmarkNode -> !Int
+ Model.FileFirefox: [firefoxBookmarkLastModified] :: FirefoxBookmarkNode -> !POSIXTime
+ Model.FileFirefox: [firefoxBookmarkRoot] :: FirefoxBookmarkNode -> !Maybe Text
+ Model.FileFirefox: [firefoxBookmarkTitle] :: FirefoxBookmarkNode -> !Text
+ Model.FileFirefox: [firefoxBookmarkTypeCode] :: FirefoxBookmarkNode -> !Int
+ Model.FileFirefox: [firefoxBookmarkType] :: FirefoxBookmarkNode -> !Text
+ Model.FileFirefox: [firefoxBookmarkUri] :: FirefoxBookmarkNode -> !Maybe Text
+ Model.FileFirefox: data FirefoxBookmarkNode
+ Model.FileFirefox: firefoxBookmarkNodeToBookmark :: UserId -> FirefoxBookmarkNode -> IO [Bookmark]
+ Model.FileFirefox: insertFirefoxBookmarks :: Key User -> FilePath -> DB (Either String Int)
+ Model.FileFirefox: instance Data.Aeson.Types.FromJSON.FromJSON Model.FileFirefox.FirefoxBookmarkNode
+ Model.FileFirefox: instance GHC.Classes.Eq Model.FileFirefox.FirefoxBookmarkNode
+ Model.FileFirefox: instance GHC.Classes.Ord Model.FileFirefox.FirefoxBookmarkNode
+ Model.FileFirefox: instance GHC.Show.Show Model.FileFirefox.FirefoxBookmarkNode
+ Model.FileFirefox: readFirefoxBookmarks :: MonadIO m => FilePath -> m (Either String FirefoxBookmarkNode)
+ Model.FileNetscape: NetscapeBookmark :: !Text -> !Text -> !Text -> !Text -> !UTCTime -> NetscapeBookmark
+ Model.FileNetscape: [nsbDescription] :: NetscapeBookmark -> !Text
+ Model.FileNetscape: [nsbHref] :: NetscapeBookmark -> !Text
+ Model.FileNetscape: [nsbTags] :: NetscapeBookmark -> !Text
+ Model.FileNetscape: [nsbTime] :: NetscapeBookmark -> !UTCTime
+ Model.FileNetscape: [nsbTitle] :: NetscapeBookmark -> !Text
+ Model.FileNetscape: _parseNetscapeLink :: Text -> Maybe NetscapeBookmark
+ Model.FileNetscape: bookmarkToNetscapeBookmark :: Bookmark -> Text -> NetscapeBookmark
+ Model.FileNetscape: data NetscapeBookmark
+ Model.FileNetscape: exportNetscapeBookmarks :: Key User -> FilePath -> DB ()
+ Model.FileNetscape: insertNetscapeBookmarks :: Key User -> FilePath -> DB (Either String Int)
+ Model.FileNetscape: instance GHC.Classes.Eq Model.FileNetscape.NetscapeBookmark
+ Model.FileNetscape: instance GHC.Classes.Ord Model.FileNetscape.NetscapeBookmark
+ Model.FileNetscape: instance GHC.Show.Show Model.FileNetscape.NetscapeBookmark
+ Model.FileNetscape: netscapeBookmarkToBookmark :: UserId -> NetscapeBookmark -> IO Bookmark
+ Model.FileNetscape: parseNetscapeBookmarks :: Text -> Either String [NetscapeBookmark]
+ Model.FileNetscape: renderNetscapeBookmarks :: [NetscapeBookmark] -> Text
+ Model.FileNote: FileNote :: !Text -> !Text -> !Text -> !Int -> !UTCTime -> !UTCTime -> FileNote
+ Model.FileNote: [fileNoteCreatedAt] :: FileNote -> !UTCTime
+ Model.FileNote: [fileNoteId] :: FileNote -> !Text
+ Model.FileNote: [fileNoteLength] :: FileNote -> !Int
+ Model.FileNote: [fileNoteText] :: FileNote -> !Text
+ Model.FileNote: [fileNoteTitle] :: FileNote -> !Text
+ Model.FileNote: [fileNoteUpdatedAt] :: FileNote -> !UTCTime
+ Model.FileNote: data FileNote
+ Model.FileNote: fileNoteToNote :: UserId -> FileNote -> IO Note
+ Model.FileNote: insertDirFileNotes :: Key User -> FilePath -> DB (Either String Int)
+ Model.FileNote: instance Data.Aeson.Types.FromJSON.FromJSON Model.FileNote.FileNote
+ Model.FileNote: instance Data.Aeson.Types.ToJSON.ToJSON Model.FileNote.FileNote
+ Model.FileNote: instance GHC.Classes.Eq Model.FileNote.FileNote
+ Model.FileNote: instance GHC.Classes.Ord Model.FileNote.FileNote
+ Model.FileNote: instance GHC.Show.Show Model.FileNote.FileNote
+ Model.FileNote: readFileNoteTime :: MonadFail m => String -> m UTCTime
+ Model.FileNote: showFileNoteTime :: UTCTime -> String
+ Model.Form: AccountSettingsForm :: Bool -> Bool -> Bool -> Bool -> Bool -> AccountSettingsForm
+ Model.Form: BookmarkForm :: Text -> Maybe Text -> Maybe Textarea -> Maybe Text -> Maybe Bool -> Maybe Bool -> Maybe Int64 -> Maybe BmSlug -> Maybe Bool -> Maybe UTCTimeStr -> Maybe Text -> Maybe Bool -> BookmarkForm
+ Model.Form: Suggestion :: Text -> Int -> Suggestion
+ Model.Form: TagSuggestionRequest :: Text -> Maybe [Text] -> TagSuggestionRequest
+ Model.Form: TagSuggestionResponse :: [Suggestion] -> TagSuggestionResponse
+ Model.Form: [_archiveBackendEnabled] :: AccountSettingsForm -> Bool
+ Model.Form: [_archiveDefault] :: AccountSettingsForm -> Bool
+ Model.Form: [_archiveRequested] :: BookmarkForm -> Maybe Bool
+ Model.Form: [_archiveUrl] :: BookmarkForm -> Maybe Text
+ Model.Form: [_bid] :: BookmarkForm -> Maybe Int64
+ Model.Form: [_count] :: Suggestion -> Int
+ Model.Form: [_currentTags] :: TagSuggestionRequest -> Maybe [Text]
+ Model.Form: [_description] :: BookmarkForm -> Maybe Textarea
+ Model.Form: [_privacyLock] :: AccountSettingsForm -> Bool
+ Model.Form: [_privateDefault] :: AccountSettingsForm -> Bool
+ Model.Form: [_private] :: BookmarkForm -> Maybe Bool
+ Model.Form: [_query] :: TagSuggestionRequest -> Text
+ Model.Form: [_selected] :: BookmarkForm -> Maybe Bool
+ Model.Form: [_slug] :: BookmarkForm -> Maybe BmSlug
+ Model.Form: [_suggestTags] :: AccountSettingsForm -> Bool
+ Model.Form: [_suggestions] :: TagSuggestionResponse -> [Suggestion]
+ Model.Form: [_tags] :: BookmarkForm -> Maybe Text
+ Model.Form: [_term] :: Suggestion -> Text
+ Model.Form: [_time] :: BookmarkForm -> Maybe UTCTimeStr
+ Model.Form: [_title] :: BookmarkForm -> Maybe Text
+ Model.Form: [_toread] :: BookmarkForm -> Maybe Bool
+ Model.Form: [_url] :: BookmarkForm -> Text
+ Model.Form: _toBookmarkForm' :: (Entity Bookmark, Maybe Text) -> BookmarkForm
+ Model.Form: bookmarkFormToBookmark :: UserId -> BookmarkForm -> IO Bookmark
+ Model.Form: data AccountSettingsForm
+ Model.Form: data BookmarkForm
+ Model.Form: data Suggestion
+ Model.Form: data TagSuggestionRequest
+ Model.Form: data TagSuggestionResponse
+ Model.Form: gDefaultFormOptions :: Options
+ Model.Form: getTagSuggestions :: Key User -> TagSuggestionRequest -> Int -> DB TagSuggestionResponse
+ Model.Form: instance Data.Aeson.Types.FromJSON.FromJSON Model.Form.AccountSettingsForm
+ Model.Form: instance Data.Aeson.Types.FromJSON.FromJSON Model.Form.BookmarkForm
+ Model.Form: instance Data.Aeson.Types.FromJSON.FromJSON Model.Form.Suggestion
+ Model.Form: instance Data.Aeson.Types.FromJSON.FromJSON Model.Form.TagSuggestionRequest
+ Model.Form: instance Data.Aeson.Types.FromJSON.FromJSON Model.Form.TagSuggestionResponse
+ Model.Form: instance Data.Aeson.Types.ToJSON.ToJSON Model.Form.AccountSettingsForm
+ Model.Form: instance Data.Aeson.Types.ToJSON.ToJSON Model.Form.BookmarkForm
+ Model.Form: instance Data.Aeson.Types.ToJSON.ToJSON Model.Form.Suggestion
+ Model.Form: instance Data.Aeson.Types.ToJSON.ToJSON Model.Form.TagSuggestionRequest
+ Model.Form: instance Data.Aeson.Types.ToJSON.ToJSON Model.Form.TagSuggestionResponse
+ Model.Form: instance GHC.Classes.Eq Model.Form.AccountSettingsForm
+ Model.Form: instance GHC.Classes.Eq Model.Form.BookmarkForm
+ Model.Form: instance GHC.Classes.Eq Model.Form.Suggestion
+ Model.Form: instance GHC.Classes.Eq Model.Form.TagSuggestionRequest
+ Model.Form: instance GHC.Classes.Eq Model.Form.TagSuggestionResponse
+ Model.Form: instance GHC.Generics.Generic Model.Form.AccountSettingsForm
+ Model.Form: instance GHC.Generics.Generic Model.Form.BookmarkForm
+ Model.Form: instance GHC.Generics.Generic Model.Form.Suggestion
+ Model.Form: instance GHC.Generics.Generic Model.Form.TagSuggestionRequest
+ Model.Form: instance GHC.Generics.Generic Model.Form.TagSuggestionResponse
+ Model.Form: instance GHC.Read.Read Model.Form.AccountSettingsForm
+ Model.Form: instance GHC.Read.Read Model.Form.BookmarkForm
+ Model.Form: instance GHC.Read.Read Model.Form.Suggestion
+ Model.Form: instance GHC.Read.Read Model.Form.TagSuggestionRequest
+ Model.Form: instance GHC.Read.Read Model.Form.TagSuggestionResponse
+ Model.Form: instance GHC.Show.Show Model.Form.AccountSettingsForm
+ Model.Form: instance GHC.Show.Show Model.Form.BookmarkForm
+ Model.Form: instance GHC.Show.Show Model.Form.Suggestion
+ Model.Form: instance GHC.Show.Show Model.Form.TagSuggestionRequest
+ Model.Form: instance GHC.Show.Show Model.Form.TagSuggestionResponse
+ Model.Form: mkNewBookmarkForm :: Bool -> User -> Text -> Maybe Text -> Maybe Textarea -> Maybe Text -> Maybe Bool -> Maybe Bool -> BookmarkForm
+ Model.Form: toAccountSettingsForm :: Bool -> User -> AccountSettingsForm
+ Model.Form: toBookmarkForm :: (Entity Bookmark, [Entity BookmarkTag]) -> BookmarkForm
+ Model.Form: toBookmarkFormListForViewer :: Bool -> [(Entity Bookmark, Maybe Text)] -> [BookmarkForm]
+ Model.Form: updateUserFromAccountSettingsForm :: Key User -> AccountSettingsForm -> DB ()
+ PathPiece: instance Web.PathPieces.PathPiece Model.Custom.BmSlug
+ PathPiece: instance Web.PathPieces.PathPiece Model.Custom.NtSlug
+ Settings: ArchiveBackendArchiveBox07 :: ArchiveBackend
+ Settings: ArchiveBackendArchiveLi :: ArchiveBackend
+ Settings: ArchiveBackendDebug :: ArchiveBackend
+ Settings: ArchiveBackendDisabled :: ArchiveBackend
+ Settings: ArchiveBackendWaybackMachine :: ArchiveBackend
+ Settings: [appArchiveBackend] :: AppSettings -> ArchiveBackend
+ Settings: [appArchiveBoxPassword] :: AppSettings -> Maybe Text
+ Settings: [appArchiveBoxPlugins] :: AppSettings -> Maybe Text
+ Settings: [appArchiveBoxPublicUrl] :: AppSettings -> Maybe Text
+ Settings: [appArchiveBoxTag] :: AppSettings -> Text
+ Settings: [appArchiveBoxUrl] :: AppSettings -> Maybe Text
+ Settings: [appArchiveBoxUsername] :: AppSettings -> Maybe Text
+ Settings: [appWaybackMachineAccessKey] :: AppSettings -> Maybe Text
+ Settings: [appWaybackMachineSecretKey] :: AppSettings -> Maybe Text
+ Settings: data ArchiveBackend
+ Settings: instance Data.Aeson.Types.FromJSON.FromJSON Settings.ArchiveBackend
+ Settings: instance GHC.Classes.Eq Settings.ArchiveBackend
+ Settings: instance GHC.Show.Show Settings.ArchiveBackend
+ Settings.StaticFiles: css_common_css :: StaticRoute
+ Settings.StaticFiles: js_app_F6AR6563_min_js :: StaticRoute
+ Settings.StaticFiles: js_app_F6AR6563_min_js_gz :: StaticRoute
+ Settings.StaticFiles: js_app_F6AR6563_min_js_map :: StaticRoute
+ Settings.StaticFiles: js_app_F6AR6563_min_js_map_gz :: StaticRoute
- Foundation: App :: AppSettings -> Static -> Text -> ConnectionPool -> Manager -> Logger -> App
+ Foundation: App :: AppSettings -> Static -> Text -> ConnectionPool -> Manager -> Logger -> Maybe ArchiverBackend -> App
- Handler.Archive: archiveBookmarkUrl :: Key Bookmark -> String -> Handler ()
+ Handler.Archive: archiveBookmarkUrl :: Key Bookmark -> Url -> Handler ()
- Handler.Archive: shouldArchiveBookmark :: User -> Key Bookmark -> Handler Bool
+ Handler.Archive: shouldArchiveBookmark :: Bookmark -> Handler Bool
- Model: bookmarksTagsQuery :: Key User -> SharedP -> FilterP -> [Tag] -> Maybe Text -> Limit -> Page -> DB (Int, [(Entity Bookmark, Maybe Text)])
+ Model: bookmarksTagsQuery :: Key User -> Bool -> SharedP -> FilterP -> [Tag] -> Maybe Text -> Limit -> Page -> DB (Int, [(Entity Bookmark, Maybe Text)])
- Settings: AppSettings :: String -> SqliteConf -> Maybe Text -> HostPreference -> Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Text -> Maybe Text -> Bool -> Maybe Text -> Maybe Int -> Maybe Text -> Bool -> Bool -> AppSettings
+ Settings: AppSettings :: String -> SqliteConf -> Maybe Text -> HostPreference -> Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Text -> Maybe Text -> Bool -> Maybe Text -> Maybe Int -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Text -> Maybe Text -> ArchiveBackend -> Maybe Text -> Bool -> Bool -> AppSettings
Files
- README.md +227/−50
- app/migration/Main.hs +62/−18
- changelog.md +56/−0
- config/routes +1/−0
- config/settings.yml +15/−1
- espial.cabal +18/−7
- frontend/package-lock.json +25/−25
- frontend/package.json +6/−6
- frontend/src/api.ts +6/−0
- frontend/src/components/AccountSettings.tsx +16/−4
- frontend/src/components/AddForm.tsx +61/−20
- frontend/src/components/BList.tsx +1/−0
- frontend/src/components/BMark.tsx +68/−37
- frontend/src/components/Markdown.tsx +1/−0
- frontend/src/components/NList.tsx +3/−2
- frontend/src/components/NNote.tsx +11/−10
- frontend/src/components/TagCloud.tsx +9/−8
- frontend/src/components/TagSuggestionsDropdown.tsx +3/−3
- frontend/src/globals.ts +17/−2
- frontend/src/index.tsx +32/−1
- frontend/src/types.ts +43/−1
- frontend/src/util.ts +2/−2
- src/Application.hs +119/−73
- src/Archiver/ArchiveBox07.hs +345/−0
- src/Archiver/Backend.hs +10/−0
- src/Archiver/Debug.hs +19/−0
- src/Archiver/WaybackMachine.hs +72/−0
- src/Foundation.hs +10/−4
- src/Generic.hs +5/−5
- src/Handler/AccountSettings.hs +4/−2
- src/Handler/Add.hs +88/−53
- src/Handler/Archive.hs +34/−142
- src/Handler/Common.hs +46/−29
- src/Handler/Docs.hs +3/−2
- src/Handler/Edit.hs +0/−1
- src/Handler/Home.hs +1/−1
- src/Handler/Notes.hs +0/−1
- src/Handler/User.hs +9/−5
- src/Import/NoFoundation.hs +2/−1
- src/Model.hs +27/−454
- src/Model/Custom.hs +79/−0
- src/Model/File.hs +12/−0
- src/Model/FileBookmark.hs +131/−0
- src/Model/FileFirefox.hs +89/−0
- src/Model/FileNetscape.hs +209/−0
- src/Model/FileNote.hs +90/−0
- src/Model/Form.hs +235/−0
- src/ModelCustom.hs +0/−78
- src/PathPiece.hs +6/−6
- src/Pretty.hs +3/−3
- src/Settings.hs +143/−87
- src/Settings/StaticFiles.hs +1/−1
- static/css/common.css +349/−0
- static/css/main.css +97/−158
- static/css/popup.css +14/−48
- static/js/app-F6AR6563.min.js +72/−0
- static/js/app-F6AR6563.min.js.gz binary
- static/js/app-F6AR6563.min.js.map +7/−0
- static/js/app-F6AR6563.min.js.map.gz binary
- static/js/app-OTQLPXA7.min.js +0/−72
- static/js/app-OTQLPXA7.min.js.gz binary
- static/js/app-OTQLPXA7.min.js.map +0/−7
- static/js/app-OTQLPXA7.min.js.map.gz binary
- static/js/manifest.json +1/−1
- templates/change-password.hamlet +4/−4
- templates/default-layout-wrapper.hamlet +16/−2
- templates/default-layout.hamlet +9/−4
- templates/docs-search.hamlet +27/−27
- templates/login.hamlet +5/−5
- templates/notes.hamlet +6/−6
- templates/pager.hamlet +3/−3
- templates/popup-layout.hamlet +5/−0
- templates/search.hamlet +2/−2
- templates/user-settings.hamlet +1/−1
- templates/user.hamlet +17/−17
README.md view
@@ -8,98 +8,275 @@ The easist way for logged-in users to add bookmarks, is with the "bookmarklet", found on the Settings page. -Also, see the android app for adding bookmarks via an Android Share intent https://github.com/jonschoning/espial-share-android -## demo server+## Demo Server -log in — username: demo password: demo+Log in with: -https://esp.ae8.org/u:demo+- username: `demo`+- password: `demo` -+https://espdemo.ae8.org/u:demo -## Docker Setup+ -see https://github.com/jonschoning/espial-docker -## Server Setup (from source)+## Installation +### Docker Setup++See:++https://github.com/jonschoning/espial-docker++### Server Setup (From Source)+ 1. Install the Stack executable here:- - https://tech.fpcomplete.com/haskell/get-started+ - https://tech.fpcomplete.com/haskell/get-started+2. Build executables: -2. Build executables- - ```- stack build- ```+```bash+stack build+``` -3. Create the database+3. Create the database: - ```- stack exec migration -- createdb --conn espial.sqlite3- ```+```bash+stack exec migration -- createdb+``` -4. Create a user+4. Create a user: - ```- stack exec migration -- createuser --conn espial.sqlite3 --userName myusername --userPassword myuserpassword- ```+```bash+stack exec migration -- createuser --userName myusername --userPassword myuserpassword+``` -5. Import a pinboard bookmark file for a user (optional)+5. Import a pinboard bookmark file for a user (optional): - ```- stack exec migration -- importbookmarks --conn espial.sqlite3 --userName myusername --bookmarkFile sample-bookmarks.json- ```+```bash+stack exec migration -- importbookmarks --userName myusername --bookmarkFile sample-bookmarks.json+``` -6. Import a firefox bookmark file for a user (optional)+6. Import a firefox bookmark file for a user (optional): - ```- stack exec migration -- importfirefoxbookmarks --conn espial.sqlite3 --userName myusername --bookmarkFile firefox-bookmarks.json- ```+```bash+stack exec migration -- importfirefoxbookmarks --userName myusername --bookmarkFile firefox-bookmarks.json+``` 7. Start a production server: +```bash+stack exec espial+```++## Configuration++See `config/settings.yml` for changing default run-time parameters & environment variables.++- `config/settings.yml` is embedded into the app executable when compiled and also read once when the app starts. Current settings in `config/settings.yml` will override the embedded compile-time settings.+- `config/settings.yml` values formatted like `_env:ENV_VAR_NAME:default_value` can be overridden by the specified environment variable.+- Example:+ - `_env:PORT:3000`+ - environment variable `PORT`+ - default app http port: `3000`++### Request IP Logging++Espial supports the `IP_FROM_HEADER` environment variable for request logging.++- `IP_FROM_HEADER=true`: log the client IP from the `X-Real-IP` or `X-Forwarded-For` header when present, and fall back to the peer address if neither header is available.+- `IP_FROM_HEADER=false`: log the peer address from the HTTP connection.++Only set `IP_FROM_HEADER=true` if your application is safely positioned **behind a trusted reverse proxy**.++### SSL / Reverse Proxy++Espial does not terminate TLS itself. Run it behind a reverse proxy that handles HTTPS and forwards traffic to Espial over HTTP.++For container-based deployment examples, including production-oriented layouts, see the `espial-docker` repository:++- https://github.com/jonschoning/espial-docker++Minimal [Caddy](https://github.com/caddyserver/caddy) example:++Localhost without a real domain:++```caddyfile+https://localhost:3050 {+ reverse_proxy localhost:3000+}+```++or with a domain:++```caddyfile+espial.example.com {+ reverse_proxy 127.0.0.1:3000+}+```++With the domain setup:++- Caddy terminates TLS for `espial.example.com`.+- Espial continues listening on HTTP, locally on `127.0.0.1:3000`+ - If using Docker Compose, it would like like `espial:3000`+- Set `IP_FROM_HEADER=true` only when Espial is reachable solely through that trusted proxy.++If you are using Cloudflare:++- Prefer Cloudflare SSL mode `Full (strict)`.+- use `header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}`+- If traffic can reach Espial directly without passing through your trusted proxy, do not enable `IP_FROM_HEADER=true`, because client IP headers can be spoofed.++## Archive Backends++Espial supports configurable archive backends for saving bookmark snapshots.++Set the backend with `archive-backend` in `config/settings.yml`:++- `disabled`: archiving is turned off (default).+- `wayback-machine`: enables submission to the Internet Archive Wayback Machine.++ Wayback Machine support requires the following settings:++ - `wayback-machine-access-key`+ - `wayback-machine-secret-key`++ Create these by signing in to your Internet Archive account and generating S3-style API credentials at `https://archive.org/account/s3.php`. \+ If `wayback-machine` is selected but the access key or secret key is missing, archiving is disabled at runtime.++- `archivebox07`: queues the URL in a local ArchiveBox 0.7 instance and stores an ArchiveBox link on the bookmark.++ **IMPORTANT - ArchiveBox stores all archive data in a single global index space, so this arcive-backend is best suited to single-user Espial instances.**+++ **Recommended setup is to use Docker Compose to run the ArchiveBox instance**++ - Simple example, running on localhost: [docker-compose.archivebox07.yml](docker-compose.archivebox07.yml)+ - See https://github.com/jonschoning/espial-docker for more examples intended for deployment+ - In all examples, you must change the `ARCHIVEBOX_PASSWORD` from it's default value.++ ArchiveBox support requires the following settings:++ - `archivebox-url`++ `archivebox-url` is the URL espial uses to sign in to ArchiveBox and submit URLs through the web UI. In Docker Compose this is typically `http://archivebox:8000`.++ - `archivebox-public-url` (optional)++ Public ArchiveBox URL stored on bookmarks.++ - `archivebox-username` plus `archivebox-password`++ Espial signs in to the ArchiveBox web UI with these credentials before submitting URLs.++ - `archivebox-tag` (optional)++ A tag Espial adds to submissions (example: `espial`).++ - `archivebox-plugins` (optional)++ Comma-separated list of ArchiveBox methods (plugins) to request when submitting URLs, e.g. `title,favicon,singlefile,screenshot`.++ Set the ArchiveBox admin credentials in the override path by supplying:++ - `ARCHIVEBOX_USERNAME=...`+ - `ARCHIVEBOX_PASSWORD=...`++ The `Makefile` includes the following helpers:+ - `docker-compose-up-archivebox07`+ - `docker-compose-up-d-archivebox07`+ - `docker-compose-exec-archivebox07`+ + Or start the instance manually via docker compose, example:++ ```bash+ docker compose -f docker-compose.archivebox07.yml up ```- stack exec espial++ Configure the enrivonment variable `ARCHIVE_METHODS` to control which archive methods ArchiveBox uses:++ ```yaml+ environment:+ - ARCHIVE_METHODS=title,favicon,singlefile,screenshot ``` -### Configuration+ Available ARCHIVE_METHODS plugins: -See `config/settings.yml` for changing default run-time parameters & environment variables.- - `config/settings.yml` is embedded into the app executable when compiled, so after changing `config/settings.yml`, run `stack build` again to apply the new settings.- - `config/settings.yml` values formatted like `_env:ENV_VAR_NAME:default_value` can be- overridden by the specified environment variable.- - Example- - `_env:PORT:3000`- - environment variable `PORT`- - default app http port: `3000`+ - `archive_org`, `dom`, `favicon`, `git`, `headers`, `htmltotext`, `media`, `mercury`, `pdf`, `readability`, `screenshot`, `singlefile`, `title`, `wget` -SSL: use reverse proxy+ If `ARCHIVE_METHODS` is unset/not-present, ArchiveBox will uses all plugins. -## Development + For additional information and configuration, refer to the [ArchiveBox repository](https://github.com/ArchiveBox/ArchiveBox) +Optional proxy settings for archive requests:++- `archive-socks-proxy-host`+- `archive-socks-proxy-port`+++## Related Projects++Also, see the android app for adding bookmarks via an Android Share intent:++https://github.com/jonschoning/espial-share-android++## Development+ ### Backend -- Install the `yesod` command line tool: `stack install yesod-bin --install-ghc`+- Install the `yesod` command line tool: +```bash+stack install yesod-bin --install-ghc+``` - Start a development server: - ```- yesod devel- ```+```bash+yesod devel+``` ### Frontend - See `frontend/` folder -## Import Bookmark file format (pinboard compatible format)--see `sample-bookmarks.json`, which contains a JSON array, each line containing a `FileBookmark` object. +## CLI -example:+Migration commands are run via: +```bash+stack exec migration -- <command> [options] ```++All commands take an optional `--conn` parameter for the database location; if omitted, the database location is loaded from `config/settings.yml`.++### Commands++| Command | Example |+| --- | --- |+| `createdb` | `stack exec migration -- createdb` |+| `createuser` | `stack exec migration -- createuser --userName myusername --userPassword myuserpassword` |+| `createuser` (password file) | `stack exec migration -- createuser --userName myusername --userPasswordFile mypassword.txt` |+| `deleteuser` | `stack exec migration -- deleteuser --userName myusername` |+| `createapikey` | `stack exec migration -- createapikey --userName myusername` |+| `deleteapikey` | `stack exec migration -- deleteapikey --userName myusername` |+| `importbookmarks` | `stack exec migration -- importbookmarks --userName myusername --bookmarkFile sample-bookmarks.json` |+| `importfirefoxbookmarks` | `stack exec migration -- importfirefoxbookmarks --userName myusername --bookmarkFile firefox-bookmarks.json` |+| `importnetscapebookmarks` | `stack exec migration -- importnetscapebookmarks --userName myusername --bookmarkFile bookmarks.html` |+| `importnotes` | `stack exec migration -- importnotes --userName myusername --noteDirectory ./notes` |+| `exportbookmarks` | `stack exec migration -- exportbookmarks --userName myusername --bookmarkFile exported-bookmarks.json` |+| `exportnetscapebookmarks` | `stack exec migration -- exportnetscapebookmarks --userName myusername --bookmarkFile exported-bookmarks.html` |+| `printmigratedb` | `stack exec migration -- printmigratedb` |+| `showuser` | `stack exec migration -- showuser --userName myusername` |++### `importbookmarks` Command Notes:++See `sample-bookmarks.json`, which contains a JSON array, each line containing a `FileBookmark` object.++Example:++```json [ {"href":"http://raganwald.com/2018/02/23/forde.html","description":"Forde's Tenth Rule, or, \"How I Learned to Stop Worrying and \u2764\ufe0f the State Machine\"","extended":"","time":"2018-02-26T22:57:20Z","shared":"yes","toread":"yes","tags":"raganwald"}, , {"href":"http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/flags.html","description":"7.6. Flag reference \u2014 Glasgow Haskell Compiler 8.2.2 User's Guide","extended":"-fprint-expanded-synonyms","time":"2018-02-26T21:52:02Z","shared":"yes","toread":"no","tags":"ghc haskell"}, ]
app/migration/Main.hs view
@@ -6,9 +6,12 @@ import qualified Data.Text as T import qualified Database.Persist as P import qualified Database.Persist.Sqlite as P+import Import (configSettingsYmlValue) import Lens.Micro import Model-import ModelCustom+import Model.Custom+import Model.File+import Model.FileNetscape (exportNetscapeBookmarks) import qualified Options.Applicative as OA import Options.Applicative.Help (suggestionsHelp) import Options.Generic@@ -48,16 +51,26 @@ userName :: Text, bookmarkFile :: FilePath }+ | ExportBookmarks+ { conn :: Maybe Text,+ userName :: Text,+ bookmarkFile :: FilePath+ } | ImportFirefoxBookmarks { conn :: Maybe Text, userName :: Text, bookmarkFile :: FilePath }- | ExportBookmarks+ | ImportNetscapeBookmarks { conn :: Maybe Text, userName :: Text, bookmarkFile :: FilePath }+ | ExportNetscapeBookmarks+ { conn :: Maybe Text,+ userName :: Text,+ bookmarkFile :: FilePath+ } | ImportNotes { conn :: Maybe Text, userName :: Text,@@ -71,20 +84,18 @@ main :: IO () main = do args <- getRecord "Migrations"- connText <-- maybe- (P.sqlDatabase . appDatabaseConf <$> loadYamlSettings [configSettingsYml] [] useEnv)- pure- (conn args) case args of- PrintMigrateDB {..} ->+ PrintMigrateDB {..} -> do+ connText <- getConnText conn P.runSqlite connText dumpMigration CreateDB {..} -> do+ connText <- getConnText conn let connInfo = P.mkSqliteConnectionInfo connText & set P.fkEnabled False P.runSqliteInfo connInfo runMigrations- CreateUser {..} ->+ CreateUser {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do passwordText <- liftIO . fmap T.strip $ case userPassword of PasswordText s -> pure s@@ -101,13 +112,15 @@ UserPrivacyLock P.=. fromMaybe False privacyLock ] pure () :: DB ()- ShowUser {..} ->+ ShowUser {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do muser <- P.getBy (UniqueUserName userName) case muser of Nothing -> liftIO (print (userName ++ " not found")) Just (P.Entity _ user) -> liftIO (putStrLn (formatUserSummary user))- CreateApiKey {..} ->+ CreateApiKey {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do apiKey@(ApiKey plainKey) <- liftIO generateApiKey muser <- P.getBy (UniqueUserName userName)@@ -119,14 +132,16 @@ let hashedKey = hashApiKey apiKey P.update uid [UserApiToken P.=. Just hashedKey] liftIO $ print plainKey- DeleteApiKey {..} ->+ DeleteApiKey {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do muser <- P.getBy (UniqueUserName userName) case muser of Nothing -> liftIO (print (userName ++ " not found")) Just (P.Entity uid _) -> do P.update uid [UserApiToken P.=. Nothing]- DeleteUser {..} ->+ DeleteUser {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do muser <- P.getBy (UniqueUserName userName) case muser of@@ -134,13 +149,15 @@ Just (P.Entity uid _) -> do P.delete uid pure () :: DB ()- ExportBookmarks {..} ->+ ExportBookmarks {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do muser <- P.getBy (UniqueUserName userName) case muser of Just (P.Entity uid _) -> exportFileBookmarks uid bookmarkFile Nothing -> liftIO (print (userName ++ "not found"))- ImportBookmarks {..} ->+ ImportBookmarks {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do muser <- P.getBy (UniqueUserName userName) case muser of@@ -150,17 +167,19 @@ Left e -> liftIO (print e) Right n -> liftIO (print (show n ++ " bookmarks imported.")) Nothing -> liftIO (print (userName ++ "not found"))- ImportFirefoxBookmarks {..} ->+ ImportFirefoxBookmarks {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do muser <- P.getBy (UniqueUserName userName) case muser of Just (P.Entity uid _) -> do- result <- insertFFBookmarks uid bookmarkFile+ result <- insertFirefoxBookmarks uid bookmarkFile case result of Left e -> liftIO (print e) Right n -> liftIO (print (show n ++ " bookmarks imported.")) Nothing -> liftIO (print (userName ++ "not found"))- ImportNotes {..} ->+ ImportNotes {..} -> do+ connText <- getConnText conn P.runSqlite connText $ do muser <- P.getBy (UniqueUserName userName) case muser of@@ -170,7 +189,32 @@ Left e -> liftIO (print e) Right n -> liftIO (print (show n ++ " notes imported.")) Nothing -> liftIO (print (userName ++ "not found"))+ ImportNetscapeBookmarks {..} -> do+ connText <- getConnText conn+ P.runSqlite connText $ do+ muser <- P.getBy (UniqueUserName userName)+ case muser of+ Just (P.Entity uid _) -> do+ result <- insertNetscapeBookmarks uid bookmarkFile+ case result of+ Left e -> liftIO (print e)+ Right n -> liftIO (print (show n ++ " bookmarks imported."))+ Nothing -> liftIO (print (userName ++ "not found"))+ ExportNetscapeBookmarks {..} -> do+ connText <- getConnText conn+ P.runSqlite connText $ do+ muser <- P.getBy (UniqueUserName userName)+ case muser of+ Just (P.Entity uid _) -> exportNetscapeBookmarks uid bookmarkFile+ Nothing -> liftIO (print (userName ++ "not found")) where+ getConnText :: Maybe Text -> IO Text+ getConnText mconn =+ maybe+ (P.sqlDatabase . appDatabaseConf <$> loadYamlSettings [configSettingsYml] [configSettingsYmlValue] useEnv)+ pure+ mconn+ formatUserSummary :: User -> Text formatUserSummary User {..} = intercalate
changelog.md view
@@ -1,5 +1,61 @@ # Changelog +## v0.0.34 (2026-06-11)++- fix serialization bug in Add bookmark handler (introduced in v0.0.33)++## v0.0.33 (2026-06-08)++- add new `archive-backend`: `archivebox07`+ - additional documentation in readme+- add new archive-related elements on UI (visible when `archive-backend` is enabled)+ - add url popup: `archive` checkbox (only displays for new bookmarks)+ - when `Account Settings`: `Archive new non-Private bookmarks by default` is checked, the Archive checkbox is checked by default+ - upon submission, the archive backend will run if checked+ - bookmark edit form: `archive` button+ - when clicked, immediately sends a request to the archive backend+ - when a bookmark is marked as private, the archive checkbox/archive button are disabled+ - `Account Settings`: `Privacy Lock (Private Account)` only controls authorization to view user's content on espial; it has no effect on whether bookmarks are archived.+- update shared libs in runtime docker image+- add docker compose examples++## v0.0.32 (2026-05-28)++- change runtime docker image from `jonschoning/espial:scratch` to `gcr.io/distroless/base-debian12`+- fix css for 404 page++## v0.0.31 (2026-05-27)++- use values in `config/settings.yml` at run-time (on app startup), instead of only the values from compile-time embedding of `config/settings.yml`+- add Archive Backend: `wayback-machine`+ - add Wayback Machine Backend-related settings:+ - `wayback-machine-access-key`+ - `wayback-machine-secret-key`+- remove Archive Backend: `archive-li`+- only show the archive link icon on the user's bookmark page if the the `archiveUrl` exists+- adjust dark-mode link visited color and toggle+- hide status of starred, to-read, and archive properties of bookmarks when not viewed by the bookmark owner++## v0.0.30 (2026-05-24)++- add Dark Mode (fixes #59)++## v0.0.29 (2026-05-07)++- Extend migration to add commands: `importnetscapebookmarks`, `exportnetscapebookmarks` (fixes #30)+- fix migration command `ImportBookmarks` (pinboard import file) parsing bug to handle when the description is a boolean (fixes #32)+- tag suggestions: when a tag exactly matches an existing tag, it will appear first in the suggestion list++## v0.0.28 (2026-05-06)++- add new app setting: `archive-backend: "_env:ARCHIVE_BACKEND:disabled"`+ - default to `disabled`, since `archive-li` appears to no longer be working due to added captchas+ - when archiving is disabled, the `Archive Non-Private Bookmarks` Account Setting is also disabled in the UI++## v0.0.27 (2026-05-05)++- prevent private tags (starts with ".") from showing on public bookmark listing for a user if not owned+ ## v0.0.26 (2026-05-04) - Add Tag Suggestion when adding/editing bookmarks.
config/routes view
@@ -48,6 +48,7 @@ /bm/#Int64/read ReadR POST /bm/#Int64/star StarR POST /bm/#Int64/unstar UnstarR POST+/bm/#Int64/archive ArchiveBookmarkR POST -- doc /docs/search DocsSearchR GET
config/settings.yml view
@@ -35,10 +35,24 @@ poolsize: "_env:SQLITE_POOLSIZE:10" copyright: Insert copyright statement here-#analytics: UA-YOURCODE+# analytics: UA-YOURCODE +archive-backend: "_env:ARCHIVE_BACKEND:disabled"+# archive-backend: "_env:ARCHIVE_BACKEND:wayback-machine"+# archive-backend: "_env:ARCHIVE_BACKEND:archivebox07"+ archive-socks-proxy-host: "_env:ARCHIVE_SOCKS_PROXY_HOST" archive-socks-proxy-port: "_env:ARCHIVE_SOCKS_PROXY_PORT"++wayback-machine-access-key: "_env:WAYBACK_MACHINE_ACCESS_KEY" # Wayback Machine S3 access key, used when archive-backend is set to wayback-machine.+wayback-machine-secret-key: "_env:WAYBACK_MACHINE_SECRET_KEY" # Wayback Machine S3 secret key, used when archive-backend is set to wayback-machine.++archivebox-url: "_env:ARCHIVEBOX_URL" # ArchiveBox base URL espial uses internally for login/add, e.g. http://archivebox:8000 inside docker compose.+archivebox-public-url: "_env:ARCHIVEBOX_PUBLIC_URL" # Public ArchiveBox URL stored on bookmarks, e.g. http://localhost:8000.+archivebox-username: "_env:ARCHIVEBOX_USERNAME" # ArchiveBox admin username used when archive-backend is set to archivebox.+archivebox-password: "_env:ARCHIVEBOX_PASSWORD" # ArchiveBox admin password used when archive-backend is set to archivebox.+archivebox-tag: "_env:ARCHIVEBOX_TAG:espial"+archivebox-plugins: "_env:ARCHIVEBOX_PLUGINS:title,favicon,singlefile,screenshot" # Comma-separated list of ArchiveBox plugins to run when espial adds a URL to ArchiveBox. source-code-uri: "_env:SOURCE_CODE_URI:https://github.com/jonschoning/espial"
espial.cabal view
@@ -1,11 +1,11 @@-cabal-version: 1.12 +cabal-version: 1.12 -- This file has been generated from package.yaml by hpack version 0.39.1. -- -- see: https://github.com/sol/hpack name: espial-version: 0.0.26+version: 0.0.34 synopsis: Espial is an open-source, web-based bookmarking server. description: Espial is an open-source, web-based bookmarking server. - Yesod + TypeScript + sqlite3@@ -42,6 +42,7 @@ templates/search.hamlet templates/user-settings.hamlet templates/user.hamlet+ static/css/common.css static/css/main.css static/css/popup.css static/css/tachyons.min.css@@ -51,10 +52,10 @@ static/fonts/glyphicons-halflings-regular.ttf static/fonts/glyphicons-halflings-regular.woff static/images/bluepin.gif- static/js/app-OTQLPXA7.min.js- static/js/app-OTQLPXA7.min.js.gz- static/js/app-OTQLPXA7.min.js.map- static/js/app-OTQLPXA7.min.js.map.gz+ static/js/app-F6AR6563.min.js+ static/js/app-F6AR6563.min.js.gz+ static/js/app-F6AR6563.min.js.map+ static/js/app-F6AR6563.min.js.map.gz static/js/js.cookie-2.2.0.min.js static/js/js.cookie-2.2.0.min.js.gz static/js/manifest.json@@ -103,6 +104,10 @@ library exposed-modules: Application+ Archiver.ArchiveBox07+ Archiver.Backend+ Archiver.Debug+ Archiver.WaybackMachine Foundation Generic Handler.AccountSettings@@ -117,7 +122,13 @@ Import Import.NoFoundation Model- ModelCustom+ Model.Custom+ Model.File+ Model.FileBookmark+ Model.FileFirefox+ Model.FileNetscape+ Model.FileNote+ Model.Form PathPiece Pretty Settings
frontend/package-lock.json view
@@ -6,18 +6,18 @@ "": { "name": "espial", "dependencies": {- "dompurify": "^3.4.1",+ "dompurify": "^3.4.7", "ky": "^2.0.2",- "marked": "^18.0.2",+ "marked": "^18.0.4", "moment": "^2.30.1",- "react": "^19.1.0",- "react-dom": "^19.1.0",- "zustand": "^5.0.8"+ "react": "^19.2.6",+ "react-dom": "^19.2.6",+ "zustand": "^5.0.13" }, "devDependencies": { "@eslint/js": "^9.0.0", "@types/dompurify": "^3.0.5",- "@types/react": "^19.2.14",+ "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", "@typescript-eslint/eslint-plugin": "^8.59.0", "@typescript-eslint/parser": "^8.59.0",@@ -820,9 +820,9 @@ "license": "MIT" }, "node_modules/@types/react": {- "version": "19.2.14",- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",- "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",+ "version": "19.2.15",+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.15.tgz",+ "integrity": "sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==", "devOptional": true, "license": "MIT", "dependencies": {@@ -1616,9 +1616,9 @@ } }, "node_modules/dompurify": {- "version": "3.4.1",- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.1.tgz",- "integrity": "sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw==",+ "version": "3.4.7",+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.7.tgz",+ "integrity": "sha512-2jBxDJY4RR06tQNy4w5FlFH7kfxsQZlufd0sbv+chfHCxeJwrFw2baUDsSwvBISD4K4RDbd0PTfy3uNXsR6siA==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7"@@ -3385,9 +3385,9 @@ "license": "MIT" }, "node_modules/marked": {- "version": "18.0.2",- "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.2.tgz",- "integrity": "sha512-NsmlUYBS/Zg57rgDWMYdnre6OTj4e+qq/JS2ot3KrYLSoHLw+sDu0Nm1ZGpRgYAq6c+b1ekaY5NzVchMCQnzcg==",+ "version": "18.0.4",+ "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.4.tgz",+ "integrity": "sha512-c/BTaKzg0G6ezQx97DAkYU7k0HM6ys0FqYeKBL6hlBByZwy+ycA1+f0vDdjMHKKeEjdgkx0GOv9Il6D+85cOqA==", "license": "MIT", "bin": { "marked": "bin/marked.js"@@ -3884,24 +3884,24 @@ "license": "MIT" }, "node_modules/react": {- "version": "19.2.5",- "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",- "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",+ "version": "19.2.6",+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.6.tgz",+ "integrity": "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": {- "version": "19.2.5",- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",- "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==",+ "version": "19.2.6",+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.6.tgz",+ "integrity": "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": {- "react": "^19.2.5"+ "react": "^19.2.6" } }, "node_modules/rechoir": {@@ -4845,9 +4845,9 @@ } }, "node_modules/zustand": {- "version": "5.0.12",- "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.12.tgz",- "integrity": "sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==",+ "version": "5.0.13",+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.13.tgz",+ "integrity": "sha512-efI2tVaVQPqtOh114loML/Z80Y4NP3yc+Ff0fYiZJPauNeWZeIp/bRFD7I9bfmCOYBh/PHxlglQ9+wvlwnPikQ==", "license": "MIT", "engines": { "node": ">=12.20.0"
frontend/package.json view
@@ -16,7 +16,7 @@ "devDependencies": { "@eslint/js": "^9.0.0", "@types/dompurify": "^3.0.5",- "@types/react": "^19.2.14",+ "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", "@typescript-eslint/eslint-plugin": "^8.59.0", "@typescript-eslint/parser": "^8.59.0",@@ -35,12 +35,12 @@ "typescript-eslint": "^8.59.0" }, "dependencies": {- "dompurify": "^3.4.1",+ "dompurify": "^3.4.7", "ky": "^2.0.2",- "marked": "^18.0.2",+ "marked": "^18.0.4", "moment": "^2.30.1",- "react": "^19.1.0",- "react-dom": "^19.1.0",- "zustand": "^5.0.8"+ "react": "^19.2.6",+ "react-dom": "^19.2.6",+ "zustand": "^5.0.13" } }
frontend/src/api.ts view
@@ -67,6 +67,12 @@ }); } +export async function archiveBookmark(bid: number): Promise<void> {+ await request('POST', `bm/${bid.toString()}/archive`, {+ headers: { 'content-type': 'application/x-www-form-urlencoded' },+ });+}+ export async function editBookmark( bm: Bookmark, ): Promise<{ ok: boolean; status: number; bodyText: string }> {
frontend/src/components/AccountSettings.tsx view
@@ -3,8 +3,11 @@ import { editAccountSettings } from '../api'; import type { AccountSettings } from '../types'; +/** Displays and edits the current user's account settings. */ export function AccountSettingsView({ initial }: { initial: AccountSettings }) { const [us, setUs] = React.useState<AccountSettings>(initial);+ const archiveDisabled = !us.archiveBackendEnabled;+ const archiveDisabledTitle = archiveDisabled ? 'Archiving Disabled' : undefined; async function update(next: AccountSettings) { setUs(next);@@ -15,17 +18,26 @@ <div className="settings-form"> <div className="fw7 mb2">Account Settings</div> - <div className="flex items-center mb2">+ <div+ className={`flex items-center mb2${archiveDisabled ? ' o-50' : ''}`}+ title={archiveDisabledTitle}+ > <input type="checkbox"- className="pointer mr2"+ className={`mr2${archiveDisabled ? '' : ' pointer'}`} id="archiveDefault" name="archiveDefault" checked={us.archiveDefault}+ disabled={archiveDisabled}+ title={archiveDisabledTitle} onChange={(e) => void update({ ...us, archiveDefault: e.target.checked })} />- <label htmlFor="archiveDefault" className="lh-copy">- Archive Non-Private Bookmarks (archive.li)+ <label+ htmlFor="archiveDefault"+ className={`lh-copy${archiveDisabled ? ' thm-text-tertiary' : ''}`}+ title={archiveDisabledTitle}+ >+ Archive new non-Private bookmarks by default </label> </div>
frontend/src/components/AddForm.tsx view
@@ -4,9 +4,10 @@ import { app, closeWindow, mmoment8601 } from '../globals'; import { useTagSuggestions } from '../hooks/useTagSuggestions'; import type { Bookmark } from '../types';-import { curQuerystring, lookupQueryStringValue } from '../util';+import { curQuerystring, lookupQueryStringValue, normalizeTags } from '../util'; import { TagSuggestionsDropdown } from './TagSuggestionsDropdown'; +/** Form for adding or editing a single bookmark, used in the popup window. */ export function AddForm({ initial }: { initial: Bookmark }) { const a = app(); const [bm, setBm] = React.useState<Bookmark>(initial);@@ -55,9 +56,11 @@ const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => { e.preventDefault(); setApiError(null);- const res = await editBookmark(editBm);+ const editBm2 = { ...editBm, tags: normalizeTags(editBm.tags) };++ const res = await editBookmark(editBm2); if (res.ok && res.status >= 200 && res.status < 300) {- setBm(editBm);+ setBm(editBm2); const qs = curQuerystring(); const next = lookupQueryStringValue(qs, 'next');@@ -76,7 +79,7 @@ } }; - if (destroyed) return <p className="red">you killed this bookmark</p>;+ if (destroyed) return <p className="thm-text-killed">you killed this bookmark</p>; return ( <form@@ -92,7 +95,10 @@ {bm.bid > 0 ? ( <div className="alert"> previously saved - <span className="link f7 dib gray pr3" title={mm?.[1] ?? bm.time}>+ <span+ className="link f7 dib thm-text-tertiary thm-hover-link-color pr3"+ title={mm?.[1] ?? bm.time}+ > {mm?.[0] ?? '\u00a0'} </span> <div className="edit_links dib ml1">@@ -107,7 +113,7 @@ > delete </button>- <span className="confirm red" hidden={!deleteAsk}>+ <span className="confirm thm-text-error" hidden={!deleteAsk}> <button type="button" onClick={() => {@@ -116,7 +122,11 @@ > cancel / </button>- <button type="button" onClick={() => void onDestroy()} className="red">+ <button+ type="button"+ onClick={() => void onDestroy()}+ className="thm-text-error"+ > destroy </button> </span>@@ -167,7 +177,7 @@ disabled={loading} type="button" onClick={() => void onFetchTitle()}- className={`ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0${loading ? 'bg-light-silver' : ''}`}+ className={`ml2 input-reset ba thm-border-primary pointer f6 di dim pa1 ma1 mr0${loading ? ' thm-bg-disabled' : ''}`} > fetch </button>@@ -180,7 +190,7 @@ </td> <td> <textarea- className="w-100 mt1 mid-gray"+ className="w-100 mt1 thm-text-secondary" id="description" name="description" rows={4}@@ -234,16 +244,47 @@ <label htmlFor="private">private</label> </td> <td>- <input- type="checkbox"- id="private"- className="private pointer"- name="private"- checked={editBm.private}- onChange={(e) => {- setEditBm((x) => ({ ...x, private: e.target.checked }));- }}- />+ <div className="mr4 dib">+ <input+ type="checkbox"+ id="private"+ className="private pointer"+ name="private"+ checked={editBm.private}+ onChange={(e) => {+ setEditBm((x) => ({+ ...x,+ private: e.target.checked,+ ...(a.dat.archiveBackendEnabled && editBm.archiveRequested && e.target.checked+ ? { archiveRequested: false }+ : {}),+ }));+ }}+ />+ </div>+ {!(bm.bid > 0) && a.dat.archiveBackendEnabled ? (+ <div+ className={`dib ${editBm.private ? 'o-50' : ''}`}+ title={+ editBm.private ? 'archiving is unavailable for private bookmarks' : undefined+ }+ >+ <label className="mr2 di" htmlFor="archiveRequested">+ archive+ </label>+ <input+ type="checkbox"+ id="archiveRequested"+ className="archive pointer ml2"+ name="archiveRequested"+ disabled={editBm.private}+ checked={editBm.archiveRequested ?? false}+ onChange={(e) => {+ setEditBm((x) => ({ ...x, archiveRequested: e.target.checked }));+ }}+ />+ </div>+ ) : null} </td> </tr> @@ -270,7 +311,7 @@ <td> <input type="submit"- className="ph3 pv2 input-reset black ba b--navy bg-transparent pointer f6 dib mt1 dim"+ className="ph3 pv2 input-reset thm-text-strong ba thm-border-primary bg-transparent pointer f6 dib mt1 dim" value={bm.bid > 0 ? 'update bookmark' : 'add bookmark'} /> </td>
frontend/src/components/BList.tsx view
@@ -4,6 +4,7 @@ import type { Bookmark } from '../types'; import { BMark } from './BMark'; +/** Renders the full list of bookmarks, delegating each item to BMark. */ export function BList({ initial }: { initial: Bookmark[] }) { const bmarks = useBookmarksStore((s) => s.bmarks); const setAll = useBookmarksStore((s) => s.setAll);
frontend/src/components/BMark.tsx view
@@ -1,6 +1,6 @@ import React from 'react'; -import { destroy, editBookmark, lookupTitle, markRead, toggleStar } from '../api';+import { archiveBookmark, destroy, editBookmark, lookupTitle, markRead, toggleStar } from '../api'; import { app, setFocus, toLocaleDateString } from '../globals'; import { useTagSuggestions } from '../hooks/useTagSuggestions'; import type { Bookmark } from '../types';@@ -8,6 +8,7 @@ import { Markdown } from './Markdown'; import { TagSuggestionsDropdown } from './TagSuggestionsDropdown'; +/** Displays a single bookmark with inline editing, starring, and deletion. */ export function BMark({ initial, onNotifyRemove,@@ -23,6 +24,7 @@ const [deleteAsk, setDeleteAsk] = React.useState(false); const [edit, setEdit] = React.useState(false); const [loading, setLoading] = React.useState(false);+ const [archiving, setArchiving] = React.useState(false); const [apiError, setApiError] = React.useState<string | null>(null); const tagInputId = `${bm.bid.toString()}_tags`;@@ -75,6 +77,7 @@ setEditBm(bm); setEdit(next); setApiError(null);+ setArchiving(false); closeSuggestions(); if (next) setFocus(tagInputId); }@@ -89,6 +92,11 @@ } } + async function onArchive() {+ setArchiving(true);+ await archiveBookmark(bm.bid);+ }+ const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => { e.preventDefault(); setApiError(null);@@ -101,12 +109,11 @@ onUpdated(editBm2); } else { setApiError(res.bodyText);- // match PS behavior: log error- // eslint-disable-next-line no-console- console.log(res.bodyText); } }; + const archivingDisabled = archiving || editBm.private || bm.url !== editBm.url;+ return ( <div id={String(bm.bid)}@@ -114,7 +121,11 @@ > {a.dat.isowner ? ( <div className={`star fl pointer${bm.selected ? ' selected' : ''}`}>- <button className="moon-gray" onClick={() => void onStar(!bm.selected)} type="button">+ <button+ className="thm-text-border"+ onClick={() => void onStar(!bm.selected)}+ type="button"+ > ✭ </button> </div>@@ -131,20 +142,22 @@ {bm.title === '' ? '[no title]' : bm.title} </a> <br />- <a href={bm.url} className="link f7 gray hover-blue">+ <a href={bm.url} className="link f7 thm-text-tertiary thm-hover-link-color"> {bm.url} </a>- <a- href={bm.archiveUrl ?? `http://archive.is/${bm.url}`}- className={`link f7 gray hover-blue ml2${bm.archiveUrl ? ' green' : ''}`}- target="_blank"- rel="noreferrer"- title="archive link"- >- {bm.archiveUrl ? '☑' : '☐'}- </a>+ {bm.archiveUrl ? (+ <a+ href={bm.archiveUrl}+ className="link f7 thm-text-tertiary thm-hover-link-color ml2 thm-text-success"+ target="_blank"+ rel="noreferrer"+ title="archive link"+ >+ ☑+ </a>+ ) : null} <br />- <div className="description mt1 mid-gray">+ <div className="description mt1 thm-text-secondary"> <Markdown text={bm.description} /> </div> <div className="tags">@@ -161,7 +174,11 @@ : null} </div> - <a className="link f7 dib gray w4" href={linkToFilterSingle(bm.slug)} title={shdatetime}>+ <a+ className="link f7 di mr5 thm-text-tertiary"+ href={linkToFilterSingle(bm.slug)}+ title={shdatetime}+ > {shdate} </a> @@ -172,7 +189,7 @@ onClick={() => { startEdit(true); }}- className="edit light-silver hover-blue"+ className="edit thm-text-muted thm-hover-link-color" > edit </button>@@ -182,11 +199,11 @@ onClick={() => { setDeleteAsk(true); }}- className={`delete light-silver hover-blue${deleteAsk ? ' dn' : ''}`}+ className={`delete thm-text-muted thm-hover-link-color${deleteAsk ? ' dn' : ''}`} > delete </button>- <span className={`confirm red${!deleteAsk ? ' dn' : ''}`}>+ <span className={`confirm thm-text-error${!deleteAsk ? ' dn' : ''}`}> <button type="button" onClick={() => {@@ -195,7 +212,7 @@ > cancel / </button>- <button type="button" onClick={() => void onDestroy()} className="red">+ <button type="button" onClick={() => void onDestroy()} className="thm-text-error"> destroy </button> </span>@@ -213,7 +230,7 @@ ) : null} </div> ) : (- <div className="edit_bookmark_form pa2 pt0 bg-white">+ <div className="edit_bookmark_form pa2 pt0 thm-bg-surface"> {apiError ? <div className="alert alert-err">{apiError}</div> : null} <form onSubmit={(e) => void onSubmit(e)}> <div>url</div>@@ -242,8 +259,8 @@ disabled={loading} type="button" onClick={() => void onFetchTitle()}- className={`ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7${- loading ? 'bg-light-silver' : ''+ className={`ml1 pa1 mb2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim f7${+ loading ? ' thm-bg-disabled' : '' }`} > fetch@@ -316,19 +333,33 @@ />{' '} <label htmlFor="edit_toread">to-read</label> </div>- <input- type="submit"- className="mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"- value="save"- />{' '}- <input- type="reset"- className="pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"- value="cancel"- onClick={() => {- startEdit(false);- }}- />+ <div className="flex justify-between items-center">+ <div>+ <input+ type="submit"+ className="mr1 pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim"+ value="save"+ />{' '}+ <input+ type="reset"+ className="pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim"+ value="cancel"+ onClick={() => {+ startEdit(false);+ }}+ />+ </div>+ {a.dat.archiveBackendEnabled ? (+ <button+ type="button"+ disabled={archivingDisabled}+ onClick={() => void onArchive()}+ className={`pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary${archiving ? ' thm-bg-disabled' : ''}${archivingDisabled ? ' not-allowed o-20' : ''}`}+ >+ {archiving ? 'archiving' : 'archive'}+ </button>+ ) : null}+ </div> </form> </div> )}
frontend/src/components/Markdown.tsx view
@@ -7,6 +7,7 @@ gfm: true, }); +/** Renders sanitized Markdown text as HTML. */ export function Markdown({ text, className }: { text: string; className?: string }) { const html = React.useMemo(() => { if (!text) return '';
frontend/src/components/NList.tsx view
@@ -19,6 +19,7 @@ ); } +/** Renders a list of note summaries with links to individual notes. */ export function NList({ initial }: { initial: Note[] }) { const a = app(); const linkToFilterSingle = (slug: string) => `${fromNullableStr(a.userR)}/notes/${slug}`;@@ -38,11 +39,11 @@ {note.title === '' ? '[no title]' : note.title} </a> <br />- <div className="description mt1 mid-gray">+ <div className="description mt1 thm-text-secondary"> {toTextareaPreview(note.text.slice(0, 200))} </div> <a- className="link f7 dib gray w4"+ className="link f7 dib thm-text-tertiary w4" title={mm?.[1] ?? note.created} href={linkToFilterSingle(note.slug)} >
frontend/src/components/NNote.tsx view
@@ -21,6 +21,7 @@ ); } +/** Displays a single note with inline editing and deletion, used in the popup window. */ export function NNote({ initial }: { initial: Note }) { const a = app(); @@ -76,7 +77,7 @@ } }; - if (destroyed) return <p className="red">you killed this note</p>;+ if (destroyed) return <p className="thm-text-error">you killed this note</p>; return ( <div id={String(note.id)} className="note w-100 mw7 pa1 mb2">@@ -90,12 +91,12 @@ <Markdown text={note.text} /> </div> ) : (- <div className="description mt1 mid-gray">{toTextarea(note.text)}</div>+ <div className="description mt1 thm-text-secondary">{toTextarea(note.text)}</div> )}- <div className="link f7 dib gray w4">+ <div className="link f7 dib thm-text-tertiary w4"> <span title={mm?.[1] ?? note.created}>{mm?.[0] ?? '\u00a0'}</span> {' - '}- <span className="gray">{note.shared ? 'public' : 'private'}</span>+ <span className="thm-text-tertiary">{note.shared ? 'public' : 'private'}</span> </div> </div> @@ -106,7 +107,7 @@ onClick={() => { startEdit(true); }}- className="edit light-silver hover-blue"+ className="edit thm-text-muted thm-hover-link-color" > edit </button>@@ -116,11 +117,11 @@ onClick={() => { setDeleteAsk(true); }}- className={`delete light-silver hover-blue${deleteAsk ? ' dn' : ''}`}+ className={`delete thm-text-muted thm-hover-link-color${deleteAsk ? ' dn' : ''}`} > delete </button>- <span className={`confirm red${!deleteAsk ? ' dn' : ''}`}>+ <span className={`confirm thm-text-error${!deleteAsk ? ' dn' : ''}`}> <button type="button" onClick={() => {@@ -129,7 +130,7 @@ > cancel / </button>- <button type="button" onClick={() => void onDestroy()} className="red">+ <button type="button" onClick={() => void onDestroy()} className="thm-text-error"> destroy </button> </span>@@ -201,12 +202,12 @@ </div> <input type="submit"- className="mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"+ className="mr1 pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim" value="save" />{' '} <input type="reset"- className="pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"+ className="pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim" value="cancel" onClick={() => { startEdit(false);
frontend/src/components/TagCloud.tsx view
@@ -80,6 +80,7 @@ return out; } +/** Displays the tag cloud, with controls to filter by top tags, frequency, or related tags. */ export function TagCloud({ initialMode }: { initialMode: TagCloudModeF }) { const mode = useTagCloudStore((s) => s.mode); const tagcloud = useTagCloudStore((s) => s.tagcloud);@@ -132,7 +133,7 @@ {isRelated(mode) ? ( <button type="button"- className="pa1 f7 link hover-blue mr1 b"+ className="pa1 f7 link thm-hover-link-color mr1 b" onClick={() => void onExpanded(!isExpanded(mode))} > Related Tags@@ -141,7 +142,7 @@ <> <button type="button"- className={`pa1 f7 link hover-blue mr1${JSON.stringify(mode) === JSON.stringify(modetop) ? ' b' : ''}`}+ className={`pa1 f7 link thm-hover-link-color mr1${JSON.stringify(mode) === JSON.stringify(modetop) ? ' b' : ''}`} title="show a cloud of your most-used tags" onClick={() => void onChangeMode(modetop)} >@@ -149,7 +150,7 @@ </button> <button type="button"- className={`pa1 f7 link hover-blue ml2 ${JSON.stringify(mode) === JSON.stringify(modelb1) ? ' b' : ''}`}+ className={`pa1 f7 link thm-hover-link-color ml2 ${JSON.stringify(mode) === JSON.stringify(modelb1) ? ' b' : ''}`} title="show all tags" onClick={() => void onChangeMode(modelb1)} >@@ -158,7 +159,7 @@ {'‧'} <button type="button"- className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb2) ? ' b' : ''}`}+ className={`pa1 f7 link thm-hover-link-color${JSON.stringify(mode) === JSON.stringify(modelb2) ? ' b' : ''}`} title="show tags with at least 2 bookmarks" onClick={() => void onChangeMode(modelb2)} >@@ -167,7 +168,7 @@ {'‧'} <button type="button"- className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb5) ? ' b' : ''}`}+ className={`pa1 f7 link thm-hover-link-color${JSON.stringify(mode) === JSON.stringify(modelb5) ? ' b' : ''}`} title="show tags with at least 5 bookmarks" onClick={() => void onChangeMode(modelb5)} >@@ -176,7 +177,7 @@ {'‧'} <button type="button"- className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb10) ? ' b' : ''}`}+ className={`pa1 f7 link thm-hover-link-color${JSON.stringify(mode) === JSON.stringify(modelb10) ? ' b' : ''}`} title="show tags with at least 10 bookmarks" onClick={() => void onChangeMode(modelb10)} >@@ -185,7 +186,7 @@ {'‧'} <button type="button"- className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb20) ? ' b' : ''}`}+ className={`pa1 f7 link thm-hover-link-color${JSON.stringify(mode) === JSON.stringify(modelb20) ? ' b' : ''}`} title="show tags with at least 20 bookmarks" onClick={() => void onChangeMode(modelb20)} >@@ -195,7 +196,7 @@ )} <button type="button"- className="pa1 ml2 f7 link silver hover-blue"+ className="pa1 ml2 f7 link thm-text-faded thm-hover-link-color" onClick={() => void onExpanded(!isExpanded(mode))} > {isExpanded(mode) ? 'hide' : 'show'}
frontend/src/components/TagSuggestionsDropdown.tsx view
@@ -15,7 +15,7 @@ }) { return ( <div- className="absolute z-5 bg-near-white dark-gray ba b--moon-gray br2 shadow-4 overflow-hidden f6"+ className="absolute z-5 thm-bg-secondary thm-text-primary ba thm-border-default br2 shadow-4 overflow-hidden f6" style={{ left: suggestionState.anchorLeft, top: suggestionState.anchorTop,@@ -30,7 +30,7 @@ <button key={`${item.term}-${item.count.toString()}`} type="button"- className={`flex items-center justify-between w-100 bn bg-transparent tl ph2 pv1 pointer nowrap dark-gray hover-blue ${selected ? 'bg-light-blue dark-blue' : ''}`}+ className={`flex items-center justify-between w-100 bn bg-transparent tl ph2 pv1 pointer nowrap thm-text-primary thm-hover-link-color ${selected ? 'thm-bg-selected thm-text-selected' : ''}`} onMouseEnter={() => { onHover(index); }}@@ -45,7 +45,7 @@ <span className="mr2"> {renderHighlightedSuggestion(displayTerm, suggestionState.tokenRange.token)} </span>- <span className="gray f6 tr" style={{ minWidth: '3ch' }}>+ <span className="thm-text-tertiary f6 tr" style={{ minWidth: '3ch' }}> {item.count} </span> </button>
frontend/src/globals.ts view
@@ -2,22 +2,39 @@ import type { Bookmark } from './types'; +/** Server-rendered page data. */ export type AppData = {+ /** The list of bookmarks for the current page. */ bmarks: Bookmark[];+ /** A single bookmark, used when viewing or editing one entry. */ bmark: Bookmark;+ /** Whether the current user owns the displayed profile. */ isowner: boolean;+ /** Whether tag suggestions are enabled. */ suggestTags?: boolean;+ /** Whether the archive backend is enabled. */+ archiveBackendEnabled?: boolean; }; +/** Server-rendered global data. */ export type App = {+ /** The HTTP header name used to send the CSRF token. */ csrfHeaderName: string;+ /** The cookie name that holds the CSRF token. */ csrfCookieName: string;+ /** The form parameter name used to submit the CSRF token. */ csrfParamName: string;+ /** The current CSRF token value. */ csrfToken: string;+ /** URL for the home route. */ homeR: string;+ /** URL for the logout route. */ authRlogoutR: string;+ /** URL for the current user's profile, or null if not logged in. */ userR: string | null;+ /** URL for the current note, or null if not viewing a note. */ noteR: string | null;+ /** Server-rendered page data. */ dat: AppData; }; @@ -57,8 +74,6 @@ } export function toLocaleDateString(dateString: string): string {- // Keep the output human-readable and locale-aware (similar intent to PS version),- // but avoid relying on `dateStyle` typings for older lib targets. return new Date(dateString).toLocaleDateString(undefined, { year: 'numeric', month: 'short',
frontend/src/index.tsx view
@@ -7,7 +7,7 @@ import { NList } from './components/NList'; import { NNote } from './components/NNote'; import { TagCloud } from './components/TagCloud';-import type { AccountSettings, Bookmark, Note, TagCloudMode } from './types';+import type { AccountSettings, Bookmark, ColorSchemePreference, Note, TagCloudMode } from './types'; import { tagCloudModeToF } from './types'; function selectEl(selector: string): Element | null {@@ -65,3 +65,34 @@ createRoot(el).render(<AccountSettingsView initial={accountSettings} />); viewRendered(); };++export function initColorSchemeToggle(): void {+ function isColorSchemePreference(value: string | null): value is ColorSchemePreference {+ return value === 'light' || value === 'dark';+ }+ function getEffectiveColorScheme(): ColorSchemePreference {+ const explicit = document.documentElement.dataset.colorScheme;+ if (explicit === 'light' || explicit === 'dark') return explicit;+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';+ }++ function applyColorSchemePreference(preference: ColorSchemePreference): void {+ document.documentElement.dataset.colorScheme = preference;+ }++ const colorSchemeStorageKey = 'espial-color-scheme';+ const stored = window.localStorage.getItem(colorSchemeStorageKey);+ if (isColorSchemePreference(stored)) {+ applyColorSchemePreference(stored);+ }++ const toggleEl = document.querySelector<HTMLAnchorElement>('#color-scheme-toggle');+ if (!toggleEl) return;++ toggleEl.addEventListener('click', (e) => {+ e.preventDefault();+ const next: ColorSchemePreference = getEffectiveColorScheme() === 'dark' ? 'light' : 'dark';+ applyColorSchemePreference(next);+ window.localStorage.setItem(colorSchemeStorageKey, next);+ });+}
frontend/src/types.ts view
@@ -1,64 +1,106 @@+/** User's preferred color scheme. */+export type ColorSchemePreference = 'light' | 'dark';++/** Unique identifier for a bookmark. */ export type BookmarkId = number;-export type TagId = number; export type Bookmark = {+ /** The bookmarked URL. */ url: string;+ /** Display title of the bookmark. */ title: string;+ /** Optional user-provided description. */ description: string;+ /** Space-separated list of tags. */ tags: string;+ /** Whether the bookmark is private (not visible to others). */ private: boolean;+ /** Whether the bookmark is marked for later reading. */ toread: boolean;+ /** Whether the bookmark should be archived (request). */+ archiveRequested?: boolean | null;+ /** Database ID of the bookmark. */ bid: BookmarkId;+ /** URL-friendly slug for the bookmark. */ slug: string;+ /** Whether the bookmark is starred. */ selected: boolean;+ /** ISO 8601 creation timestamp. */ time: string;+ /** URL of the archived copy, or null if not archived. */ archiveUrl: string | null; }; +/** Unique identifier for a note. */ export type NoteId = number;+/** URL-friendly slug for a note. */ export type NoteSlug = string; export type Note = {+ /** Database ID of the note. */ id: NoteId;+ /** URL-friendly slug for the note. */ slug: NoteSlug;+ /** Display title of the note. */ title: string;+ /** Raw text content of the note. */ text: string;+ /** Character length of the note text. */ length: number;+ /** Whether the note body should be rendered as Markdown. */ isMarkdown: boolean;+ /** Whether the note is publicly visible. */ shared: boolean;+ /** ISO 8601 creation timestamp. */ created: string;+ /** ISO 8601 last-updated timestamp. */ updated: string; }; export type AccountSettings = {+ /** Whether bookmarks are archived by default. */ archiveDefault: boolean;+ /** Whether new bookmarks are private by default. */ privateDefault: boolean;+ /** Whether tag suggestions are enabled. */ suggestTags: boolean;+ /** Whether the account is locked to private-only mode. */ privacyLock: boolean;+ /** Whether the archive backend is enabled. */+ archiveBackendEnabled: boolean; }; +/** Raw tag cloud mode as stored/sent by the server. */ export type TagCloudMode = {+ /** The mode name (e.g. 'top', 'lowerBound', 'related', 'none'). */ mode: string;+ /** Mode-specific parameter value. */ value: unknown;+ /** Whether the tag cloud panel is expanded. */ expanded: boolean; }; +/** Map of tag name to usage count. */ export type TagCloud = Record<string, number>; +/** A single tag suggestion with its usage count. */ export type TSuggestion = { term: string; count: number; }; +/** Request payload for fetching tag suggestions based on a query and current tags. */ export type TagSuggestionRequest = { query: string; currentTags: string[]; }; +/** Response payload containing a list of tag suggestions. */ export type TagSuggestionResponse = { suggestions: TSuggestion[]; }; +/** Discriminated union representing the tag cloud filter mode. */ export type TagCloudModeF = | { kind: 'top'; expanded: boolean; value: number } | { kind: 'lowerBound'; expanded: boolean; value: number }
frontend/src/util.ts view
@@ -40,6 +40,6 @@ return s ?? ''; } -export function normalizeTags(tags: string): string {- return tags.replace(/,/g, ' ').replace(/\s+/g, ' ').trim();+export function normalizeTags(tags: string | null): string {+ return tags?.replace(/,/g, ' ').replace(/\s+/g, ' ').trim() ?? ''; }
src/Application.hs view
@@ -2,34 +2,39 @@ {-# OPTIONS_GHC -fno-warn-partial-type-signatures #-} module Application- ( getApplicationDev- , appMain- , develMain- , makeFoundation- , makeLogWare- -- * for DevelMain- , getApplicationRepl- , shutdownApp- -- * for GHCI- , handler- , db- ) where+ ( getApplicationDev,+ appMain,+ develMain,+ makeFoundation,+ makeLogWare, -import Control.Monad.Logger (liftLoc, runLoggingT)+ -- * for DevelMain+ getApplicationRepl,+ shutdownApp,++ -- * for GHCI+ handler,+ db,+ )+where++import Control.Monad.Logger (liftLoc, runLoggingT) import qualified Data.Aeson as A-import Database.Persist.Sqlite (ConnectionPool, mkSqliteConnectionInfo, createSqlitePoolFromInfo, fkEnabled, runSqlPool, sqlDatabase, sqlPoolSize)-import Import-import Language.Haskell.TH.Syntax (qLocation)-import Lens.Micro-import Network.HTTP.Client.TLS-import Network.Wai (Middleware)-import Network.Wai.Handler.Warp (Settings, defaultSettings, defaultShouldDisplayException, runSettings, setHost, setOnException, setPort, getPort)-import Network.Wai.Middleware.AcceptOverride-import Network.Wai.Middleware.Autohead-import Network.Wai.Middleware.Gzip hiding (def)-import Network.Wai.Middleware.MethodOverride-import Network.Wai.Middleware.RequestLogger (Destination(Logger), IPAddrSource(..), OutputFormat(..), destination, mkRequestLogger, outputFormat)-import System.Log.FastLogger (defaultBufSize, newStdoutLoggerSet, toLogStr)+import Database.Persist.Sqlite (ConnectionPool, createSqlitePoolFromInfo, fkEnabled, mkSqliteConnectionInfo, runSqlPool, sqlDatabase, sqlPoolSize)+import Import+import Language.Haskell.TH.Syntax (qLocation)+import Lens.Micro+import qualified Network.Connection as NC+import Network.HTTP.Client.TLS+import qualified Network.HTTP.Client.TLS as NHT+import Network.Wai (Middleware)+import Network.Wai.Handler.Warp (Settings, defaultSettings, defaultShouldDisplayException, getPort, runSettings, setHost, setOnException, setPort)+import Network.Wai.Middleware.AcceptOverride+import Network.Wai.Middleware.Autohead+import Network.Wai.Middleware.Gzip hiding (def)+import Network.Wai.Middleware.MethodOverride+import Network.Wai.Middleware.RequestLogger (Destination (Logger), IPAddrSource (..), OutputFormat (..), destination, mkRequestLogger, outputFormat)+import System.Log.FastLogger (defaultBufSize, newStdoutLoggerSet, toLogStr) #ifndef mingw32_HOST_OS import qualified Control.Concurrent as CC (killThread, myThreadId) import qualified System.Posix.Signals as PS (installHandler, Handler(CatchOnce), sigTERM)@@ -37,15 +42,21 @@ -- Import all relevant handler modules here. -- Don't forget to add new modules to your cabal file!-import Handler.Common-import Handler.Home-import Handler.User-import Handler.AccountSettings-import Handler.Add-import Handler.Edit-import Handler.Notes-import Handler.Docs +import Archiver.ArchiveBox07 (archiveBox07Backend)+import Archiver.Debug (debugArchiverBackend)+import Archiver.Backend (ArchiverBackend)+import Archiver.WaybackMachine (waybackMachineBackend)+import Handler.AccountSettings+import Handler.Add+import Handler.Common+import Handler.Docs+import Handler.Edit+import Handler.Home+import Handler.Notes+import Handler.User+import Handler.Archive+ mkYesodDispatch "App" resourcesApp makeFoundation :: AppSettings -> IO App@@ -54,26 +65,59 @@ appLogger <- newStdoutLoggerSet defaultBufSize >>= makeYesodLogger appFrontendBundleName <- loadFrontendBundleName (appStaticDir appSettings) appStatic <-- (if appMutableStatic appSettings- then staticDevel- else static)+ ( if appMutableStatic appSettings+ then staticDevel+ else static+ ) (appStaticDir appSettings)- let mkFoundation appConnPool = App {..}- tempFoundation = mkFoundation (error "connPool forced in tempFoundation")+ let mkFoundation appConnPool appArchiver = App {..}+ tempFoundation = mkFoundation (error "connPool forced in tempFoundation") Nothing logFunc = messageLoggerSource tempFoundation appLogger pool <- mkPool logFunc True poolMigrations <- mkPool logFunc False- runLoggingT (runSqlPool runMigrations poolMigrations) logFunc- return (mkFoundation pool)+ flip runLoggingT logFunc $ runSqlPool runMigrations poolMigrations+ appArchiver <- mkArchiverBackend logFunc pool+ flip+ runLoggingT+ logFunc+ ($(logInfo) $ "Archive backend: " <> tshow (appArchiveBackend appSettings))+ return (mkFoundation pool appArchiver) where mkPool :: _ -> Bool -> IO ConnectionPool mkPool logFunc isFkEnabled = flip runLoggingT logFunc $ do let dbPath = sqlDatabase (appDatabaseConf appSettings) poolSize = sqlPoolSize (appDatabaseConf appSettings)- connInfo = mkSqliteConnectionInfo dbPath &- set fkEnabled isFkEnabled+ connInfo =+ mkSqliteConnectionInfo dbPath+ & set fkEnabled isFkEnabled createSqlitePoolFromInfo connInfo poolSize+ mkArchiverBackend :: _ -> ConnectionPool -> IO (Maybe ArchiverBackend)+ mkArchiverBackend logFunc pool = do+ case appArchiveBackend appSettings of+ ArchiveBackendDisabled -> pure Nothing+ ArchiveBackendDebug -> pure (Just (debugArchiverBackend logFunc))+ ArchiveBackendArchiveLi -> mkArchiveLiArchiver+ ArchiveBackendWaybackMachine -> mkWaybackArchiver+ ArchiveBackendArchiveBox07 -> mkArchiveBox07Archiver+ where+ mkArchiveLiArchiver = do+ flip runLoggingT logFunc ($(logWarn) ("Archive backend `archive-li` selected but functionality has been removed; archiving disabled"))+ pure Nothing+ mkWaybackArchiver = do+ case (appWaybackMachineAccessKey appSettings, appWaybackMachineSecretKey appSettings) of+ (Just accessKey, Just secretKey) -> do+ archiveManager <- do+ let mSocks = NC.SockSettingsSimple <$> fmap unpack (appArchiveSocksProxyHost appSettings) <*> fmap toEnum (appArchiveSocksProxyPort appSettings)+ NHT.newTlsManagerWith (NHT.mkManagerSettings def mSocks)+ pure $ Just $ waybackMachineBackend accessKey secretKey pool archiveManager logFunc+ _ -> do+ flip+ runLoggingT+ logFunc+ ($(logWarn) ("Archive backend `wayback-machine` selected but access/secret key missing; archiving disabled"))+ pure Nothing+ mkArchiveBox07Archiver = archiveBox07Backend appSettings pool logFunc loadFrontendBundleName :: FilePath -> IO Text loadFrontendBundleName staticDir = do@@ -91,7 +135,6 @@ appBundle <- o A..: "appBundle" pure FrontendBundleManifest {..} - makeApplication :: App -> IO Application makeApplication foundation = do logWare <- makeLogWare foundation@@ -100,41 +143,44 @@ makeMiddleware :: Middleware makeMiddleware =- acceptOverride .- autohead .- gzip def {gzipFiles = GzipPreCompressed GzipIgnore} .- methodOverride+ acceptOverride+ . autohead+ . gzip def {gzipFiles = GzipPreCompressed GzipIgnore}+ . methodOverride makeLogWare :: App -> IO Middleware makeLogWare foundation = mkRequestLogger def- { outputFormat =- if appDetailedRequestLogging (appSettings foundation)- then Detailed True- else Apache- (if appIpFromHeader (appSettings foundation)- then FromFallback- else FromSocket)- , destination = Logger (loggerSet (appLogger foundation))- }+ { outputFormat =+ if appDetailedRequestLogging (appSettings foundation)+ then Detailed True+ else+ Apache+ ( if appIpFromHeader (appSettings foundation)+ then FromFallback+ else FromSocket+ ),+ destination = Logger (loggerSet (appLogger foundation))+ } -- | Warp settings for the given foundation value. warpSettings :: App -> Settings warpSettings foundation =- setPort (appPort (appSettings foundation)) $- setHost (appHost (appSettings foundation)) $- setOnException- (\_req e ->- when (defaultShouldDisplayException e) $- messageLoggerSource- foundation- (appLogger foundation)- $(qLocation >>= liftLoc)- "yesod"- LevelError- (toLogStr $ "Exception from Warp: " ++ show e))- defaultSettings+ setPort (appPort (appSettings foundation))+ $ setHost (appHost (appSettings foundation))+ $ setOnException+ ( \_req e ->+ when (defaultShouldDisplayException e)+ $ messageLoggerSource+ foundation+ (appLogger foundation)+ $(qLocation >>= liftLoc)+ "yesod"+ LevelError+ (toLogStr $ "Exception from Warp: " ++ show e)+ )+ defaultSettings -- | For yesod devel, return the Warp settings and WAI Application. getApplicationDev :: IO (Settings, Application)@@ -146,7 +192,7 @@ return (wsettings, app) getAppSettings :: IO AppSettings-getAppSettings = loadYamlSettings [configSettingsYml] [] useEnv+getAppSettings = loadYamlSettings [configSettingsYml] [configSettingsYmlValue] useEnv -- | main function for use by yesod devel develMain :: IO ()@@ -155,7 +201,7 @@ -- | The @main@ function for an executable running this site. appMain :: IO () appMain = do- settings <- loadYamlSettingsArgs [configSettingsYmlValue] useEnv+ settings <- getAppSettings foundation <- makeFoundation settings app <- makeApplication foundation #ifndef mingw32_HOST_OS@@ -163,7 +209,7 @@ void $ PS.installHandler PS.sigTERM (PS.CatchOnce (CC.killThread mainThreadId)) Nothing #endif runSettings (warpSettings foundation) app- + getApplicationRepl :: IO (Int, App, Application) getApplicationRepl = do settings <- getAppSettings
+ src/Archiver/ArchiveBox07.hs view
@@ -0,0 +1,345 @@+{-# LANGUAGE RecordWildCards #-}++module Archiver.ArchiveBox07+ ( archiveBox07Backend,+ )+where++import Archiver.Backend+import ClassyPrelude+import Control.Monad.Logger (LoggingT, logDebug, logWarn, runLoggingT)+import Control.Monad.Trans.Except (ExceptT (..), runExceptT, throwE)+import qualified Data.ByteString.Lazy as BSL+import Data.Default (def)+import qualified Data.Text as T+import Database.Persist.Sql (ConnectionPool, Key, runSqlPool)+import Model (Bookmark, Url (..), User, updateBookmarkArchiveUrl)+import qualified Network.Connection as NC+import Network.HTTP.Client+ ( CookieJar,+ HttpException (..),+ HttpExceptionContent (ResponseTimeout),+ Manager,+ Request (..),+ RequestBody (..),+ createCookieJar,+ httpLbs,+ insertCookiesIntoRequest,+ parseRequest_,+ redirectCount,+ responseBody,+ responseHeaders,+ responseStatus,+ responseTimeout,+ responseTimeoutMicro,+ updateCookieJar,+ )+import Network.HTTP.Client.TLS (mkManagerSettings, newTlsManagerWith)+import qualified Network.HTTP.Types as HT+import Network.HTTP.Types.Header (hLocation, hReferer)+import qualified Network.HTTP.Types.Status as NStatus+import qualified Network.HTTP.Types.URI as NUri+import Settings (AppSettings (..))+import qualified Web.FormUrlEncoded as WH+import Yesod.Default.Main (LogFunc)++data ArchiveBoxContext = ArchiveBoxContext+ { archiveBoxCookieJarRef :: IORef CookieJar,+ archiveBoxBaseUrl :: Text,+ archiveBoxPublicUrl :: Text,+ archiveBoxUsername :: Text,+ archiveBoxPassword :: Text,+ archiveBoxTag :: Text,+ archiveBoxPlugins :: Maybe Text,+ archiveBoxConnPool :: ConnectionPool,+ archiveBoxManager :: Manager+ }++data ArchiveBoxSubmitResult+ = ArchiveBoxSubmitAccepted+ | ArchiveBoxSubmitTimedOutWaiting+ | ArchiveBoxSubmitFailed Text++archiveBox07Backend ::+ AppSettings ->+ ConnectionPool ->+ LogFunc ->+ IO (Maybe ArchiverBackend)+archiveBox07Backend AppSettings {..} connPool logFunc = do+ case (nonBlank appArchiveBoxUrl, nonBlank appArchiveBoxUsername, nonBlank appArchiveBoxPassword) of+ (Nothing, _, _) -> do flip runLoggingT logFunc $ $(logWarn) "Archive backend `archivebox` selected but archivebox-url missing; archiving disabled"; pure Nothing+ (_, Nothing, _) -> do flip runLoggingT logFunc $ $(logWarn) "Archive backend `archivebox` selected but archivebox-username missing; archiving disabled"; pure Nothing+ (_, _, Nothing) -> do flip runLoggingT logFunc $ $(logWarn) "Archive backend `archivebox` selected but archivebox-password missing; archiving disabled"; pure Nothing+ (Just baseUrl, Just username, Just password) -> do+ cookieJarRef <- newIORef (createCookieJar [])+ archiveManager <- newTlsManagerWith $ mkManagerSettings def (NC.SockSettingsSimple <$> fmap unpack (appArchiveSocksProxyHost) <*> fmap toEnum (appArchiveSocksProxyPort))+ let publicUrl = fromMaybe baseUrl (nonBlank appArchiveBoxPublicUrl)+ ctx =+ ArchiveBoxContext+ { archiveBoxCookieJarRef = cookieJarRef,+ archiveBoxBaseUrl = baseUrl,+ archiveBoxPublicUrl = publicUrl,+ archiveBoxUsername = username,+ archiveBoxPassword = password,+ archiveBoxTag = appArchiveBoxTag,+ archiveBoxPlugins = nonBlank appArchiveBoxPlugins,+ archiveBoxConnPool = connPool,+ archiveBoxManager = archiveManager+ }+ denyHosts = catMaybes [extractHost baseUrl, extractHost publicUrl]+ pure $+ Just+ ArchiverBackend+ { runArchiver = \uid bid _ua url ->+ flip runLoggingT logFunc $ _archiveBoxRun ctx uid bid url,+ isUrlDenylisted =+ \(Url inputUrl) ->+ maybe False (\host -> any (hostMatches host) denyHosts) (extractHost inputUrl)+ }+ where+ hostMatches candidate denyHost = candidate == denyHost || ("." <> denyHost) `isSuffixOf` candidate+ extractHost rawUrl =+ let noScheme = fromMaybe rawUrl (stripPrefix "http://" rawUrl <|> stripPrefix "https://" rawUrl)+ authority = takeWhile (\c -> c /= '/' && c /= '?' && c /= '#') noScheme+ host = toLower (takeWhile (/= ':') authority)+ in if null host then Nothing else Just host++_archiveBoxRun ::+ ArchiveBoxContext ->+ Key User ->+ Key Bookmark ->+ Url ->+ LoggingT IO ()+_archiveBoxRun ctx@ArchiveBoxContext {..} userId bookmarkId url = do+ loginResult <- _ensureArchiveBoxSession ctx+ case loginResult of+ Left warning -> $(logWarn) $ "ArchiveBox archiving skipped: " <> warning+ Right () -> do+ addPageResult <- liftIO $ _httpGetNoRedirect ctx "/add/"+ case addPageResult of+ Left err -> $(logWarn) $ "ArchiveBox add page request failed: " <> err+ Right (status, body, _)+ | status /= NStatus.status200 -> $(logWarn) $ "ArchiveBox add page returned unexpected status: " <> tshow status+ | not (_isAddPage body) -> $(logWarn) "ArchiveBox add page unavailable; session may have expired"+ | otherwise ->+ case extractAddCsrfToken body of+ Nothing -> $(logWarn) "ArchiveBox add page did not contain a CSRF token"+ Just csrf -> do+ let archiveUrl = buildArchiveBoxLookupUrl archiveBoxPublicUrl url+ formFields =+ [ ("csrfmiddlewaretoken", csrf),+ ("url", unUrl url),+ ("parser", "url_list"),+ ("tag", archiveBoxTag),+ ("depth", "0")+ ]+ <> pluginFormFields archiveBoxPlugins+ $(logDebug) $ "Archiving URL with ArchiveBox: " <> unUrl url+ submitResult <- liftIO $ _httpPostAdd ctx formFields+ case submitResult of+ ArchiveBoxSubmitAccepted ->+ storeArchiveUrl archiveUrl+ ArchiveBoxSubmitTimedOutWaiting -> do+ $(logDebug) $ "ArchiveBox accepted URL (timed out): " <> archiveUrl+ storeArchiveUrl archiveUrl+ ArchiveBoxSubmitFailed err -> $(logWarn) $ "ArchiveBox add request failed: " <> err+ where+ storeArchiveUrl archiveUrl = do+ $(logDebug) $ "storing archive link: " <> archiveUrl+ liftIO $+ runSqlPool+ (updateBookmarkArchiveUrl userId bookmarkId (Just archiveUrl))+ archiveBoxConnPool+ pluginFormFields =+ maybe+ []+ ( map ("archive_methods",)+ . map T.strip+ . T.splitOn ","+ . T.filter (/= ' ')+ )+ extractAddCsrfToken body+ | _isAddPage body = _extractCsrfToken body+ | otherwise = Nothing+ buildArchiveBoxLookupUrl publicUrl (Url href) =+ _normalizeBaseUrl publicUrl <> "/archive/" <> encodeArchiveBoxPath href <> "/"+ encodeArchiveBoxPath href =+ let encoded = decodeUtf8 (NUri.urlEncode True (encodeUtf8 href))+ in T.replace "%2F" "/" $ T.replace "%3A" ":" encoded++_ensureArchiveBoxSession :: ArchiveBoxContext -> LoggingT IO (Either Text ())+_ensureArchiveBoxSession ctx = runExceptT $ do+ (status, body, _) <- ExceptT $ liftIO $ _httpGetNoRedirect ctx "/add/"+ if status == NStatus.status200 && _isAddPage body+ then pure ()+ else do+ ExceptT $ liftIO $ _archiveBoxLogin ctx+ (verifyStatus, verifyBody, _) <- ExceptT $ liftIO $ _httpGetNoRedirect ctx "/add/"+ if verifyStatus == NStatus.status200 && _isAddPage verifyBody+ then pure ()+ else throwE "ArchiveBox login failed or add page still unavailable"++_httpPostAdd :: ArchiveBoxContext -> [(Text, Text)] -> IO ArchiveBoxSubmitResult+_httpPostAdd ctx@ArchiveBoxContext {..} fields = do+ let body = _buildFormBody fields+ referer = _normalizeBaseUrl archiveBoxBaseUrl <> "/add/"+ request =+ (_buildArchiveBoxRequest ctx "/add/")+ { method = "POST",+ requestHeaders =+ [ (hReferer, encodeUtf8 referer),+ ("Accept", "text/html,application/xhtml+xml"),+ ("Content-Type", "application/x-www-form-urlencoded")+ ],+ requestBody = RequestBodyLBS body,+ redirectCount = 0,+ responseTimeout = responseTimeoutMicro archiveBoxAddResponseTimeoutMicro+ }+ _httpRequestRaw ctx "/add/" (const request) >>= \case+ Left ex+ | Just (HttpExceptionRequest _ ResponseTimeout) <- fromException ex ->+ pure ArchiveBoxSubmitTimedOutWaiting+ | otherwise ->+ pure $ ArchiveBoxSubmitFailed (tshow ex)+ Right (submitStatus, _, headers)+ | isArchiveBoxAddAccepted submitStatus headers ->+ pure ArchiveBoxSubmitAccepted+ | redirectsToLogin headers ->+ pure $ ArchiveBoxSubmitFailed "ArchiveBox add request rejected; not logged in"+ | otherwise ->+ pure $+ ArchiveBoxSubmitFailed $+ "ArchiveBox add request returned unexpected status: " <> tshow submitStatus+ where+ -- \| ArchiveBox runs extractors synchronously before responding to POST /add/, so+ -- we use a short timeout and treat ResponseTimeout as a successful enqueue.+ archiveBoxAddResponseTimeoutMicro = 10 * 1000000+ isArchiveBoxAddAccepted status headers =+ status == NStatus.status200+ || (status == NStatus.status302 && not (redirectsToLogin headers))+ redirectsToLogin =+ any+ ( \(headerName, headerValue) ->+ headerName == hLocation && "login" `T.isInfixOf` decodeUtf8 headerValue+ )++_archiveBoxLogin :: ArchiveBoxContext -> IO (Either Text ())+_archiveBoxLogin ctx@ArchiveBoxContext {..} = runExceptT $ do+ (status, body) <- ExceptT $ _httpGet ctx "/admin/login/"+ if status /= NStatus.status200+ then throwE $ "ArchiveBox login page returned unexpected status: " <> tshow status+ else case _extractCsrfToken body of+ Nothing -> throwE "ArchiveBox login page did not contain a CSRF token"+ Just csrf -> do+ (submitStatus, _) <-+ ExceptT $+ httpPostFormNoRedirect+ "/admin/login/"+ [ ("csrfmiddlewaretoken", csrf),+ ("username", archiveBoxUsername),+ ("password", archiveBoxPassword),+ ("next", "/add/")+ ]+ if submitStatus == NStatus.status200 || submitStatus == NStatus.status302+ then pure ()+ else throwE $ "ArchiveBox login returned unexpected status: " <> tshow submitStatus+ where+ httpPostFormNoRedirect ::+ Text -> [(Text, Text)] -> IO (Either Text (NStatus.Status, [HT.Header]))+ httpPostFormNoRedirect path fields = do+ let body = _buildFormBody fields+ referer = _normalizeBaseUrl archiveBoxBaseUrl <> path+ request =+ (_buildArchiveBoxRequest ctx path)+ { method = "POST",+ requestHeaders =+ [ (hReferer, encodeUtf8 referer),+ ("Accept", "text/html,application/xhtml+xml"),+ ("Content-Type", "application/x-www-form-urlencoded")+ ],+ requestBody = RequestBodyLBS body,+ redirectCount = 0+ }+ _httpRequest ctx path (const request) <&> \case+ Left err -> Left err+ Right (status, _, headers) -> Right (status, headers)++_httpGet :: ArchiveBoxContext -> Text -> IO (Either Text (NStatus.Status, Text))+_httpGet ctx path =+ _httpRequest ctx path id <&> \case+ Left err -> Left err+ Right (status, body, _) -> Right (status, body)++_httpGetNoRedirect :: ArchiveBoxContext -> Text -> IO (Either Text (NStatus.Status, Text, [HT.Header]))+_httpGetNoRedirect ctx path =+ _httpRequest ctx path (\req -> req {redirectCount = 0})++_httpRequest ::+ ArchiveBoxContext ->+ Text ->+ (Request -> Request) ->+ IO (Either Text (NStatus.Status, Text, [HT.Header]))+_httpRequest ctx path adjustRequest =+ _httpRequestRaw ctx path adjustRequest <&> \case+ Left ex -> Left (tshow ex)+ Right response -> Right response++_httpRequestRaw ::+ ArchiveBoxContext ->+ Text ->+ (Request -> Request) ->+ IO (Either SomeException (NStatus.Status, Text, [HT.Header]))+_httpRequestRaw ctx@ArchiveBoxContext {..} path adjustRequest = do+ now <- getCurrentTime+ cookieJar <- readIORef archiveBoxCookieJarRef+ let baseRequest = adjustRequest (_buildArchiveBoxRequest ctx path)+ (requestWithCookies, jarForSend) =+ insertCookiesIntoRequest baseRequest cookieJar now+ responseResult <- tryAny (httpLbs requestWithCookies archiveBoxManager)+ case responseResult of+ Left ex -> pure (Left ex)+ Right response -> do+ let (updatedJar, _) =+ updateCookieJar response requestWithCookies now jarForSend+ writeIORef archiveBoxCookieJarRef updatedJar+ pure $+ Right+ ( responseStatus response,+ decodeUtf8 (BSL.toStrict (responseBody response)),+ responseHeaders response+ )++_buildArchiveBoxRequest :: ArchiveBoxContext -> Text -> Request+_buildArchiveBoxRequest ArchiveBoxContext {..} path =+ let requestUrl = _normalizeBaseUrl archiveBoxBaseUrl <> path+ in parseRequest_ (unpack requestUrl)++_buildFormBody :: [(Text, Text)] -> BSL.ByteString+_buildFormBody fields =+ WH.urlEncodeAsForm+ ( map+ (\(key, value) -> (unpack key, unpack value))+ fields+ )++_extractCsrfToken :: Text -> Maybe Text+_extractCsrfToken html =+ let needle = "csrfmiddlewaretoken\" value=\""+ in case T.breakOn needle html of+ (_, rest)+ | not (T.null rest) ->+ Just $ T.takeWhile (/= '"') $ T.drop (T.length needle) rest+ _ -> Nothing++_isAddPage :: Text -> Bool+_isAddPage body = "id=\"add-form\"" `T.isInfixOf` body++_normalizeBaseUrl :: Text -> Text+_normalizeBaseUrl = T.dropWhileEnd (== '/')++nonBlank :: Maybe Text -> Maybe Text+nonBlank = (>>= nonEmptyText)+ where+ nonEmptyText value =+ let trimmed = T.strip value+ in if T.null trimmed then Nothing else Just trimmed
+ src/Archiver/Backend.hs view
@@ -0,0 +1,10 @@+module Archiver.Backend where++import ClassyPrelude+import Database.Persist.Sql (Key)+import Model (Bookmark, Url, User, UserAgent)++data ArchiverBackend = ArchiverBackend+ { runArchiver :: Key User -> Key Bookmark -> UserAgent -> Url -> IO (),+ isUrlDenylisted :: Url -> Bool+ }
+ src/Archiver/Debug.hs view
@@ -0,0 +1,19 @@+module Archiver.Debug+ ( debugArchiverBackend,+ )+where++import Archiver.Backend+import ClassyPrelude+import Control.Monad.Logger (logDebug, runLoggingT)+import Model (Url (..))+import Yesod.Default.Main (LogFunc)++-- | Debug backend.+debugArchiverBackend :: LogFunc -> ArchiverBackend+debugArchiverBackend logFunc =+ ArchiverBackend+ { runArchiver = \uid bid ua url -> flip runLoggingT logFunc $ do+ $(logDebug) $ "Debug archiver: would archive URL " <> unUrl url <> " for bookmark ID " <> tshow bid <> " and user ID " <> tshow uid <> " with user agent " <> tshow ua,+ isUrlDenylisted = const False+ }
+ src/Archiver/WaybackMachine.hs view
@@ -0,0 +1,72 @@+module Archiver.WaybackMachine+ ( waybackMachineBackend,+ )+where++import Archiver.Backend+import ClassyPrelude+import Control.Monad.Logger (LoggingT, logDebug, runLoggingT)+import qualified Data.ByteString as BS+import Database.Persist.Sql (ConnectionPool, Key, runSqlPool)+import Model (Bookmark, Url (..), User, UserAgent (UserAgent), updateBookmarkArchiveUrl)+import qualified Network.HTTP.Client as NH+import qualified Network.HTTP.Types.Status as NH+import qualified Web.FormUrlEncoded as WH+import Yesod.Default.Main (LogFunc)++-- | Wayback Machine backend.+waybackMachineBackend :: Text -> Text -> ConnectionPool -> NH.Manager -> LogFunc -> ArchiverBackend+waybackMachineBackend accessKey secretKey connPool manager logFunc =+ ArchiverBackend+ { runArchiver = \uid bid ua url -> flip runLoggingT logFunc $ _waybackMachineRun accessKey secretKey connPool manager uid bid ua url,+ isUrlDenylisted = \(Url url) -> any (`isInfixOf` url) _waybackMachineDenylist+ }++_waybackMachineDenylist :: [Text]+_waybackMachineDenylist =+ [ "archive.org",+ "web.archive.org"+ ]++_waybackMachineRun :: Text -> Text -> ConnectionPool -> NH.Manager -> Key User -> Key Bookmark -> UserAgent -> Url -> LoggingT IO ()+_waybackMachineRun accessKey secretKey connPool manager userId bookmarkId ua url = do+ $(logDebug) $ "Archiving URL with Wayback Machine: " <> unUrl url+ let req = _buildWaybackMachineSubmitRequest accessKey secretKey ua url+ $(logDebug) $ "Wayback Machine request: " <> tshow req+ res <- liftIO $ NH.httpLbs req manager+ let status = NH.responseStatus res+ mArchiveUrl =+ if+ | status == NH.status200 -> Just (_extractArchiveUrl url)+ | status == NH.status302 || status == NH.status307 -> Just (_extractArchiveUrl url)+ | otherwise -> Nothing+ $(logDebug) $ "Archive response status: " <> tshow status <> ", URL result: " <> tshow mArchiveUrl+ $(logDebug) $ "Archive response body: " <> tshow (NH.responseBody res)+ forM_ mArchiveUrl $ \archiveUrl ->+ liftIO $ runSqlPool (updateBookmarkArchiveUrl userId bookmarkId (Just archiveUrl)) connPool++_buildWaybackMachineSubmitRequest :: Text -> Text -> UserAgent -> Url -> NH.Request+_buildWaybackMachineSubmitRequest accessKey secretKey (UserAgent ua) (Url href) =+ let body =+ WH.urlEncodeAsForm+ ( [ ("url", unpack href),+ ("capture_all", "on"),+ ("capture_screenshot", "on")+ ] ::+ [(String, String)]+ )+ req = NH.parseRequest_ "https://web.archive.org/save"+ in req+ { NH.method = "POST",+ NH.requestHeaders =+ [ ("Authorization", BS.concat ["LOW ", encodeUtf8 accessKey, ":", encodeUtf8 secretKey]),+ ("Accept", "application/json"),+ ("Content-Type", "application/x-www-form-urlencoded"),+ ("User-Agent", encodeUtf8 ua)+ ],+ NH.requestBody = NH.RequestBodyLBS body,+ NH.redirectCount = 0+ }++_extractArchiveUrl :: Url -> Text+_extractArchiveUrl (Url inputUrl) = "https://web.archive.org/web/*/" <> inputUrl
src/Foundation.hs view
@@ -5,6 +5,7 @@ module Foundation where +import Archiver.Backend (ArchiverBackend) import qualified Data.CaseInsensitive as CI import qualified Data.Text.Encoding as TE import Data.Type.Equality (type (~))@@ -26,7 +27,9 @@ -- | Database connection pool. appConnPool :: ConnectionPool, appHttpManager :: Manager,- appLogger :: Logger+ appLogger :: Logger,+ -- | Active archiver plugin; 'Nothing' disables archiving.+ appArchiver :: Maybe ArchiverBackend } deriving (Typeable) @@ -110,12 +113,14 @@ setTitle "Espial" addAppScripts addStylesheet (StaticR css_tachyons_min_css)+ addStylesheet (StaticR css_common_css) addStylesheet (StaticR css_main_css) $(widgetFile "default-layout") withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet") - shouldLogIO app _source level =- pure $ appShouldLogAll (appSettings app) || level == LevelWarn || level == LevelError+ shouldLogIO app "yesod-core" LevelWarn = pure False -- remove verbose CSRF token warnings+ shouldLogIO app source level = pure $ appShouldLogAll (appSettings app) || level == LevelWarn || level == LevelError+ makeLogger = return . appLogger authRoute _ = Just (AuthR LoginR)@@ -129,7 +134,7 @@ [hamlet| <main .pv2.ph3.mh1> <div .w-100.mw8.center>- <div .pa3.bg-near-white>+ <div .pa3.thm-bg-secondary> <h1>#{title} ^{body} |]@@ -156,6 +161,7 @@ pc <- widgetToPageContent do addAppScripts addStylesheet (StaticR css_tachyons_min_css)+ addStylesheet (StaticR css_common_css) addStylesheet (StaticR css_popup_css) $(widgetFile "popup-layout") withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet")
src/Generic.hs view
@@ -1,21 +1,21 @@ module Generic where -import GHC.Generics import ClassyPrelude.Yesod import Data.Kind (Type)+import GHC.Generics -constrName :: (HasConstructor (Rep a), Generic a)=> a -> String-constrName = genericConstrName . from +constrName :: (HasConstructor (Rep a), Generic a) => a -> String+constrName = genericConstrName . from class HasConstructor (f :: Type -> Type) where genericConstrName :: f x -> String -instance HasConstructor f => HasConstructor (D1 c f) where+instance (HasConstructor f) => HasConstructor (D1 c f) where genericConstrName (M1 x) = genericConstrName x instance (HasConstructor x, HasConstructor y) => HasConstructor (x :+: y) where genericConstrName (L1 l) = genericConstrName l genericConstrName (R1 r) = genericConstrName r -instance Constructor c => HasConstructor (C1 c f) where+instance (Constructor c) => HasConstructor (C1 c f) where genericConstrName x = conName x
src/Handler/AccountSettings.hs view
@@ -5,10 +5,12 @@ getAccountSettingsR :: Handler Html getAccountSettingsR = do- frontendBundleName <- appFrontendBundleName <$> getYesod+ app <- getYesod+ let frontendBundleName = appFrontendBundleName app+ archiveBackendEnabled = isJust (appArchiver app) (_, user) <- requireAuthPair let accountSettingsEl = "accountSettings" :: Text- let accountSettings = toAccountSettingsForm user+ let accountSettings = toAccountSettingsForm archiveBackendEnabled user defaultLayout do $(widgetFile "user-settings") toWidgetBody
src/Handler/Add.hs view
@@ -1,23 +1,34 @@ module Handler.Add where +import Data.Aeson.Encoding (encodingToLazyByteString)+import qualified Data.Attoparsec.ByteString as AP+import qualified Data.ByteString.Lazy as LBS+import Data.Char (ord)+import Data.Function ((&)) import Data.List (nub) import qualified Data.Text as T (replace)+import Data.Text.Lazy.Builder (toLazyText)+import HTMLEntities.Decoder (htmlEncodedText) import Handler.Archive+import Handler.Common (browserUserAgent) import Import+import qualified Network.HTTP.Client as NH+import qualified Network.HTTP.Client.TLS as NHT --- View+-- * View getAddViewR :: Handler Html getAddViewR = do Entity userId user <- requireAuth- frontendBundleName <- appFrontendBundleName <$> getYesod-+ yesod <- getYesod+ let frontendBundleName = appFrontendBundleName yesod+ archiveBackendEnabled = isJust (appArchiver yesod) murl <- lookupGetParam "url" mBookmarkDb <- runDB (fetchBookmarkByUrl userId murl)- let mformdb = fmap _toBookmarkForm mBookmarkDb- formurl <- bookmarkFormUrl-- let renderEl = "addForm" :: Text+ newBookmarkForm <- mkNewBookmarkFormForUrl archiveBackendEnabled+ let mExistingBookmarkForm = toBookmarkForm <$> mBookmarkDb+ bookmarkForm = mExistingBookmarkForm <|> Just newBookmarkForm+ renderEl = "addForm" :: Text popupLayout do toWidget@@ -26,7 +37,8 @@ |] toWidgetBody [julius|- app.dat.bmark = #{ toJSON (fromMaybe formurl mformdb) }; + app.dat.bmark = #{ toRawJs bookmarkForm }; + app.dat.archiveBackendEnabled = #{ archiveBackendEnabled }; app.dat.suggestTags = #{ userSuggestTags user }; |] toWidget@@ -35,67 +47,90 @@ import { renderAddForm } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}' renderAddForm('##{renderEl}')(app.dat.bmark)(); |]--bookmarkFormUrl :: Handler BookmarkForm-bookmarkFormUrl = do- Entity _ user <- requireAuth- url <- lookupGetParam "url" <&> fromMaybe ""- title <- lookupGetParam "title"- description <- lookupGetParam "description" <&> fmap Textarea- tags <- lookupGetParam "tags"- private <- lookupGetParam "private" <&> fmap parseChk <&> (<|> Just (userPrivateDefault user))- toread <- lookupGetParam "toread" <&> fmap parseChk- pure- $ BookmarkForm- { _url = url,- _title = title,- _description = description,- _tags = tags,- _private = private,- _toread = toread,- _bid = Nothing,- _slug = Nothing,- _selected = Nothing,- _time = Nothing,- _archiveUrl = Nothing- } where- parseChk s = s == "yes" || s == "on" || s == "true" || s == "1"+ toRawJs = rawJS . decodeUtf8 . encodingToLazyByteString . toEncoding+ mkNewBookmarkFormForUrl :: Bool -> Handler BookmarkForm+ mkNewBookmarkFormForUrl archiveBackendEnabled = do+ Entity _ user <- requireAuth+ url <- lookupGetParam "url" <&> fromMaybe ""+ title <- lookupGetParam "title"+ description <- lookupGetParam "description" <&> fmap Textarea+ tags <- lookupGetParam "tags"+ private <- lookupGetParam "private" <&> fmap parseChk <&> (<|> Just (userPrivateDefault user))+ toread <- lookupGetParam "toread" <&> fmap parseChk+ pure (mkNewBookmarkForm archiveBackendEnabled user url title description tags private toread)+ where+ parseChk s = s == "yes" || s == "on" || s == "true" || s == "1" --- API+-- * API postAddR :: Handler Text postAddR = do bookmarkForm <- requireCheckJsonBody- _handleFormSuccess bookmarkForm >>= \case+ handleFormSuccess bookmarkForm >>= \case Created bid -> sendStatusJSON created201 bid Updated _ -> sendResponseStatus noContent204 () Failed s -> sendResponseStatus status400 s--_handleFormSuccess :: BookmarkForm -> Handler (UpsertResult (Key Bookmark))-_handleFormSuccess bookmarkForm = do- (userId, user) <- requireAuthPair- appSettings <- appSettings <$> getYesod- case (appAllowNonHttpUrlSchemes appSettings, (parseRequest . unpack . _url) bookmarkForm) of- (False, Nothing) -> pure $ Failed "Invalid URL"- (_, _) -> do- let mkbid = toSqlKey <$> _bid bookmarkForm- tags = maybe [] (nub . words . T.replace "," " ") (_tags bookmarkForm)- bm <- liftIO $ _toBookmark userId bookmarkForm- res <- runDB (upsertBookmark userId mkbid bm tags)- forM_ (maybeUpsertResult res) $ \kbid ->- whenM (shouldArchiveBookmark user kbid)- $ void- $ async (archiveBookmarkUrl kbid (unpack (bookmarkHref bm)))- pure res+ where+ handleFormSuccess :: BookmarkForm -> Handler (UpsertResult (Key Bookmark))+ handleFormSuccess bookmarkForm = do+ (userId, user) <- requireAuthPair+ appSettings <- appSettings <$> getYesod+ case (appAllowNonHttpUrlSchemes appSettings, (parseRequest . unpack . _url) bookmarkForm) of+ (False, Nothing) -> pure $ Failed "Invalid URL"+ _ -> do+ let mkbid = toSqlKey <$> _bid bookmarkForm+ tags = maybe [] toTagList (_tags bookmarkForm)+ bm <- liftIO $ bookmarkFormToBookmark userId bookmarkForm+ res <- runDB (upsertBookmark userId mkbid bm tags)+ case res of+ Created kbid+ | (maybe (userArchiveDefault user) id (_archiveRequested bookmarkForm)) ->+ whenM+ (shouldArchiveBookmark bm)+ (void $ async $ archiveBookmarkUrl kbid (Url (bookmarkHref bm)))+ _ -> pure ()+ pure res+ where+ toTagList = nub . words . T.replace "," " " postLookupTitleR :: Handler () postLookupTitleR = do void requireAuthId bookmarkForm <- (requireCheckJsonBody :: Handler BookmarkForm)- fetchPageTitle (unpack (_url bookmarkForm)) >>= \case+ fetchPageTitle (Url (_url bookmarkForm)) >>= \case Left _ -> sendResponseStatus noContent204 () Right title -> sendResponseStatus ok200 title+ where+ fetchPageTitle :: Url -> Handler (Either String Text)+ fetchPageTitle url =+ do+ req <- buildPageTitleRequest+ res <- liftIO $ NH.httpLbs req =<< NHT.getGlobalManager+ let body = LBS.toStrict (responseBody res)+ pure (decodeHtmlBs <$> parseTitle body)+ `catch` ( \(e :: SomeException) -> do+ $(logError) $ (pack . show) e+ pure (Left (show e))+ )+ where+ parseTitle bs =+ flip AP.parseOnly bs do+ _ <- skipAnyTill (AP.string "<title")+ _ <- skipAnyTill (AP.string ">")+ let lt = toEnum (ord '<')+ AP.takeTill (== lt)+ decodeHtmlBs = toStrict . toLazyText . htmlEncodedText . decodeUtf8+ skipAnyTill end = go where go = end $> () <|> AP.anyWord8 *> go+ buildPageTitleRequest = do+ let UserAgent ua = browserUserAgent+ pure $ NH.parseRequest_ (unpack (unUrl url)) & \r ->+ r+ { NH.requestHeaders =+ [ ("Cache-Control", "max-age=0"),+ ("User-Agent", encodeUtf8 ua)+ ]+ } postTagSuggestionsR :: Handler Text postTagSuggestionsR = do
src/Handler/Archive.hs view
@@ -1,149 +1,41 @@+{-# LANGUAGE NamedFieldPuns #-}+ module Handler.Archive where +import Archiver.Backend (ArchiverBackend (..))+import Handler.Common (espialUserAgent) import Import-import Data.Function ((&))-import Data.Char (ord)-import qualified Data.Attoparsec.ByteString.Char8 as AP8-import qualified Data.Attoparsec.ByteString as AP-import qualified Data.ByteString as BS-import qualified Data.ByteString.Lazy as LBS-import qualified Data.ByteString.Char8 as BS8-import qualified Network.HTTP.Client as NH-import qualified Network.HTTP.Client.TLS as NH-import qualified Network.HTTP.Types.Status as NH-import qualified Web.FormUrlEncoded as WH-import HTMLEntities.Decoder (htmlEncodedText)-import Data.Text.Lazy.Builder (toLazyText)-import Network.Wai (requestHeaderHost)-import qualified Network.Connection as NC -shouldArchiveBookmark :: User -> Key Bookmark -> Handler Bool-shouldArchiveBookmark user kbid =+postArchiveBookmarkR :: Int64 -> Handler ()+postArchiveBookmarkR bid = do+ let kbid = toSqlKey bid+ (userId, _) <- requireAuthPair runDB (get kbid) >>= \case- Nothing -> pure False-- Just bm -> do- pure $- isNothing (bookmarkArchiveHref bm) &&- bookmarkShared bm- && not (_isArchiveBlacklisted bm)- && userArchiveDefault user--getArchiveManager :: Handler Manager-getArchiveManager = do- appSettings <- appSettings <$> getYesod- let mSocks =- NC.SockSettingsSimple <$>- fmap unpack (appArchiveSocksProxyHost appSettings) <*>- fmap toEnum (appArchiveSocksProxyPort appSettings)- NH.newTlsManagerWith (NH.mkManagerSettings def mSocks)---archiveBookmarkUrl :: Key Bookmark -> String -> Handler ()-archiveBookmarkUrl kbid url =- (_fetchArchiveSubmitInfo >>= \case- Left e -> do- $(logError) (pack e)- Right submitInfo -> do- userId <- requireAuthId- req <- _buildArchiveSubmitRequest submitInfo url- manager <- getArchiveManager- res <- liftIO $ NH.httpLbs req manager- let status = NH.responseStatus res- let updateArchiveUrl url' = runDB $ updateBookmarkArchiveUrl userId kbid $ Just url'- headers = NH.responseHeaders res- case status of- s | s == NH.status200 ->- for_ (lookup "Refresh" headers >>= _parseRefreshHeaderUrl) updateArchiveUrl- s | s == NH.status302 || s == NH.status307 ->- for_ (lookup "Location" headers) (updateArchiveUrl . decodeUtf8)- _ -> $(logError) (pack (show res)))- `catch` (\(e::SomeException) -> ($(logError) $ (pack.show) e) >> throwIO e)--_isArchiveBlacklisted :: Bookmark -> Bool-_isArchiveBlacklisted Bookmark {..} =- [ "hulu"- , "livestream"- , "netflix"- , "skillsmatter"- , "twitch.tv"- , "vimeo"- , "youtu.be"- , "youtube"- , "archive."- ] &- any (`isInfixOf` bookmarkHref)--_parseRefreshHeaderUrl :: ByteString -> Maybe Text-_parseRefreshHeaderUrl h = do- let u = BS8.drop 1 $ BS8.dropWhile (/= '=') h- if not (null u)- then Just $ decodeUtf8 u- else Nothing--_fetchArchiveSubmitInfo :: Handler (Either String (String , String))-_fetchArchiveSubmitInfo = do- req <- buildRequest "https://archive.li/"- manager <- getArchiveManager- res <- liftIO $ NH.httpLbs req manager- let body = LBS.toStrict (responseBody res)- action = _parseSubstring (AP8.string "action=\"") (AP8.notChar '"') body- submitId = _parseSubstring (AP8.string "submitid\" value=\"") (AP8.notChar '"') body- if statusCode (responseStatus res) == 200- then pure $ (,) <$> action <*> submitId- else pure $ Left $ "Invalid statusCode: " <> show (responseStatus res)---_parseSubstring :: AP8.Parser ByteString -> AP8.Parser Char -> BS.ByteString -> Either String String-_parseSubstring start inner = AP8.parseOnly (skipAnyTill start >> AP8.many1 inner)- where- skipAnyTill end = go where go = end $> () <|> AP8.anyChar *> go---fetchPageTitle :: String -> Handler (Either String Text)-fetchPageTitle url =- do- req <- buildRequest url- res <- liftIO $ NH.httpLbs req =<< NH.getGlobalManager- let body = LBS.toStrict (responseBody res)- pure (decodeHtmlBs <$> parseTitle body)- `catch` (\(e :: SomeException) -> do- $(logError) $ (pack . show) e- pure (Left (show e)))- where- parseTitle bs =- flip AP.parseOnly bs do- _ <- skipAnyTill (AP.string "<title")- _ <- skipAnyTill (AP.string ">")- let lt = toEnum (ord '<')- AP.takeTill (== lt)- decodeHtmlBs = toStrict . toLazyText . htmlEncodedText . decodeUtf8- skipAnyTill end = go where go = end $> () <|> AP.anyWord8 *> go--_buildArchiveSubmitRequest :: (String, String) -> String -> Handler NH.Request-_buildArchiveSubmitRequest (action, submitId) href = do- req <- buildRequest ("POST " <> action)- pure $ req- { NH.requestHeaders = ("Content-Type", "application/x-www-form-urlencoded") : NH.requestHeaders req- , NH.requestBody =- NH.RequestBodyLBS $- WH.urlEncodeAsForm- ([("submitid", submitId), ("url", href)] :: [(String, String)])- , NH.redirectCount = 0- }--buildRequest :: String -> Handler Request-buildRequest url = do- ua <- _archiveUserAgent- pure $ NH.parseRequest_ url & \r ->- r { NH.requestHeaders =- [ ("Cache-Control", "max-age=0")- , ("User-Agent", ua)- ]- }+ Just bm+ | (bookmarkUserId bm == userId) ->+ whenM (shouldArchiveBookmark bm)+ $ archiveBookmarkUrl kbid (Url (bookmarkHref bm))+ _ -> notFound -_archiveUserAgent :: Handler ByteString-_archiveUserAgent = do- mHost <- requestHeaderHost . reqWaiRequest <$> getRequest- pure $ "espial-" <> maybe "" (BS8.takeWhile (/= ':')) mHost+archiveBookmarkUrl :: Key Bookmark -> Url -> Handler ()+archiveBookmarkUrl kbid url = do+ mArchiver <- appArchiver <$> getYesod+ case mArchiver of+ Nothing -> pure ()+ Just ArchiverBackend {runArchiver, isUrlDenylisted}+ | isUrlDenylisted url -> pure ()+ | otherwise ->+ ( do+ ua <- espialUserAgent+ userId <- requireAuthId+ liftIO $ runArchiver userId kbid ua url+ )+ `catch` (\(e :: SomeException) -> ($(logError) $ (pack . show) e) >> throwIO e) +shouldArchiveBookmark :: Bookmark -> Handler Bool+shouldArchiveBookmark bm = do+ b <- runMaybeT $ do+ ArchiverBackend {isUrlDenylisted} <- MaybeT (appArchiver <$> getYesod)+ guard (bookmarkShared bm)+ guard (not (isUrlDenylisted (Url (bookmarkHref bm))))+ pure (isJust b)
src/Handler/Common.hs view
@@ -1,42 +1,60 @@ -- | Common handler functions. module Handler.Common where -import Import-+import Data.Aeson as A+import qualified Data.ByteString.Char8 as BS8 import Data.FileEmbed (embedFile)+import Import+import Network.Wai (requestHeaderHost) import Text.Read-import Data.Aeson as A -- These handlers embed files in the executable at compile time to avoid a -- runtime dependency, and for efficiency. getFaviconR :: Handler TypedContent-getFaviconR = do cacheSeconds $ 60 * 5- --cacheSeconds $ 60 * 60 * 24 * 30 -- cache for a month- return $ TypedContent "image/x-icon"- $ toContent $(embedFile "config/favicon.ico")+getFaviconR = do+ cacheSeconds $ 60 * 5+ -- cacheSeconds $ 60 * 60 * 24 * 30 -- cache for a month+ return+ $ TypedContent "image/x-icon"+ $ toContent $(embedFile "config/favicon.ico") getRobotsR :: Handler TypedContent-getRobotsR = return $ TypedContent typePlain- $ toContent $(embedFile "config/robots.txt")-+getRobotsR =+ return+ $ TypedContent typePlain+ $ toContent $(embedFile "config/robots.txt") lookupPagingParams :: Handler (Maybe Int64, Maybe Int64) lookupPagingParams = (,)- <$> getUrlSessionParam "count"- <*> getUrlParam "page"+ <$> getUrlSessionParam "count"+ <*> getUrlParam "page" +espialUserAgent :: Handler UserAgent+espialUserAgent = do+ mHost <- requestHeaderHost . reqWaiRequest <$> getRequest+ pure $ UserAgent $ pack $ "espial-" <> maybe "" (BS8.unpack . BS8.takeWhile (/= ':')) mHost++browserUserAgent :: UserAgent+browserUserAgent =+ UserAgent+ $ pack+ $ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "+ <> "AppleWebKit/537.36 (KHTML, like Gecko) "+ <> "Chrome/136.0.0.0 Safari/537.36"+ getUrlParam :: (Read a) => Text -> Handler (Maybe a) getUrlParam name = do fmap parseMaybe (lookupGetParam name) where parseMaybe x = readMaybe . unpack =<< x -getUrlSessionParam :: forall a.- (Show a, Read a)- => Text- -> Handler (Maybe a)+getUrlSessionParam ::+ forall a.+ (Show a, Read a) =>+ Text ->+ Handler (Maybe a) getUrlSessionParam name = do p <- fmap parseMaybe (lookupGetParam name) s <- fmap parseMaybe (lookupSession name)@@ -46,25 +64,24 @@ parseMaybe :: Maybe Text -> Maybe a parseMaybe x = readMaybe . unpack =<< x -lookupTagCloudMode :: MonadHandler m => m (Maybe TagCloudMode)+lookupTagCloudMode :: (MonadHandler m) => m (Maybe TagCloudMode) lookupTagCloudMode = do (A.decode . fromStrict =<<) <$> lookupSessionBS "tagCloudMode" -setTagCloudMode :: MonadHandler m => TagCloudMode -> m ()+setTagCloudMode :: (MonadHandler m) => TagCloudMode -> m () setTagCloudMode = setSessionBS "tagCloudMode" . toStrict . A.encode -getTagCloudMode :: MonadHandler m => Bool -> [Tag] -> m TagCloudMode+getTagCloudMode :: (MonadHandler m) => Bool -> [Tag] -> m TagCloudMode getTagCloudMode isowner tags = do ms <- lookupTagCloudMode let expanded = maybe False isExpanded ms- pure $- if not isowner+ pure+ $ if not isowner then TagCloudModeNone- else if not (null tags)- then TagCloudModeRelated expanded tags- else case ms of- Nothing -> TagCloudModeTop expanded 200- Just (TagCloudModeRelated e _) -> TagCloudModeTop e 200- Just m -> m--+ else+ if not (null tags)+ then TagCloudModeRelated expanded tags+ else case ms of+ Nothing -> TagCloudModeTop expanded 200+ Just (TagCloudModeRelated e _) -> TagCloudModeTop e 200+ Just m -> m
src/Handler/Docs.hs view
@@ -5,5 +5,6 @@ import Import getDocsSearchR :: Handler Html-getDocsSearchR = popupLayout- $(widgetFile "docs-search")+getDocsSearchR =+ popupLayout+ $(widgetFile "docs-search")
src/Handler/Edit.hs view
@@ -3,7 +3,6 @@ module Handler.Edit where import Database.Persist.Sql- import Import -- routes
src/Handler/Home.hs view
@@ -5,7 +5,7 @@ import Import getHomeR :: Handler Html-getHomeR = do +getHomeR = do musername <- maybeAuthUsername case musername of Nothing -> redirect (AuthR LoginR)
src/Handler/Notes.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE TupleSections #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} module Handler.Notes where
src/Handler/User.hs view
@@ -1,8 +1,8 @@-{-# LANGUAGE TupleSections #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} module Handler.User where +import Data.Aeson.Encoding (encodingToLazyByteString) import qualified Data.Map as Map import qualified Data.Text as T import Handler.Common@@ -47,11 +47,12 @@ when (not isowner && userPrivacyLock user) (redirect (AuthR LoginR))- (userSuggestTags user,) <$> bookmarksTagsQuery userId sharedp filterp pathtags mquery limit page+ (userSuggestTags user,) <$> bookmarksTagsQuery userId isowner sharedp filterp pathtags mquery limit page when (bcount == 0) (case filterp of FilterSingle _ -> notFound; _ -> pure ()) mroute <- getCurrentRoute tagCloudMode <- getTagCloudMode isowner pathtags req <- getRequest+ archiveBackendEnabled <- isJust . appArchiver <$> getYesod defaultLayout do let pager = $(widgetFile "pager") search = $(widgetFile "search")@@ -61,9 +62,10 @@ $(widgetFile "user") toWidgetBody [julius|- app.dat.bmarks = #{ toJSON $ toBookmarkFormList btmarks } || [];+ app.dat.bmarks = #{ toRawJs $ toBookmarkFormListForViewer isowner btmarks } || []; app.dat.isowner = #{ isowner };- app.dat.suggestTags = #{ suggestTags };+ app.dat.suggestTags = #{ suggestTags };+ app.dat.archiveBackendEnabled = #{ archiveBackendEnabled }; app.userR = "@{UserR unamep}"; app.tagCloudMode = #{ toJSON $ tagCloudMode } || {}; |]@@ -78,6 +80,8 @@ renderTagCloud('##{tagCloudRenderEl}')(app.tagCloudMode)(); }, 0); |]+ where+ toRawJs = rawJS . decodeUtf8 . encodingToLazyByteString . toEncoding -- Form @@ -152,7 +156,7 @@ when (not isowner && userPrivacyLock user) (redirect (AuthR LoginR))- bookmarksTagsQuery userId sharedp filterp pathtags mquery limit page+ bookmarksTagsQuery userId isowner sharedp filterp pathtags mquery limit page let (descr :: Html) = toHtml $ H.text ("Bookmarks saved by " <> uname) entries = map bookmarkToRssEntry btmarks updated <- case maximumMay (map feedEntryUpdated entries) of
src/Import/NoFoundation.hs view
@@ -19,7 +19,8 @@ import Text.Julius as Import import Model as Import-import ModelCustom as Import+import Model.Form as Import+import Model.Custom as Import import Types as Import import Pretty as Import import Data.Functor as Import hiding (unzip)
src/Model.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE DeriveFunctor #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-} module Model where @@ -9,22 +8,18 @@ import Control.Monad.Fail (MonadFail) import Control.Monad.Trans.Maybe (MaybeT (..), runMaybeT) import Control.Monad.Writer (tell)-import qualified Data.Aeson as A import qualified Data.Aeson.KeyMap as KM import qualified Data.Aeson.Types as A (parseFail) import qualified Data.Attoparsec.Text as P import Data.Char (isSpace) import Data.Either (fromRight) import Data.Foldable (foldl, foldl1, sequenceA_)-import Data.List.NonEmpty (NonEmpty (..)) import qualified Data.Time as TI (ParseTime)-import qualified Data.Time.Clock.POSIX as TI (POSIXTime, posixSecondsToUTCTime)-import qualified Data.Time.ISO8601 as TI (formatISO8601Millis, parseISO8601)+import qualified Data.Time.ISO8601 as TISO (formatISO8601Millis, parseISO8601) import Database.Esqueleto.Experimental hiding ((<&>)) import Database.Esqueleto.Internal.Internal (unsafeSqlFunction)-import ModelCustom+import Model.Custom import Pretty ()-import System.Directory (listDirectory) import Types share@@ -83,8 +78,8 @@ deriving (Eq, Show, Read, Generic, FromJSON, ToJSON) instance PathPiece UTCTimeStr where- toPathPiece (UTCTimeStr u) = pack (TI.formatISO8601Millis u)- fromPathPiece s = UTCTimeStr <$> TI.parseISO8601 (unpack s)+ toPathPiece (UTCTimeStr u) = pack (TISO.formatISO8601Millis u)+ fromPathPiece s = UTCTimeStr <$> TISO.parseISO8601 (unpack s) newtype UserNameP = UserNameP {unUserNameP :: Text}@@ -112,6 +107,14 @@ = UnreadOnly {unUnreadOnly :: Bool} deriving (Eq, Show, Read) +newtype UserAgent+ = UserAgent {unUserAgent :: Text}+ deriving (Eq, Show, Read)++newtype Url+ = Url {unUrl :: Text}+ deriving (Eq, Show, Read)+ type Limit = Int64 type Page = Int64@@ -163,6 +166,7 @@ -- returns a list of pair of bookmark with tags merged into a string bookmarksTagsQuery :: Key User ->+ Bool -> SharedP -> FilterP -> [Tag] ->@@ -170,7 +174,7 @@ Limit -> Page -> DB (Int, [(Entity Bookmark, Maybe Text)])-bookmarksTagsQuery userId sharedp filterp tags mquery limit' page =+bookmarksTagsQuery userId isowner sharedp filterp tags mquery limit' page = (,) -- total count <$> fmap (sum . fmap unValue)@@ -190,6 +194,9 @@ ( b, subSelect $ from (table @BookmarkTag) >>= \t -> do where_ (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId)+ when+ (not isowner)+ (where_ (not_ (t ^. BookmarkTagTag `like` val ".%"))) groupBy (t ^. BookmarkTagBookmarkId) orderBy [asc (t ^. BookmarkTagSeq)] pure $ sqliteGroupConcat (t ^. BookmarkTagTag) (val " ")@@ -364,150 +371,11 @@ p_after = "after:" *> fmap ((b ^. NoteCreated >=.) . val) (parseTimeText =<< P.takeText) p_before = "before:" *> fmap ((b ^. NoteCreated <=.) . val) (parseTimeText =<< P.takeText) --- Bookmark Files- mkBookmarkTags :: Key User -> Key Bookmark -> [Tag] -> [BookmarkTag] mkBookmarkTags userId bookmarkId tags = (\(i, tag) -> BookmarkTag userId tag bookmarkId i) <$> zip [1 ..] tags -fileBookmarkToBookmark :: UserId -> FileBookmark -> IO Bookmark-fileBookmarkToBookmark user FileBookmark {..} = do- slug <- mkBmSlug- pure- $ Bookmark- { bookmarkUserId = user,- bookmarkSlug = slug,- bookmarkHref = fileBookmarkHref,- bookmarkDescription = fileBookmarkDescription,- bookmarkExtended = fileBookmarkExtended,- bookmarkTime = fileBookmarkTime,- bookmarkShared = fileBookmarkShared,- bookmarkToRead = fileBookmarkToRead,- bookmarkSelected = Just True == fileBookmarkSelected,- bookmarkArchiveHref = fileBookmarkArchiveHref- }--bookmarkTofileBookmark :: Bookmark -> Text -> FileBookmark-bookmarkTofileBookmark Bookmark {..} tags =- FileBookmark- { fileBookmarkHref = bookmarkHref,- fileBookmarkDescription = bookmarkDescription,- fileBookmarkExtended = bookmarkExtended,- fileBookmarkTime = bookmarkTime,- fileBookmarkShared = bookmarkShared,- fileBookmarkToRead = bookmarkToRead,- fileBookmarkSelected = Just bookmarkSelected,- fileBookmarkArchiveHref = bookmarkArchiveHref,- fileBookmarkTags = tags- }--data FFBookmarkNode = FFBookmarkNode- { firefoxBookmarkChildren :: Maybe [FFBookmarkNode],- firefoxBookmarkDateAdded :: !TI.POSIXTime,- firefoxBookmarkGuid :: !Text,- firefoxBookmarkIconUri :: !(Maybe Text),- firefoxBookmarkId :: !Int,- firefoxBookmarkIndex :: !Int,- firefoxBookmarkLastModified :: !TI.POSIXTime,- firefoxBookmarkRoot :: !(Maybe Text),- firefoxBookmarkTitle :: !Text,- firefoxBookmarkType :: !Text,- firefoxBookmarkTypeCode :: !Int,- firefoxBookmarkUri :: !(Maybe Text)- }- deriving (Show, Eq, Typeable, Ord)--instance FromJSON FFBookmarkNode where- parseJSON (Object o) =- FFBookmarkNode- <$> (o A..:? "children")- <*> (o .: "dateAdded")- <*> o- .: "guid"- <*> (o A..:? "iconUri")- <*> o- .: "id"- <*> o- .: "index"- <*> (o .: "lastModified")- <*> (o A..:? "root")- <*> (o .: "title")- <*> (o .: "type")- <*> (o .: "typeCode")- <*> (o A..:? "uri")- parseJSON _ = A.parseFail "bad parse"--firefoxBookmarkNodeToBookmark :: UserId -> FFBookmarkNode -> IO [Bookmark]-firefoxBookmarkNodeToBookmark user FFBookmarkNode {..} =- case firefoxBookmarkTypeCode of- 1 -> do- slug <- mkBmSlug- pure- $ [ Bookmark- { bookmarkUserId = user,- bookmarkSlug = slug,- bookmarkHref = fromMaybe "" firefoxBookmarkUri,- bookmarkDescription = firefoxBookmarkTitle,- bookmarkExtended = "",- bookmarkTime = TI.posixSecondsToUTCTime (firefoxBookmarkDateAdded / 1000000),- bookmarkShared = True,- bookmarkToRead = False,- bookmarkSelected = False,- bookmarkArchiveHref = Nothing- }- ]- 2 ->- join- <$> mapM- (firefoxBookmarkNodeToBookmark user)- (fromMaybe [] firefoxBookmarkChildren)- _ -> pure []--insertFileBookmarks :: Key User -> FilePath -> DB (Either String Int)-insertFileBookmarks userId bookmarkFile = do- mfmarks <- liftIO $ readFileBookmarks bookmarkFile- case mfmarks of- Left e -> pure $ Left e- Right fmarks -> do- bmarks <- liftIO $ mapM (fileBookmarkToBookmark userId) fmarks- mbids <- mapM insertUnique bmarks- mapM_ (void . insertUnique)- $ concatMap (uncurry (mkBookmarkTags userId))- $ catMaybes- $ zipWith- (\mbid tags -> (,tags) <$> mbid)- mbids- (extractTags <$> fmarks)- pure $ Right (length bmarks)- where- extractTags = words . fileBookmarkTags--insertFFBookmarks :: Key User -> FilePath -> DB (Either String Int)-insertFFBookmarks userId bookmarkFile = do- mfmarks <- liftIO $ readFFBookmarks bookmarkFile- case mfmarks of- Left e -> pure $ Left e- Right fmarks -> do- bmarks <- liftIO $ firefoxBookmarkNodeToBookmark userId fmarks- mapM_ (void . insertUnique) bmarks- pure $ Right (length bmarks)--readFileBookmarks :: (MonadIO m) => FilePath -> m (Either String [FileBookmark])-readFileBookmarks fpath =- A.eitherDecode' . fromStrict <$> readFile fpath--readFFBookmarks :: (MonadIO m) => FilePath -> m (Either String FFBookmarkNode)-readFFBookmarks fpath =- A.eitherDecode' . fromStrict <$> readFile fpath--exportFileBookmarks :: Key User -> FilePath -> DB ()-exportFileBookmarks user fpath =- liftIO . A.encodeFile fpath =<< getFileBookmarks user--getFileBookmarks :: Key User -> DB [FileBookmark]-getFileBookmarks user = do- marks <- allUserBookmarks user- pure $ fmap (\(bm, t) -> bookmarkTofileBookmark (entityVal bm) t) marks+-- * Bookmark Tag Cloud data TagCloudMode = TagCloudModeTop Bool Int -- { mode: "top", value: 200 }@@ -613,137 +481,6 @@ pure (t ^. BookmarkTagTag, countRows') ) --- Notes--fileNoteToNote :: UserId -> FileNote -> IO Note-fileNoteToNote user FileNote {..} = do- slug <- mkNtSlug- pure- $ Note- { noteUserId = user,- noteSlug = slug,- noteLength = fileNoteLength,- noteTitle = fileNoteTitle,- noteText = fileNoteText,- noteIsMarkdown = False,- noteShared = False,- noteCreated = fileNoteCreatedAt,- noteUpdated = fileNoteUpdatedAt- }--insertDirFileNotes :: Key User -> FilePath -> DB (Either String Int)-insertDirFileNotes userId noteDirectory = do- mfnotes <- liftIO $ readFileNotes noteDirectory- case mfnotes of- Left e -> pure $ Left e- Right fnotes -> do- notes <- liftIO $ mapM (fileNoteToNote userId) fnotes- void $ mapM insertUnique notes- pure $ Right (length notes)- where- readFileNotes :: (MonadIO m) => FilePath -> m (Either String [FileNote])- readFileNotes fdir = do- files <- liftIO (listDirectory fdir)- noteBSS <- mapM (readFile . (fdir </>)) files- pure (mapM (A.eitherDecode' . fromStrict) noteBSS)---- AccountSettingsForm-data AccountSettingsForm = AccountSettingsForm- { _privateDefault :: Bool,- _archiveDefault :: Bool,- _suggestTags :: Bool,- _privacyLock :: Bool- }- deriving (Show, Eq, Read, Generic)--instance FromJSON AccountSettingsForm where parseJSON = A.genericParseJSON gDefaultFormOptions--instance ToJSON AccountSettingsForm where toJSON = A.genericToJSON gDefaultFormOptions--toAccountSettingsForm :: User -> AccountSettingsForm-toAccountSettingsForm User {..} =- AccountSettingsForm- { _privateDefault = userPrivateDefault,- _archiveDefault = userArchiveDefault,- _suggestTags = userSuggestTags,- _privacyLock = userPrivacyLock- }--updateUserFromAccountSettingsForm :: Key User -> AccountSettingsForm -> DB ()-updateUserFromAccountSettingsForm userId AccountSettingsForm {..} =- CP.update- userId- [ UserPrivateDefault CP.=. _privateDefault,- UserArchiveDefault CP.=. _archiveDefault,- UserSuggestTags CP.=. _suggestTags,- UserPrivacyLock CP.=. _privacyLock- ]---- BookmarkForm--data BookmarkForm = BookmarkForm- { _url :: Text,- _title :: Maybe Text,- _description :: Maybe Textarea,- _tags :: Maybe Text,- _private :: Maybe Bool,- _toread :: Maybe Bool,- _bid :: Maybe Int64,- _slug :: Maybe BmSlug,- _selected :: Maybe Bool,- _time :: Maybe UTCTimeStr,- _archiveUrl :: Maybe Text- }- deriving (Show, Eq, Read, Generic)--instance FromJSON BookmarkForm where parseJSON = A.genericParseJSON gDefaultFormOptions--instance ToJSON BookmarkForm where toJSON = A.genericToJSON gDefaultFormOptions--gDefaultFormOptions :: A.Options-gDefaultFormOptions = A.defaultOptions {A.fieldLabelModifier = drop 1}--toBookmarkFormList :: [(Entity Bookmark, Maybe Text)] -> [BookmarkForm]-toBookmarkFormList = fmap _toBookmarkForm'--_toBookmarkForm :: (Entity Bookmark, [Entity BookmarkTag]) -> BookmarkForm-_toBookmarkForm (bm, tags) =- _toBookmarkForm' (bm, Just $ unwords $ fmap (bookmarkTagTag . entityVal) tags)--_toBookmarkForm' :: (Entity Bookmark, Maybe Text) -> BookmarkForm-_toBookmarkForm' (Entity bid Bookmark {..}, tags) =- BookmarkForm- { _url = bookmarkHref,- _title = Just bookmarkDescription,- _description = Just $ Textarea $ bookmarkExtended,- _tags = Just $ fromMaybe "" tags,- _private = Just $ not bookmarkShared,- _toread = Just bookmarkToRead,- _bid = Just $ fromSqlKey $ bid,- _slug = Just bookmarkSlug,- _selected = Just bookmarkSelected,- _time = Just $ UTCTimeStr $ bookmarkTime,- _archiveUrl = bookmarkArchiveHref- }--_toBookmark :: UserId -> BookmarkForm -> IO Bookmark-_toBookmark userId BookmarkForm {..} = do- time <- liftIO getCurrentTime- slug <- maybe mkBmSlug pure _slug- pure- $ Bookmark- { bookmarkUserId = userId,- bookmarkSlug = slug,- bookmarkHref = _url,- bookmarkDescription = fromMaybe "" _title,- bookmarkExtended = maybe "" unTextarea _description,- bookmarkTime = maybe time unUTCTimeStr _time,- bookmarkShared = maybe True not _private,- bookmarkToRead = Just True == _toread,- bookmarkSelected = Just True == _selected,- bookmarkArchiveHref = _archiveUrl- }- fetchBookmarkByUrl :: Key User -> Maybe Text -> DB (Maybe (Entity Bookmark, [Entity BookmarkTag])) fetchBookmarkByUrl userId murl = runMaybeT do bmark <- MaybeT . getBy . UniqueUserHref userId =<< MaybeT (pure murl)@@ -759,6 +496,7 @@ maybeUpsertResult _ = Nothing upsertBookmark :: Key User -> Maybe (Key Bookmark) -> Bookmark -> [Text] -> DB (UpsertResult (Key Bookmark))+upsertBookmark userId _ bm _ | userId /= bookmarkUserId bm = pure (Failed "unauthorized") upsertBookmark userId mbid bm tags = do res <- case mbid of Just bid ->@@ -769,16 +507,19 @@ Just _ -> pure (Failed "unauthorized") _ -> pure (Failed "not found") Nothing ->- getBy (UniqueUserHref (bookmarkUserId bm) (bookmarkHref bm)) >>= \case- Just (Entity bid prev_bm) -> replaceBookmark bid prev_bm+ getBy (UniqueUserHref userId (bookmarkHref bm)) >>= \case+ Just (Entity bid prev_bm)+ | userId == bookmarkUserId prev_bm ->+ replaceBookmark bid prev_bm+ Just _ -> pure (Failed "unauthorized") _ -> Created <$> insert bm forM_ (maybeUpsertResult res) (insertTags (bookmarkUserId bm)) pure res where prepareReplace prev_bm = if bookmarkHref bm /= bookmarkHref prev_bm- then bm {bookmarkArchiveHref = Nothing}- else bm {bookmarkArchiveHref = bookmarkArchiveHref prev_bm}+ then bm {bookmarkSlug = bookmarkSlug prev_bm, bookmarkArchiveHref = Nothing}+ else bm {bookmarkSlug = bookmarkSlug prev_bm, bookmarkArchiveHref = bookmarkArchiveHref prev_bm} replaceBookmark bid prev_bm = do replace bid (prepareReplace prev_bm) deleteTags bid@@ -786,8 +527,7 @@ deleteTags bid = deleteWhere [BookmarkTagBookmarkId CP.==. bid] insertTags userId' bid' =- for_ (zip [1 ..] tags)- $ \(i, tag) -> void $ insert $ BookmarkTag userId' tag bid' i+ insertMany_ (mkBookmarkTags userId' bid' tags) updateBookmarkArchiveUrl :: Key User -> Key Bookmark -> Maybe Text -> DB () updateBookmarkArchiveUrl userId bid marchiveUrl =@@ -809,170 +549,3 @@ _ -> throwString "not found" Nothing -> do Created <$> insert note---- * FileBookmarks--data FileBookmark = FileBookmark- { fileBookmarkHref :: !Text,- fileBookmarkDescription :: !Text,- fileBookmarkExtended :: !Text,- fileBookmarkTime :: !UTCTime,- fileBookmarkShared :: !Bool,- fileBookmarkToRead :: !Bool,- fileBookmarkSelected :: !(Maybe Bool),- fileBookmarkArchiveHref :: !(Maybe Text),- fileBookmarkTags :: !Text- }- deriving (Show, Eq, Typeable, Ord)--instance FromJSON FileBookmark where- parseJSON (Object o) =- FileBookmark- <$> o- .: "href"- <*> o- .: "description"- <*> o- .: "extended"- <*> o- .: "time"- <*> (boolFromYesNo <$> o .: "shared")- <*> (boolFromYesNo <$> o .: "toread")- <*> (o A..:? "selected")- <*> (o A..:? "archive_url")- <*> (o .: "tags")- parseJSON _ = A.parseFail "bad parse"--instance ToJSON FileBookmark where- toJSON FileBookmark {..} =- object- [ "href" .= toJSON fileBookmarkHref,- "description" .= toJSON fileBookmarkDescription,- "extended" .= toJSON fileBookmarkExtended,- "time" .= toJSON fileBookmarkTime,- "shared" .= toJSON (boolToYesNo fileBookmarkShared),- "toread" .= toJSON (boolToYesNo fileBookmarkToRead),- "selected" .= toJSON fileBookmarkSelected,- "archive_url" .= toJSON fileBookmarkArchiveHref,- "tags" .= toJSON fileBookmarkTags- ]--boolFromYesNo :: Text -> Bool-boolFromYesNo "yes" = True-boolFromYesNo _ = False--boolToYesNo :: Bool -> Text-boolToYesNo True = "yes"-boolToYesNo _ = "no"---- * FileNotes--data FileNote = FileNote- { fileNoteId :: !Text,- fileNoteTitle :: !Text,- fileNoteText :: !Text,- fileNoteLength :: !Int,- fileNoteCreatedAt :: !UTCTime,- fileNoteUpdatedAt :: !UTCTime- }- deriving (Show, Eq, Typeable, Ord)--instance FromJSON FileNote where- parseJSON (Object o) =- FileNote- <$> o- .: "id"- <*> o- .: "title"- <*> o- .: "text"- <*> o- .: "length"- <*> (readFileNoteTime =<< o .: "created_at")- <*> (readFileNoteTime =<< o .: "updated_at")- parseJSON _ = A.parseFail "bad parse"--instance ToJSON FileNote where- toJSON FileNote {..} =- object- [ "id" .= toJSON fileNoteId,- "title" .= toJSON fileNoteTitle,- "text" .= toJSON fileNoteText,- "length" .= toJSON fileNoteLength,- "created_at" .= toJSON (showFileNoteTime fileNoteCreatedAt),- "updated_at" .= toJSON (showFileNoteTime fileNoteUpdatedAt)- ]--readFileNoteTime ::- (MonadFail m) =>- String -> m UTCTime-readFileNoteTime = parseTimeM True defaultTimeLocale "%F %T"--showFileNoteTime :: UTCTime -> String-showFileNoteTime = formatTime defaultTimeLocale "%F %T"--data TagSuggestionRequest = TagSuggestionRequest- { _query :: Text,- _currentTags :: Maybe [Text]- }- deriving (Show, Eq, Read, Generic)--data TagSuggestionResponse = TagSuggestionResponse- { _suggestions :: [Suggestion]- }- deriving (Show, Eq, Read, Generic)--data Suggestion = Suggestion- { _term :: Text,- _count :: Int- }- deriving (Show, Eq, Read, Generic)--instance FromJSON TagSuggestionRequest where parseJSON = A.genericParseJSON gDefaultFormOptions--instance ToJSON TagSuggestionRequest where toJSON = A.genericToJSON gDefaultFormOptions--instance FromJSON TagSuggestionResponse where parseJSON = A.genericParseJSON gDefaultFormOptions--instance ToJSON TagSuggestionResponse where toJSON = A.genericToJSON gDefaultFormOptions--instance FromJSON Suggestion where parseJSON = A.genericParseJSON gDefaultFormOptions--instance ToJSON Suggestion where toJSON = A.genericToJSON gDefaultFormOptions--getTagSuggestions :: Key User -> TagSuggestionRequest -> Int -> DB TagSuggestionResponse-getTagSuggestions user TagSuggestionRequest {_query = query, _currentTags = currentTags} top = do- values <-- fmap (bimap unValue unValue)- <$> ( select $ do- (tag, countRows', matchPriority) <- from $ unionAll_ prefixQuery containsOnlyQuery- orderBy [asc matchPriority, desc countRows', asc $ lower_ tag]- limit (fromIntegral top)- pure (tag, countRows')- )- pure- TagSuggestionResponse- { _suggestions = uncurry Suggestion <$> values- }- where- excludedTags = take 400 $ map toLower (fromMaybe ([] :: [Text]) currentTags)-- prefixQuery = do- t <- from (table @BookmarkTag)- where_ (t ^. BookmarkTagUserId ==. val user &&. (lower_ (t ^. BookmarkTagTag) `like` lower_ (val query ++. (%))))- unless (null excludedTags) $ where_ $ not_ (lower_ (t ^. BookmarkTagTag) `in_` valList excludedTags)- let countRows' = countRows- groupBy (lower_ $ t ^. BookmarkTagTag)- pure (t ^. BookmarkTagTag, countRows', val (0 :: Int))-- containsOnlyQuery = do- t <- from (table @BookmarkTag)- where_- ( t ^. BookmarkTagUserId ==. val user- &&. (lower_ (t ^. BookmarkTagTag) `like` lower_ ((%) ++. val query ++. (%)))- &&. not_ (lower_ (t ^. BookmarkTagTag) `like` lower_ (val query ++. (%)))- )- unless (null excludedTags) $ where_ $ not_ (lower_ (t ^. BookmarkTagTag) `in_` valList excludedTags)- let countRows' = countRows- groupBy (lower_ $ t ^. BookmarkTagTag)- pure (t ^. BookmarkTagTag, countRows', val (1 :: Int))
+ src/Model/Custom.hs view
@@ -0,0 +1,79 @@+module Model.Custom where++import Crypto.BCrypt as Import hiding (hashPassword)+import qualified Crypto.Hash.SHA256 as SHA256+import qualified Data.Aeson as A+import qualified Data.Base64.Types as Base64+import qualified Data.ByteString.Base64.URL as Base64Url+import qualified Data.ByteString.Builder as BB+import qualified Data.ByteString.Lazy as LBS+import qualified Data.Text as T+import qualified Data.Text.Encoding as TE+import Database.Persist.Sql+import Safe (fromJustNote)+import System.Entropy (getEntropy)+import Prelude++mkSlug :: Int -> IO T.Text+mkSlug size =+ TE.decodeUtf8 . LBS.toStrict . BB.toLazyByteString . BB.byteStringHex+ <$> getEntropy size++-- * Bookmark Slug++newtype BmSlug = BmSlug+ { unBmSlug :: T.Text+ }+ deriving (Eq, PersistField, PersistFieldSql, Show, Read, Ord, A.FromJSON, A.ToJSON)++mkBmSlug :: IO BmSlug+mkBmSlug = BmSlug <$> mkSlug 6++-- * Note Slug++newtype NtSlug = NtSlug+ { unNtSlug :: T.Text+ }+ deriving (Eq, PersistField, PersistFieldSql, Show, Read, Ord, A.FromJSON, A.ToJSON)++mkNtSlug :: IO NtSlug+mkNtSlug = NtSlug <$> mkSlug 10++-- * Model Crypto++policy :: HashingPolicy+policy =+ HashingPolicy+ { preferredHashCost = 12,+ preferredHashAlgorithm = "$2a$"+ }++newtype BCrypt = BCrypt+ { unBCrypt :: T.Text+ }+ deriving (Eq, PersistField, PersistFieldSql, Show, Ord, A.FromJSON, A.ToJSON)++hashPassword :: T.Text -> IO BCrypt+hashPassword rawPassword = do+ mPassword <- hashPasswordUsingPolicy policy (TE.encodeUtf8 rawPassword)+ return+ (BCrypt (TE.decodeUtf8 (fromJustNote "Invalid hashing policy" mPassword)))++validatePasswordHash :: BCrypt -> T.Text -> Bool+validatePasswordHash hash' pass = do+ validatePassword (TE.encodeUtf8 (unBCrypt hash')) (TE.encodeUtf8 pass)++newtype ApiKey = ApiKey {unApiKey :: T.Text}++newtype HashedApiKey+ = HashedApiKey T.Text+ deriving stock (Eq, Ord, Show)+ deriving newtype (PersistField, PersistFieldSql, A.FromJSON, A.ToJSON)++generateApiKey :: IO ApiKey+generateApiKey = do+ bytes <- getEntropy 32+ pure $ ApiKey $ Base64.extractBase64 $ Base64Url.encodeBase64 bytes++hashApiKey :: ApiKey -> HashedApiKey+hashApiKey = HashedApiKey . TE.decodeUtf8 . Base64.extractBase64 . Base64Url.encodeBase64' . SHA256.hash . TE.encodeUtf8 . unApiKey
+ src/Model/File.hs view
@@ -0,0 +1,12 @@+module Model.File+ ( module Model.FileBookmark,+ module Model.FileFirefox,+ module Model.FileNetscape,+ module Model.FileNote,+ )+where++import Model.FileBookmark+import Model.FileFirefox+import Model.FileNetscape+import Model.FileNote
+ src/Model/FileBookmark.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveGeneric #-}++module Model.FileBookmark where++import ClassyPrelude.Yesod hiding (Value, exists, groupBy, on, (<=.), (==.), (>=.), (||.))+import qualified Data.Aeson as A+import qualified Data.Aeson.Types as A (parseFail)+import Model+import Model.Custom+import Types++-- * FileBookmarks++data FileBookmark = FileBookmark+ { fileBookmarkHref :: !Text,+ fileBookmarkDescription :: !Text,+ fileBookmarkExtended :: !Text,+ fileBookmarkTime :: !UTCTime,+ fileBookmarkShared :: !Bool,+ fileBookmarkToRead :: !Bool,+ fileBookmarkSelected :: !(Maybe Bool),+ fileBookmarkArchiveHref :: !(Maybe Text),+ fileBookmarkTags :: !Text+ }+ deriving (Show, Eq, Typeable, Ord)++instance FromJSON FileBookmark where+ parseJSON (Object o) =+ FileBookmark+ <$> o+ .: "href"+ <*> (parseDescriptionValue =<< o .: "description")+ <*> o+ .: "extended"+ <*> o+ .: "time"+ <*> (boolFromYesNo <$> o .: "shared")+ <*> (boolFromYesNo <$> o .: "toread")+ <*> (o A..:? "selected")+ <*> (o A..:? "archive_url")+ <*> (o .: "tags")+ where+ parseDescriptionValue (String t) = pure t+ parseDescriptionValue (Bool _) = pure ""+ parseDescriptionValue _ = A.parseFail "bad parse"+ parseJSON _ = A.parseFail "bad parse"++instance ToJSON FileBookmark where+ toJSON FileBookmark {..} =+ object+ [ "href" .= toJSON fileBookmarkHref,+ "description" .= toJSON fileBookmarkDescription,+ "extended" .= toJSON fileBookmarkExtended,+ "time" .= toJSON fileBookmarkTime,+ "shared" .= toJSON (boolToYesNo fileBookmarkShared),+ "toread" .= toJSON (boolToYesNo fileBookmarkToRead),+ "selected" .= toJSON fileBookmarkSelected,+ "archive_url" .= toJSON fileBookmarkArchiveHref,+ "tags" .= toJSON fileBookmarkTags+ ]++boolFromYesNo :: Text -> Bool+boolFromYesNo "yes" = True+boolFromYesNo _ = False++boolToYesNo :: Bool -> Text+boolToYesNo True = "yes"+boolToYesNo _ = "no"++fileBookmarkToBookmark :: UserId -> FileBookmark -> IO Bookmark+fileBookmarkToBookmark user FileBookmark {..} = do+ slug <- mkBmSlug+ pure+ $ Bookmark+ { bookmarkUserId = user,+ bookmarkSlug = slug,+ bookmarkHref = fileBookmarkHref,+ bookmarkDescription = fileBookmarkDescription,+ bookmarkExtended = fileBookmarkExtended,+ bookmarkTime = fileBookmarkTime,+ bookmarkShared = fileBookmarkShared,+ bookmarkToRead = fileBookmarkToRead,+ bookmarkSelected = Just True == fileBookmarkSelected,+ bookmarkArchiveHref = fileBookmarkArchiveHref+ }++bookmarkTofileBookmark :: Bookmark -> Text -> FileBookmark+bookmarkTofileBookmark Bookmark {..} tags =+ FileBookmark+ { fileBookmarkHref = bookmarkHref,+ fileBookmarkDescription = bookmarkDescription,+ fileBookmarkExtended = bookmarkExtended,+ fileBookmarkTime = bookmarkTime,+ fileBookmarkShared = bookmarkShared,+ fileBookmarkToRead = bookmarkToRead,+ fileBookmarkSelected = Just bookmarkSelected,+ fileBookmarkArchiveHref = bookmarkArchiveHref,+ fileBookmarkTags = tags+ }++readFileBookmarks :: (MonadIO m) => FilePath -> m (Either String [FileBookmark])+readFileBookmarks fpath =+ A.eitherDecode' . fromStrict <$> readFile fpath++insertFileBookmarks :: Key User -> FilePath -> DB (Either String Int)+insertFileBookmarks userId bookmarkFile = do+ mfmarks <- liftIO $ readFileBookmarks bookmarkFile+ case mfmarks of+ Left e -> pure $ Left e+ Right fmarks -> do+ bmarks <- liftIO $ mapM (fileBookmarkToBookmark userId) fmarks+ mbids <- mapM insertUnique bmarks+ mapM_ (void . insertUnique)+ $ concatMap (uncurry (mkBookmarkTags userId))+ $ catMaybes+ $ zipWith+ (\mbid tags -> (,tags) <$> mbid)+ mbids+ (extractTags <$> fmarks)+ pure $ Right (length bmarks)+ where+ extractTags = words . fileBookmarkTags++exportFileBookmarks :: Key User -> FilePath -> DB ()+exportFileBookmarks user fpath =+ liftIO . A.encodeFile fpath =<< getFileBookmarks+ where+ getFileBookmarks :: DB [FileBookmark]+ getFileBookmarks = do+ marks <- allUserBookmarks user+ pure $ fmap (\(bm, t) -> bookmarkTofileBookmark (entityVal bm) t) marks
+ src/Model/FileFirefox.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}++module Model.FileFirefox where++import ClassyPrelude.Yesod hiding (Value, exists, groupBy, on, (<=.), (==.), (>=.), (||.))+import qualified Data.Aeson as A+import qualified Data.Aeson.Types as A (parseFail)+import qualified Data.Time.Clock.POSIX as TI (POSIXTime, posixSecondsToUTCTime)+import Model+import Model.Custom+import Types++-- * Firefox Bookmarks++data FirefoxBookmarkNode = FirefoxBookmarkNode+ { firefoxBookmarkChildren :: Maybe [FirefoxBookmarkNode],+ firefoxBookmarkDateAdded :: !TI.POSIXTime,+ firefoxBookmarkGuid :: !Text,+ firefoxBookmarkIconUri :: !(Maybe Text),+ firefoxBookmarkId :: !Int,+ firefoxBookmarkIndex :: !Int,+ firefoxBookmarkLastModified :: !TI.POSIXTime,+ firefoxBookmarkRoot :: !(Maybe Text),+ firefoxBookmarkTitle :: !Text,+ firefoxBookmarkType :: !Text,+ firefoxBookmarkTypeCode :: !Int,+ firefoxBookmarkUri :: !(Maybe Text)+ }+ deriving (Show, Eq, Typeable, Ord)++instance FromJSON FirefoxBookmarkNode where+ parseJSON (Object o) =+ FirefoxBookmarkNode+ <$> (o A..:? "children")+ <*> (o .: "dateAdded")+ <*> o+ .: "guid"+ <*> (o A..:? "iconUri")+ <*> o+ .: "id"+ <*> o+ .: "index"+ <*> (o .: "lastModified")+ <*> (o A..:? "root")+ <*> (o .: "title")+ <*> (o .: "type")+ <*> (o .: "typeCode")+ <*> (o A..:? "uri")+ parseJSON _ = A.parseFail "bad parse"++firefoxBookmarkNodeToBookmark :: UserId -> FirefoxBookmarkNode -> IO [Bookmark]+firefoxBookmarkNodeToBookmark user FirefoxBookmarkNode {..} =+ case firefoxBookmarkTypeCode of+ 1 -> do+ slug <- mkBmSlug+ pure+ $ [ Bookmark+ { bookmarkUserId = user,+ bookmarkSlug = slug,+ bookmarkHref = fromMaybe "" firefoxBookmarkUri,+ bookmarkDescription = firefoxBookmarkTitle,+ bookmarkExtended = "",+ bookmarkTime = TI.posixSecondsToUTCTime (firefoxBookmarkDateAdded / 1000000),+ bookmarkShared = True,+ bookmarkToRead = False,+ bookmarkSelected = False,+ bookmarkArchiveHref = Nothing+ }+ ]+ 2 ->+ join+ <$> mapM+ (firefoxBookmarkNodeToBookmark user)+ (fromMaybe [] firefoxBookmarkChildren)+ _ -> pure []++readFirefoxBookmarks :: (MonadIO m) => FilePath -> m (Either String FirefoxBookmarkNode)+readFirefoxBookmarks fpath =+ A.eitherDecode' . fromStrict <$> readFile fpath++insertFirefoxBookmarks :: Key User -> FilePath -> DB (Either String Int)+insertFirefoxBookmarks userId bookmarkFile = do+ mfmarks <- liftIO $ readFirefoxBookmarks bookmarkFile+ case mfmarks of+ Left e -> pure $ Left e+ Right fmarks -> do+ bmarks <- liftIO $ firefoxBookmarkNodeToBookmark userId fmarks+ mapM_ (void . insertUnique) bmarks+ pure $ Right (length bmarks)
+ src/Model/FileNetscape.hs view
@@ -0,0 +1,209 @@+{-# LANGUAGE DeriveGeneric #-}++module Model.FileNetscape where++import ClassyPrelude.Yesod hiding (Value, exists, groupBy, on, (<=.), (==.), (>=.), (||.))+import Data.Char (isSpace)+import Data.List (elemIndex, findIndex)+import Data.Text (breakOn, splitOn, strip)+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Builder as TLB+import qualified Data.Time.Clock.POSIX as TI (posixSecondsToUTCTime, utcTimeToPOSIXSeconds)+import qualified HTMLEntities.Decoder as HED+import qualified HTMLEntities.Text as HE+import Model+import Model.Custom+import Types++-- * Netscape Bookmarks++data NetscapeBookmark = NetscapeBookmark+ { nsbHref :: !Text,+ nsbTitle :: !Text,+ nsbDescription :: !Text,+ nsbTags :: !Text,+ nsbTime :: !UTCTime+ }+ deriving (Eq, Typeable, Ord, Show)++parseNetscapeBookmarks :: Text -> Either String [NetscapeBookmark]+parseNetscapeBookmarks content = do+ let links = extractLinks+ if null links+ then Left "No bookmarks found"+ else Right links+ where+ -- Extract bookmark links from NETSCAPE-Bookmark-file HTML.+ -- Split on "<DT>" so each segment corresponds to one entry. A <DD>+ -- following the </A> within that same segment is the description for that+ -- entry (matching the Netscape model: DD belongs to the last seen DT).+ extractLinks :: [NetscapeBookmark]+ extractLinks =+ let dtSegments = drop 1 $ splitOnDT content+ anchorSegments = filter (\s -> "<A " `isInfixOf` s && "</A>" `isInfixOf` s) dtSegments+ in catMaybes (_parseNetscapeLink <$> anchorSegments)++ -- Split content into segments at each "<DT>", discarding any text before+ -- the first marker.+ splitOnDT :: Text -> [Text]+ splitOnDT txt =+ case breakOn "<DT>" txt of+ (_, "") -> [txt]+ (before, rest) -> before : splitOnDT (drop 4 rest) -- drop "<DT>" (4 chars)++-- Parse a single <A HREF="..." ...>Title</A> line+_parseNetscapeLink :: Text -> Maybe NetscapeBookmark+_parseNetscapeLink line = do+ guard (("<A " `isInfixOf` line) && ("</A>" `isInfixOf` line))+ href <- extractAttr "HREF"+ let lineStr = unpack line+ aIdx = findIndex (isPrefixOf "<A ") (tails lineStr)+ case aIdx of+ Nothing -> Nothing+ Just idx ->+ let aTag = drop idx lineStr+ gtIdx = elemIndex '>' aTag+ in case gtIdx of+ Nothing -> Nothing+ Just gtOffset ->+ let afterGt = drop (gtOffset + 1) aTag+ ltIdx = elemIndex '<' afterGt+ titleStr = case ltIdx of+ Nothing -> afterGt+ Just ltidx -> take ltidx afterGt+ title = strip (decodeHtml (pack titleStr))+ in do+ guard (not (null href))+ let tags = fromMaybe "" (decodeHtml <$> extractAttr "TAGS")+ timeStr = fromMaybe "" (extractAttr "ADD_DATE")+ timeInt = readMay timeStr :: Maybe Int+ utcTime = maybe (UTCTime (toEnum 0) 0) (TI.posixSecondsToUTCTime . fromIntegral) timeInt+ pure+ $ NetscapeBookmark+ { nsbHref = href,+ nsbTitle = title,+ nsbDescription = extractDD,+ nsbTags = tags,+ nsbTime = utcTime+ }+ where+ -- Extract description text from a <DD> tag that follows </A> in the chunk.+ extractDD :: Text+ extractDD =+ let afterClose = snd (breakOn "</A>" line)+ afterDD = snd (breakOn "<DD>" afterClose)+ in if null afterDD+ then ""+ else+ let inner = drop 4 afterDD -- drop "<DD>"+ trimmed = fst (breakOn "<" inner)+ trimmedStr = dropWhile isSpace . reverse . dropWhile isSpace . reverse . unpack $ trimmed+ in decodeHtml (pack trimmedStr)++ -- Extract an HTML attribute value (e.g., HREF="value" -> value)+ extractAttr :: Text -> Maybe Text+ extractAttr attr =+ let attrPattern = unpack attr <> "=\""+ lineStr = unpack line+ in case dropWhile (\s -> not (attrPattern `isPrefixOf` s)) (tails lineStr) of+ [] -> Nothing+ (match : _) ->+ let afterPattern = drop (length attrPattern) match+ in case elemIndex '"' afterPattern of+ Nothing -> Nothing+ Just endIdx ->+ let extracted = take endIdx afterPattern+ in if null extracted then Nothing else Just (decodeHtml (pack extracted))++ decodeHtml :: Text -> Text+ decodeHtml = TL.toStrict . TLB.toLazyText . HED.htmlEncodedText++netscapeBookmarkToBookmark :: UserId -> NetscapeBookmark -> IO Bookmark+netscapeBookmarkToBookmark user NetscapeBookmark {..} = do+ slug <- mkBmSlug+ pure+ $ Bookmark+ { bookmarkUserId = user,+ bookmarkSlug = slug,+ bookmarkHref = nsbHref,+ bookmarkDescription = nsbTitle,+ bookmarkExtended = nsbDescription,+ bookmarkTime = nsbTime,+ bookmarkShared = True,+ bookmarkToRead = False,+ bookmarkSelected = False,+ bookmarkArchiveHref = Nothing+ }++bookmarkToNetscapeBookmark :: Bookmark -> Text -> NetscapeBookmark+bookmarkToNetscapeBookmark Bookmark {..} tags =+ NetscapeBookmark+ { nsbHref = bookmarkHref,+ nsbTitle = bookmarkDescription,+ nsbDescription = bookmarkExtended,+ nsbTags = tags,+ nsbTime = bookmarkTime+ }++renderNetscapeBookmarks :: [NetscapeBookmark] -> Text+renderNetscapeBookmarks bmarks =+ unlines+ $ [ "<!DOCTYPE NETSCAPE-Bookmark-file-1>",+ "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=UTF-8\">",+ "<TITLE>Bookmarks</TITLE>",+ "<H1>Bookmarks</H1>",+ "<DL><p>"+ ]+ <> concatMap renderBookmark bmarks+ <> ["</DL><p>"]+ where+ renderBookmark :: NetscapeBookmark -> [Text]+ renderBookmark NetscapeBookmark {..} =+ [ " <DT><A HREF=\""+ <> escapeHtml nsbHref+ <> "\" ADD_DATE=\""+ <> tshow (floor (TI.utcTimeToPOSIXSeconds nsbTime) :: Int)+ <> "\" TAGS=\""+ <> escapeHtml nsbTags+ <> "\">"+ <> escapeHtml nsbTitle+ <> "</A>"+ ]+ <> [" <DD>" <> escapeHtml nsbDescription | not (null (strip nsbDescription))]+ escapeHtml :: Text -> Text+ escapeHtml = HE.text++insertNetscapeBookmarks :: Key User -> FilePath -> DB (Either String Int)+insertNetscapeBookmarks userId bookmarkFile = do+ meither <- liftIO $ tryAny (readFile bookmarkFile)+ case meither of+ Left _ -> pure $ Left "Could not read file"+ Right (content :: ByteString) ->+ let contentText = decodeUtf8 content+ in case parseNetscapeBookmarks contentText of+ Left e -> pure $ Left e+ Right nbmarks -> do+ bmarks <- liftIO $ mapM (netscapeBookmarkToBookmark userId) nbmarks+ mbids <- mapM insertUnique bmarks+ mapM_ (void . insertUnique)+ $ concatMap (uncurry (mkBookmarkTags userId))+ $ catMaybes+ $ zipWith+ (\mbid nbm -> (,parseNetscapeTags $ nsbTags nbm) <$> mbid)+ mbids+ nbmarks+ pure $ Right (length bmarks)+ where+ parseNetscapeTags :: Text -> [Text]+ parseNetscapeTags tagsText =+ filter (not . null)+ . map strip+ $ if ',' `elem` unpack tagsText+ then splitOn "," tagsText+ else words tagsText++exportNetscapeBookmarks :: Key User -> FilePath -> DB ()+exportNetscapeBookmarks user fpath = do+ marks <- allUserBookmarks user+ let bmarks = fmap (\(bm, t) -> bookmarkToNetscapeBookmark (entityVal bm) t) marks+ liftIO $ writeFileUtf8 fpath (renderNetscapeBookmarks bmarks)
+ src/Model/FileNote.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}++module Model.FileNote where++import ClassyPrelude.Yesod hiding (Value, exists, groupBy, on, (<=.), (==.), (>=.), (||.))+import Control.Monad.Fail (MonadFail)+import qualified Data.Aeson as A+import qualified Data.Aeson.Types as A (parseFail)+import Model+import Model.Custom+import System.Directory (listDirectory)+import Types++-- * FileNotes++data FileNote = FileNote+ { fileNoteId :: !Text,+ fileNoteTitle :: !Text,+ fileNoteText :: !Text,+ fileNoteLength :: !Int,+ fileNoteCreatedAt :: !UTCTime,+ fileNoteUpdatedAt :: !UTCTime+ }+ deriving (Show, Eq, Typeable, Ord)++instance FromJSON FileNote where+ parseJSON (Object o) =+ FileNote+ <$> o+ .: "id"+ <*> o+ .: "title"+ <*> o+ .: "text"+ <*> o+ .: "length"+ <*> (readFileNoteTime =<< o .: "created_at")+ <*> (readFileNoteTime =<< o .: "updated_at")+ parseJSON _ = A.parseFail "bad parse"++instance ToJSON FileNote where+ toJSON FileNote {..} =+ object+ [ "id" .= toJSON fileNoteId,+ "title" .= toJSON fileNoteTitle,+ "text" .= toJSON fileNoteText,+ "length" .= toJSON fileNoteLength,+ "created_at" .= toJSON (showFileNoteTime fileNoteCreatedAt),+ "updated_at" .= toJSON (showFileNoteTime fileNoteUpdatedAt)+ ]++readFileNoteTime ::+ (MonadFail m) =>+ String -> m UTCTime+readFileNoteTime = parseTimeM True defaultTimeLocale "%F %T"++showFileNoteTime :: UTCTime -> String+showFileNoteTime = formatTime defaultTimeLocale "%F %T"++fileNoteToNote :: UserId -> FileNote -> IO Note+fileNoteToNote user FileNote {..} = do+ slug <- mkNtSlug+ pure+ $ Note+ { noteUserId = user,+ noteSlug = slug,+ noteLength = fileNoteLength,+ noteTitle = fileNoteTitle,+ noteText = fileNoteText,+ noteIsMarkdown = False,+ noteShared = False,+ noteCreated = fileNoteCreatedAt,+ noteUpdated = fileNoteUpdatedAt+ }++insertDirFileNotes :: Key User -> FilePath -> DB (Either String Int)+insertDirFileNotes userId noteDirectory = do+ mfnotes <- liftIO $ readFileNotes noteDirectory+ case mfnotes of+ Left e -> pure $ Left e+ Right fnotes -> do+ notes <- liftIO $ mapM (fileNoteToNote userId) fnotes+ void $ mapM insertUnique notes+ pure $ Right (length notes)+ where+ readFileNotes :: (MonadIO m) => FilePath -> m (Either String [FileNote])+ readFileNotes fdir = do+ files <- liftIO (listDirectory fdir)+ noteBSS <- mapM (readFile . (fdir </>)) files+ pure (mapM (A.eitherDecode' . fromStrict) noteBSS)
+ src/Model/Form.hs view
@@ -0,0 +1,235 @@+module Model.Form where++import ClassyPrelude.Yesod hiding (Value, exists, groupBy, on, (<=.), (==.), (>=.), (||.))+import qualified ClassyPrelude.Yesod as CP+import qualified Data.Aeson as A+import Database.Esqueleto.Experimental hiding ((<&>))+import Model+import Model.Custom+import Types++-- * AccountSettingsForm++data AccountSettingsForm = AccountSettingsForm+ { _privateDefault :: Bool,+ _archiveDefault :: Bool,+ _suggestTags :: Bool,+ _privacyLock :: Bool,+ _archiveBackendEnabled :: Bool+ }+ deriving (Show, Eq, Read, Generic)++instance FromJSON AccountSettingsForm where parseJSON = A.genericParseJSON gDefaultFormOptions++instance ToJSON AccountSettingsForm where toJSON = A.genericToJSON gDefaultFormOptions++toAccountSettingsForm :: Bool -> User -> AccountSettingsForm+toAccountSettingsForm archiveBackendEnabled User {..} =+ AccountSettingsForm+ { _privateDefault = userPrivateDefault,+ _archiveDefault = userArchiveDefault,+ _suggestTags = userSuggestTags,+ _privacyLock = userPrivacyLock,+ _archiveBackendEnabled = archiveBackendEnabled+ }++updateUserFromAccountSettingsForm :: Key User -> AccountSettingsForm -> DB ()+updateUserFromAccountSettingsForm userId AccountSettingsForm {..} =+ CP.update+ userId+ [ UserPrivateDefault CP.=. _privateDefault,+ UserArchiveDefault CP.=. _archiveDefault,+ UserSuggestTags CP.=. _suggestTags,+ UserPrivacyLock CP.=. _privacyLock+ ]++-- * BookmarkForm++data BookmarkForm = BookmarkForm+ { _url :: Text,+ _title :: Maybe Text,+ _description :: Maybe Textarea,+ _tags :: Maybe Text,+ _private :: Maybe Bool,+ _toread :: Maybe Bool,+ _bid :: Maybe Int64,+ _slug :: Maybe BmSlug,+ _selected :: Maybe Bool,+ _time :: Maybe UTCTimeStr,+ _archiveUrl :: Maybe Text,+ _archiveRequested :: Maybe Bool+ }+ deriving (Show, Eq, Read, Generic)++instance FromJSON BookmarkForm where parseJSON = A.genericParseJSON gDefaultFormOptions++instance ToJSON BookmarkForm where+ toJSON BookmarkForm {..} =+ A.object $+ [ "url" .= _url,+ "title" .= _title,+ "description" .= _description,+ "tags" .= _tags,+ "private" .= _private,+ "toread" .= _toread,+ "bid" .= _bid,+ "slug" .= _slug,+ "selected" .= _selected,+ "time" .= _time+ ]+ ++ maybe [] (\x -> ["archiveUrl" .= x]) _archiveUrl+ ++ maybe [] (\x -> ["archiveRequested" .= x]) _archiveRequested+ toEncoding BookmarkForm {..} =+ A.pairs+ $ mconcat+ [ "url" .= _url,+ "title" .= _title,+ "description" .= _description,+ "tags" .= _tags,+ "private" .= _private,+ "toread" .= _toread,+ "bid" .= _bid,+ "slug" .= _slug,+ "selected" .= _selected,+ "time" .= _time+ ]+ <> maybe mempty ("archiveUrl" .=) _archiveUrl+ <> maybe mempty ("archiveRequested" .=) _archiveRequested++gDefaultFormOptions :: A.Options+gDefaultFormOptions = A.defaultOptions {A.fieldLabelModifier = drop 1}++toBookmarkFormListForViewer :: Bool -> [(Entity Bookmark, Maybe Text)] -> [BookmarkForm]+toBookmarkFormListForViewer isowner =+ fmap $ \entry ->+ let form = _toBookmarkForm' entry+ in if isowner then form else form {_selected = Just False, _toread = Just False, _archiveUrl = Nothing}++mkNewBookmarkForm :: Bool -> User -> Text -> Maybe Text -> Maybe Textarea -> Maybe Text -> Maybe Bool -> Maybe Bool -> BookmarkForm+mkNewBookmarkForm archiveBackendEnabled user url title description tags private toread =+ BookmarkForm+ { _url = url,+ _title = title,+ _description = description,+ _tags = tags,+ _private = private,+ _toread = toread,+ _bid = Nothing,+ _slug = Nothing,+ _selected = Nothing,+ _time = Nothing,+ _archiveUrl = Nothing,+ _archiveRequested =+ if archiveBackendEnabled+ then Just (userArchiveDefault user && maybe True not private)+ else Nothing+ }++toBookmarkForm :: (Entity Bookmark, [Entity BookmarkTag]) -> BookmarkForm+toBookmarkForm (bm, tags) =+ _toBookmarkForm' (bm, Just $ tagsToText tags)+ where+ tagsToText :: [Entity BookmarkTag] -> Text+ tagsToText = unwords . fmap (bookmarkTagTag . entityVal)++_toBookmarkForm' :: (Entity Bookmark, Maybe Text) -> BookmarkForm+_toBookmarkForm' (Entity bid Bookmark {..}, tags) =+ BookmarkForm+ { _url = bookmarkHref,+ _title = Just bookmarkDescription,+ _description = Just $ Textarea $ bookmarkExtended,+ _tags = Just $ fromMaybe "" tags,+ _private = Just $ not bookmarkShared,+ _toread = Just bookmarkToRead,+ _bid = Just $ fromSqlKey $ bid,+ _slug = Just bookmarkSlug,+ _selected = Just bookmarkSelected,+ _time = Just $ UTCTimeStr $ bookmarkTime,+ _archiveUrl = bookmarkArchiveHref,+ _archiveRequested = Nothing+ }++bookmarkFormToBookmark :: UserId -> BookmarkForm -> IO Bookmark+bookmarkFormToBookmark userId BookmarkForm {..} = do+ time <- liftIO getCurrentTime+ slug <- maybe mkBmSlug pure _slug+ pure+ $ Bookmark+ { bookmarkUserId = userId,+ bookmarkSlug = slug,+ bookmarkHref = _url,+ bookmarkDescription = fromMaybe "" _title,+ bookmarkExtended = maybe "" unTextarea _description,+ bookmarkTime = maybe time unUTCTimeStr _time,+ bookmarkShared = maybe True not _private,+ bookmarkToRead = Just True == _toread,+ bookmarkSelected = Just True == _selected,+ bookmarkArchiveHref = _archiveUrl+ }++-- * Tag suggestions++data TagSuggestionRequest = TagSuggestionRequest+ { _query :: Text,+ _currentTags :: Maybe [Text]+ }+ deriving (Show, Eq, Read, Generic)++data TagSuggestionResponse = TagSuggestionResponse+ { _suggestions :: [Suggestion]+ }+ deriving (Show, Eq, Read, Generic)++data Suggestion = Suggestion+ { _term :: Text,+ _count :: Int+ }+ deriving (Show, Eq, Read, Generic)++instance FromJSON TagSuggestionRequest where parseJSON = A.genericParseJSON gDefaultFormOptions++instance ToJSON TagSuggestionRequest where toJSON = A.genericToJSON gDefaultFormOptions++instance FromJSON TagSuggestionResponse where parseJSON = A.genericParseJSON gDefaultFormOptions++instance ToJSON TagSuggestionResponse where toJSON = A.genericToJSON gDefaultFormOptions++instance FromJSON Suggestion where parseJSON = A.genericParseJSON gDefaultFormOptions++instance ToJSON Suggestion where toJSON = A.genericToJSON gDefaultFormOptions++getTagSuggestions :: Key User -> TagSuggestionRequest -> Int -> DB TagSuggestionResponse+getTagSuggestions user TagSuggestionRequest {_query = query, _currentTags = currentTags} top = do+ values <-+ fmap (bimap unValue unValue)+ <$> ( select $ do+ (tag, countRows', matchPriority) <- from suggestionsQuery+ orderBy [asc matchPriority, desc countRows', asc $ lower_ tag]+ limit (fromIntegral top)+ pure (tag, countRows')+ )+ pure+ TagSuggestionResponse+ { _suggestions = uncurry Suggestion <$> values+ }+ where+ excludedTags = take 400 $ map toLower (fromMaybe ([] :: [Text]) currentTags)++ suggestionsQuery = do+ t <- from (table @BookmarkTag)+ where_+ ( t+ ^. BookmarkTagUserId+ ==. val user+ &&. (lower_ (t ^. BookmarkTagTag) `like` lower_ ((%) ++. val query ++. (%)))+ )+ unless (null excludedTags) $ where_ $ not_ (lower_ (t ^. BookmarkTagTag) `in_` valList excludedTags)+ let countRows' = countRows+ matchPriority =+ case_+ [ when_ (lower_ (t ^. BookmarkTagTag) ==. lower_ (val query)) then_ (val (0 :: Int)),+ when_ (lower_ (t ^. BookmarkTagTag) `like` lower_ (val query ++. (%))) then_ (val (1 :: Int))+ ]+ (else_ (val (2 :: Int)))+ groupBy (lower_ (t ^. BookmarkTagTag))+ pure (t ^. BookmarkTagTag, countRows', matchPriority)
− src/ModelCustom.hs
@@ -1,78 +0,0 @@--module ModelCustom where--import Prelude--import Crypto.BCrypt as Import hiding (hashPassword)-import Database.Persist.Sql-import Safe (fromJustNote)-import qualified Data.Text as T-import qualified Data.Text.Encoding as TE-import qualified Data.Aeson as A-import System.Entropy (getEntropy)-import qualified Data.ByteString.Builder as BB-import qualified Data.ByteString.Lazy as LBS-import qualified Data.Base64.Types as Base64-import qualified Data.ByteString.Base64.URL as Base64Url-import qualified Crypto.Hash.SHA256 as SHA256--mkSlug :: Int -> IO T.Text-mkSlug size =- TE.decodeUtf8 . LBS.toStrict . BB.toLazyByteString . BB.byteStringHex <$>- getEntropy size---- * Bookmark Slug--newtype BmSlug = BmSlug- { unBmSlug :: T.Text- } deriving (Eq, PersistField, PersistFieldSql, Show, Read, Ord, A.FromJSON, A.ToJSON)--mkBmSlug :: IO BmSlug-mkBmSlug = BmSlug <$> mkSlug 6---- * Note Slug--newtype NtSlug = NtSlug- { unNtSlug :: T.Text- } deriving (Eq, PersistField, PersistFieldSql, Show, Read, Ord, A.FromJSON, A.ToJSON)--mkNtSlug :: IO NtSlug-mkNtSlug = NtSlug <$> mkSlug 10---- * Model Crypto--policy :: HashingPolicy-policy =- HashingPolicy- { preferredHashCost = 12- , preferredHashAlgorithm = "$2a$"- }--newtype BCrypt = BCrypt- { unBCrypt :: T.Text- } deriving (Eq, PersistField, PersistFieldSql, Show, Ord, A.FromJSON, A.ToJSON)--hashPassword :: T.Text -> IO BCrypt-hashPassword rawPassword = do- mPassword <- hashPasswordUsingPolicy policy (TE.encodeUtf8 rawPassword)- return- (BCrypt (TE.decodeUtf8 (fromJustNote "Invalid hashing policy" mPassword)))--validatePasswordHash :: BCrypt -> T.Text -> Bool-validatePasswordHash hash' pass = do- validatePassword (TE.encodeUtf8 (unBCrypt hash')) (TE.encodeUtf8 pass)--newtype ApiKey = ApiKey { unApiKey :: T.Text }--newtype HashedApiKey- = HashedApiKey T.Text- deriving stock (Eq, Ord, Show)- deriving newtype (PersistField, PersistFieldSql, A.FromJSON, A.ToJSON)--generateApiKey :: IO ApiKey-generateApiKey = do- bytes <- getEntropy 32- pure $ ApiKey $ Base64.extractBase64 $ Base64Url.encodeBase64 bytes--hashApiKey :: ApiKey -> HashedApiKey-hashApiKey = HashedApiKey . TE.decodeUtf8 . Base64.extractBase64 . Base64Url.encodeBase64' . SHA256.hash . TE.encodeUtf8 . unApiKey
src/PathPiece.hs view
@@ -1,7 +1,7 @@ {-# OPTIONS_GHC -fno-warn-orphans #-} module PathPiece where- + import Data.Text (breakOn, splitOn) import qualified Data.Text as T (replace) import Import.NoFoundation@@ -52,10 +52,10 @@ "untagged" -> Just FilterUntagged "starred" -> Just FilterStarred s -> case breakOn ":" s of- ("b", "") -> Nothing- ("b", slug) -> Just $ FilterSingle (BmSlug (drop 1 slug))- _ -> Nothing+ ("b", "") -> Nothing+ ("b", slug) -> Just $ FilterSingle (BmSlug (drop 1 slug))+ _ -> Nothing +deriving instance PathPiece NtSlug -deriving instance PathPiece NtSlug -deriving instance PathPiece BmSlug +deriving instance PathPiece BmSlug
src/Pretty.hs view
@@ -1,9 +1,9 @@ module Pretty where- -import Text.Show.Pretty (ppShow)++import ClassyPrelude import Language.Haskell.HsColour import Language.Haskell.HsColour.Colourise-import ClassyPrelude+import Text.Show.Pretty (ppShow) cpprint :: (MonadIO m, Show a) => a -> m () cpprint = putStrLn . pack . hscolour TTY defaultColourPrefs False False "" False . ppShow
src/Settings.hs view
@@ -7,107 +7,158 @@ import ClassyPrelude.Yesod import qualified Control.Exception as Exception-import Data.Aeson (Result (..), fromJSON, withObject, (.!=),- (.:?))-import Data.FileEmbed (embedFile)-import Data.Yaml (decodeEither')-import Database.Persist.Sqlite (SqliteConf)-import Language.Haskell.TH.Syntax (Exp, Name, Q)-import Network.Wai.Handler.Warp (HostPreference)-import Yesod.Default.Config2 (applyEnvValue, configSettingsYml)-import Yesod.Default.Util (WidgetFileSettings, widgetFileNoReload,- widgetFileReload)+import Data.Aeson+ ( Result (..),+ encode,+ fromJSON,+ withObject,+ withText,+ (.!=),+ (.:?),+ )+import Data.FileEmbed (embedFile)+import Data.Yaml (decodeEither')+import Database.Persist.Sqlite (SqliteConf)+import Language.Haskell.TH.Syntax (Exp, Name, Q)+import Network.Wai.Handler.Warp (HostPreference)+import Yesod.Default.Config2 (applyEnvValue, configSettingsYml)+import Yesod.Default.Util+ ( WidgetFileSettings,+ widgetFileNoReload,+ widgetFileReload,+ ) -- | Runtime settings to configure this application. These settings can be -- loaded from various sources: defaults, environment variables, config files, -- theoretically even a database. data AppSettings = AppSettings- { appStaticDir :: String- -- ^ Directory from which to serve static files.- , appDatabaseConf :: SqliteConf- -- ^ Configuration settings for accessing the database.- , appRoot :: Maybe Text- -- ^ Base for all generated URLs. If @Nothing@, determined+ { -- | Directory from which to serve static files.+ appStaticDir :: String,+ -- | Configuration settings for accessing the database.+ appDatabaseConf :: SqliteConf,+ -- | Base for all generated URLs. If @Nothing@, determined -- from the request headers.- , appHost :: HostPreference- -- ^ Host/interface the server should bind to.- , appPort :: Int- -- ^ Port to listen on- , appIpFromHeader :: Bool- -- ^ Get the IP address from the header when logging. Useful when sitting+ appRoot :: Maybe Text,+ -- | Host/interface the server should bind to.+ appHost :: HostPreference,+ -- | Port to listen on+ appPort :: Int,+ -- | Get the IP address from the header when logging. Useful when sitting -- behind a reverse proxy.- , appDetailedRequestLogging :: Bool- -- ^ Use detailed request logging system- , appShouldLogAll :: Bool- -- ^ Should all log messages be displayed?- , appReloadTemplates :: Bool- -- ^ Use the reload version of templates- , appMutableStatic :: Bool- -- ^ Assume that files in the static dir may change after compilation- , appSkipCombining :: Bool- -- ^ Perform no stylesheet/script combining-+ appIpFromHeader :: Bool,+ -- | Use detailed request logging system+ appDetailedRequestLogging :: Bool,+ -- | Should all log messages be displayed?+ appShouldLogAll :: Bool,+ -- | Use the reload version of templates+ appReloadTemplates :: Bool,+ -- | Assume that files in the static dir may change after compilation+ appMutableStatic :: Bool,+ -- | Perform no stylesheet/script combining+ appSkipCombining :: Bool, -- Example app-specific configuration values.- , appCopyright :: Text- -- ^ Copyright text to appear in the footer of the page- , appAnalytics :: Maybe Text- -- ^ Google Analytics code - , appAuthDummyLogin :: Bool- -- ^ Indicate if auth dummy login should be enabled.-- , appArchiveSocksProxyHost :: Maybe Text- -- ^ Socks proxy host to use when making archive requests-- , appArchiveSocksProxyPort :: Maybe Int- -- ^ Socks proxy port to use when making archive requests-- , appSourceCodeUri :: Maybe Text- -- ^ Uri to app source code-- , appSSLOnly :: Bool-- , appAllowNonHttpUrlSchemes :: Bool- }+ -- | Copyright text to appear in the footer of the page+ appCopyright :: Text,+ -- | Google Analytics code+ appAnalytics :: Maybe Text,+ -- | Indicate if auth dummy login should be enabled.+ appAuthDummyLogin :: Bool,+ -- | Socks proxy host to use when making archive requests+ appArchiveSocksProxyHost :: Maybe Text,+ -- | Socks proxy port to use when making archive requests+ appArchiveSocksProxyPort :: Maybe Int,+ -- | Wayback Machine access key for archive requests+ appWaybackMachineAccessKey :: Maybe Text,+ -- | Wayback Machine secret key for archive requests+ appWaybackMachineSecretKey :: Maybe Text,+ -- | ArchiveBox-07 base URL used for web UI login and submissions+ appArchiveBoxUrl :: Maybe Text,+ -- | Public ArchiveBox-07 base URL used for bookmark links+ appArchiveBoxPublicUrl :: Maybe Text,+ -- | ArchiveBox-07 admin username used for web UI login+ appArchiveBoxUsername :: Maybe Text,+ -- | ArchiveBox-07 admin password used for web UI login+ appArchiveBoxPassword :: Maybe Text,+ -- | Tag applied to URLs submitted via the ArchiveBox-07 backend+ appArchiveBoxTag :: Text,+ -- | Optional comma-separated ArchiveBox-07 archive method override+ appArchiveBoxPlugins :: Maybe Text,+ -- | Which archiver backend to use (or disabled)+ appArchiveBackend :: ArchiveBackend,+ -- | Uri to app source code+ appSourceCodeUri :: Maybe Text,+ appSSLOnly :: Bool,+ appAllowNonHttpUrlSchemes :: Bool+ } instance FromJSON AppSettings where- parseJSON = withObject "AppSettings" \o -> do- let defaultDev =+ parseJSON = withObject "AppSettings" \o -> do+ let defaultDev = #ifdef DEVELOPMENT True #else False #endif- appStaticDir <- o .: "static-dir"- appDatabaseConf <- o .: "database"- appRoot <- o .:? "approot"- appHost <- fromString <$> o .: "host"- appPort <- o .: "port"- appIpFromHeader <- o .: "ip-from-header"+ appStaticDir <- o .: "static-dir"+ appDatabaseConf <- o .: "database"+ appRoot <- o .:? "approot"+ appHost <- fromString <$> o .: "host"+ appPort <- o .: "port"+ appIpFromHeader <- o .: "ip-from-header" - dev <- o .:? "development" .!= defaultDev+ dev <- o .:? "development" .!= defaultDev - appDetailedRequestLogging <- o .:? "detailed-logging" .!= dev- appShouldLogAll <- o .:? "should-log-all" .!= dev- appReloadTemplates <- o .:? "reload-templates" .!= dev- appMutableStatic <- o .:? "mutable-static" .!= dev- appSkipCombining <- o .:? "skip-combining" .!= dev+ appDetailedRequestLogging <- o .:? "detailed-logging" .!= dev+ appShouldLogAll <- o .:? "should-log-all" .!= dev+ appReloadTemplates <- o .:? "reload-templates" .!= dev+ appMutableStatic <- o .:? "mutable-static" .!= dev+ appSkipCombining <- o .:? "skip-combining" .!= dev - appCopyright <- o .: "copyright"- appAnalytics <- o .:? "analytics"+ appCopyright <- o .: "copyright"+ appAnalytics <- o .:? "analytics" - appAuthDummyLogin <- o .:? "auth-dummy-login" .!= dev+ appAuthDummyLogin <- o .:? "auth-dummy-login" .!= dev - appArchiveSocksProxyHost <- o .:? "archive-socks-proxy-host"- appArchiveSocksProxyPort <- o .:? "archive-socks-proxy-port"- appSourceCodeUri <- o .:? "source-code-uri"+ appArchiveBackend <- o .:? "archive-backend" .!= ArchiveBackendDisabled - appSSLOnly <- fromMaybe False <$> o .:? "ssl-only"+ appArchiveSocksProxyHost <- o .:? "archive-socks-proxy-host"+ appArchiveSocksProxyPort <- o .:? "archive-socks-proxy-port" - appAllowNonHttpUrlSchemes <- fromMaybe False <$> o .:? "allow-non-http-url-schemes"+ appWaybackMachineAccessKey <- fmap toText <$> o .:? "wayback-machine-access-key"+ appWaybackMachineSecretKey <- fmap toText <$> o .:? "wayback-machine-secret-key" - return AppSettings {..}+ appArchiveBoxUrl <- o .:? "archivebox-url"+ appArchiveBoxPublicUrl <- o .:? "archivebox-public-url"+ appArchiveBoxUsername <- fmap toText <$> o .:? "archivebox-username"+ appArchiveBoxPassword <- fmap toText <$> o .:? "archivebox-password"+ appArchiveBoxTag <- (fmap toText <$> o .:? "archivebox-tag") .!= "espial"+ appArchiveBoxPlugins <- o .:? "archivebox-plugins" + appSourceCodeUri <- o .:? "source-code-uri"++ appSSLOnly <- fromMaybe False <$> o .:? "ssl-only"++ appAllowNonHttpUrlSchemes <- o .:? "allow-non-http-url-schemes" .!= False++ return AppSettings {..}+ where+ toText (String t) = t+ toText other = (decodeUtf8 . toStrict . encode) other++-- | Selects which archive backend is active.+data ArchiveBackend = ArchiveBackendDisabled | ArchiveBackendDebug | ArchiveBackendArchiveLi | ArchiveBackendWaybackMachine | ArchiveBackendArchiveBox07+ deriving (Show, Eq)++instance FromJSON ArchiveBackend where+ parseJSON = withText "ArchiveBackend" $ \case+ "disabled" -> pure ArchiveBackendDisabled+ "debug" -> pure ArchiveBackendDebug+ "archive-li" -> pure ArchiveBackendArchiveLi+ "wayback-machine" -> pure ArchiveBackendWaybackMachine+ "archivebox07" -> pure ArchiveBackendArchiveBox07+ _ -> mzero+ -- | Settings for 'widgetFile', such as which template languages to support and -- default Hamlet settings. --@@ -125,10 +176,12 @@ -- user. widgetFile :: String -> Q Exp-widgetFile = (if appReloadTemplates compileTimeAppSettings- then widgetFileReload- else widgetFileNoReload)- widgetFileSettings+widgetFile =+ ( if appReloadTemplates compileTimeAppSettings+ then widgetFileReload+ else widgetFileNoReload+ )+ widgetFileSettings -- | Raw bytes at compile time of @config/settings.yml@ configSettingsYmlBS :: ByteString@@ -136,15 +189,16 @@ -- | @config/settings.yml@, parsed to a @Value@. configSettingsYmlValue :: Value-configSettingsYmlValue = either Exception.throw id- $ decodeEither' configSettingsYmlBS+configSettingsYmlValue =+ either Exception.throw id+ $ decodeEither' configSettingsYmlBS -- | A version of @AppSettings@ parsed at compile time from @config/settings.yml@. compileTimeAppSettings :: AppSettings compileTimeAppSettings =- case fromJSON $ applyEnvValue False mempty configSettingsYmlValue of- Error e -> error e- Success settings -> settings+ case fromJSON $ applyEnvValue False mempty configSettingsYmlValue of+ Error e -> error e+ Success settings -> settings -- The following two functions can be used to combine multiple CSS or JS files -- at compile time to decrease the number of http requests.@@ -153,11 +207,13 @@ -- > $(combineStylesheets 'StaticR [style1_css, style2_css]) combineStylesheets :: Name -> [Route Static] -> Q Exp-combineStylesheets = combineStylesheets'+combineStylesheets =+ combineStylesheets' (appSkipCombining compileTimeAppSettings) combineSettings combineScripts :: Name -> [Route Static] -> Q Exp-combineScripts = combineScripts'+combineScripts =+ combineScripts' (appSkipCombining compileTimeAppSettings) combineSettings
src/Settings/StaticFiles.hs view
@@ -1,6 +1,6 @@ module Settings.StaticFiles where -import Settings (appStaticDir, compileTimeAppSettings)+import Settings (appStaticDir, compileTimeAppSettings) import Yesod.Static (staticFiles) -- This generates easy references to files in the static directory at compile time,
+ static/css/common.css view
@@ -0,0 +1,349 @@+/* Base */+html,+body {+ background-color: light-dark(#fff, #121212);+}++[hidden] {+ display: none !important;+}++a {+ color: light-dark(oklch(42.903% 0.29735 264.073), oklch(76% 0.29735 264.073));+}++a:visited {+ color: light-dark(oklch(37.836% 0.17168 302.149), oklch(73% 0.12 283));+}++a:active {+ color: light-dark(oklch(59.598% 0.24457 29.223), oklch(75% 0.24457 29.223));+}++button {+ background: none;+ border: none;+ padding: 0;+ cursor: pointer;+}++button:focus {+ outline: none;+}++input[type="text"],+input[type="url"],+input[type="password"],+textarea {+ font-size: 16px;+}++input[type="text"],+input[type="url"],+input[type="password"],+input[type="search"],+input[type="email"],+input[type="number"],+textarea {+ color: light-dark(#000, #f2f2f2);+ background-color: light-dark(#fff, #0c0c0c);++ border: 1px solid light-dark(#767676, #555);+ appearance: none;+ -webkit-appearance: none;+ box-shadow: none;+ caret-color: currentColor;+ -webkit-text-fill-color: currentColor;+}++:is(+ input[type="text"],+ input[type="url"],+ input[type="password"],+ input[type="search"],+ input[type="email"],+ input[type="number"],+ textarea+):focus,+:is(+ input[type="text"],+ input[type="url"],+ input[type="password"],+ input[type="search"],+ input[type="email"],+ input[type="number"],+ textarea+):focus-visible {+ outline: none;+ border-width: 2px;+ border-color: light-dark(oklch(0% 0 258), oklch(75% 0 258));+ border-radius: 4px;+}++label {+ cursor: pointer;+}++:root {+ color-scheme: light dark;+}++:root[data-color-scheme="light"] {+ color-scheme: light;+}++:root[data-color-scheme="dark"] {+ color-scheme: dark;+}++.color-scheme-toggle-dark-label,+.color-scheme-toggle-light-label {+ display: none;+}++:root[data-color-scheme="light"] .color-scheme-toggle-dark-label {+ display: inline;+}++:root[data-color-scheme="dark"] .color-scheme-toggle-light-label {+ display: inline;+}++/* Colors */+.thm-bg-surface {+ background-color: light-dark(#fff, #121212);+}++.thm-bg-secondary {+ background-color: light-dark(#f4f4f4, #1f1f1f);+}++.thm-bg-selected {+ background-color: light-dark(#96ccff, #1c4f7e);+}++.thm-bg-disabled {+ background-color: light-dark(#aaa, #666);+ cursor: not-allowed;+}++.not-allowed {+ cursor: not-allowed;+}++.thm-text-primary {+ color: light-dark(#333, #ddd);+}++.thm-text-secondary {+ color: light-dark(#555, #bdbdbd);+}++.thm-text-tertiary,+.pager-arrow,+.search-icon {+ color: light-dark(#777, #999);+}++.thm-text-muted {+ color: light-dark(#aaa, #7a7a7a);+}++.thm-text-border,+.thm-text-faded {+ color: light-dark(#ccc, #666);+}++.thm-text-strong {+ color: light-dark(#000, #fff);+}++.thm-text-error {+ color: light-dark(#ff4136, #ff6b63);+}++.thm-text-killed {+ color: light-dark(#f00, #ff5c5c);+}++.thm-text-success {+ color: light-dark(#137752, #44c08a);+}++.thm-text-selected {+ color: light-dark(#001b44, #cfe1ff);+}++.thm-border-default {+ border-color: light-dark(#ccc, #666);+}++.thm-border-dotted {+ border-color: light-dark(#aaa, #777);+}++.thm-border-pwd {+ border-color: light-dark(rgba(0, 0, 0, 0.2), rgba(255, 255, 255, 0.35));+}++.thm-border-pwd-box {+ border-color: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.2));+}++.thm-border-doc-table {+ border-color: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.2));+}++.thm-border-primary {+ border-color: light-dark(#111, #efefef);+}++.thm-hover-link-color:hover {+ color: light-dark(#06c, #6ab0ff);+}++input::placeholder {+ color: light-dark(#d3d3d3, #8a8a8a);+}++.queryInput {+ border-color: light-dark(gray, #8f8f8f);+}++.submitting .queryInput,+.queryInput.search-active {+ border-color: light-dark(#990, #d9c65a);+ background-color: light-dark(#ff9, #5b4d00);+}++.star.selected button {+ color: light-dark(#22a, #7da2ff);+}++.tag,+a.tag:visited {+ color: light-dark(oklch(54.38% 0.13279 52.009), oklch(64% 0.13229 52.009));+}++.tag-include,+a.tag-include:visited {+ color: light-dark(#ddd, #9a9a9a);+}++.tag-exclude,+a.tag-exclude:visited {+ color: light-dark(#faa, #ff9b9b);+}++.private {+ background: light-dark(#ddd, #252525);+ border: 1px solid light-dark(#d1d1d1, #101010);+}++.unread,+a.unread {+ color: light-dark(oklch(54.561% 0.16363 39.683), oklch(81.93% 0.1259 60.765));+}++.mark_read {+ color: light-dark(oklch(64.082% 0.12701 90.313), oklch(72% 0.12701 90.313));+}++.flash {+ color: light-dark(green, #6fdd8b);+ background: light-dark(#efe, #143321);+}++.top_menu a {+ color: light-dark(blue, #8ab4ff);+}++.alert {+ background: light-dark(#ced, #1d3340);+ border: 1px solid light-dark(#acc, #3c5c70);+}++.alert.alert-err {+ background-color: light-dark(#ffdfdf, #4a2323);+}++.edit_bookmark_form {+ color: light-dark(#888, #a0a0a0);+}++.edit_bookmark_form input,+.edit_bookmark_form textarea {+ border: 1px solid light-dark(#ddd, #555);+}++.nav-active {+ background: light-dark(#ff8, #645700);+ color: light-dark(rgb(0, 0, 255), #9ec1ff);+}++.close-x {+ stroke: light-dark(gray, #9a9a9a);+}++.rss {+ color: light-dark(+ oklch(82.529% 0.17086 80.013),+ oklch(62.035% 0.17086 80.013)+ );+}++.rss:hover {+ color: light-dark(+ oklch(69.203% 0.20655 42.566),+ oklch(49.203% 0.20655 42.566)+ );+}++.hover-alt:hover {+ color: light-dark(#357edd, #7aaeff);+}++.pager-link {+ color: light-dark(#aaa, #8d8d8d);+}++.logo-div {+ color: light-dark(#aaa, #eee);+}++.post-input {+ color: light-dark(#000, #f2f2f2);+ border-color: light-dark(#001b44, #5f88d6);+}++.layout-msg {+ color: light-dark(+ oklch(23.191% 0.08487 257.743),+ oklch(63.176% 0.04487 257.743)+ );+ border-color: light-dark(+ oklch(23.191% 0.08487 257.743),+ oklch(63.176% 0.04487 257.743)+ );+ background-color: light-dark(+ oklch(98.883% 0.02238 98.671),+ oklch(28.242% 0.02238 98.671)+ );+}++.query-info-icon {+ color: light-dark(#357edd, #7aaeff);+}++.docs-item-bg,+.docs-striped-item:nth-child(odd) {+ background-color: light-dark(#eee, #242424);+}++.login-div {+ background-color: light-dark(#fff, #121212);+}++.login-bg {+ background-color: light-dark(#f4f4f4, #1f1f1f);+}
static/css/main.css view
@@ -1,235 +1,174 @@ html {- height: 102%;+ height: 102%; } body {- height: 102%;- word-wrap: break-word;-}--button {- background: none;- border: none;- padding: 0;- cursor: pointer;-}--button:focus {- outline: none;-}--[hidden] {- display: none !important;-}--input::placeholder {- color: lightgray;-}--input[type="text"],-input[type="url"],-input[type="password"],-textarea {- font-size: 16px;+ height: 102%;+ word-wrap: break-word; } .queryInput {- width: 128px;- padding: 0 22px 0 2px;- border-radius: 3px;- border-style: solid;- border-width: 1px;- border-color: gray;- height: 22px;- line-height: 22px;- transition: width 0.1s ease-in-out;+ width: 128px;+ padding: 0 22px 0 2px;+ border-radius: 3px;+ border-style: solid;+ border-width: 1px;+ height: 22px;+ line-height: 22px;+ transition: width 0.1s ease-in-out; }+ .queryInput.search-inactive { }+ .queryInput:focus {- width: 175px;+ width: 175px; }+ .submitting .queryInput, .queryInput.search-active {- border-color: #990;- border-width: 2px;- background-color: #ff9;- width: 175px;+ border-width: 2px;+ width: 175px; }+ .queryIcon {- position: absolute;- right: 0;- top: 1px;- cursor: pointer;- width: 20px;- height: 20px;- fill: currentColor;-}-label {- cursor: pointer;+ position: absolute;+ right: 0;+ top: 1px;+ cursor: pointer;+ width: 20px;+ height: 20px;+ fill: currentColor; }+ .close-x-wrap {- float: left;- width: 17px;- height: 17px;- top: 2px;- position: relative;- right: 2px;+ float: left;+ width: 17px;+ height: 17px;+ top: 2px;+ position: relative;+ right: 2px; }+ .close-x {- stroke: gray;- fill: transparent;- stroke-linecap: round;- stroke-width: 3;+ fill: transparent;+ stroke-linecap: round;+ stroke-width: 3; }+ .query-info-icon {- position: absolute;- top: 0px;- right: -18px;- text-decoration: none;- font-size: 12px;- padding: 0 8px 8px 0;+ position: absolute;+ top: 0px;+ right: -18px;+ text-decoration: none;+ font-size: 12px;+ padding: 0 8px 8px 0; }+ .star {- margin-left: -20px;- font-size: 1.2em;- position: relative;- top: -2px;+ margin-left: -20px;+ font-size: 1.2em;+ position: relative;+ top: -2px; } .star button {- transition: color 0.1s;-}-.star.selected button {- color: #22a;+ transition: color 0.1s; }+ .edit_links button {- transition: color 0.1s ease-in;+ transition: color 0.1s ease-in; } .tag {- color: #a51;- line-height: 190%;- display: inline-block;-}-.tag-include {- color: rgb(221, 221, 221);- line-height: 190%;- display: inline-block;-}-.tag-exclude {- color: rgb(255, 170, 170);- line-height: 190%;- display: inline-block;+ line-height: 190%;+ display: inline-block; } -.private {- background: #ddd;- border: 1px solid #d1d1d1;-}-.unread {- color: #b41;-}-.mark_read {- color: #a81;-}-.flash {- color: green;- background: #efe;+.tag-exclude {+ line-height: 190%;+ display: inline-block; } .top_menu {- margin-top: 6px;-}-.top_menu a {- color: blue;+ margin-top: 6px; }+ .bookmarklet {- padding: 1px 2px 0px 2px;+ padding: 1px 2px 0px 2px; } .alert {- background: #ced;- border: 1px solid #acc;- margin-bottom: 5px;- padding: 2px;-}-.alert.alert-err {- background-color: #ffdfdf-}--.edit_bookmark_form {- color: #888;-}-.edit_bookmark_form input {- border: 1px solid #ddd;-}-.edit_bookmark_form textarea {- border: 1px solid #ddd;-}--.nav-active {- background: #ff8;- color: blue;+ margin-bottom: 5px;+ padding: 2px; } /* mobile device */ @media only screen and (max-width: 750px) {- body {- -webkit-text-size-adjust: none;- }- .display {- float: none;- }+ body {+ -webkit-text-size-adjust: none;+ }+ .display {+ float: none;+ } } @media only screen and (max-width: 500px) {- .filters {- clear: both;- position: relative;- top: 2px;- }+ .filters {+ clear: both;+ position: relative;+ top: 2px;+ } } .rdim {- opacity: 0.8;- transition: all 0.15s ease-in;+ opacity: 0.8;+ transition: all 0.15s ease-in; }+ .rdim:hover, .rdim:focus {- opacity: 1;- transition: all 0.15s ease-in;+ opacity: 1;+ transition: all 0.15s ease-in; }+ .display .description > div p, .display .description > div pre {- margin-top: 9px;- margin-bottom: 9px;+ margin-top: 9px;+ margin-bottom: 9px; }+ .display .description > div > *:first-child {- margin-top: 2px;+ margin-top: 2px; }+ .display .description > div > *:last-child {- margin-bottom: 2px;+ margin-bottom: 2px; }+ .display .description > div > ol li p {- margin-top: 0;- margin-bottom: 0;+ margin-top: 0;+ margin-bottom: 0; }+ .display .description > div > ul li p {- margin-top: 0;- margin-bottom: 0;+ margin-top: 0;+ margin-bottom: 0; }+ .display .description > div ol {- padding-left: 23px;+ padding-left: 23px; }+ .display .description > div ul {- padding-left: 23px;+ padding-left: 23px; }+ code, pre {- font-size: 13px;+ font-size: 13px; } #content:not([view-rendered]) .view-delay {- display: none !important;+ display: none !important; }
static/css/popup.css view
@@ -1,59 +1,25 @@ html {- box-sizing: border-box;-}-[hidden] {- display: none !important;-}-button {- background: none;- border: none;- padding: 0;- cursor: pointer;-}-button:focus {- outline: none;-}-input[type="text"],-input[type="url"],-textarea {- font-size: 16px;-}-.alert {- background: #ced;- border: 1px solid #acc;+ box-sizing: border-box; }+ #addForm .alert {- margin-top: -6px;-}-.alert.alert-err {- background-color: #ffdfdf+ margin-top: -6px; }+ form label {- margin: 0;- vertical-align: middle;- display: table-cell;- padding: 2px 0;+ margin: 0;+ vertical-align: middle;+ display: table-cell;+ padding: 2px 0; }+ li {- list-style-type: none;- margin: 0;- padding: 0;- display: block;+ list-style-type: none;+ margin: 0;+ padding: 0;+ display: block; } -.when {- color: #999;-}-.unread {- color: #b41;-}-a.unread {- color: #b41;-} a.bookmark_title {- font-size: 120%;-}--label {- cursor: pointer;+ font-size: 120%; }
+ static/js/app-F6AR6563.min.js view
@@ -0,0 +1,72 @@+var Rk=Object.create;var Sf=Object.defineProperty,Nk=Object.defineProperties,zk=Object.getOwnPropertyDescriptor,Ck=Object.getOwnPropertyDescriptors,Uk=Object.getOwnPropertyNames,Vu=Object.getOwnPropertySymbols,Yk=Object.getPrototypeOf,Tf=Object.prototype.hasOwnProperty,wp=Object.prototype.propertyIsEnumerable;var Ap=e=>{throw TypeError(e)};var vf=(e,t,n)=>t in e?Sf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,B=(e,t)=>{for(var n in t||(t={}))Tf.call(t,n)&&vf(e,n,t[n]);if(Vu)for(var n of Vu(t))wp.call(t,n)&&vf(e,n,t[n]);return e},$=(e,t)=>Nk(e,Ck(t));var Mp=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Op=(e,t)=>{var n={};for(var a in e)Tf.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&Vu)for(var a of Vu(e))t.indexOf(a)<0&&wp.call(e,a)&&(n[a]=e[a]);return n};var Yn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Lk=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Uk(t))!Tf.call(e,l)&&l!==n&&Sf(e,l,{get:()=>t[l],enumerable:!(a=zk(t,l))||a.enumerable});return e};var ye=(e,t,n)=>(n=e!=null?Rk(Yk(e)):{},Lk(t||!e||!e.__esModule?Sf(n,"default",{value:e,enumerable:!0}):n,e));var K=(e,t,n)=>vf(e,typeof t!="symbol"?t+"":t,n),_f=(e,t,n)=>t.has(e)||Ap("Cannot "+n);var O=(e,t,n)=>(_f(e,t,"read from private field"),n?n.call(e):t.get(e)),Bt=(e,t,n)=>t.has(e)?Ap("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Et=(e,t,n,a)=>(_f(e,t,"write to private field"),a?a.call(e,n):t.set(e,n),n),G=(e,t,n)=>(_f(e,t,"access private method"),n);var kf=(e,t,n,a)=>({set _(l){Et(e,t,l,n)},get _(){return O(e,t,a)}});var Bp=Yn(Ze=>{"use strict";function Af(e,t){var n=e.length;e.push(t);e:for(;0<n;){var a=n-1>>>1,l=e[a];if(0<Zu(l,t))e[a]=t,e[n]=l,n=a;else break e}}function $n(e){return e.length===0?null:e[0]}function Xu(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var a=0,l=e.length,i=l>>>1;a<i;){var u=2*(a+1)-1,c=e[u],d=u+1,m=e[d];if(0>Zu(c,n))d<l&&0>Zu(m,c)?(e[a]=m,e[d]=n,a=d):(e[a]=c,e[u]=n,a=u);else if(d<l&&0>Zu(m,n))e[a]=m,e[d]=n,a=d;else break e}}return t}function Zu(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}Ze.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Dp=performance,Ze.unstable_now=function(){return Dp.now()}):(xf=Date,Rp=xf.now(),Ze.unstable_now=function(){return xf.now()-Rp});var Dp,xf,Rp,va=[],Wa=[],Hk=1,yn=null,wt=3,Mf=!1,$r=!1,Ir=!1,Of=!1,Cp=typeof setTimeout=="function"?setTimeout:null,Up=typeof clearTimeout=="function"?clearTimeout:null,Np=typeof setImmediate<"u"?setImmediate:null;function Qu(e){for(var t=$n(Wa);t!==null;){if(t.callback===null)Xu(Wa);else if(t.startTime<=e)Xu(Wa),t.sortIndex=t.expirationTime,Af(va,t);else break;t=$n(Wa)}}function Df(e){if(Ir=!1,Qu(e),!$r)if($n(va)!==null)$r=!0,zi||(zi=!0,Ni());else{var t=$n(Wa);t!==null&&Rf(Df,t.startTime-e)}}var zi=!1,Pr=-1,Yp=5,Lp=-1;function Hp(){return Of?!0:!(Ze.unstable_now()-Lp<Yp)}function Ef(){if(Of=!1,zi){var e=Ze.unstable_now();Lp=e;var t=!0;try{e:{$r=!1,Ir&&(Ir=!1,Up(Pr),Pr=-1),Mf=!0;var n=wt;try{t:{for(Qu(e),yn=$n(va);yn!==null&&!(yn.expirationTime>e&&Hp());){var a=yn.callback;if(typeof a=="function"){yn.callback=null,wt=yn.priorityLevel;var l=a(yn.expirationTime<=e);if(e=Ze.unstable_now(),typeof l=="function"){yn.callback=l,Qu(e),t=!0;break t}yn===$n(va)&&Xu(va),Qu(e)}else Xu(va);yn=$n(va)}if(yn!==null)t=!0;else{var i=$n(Wa);i!==null&&Rf(Df,i.startTime-e),t=!1}}break e}finally{yn=null,wt=n,Mf=!1}t=void 0}}finally{t?Ni():zi=!1}}}var Ni;typeof Np=="function"?Ni=function(){Np(Ef)}:typeof MessageChannel<"u"?(wf=new MessageChannel,zp=wf.port2,wf.port1.onmessage=Ef,Ni=function(){zp.postMessage(null)}):Ni=function(){Cp(Ef,0)};var wf,zp;function Rf(e,t){Pr=Cp(function(){e(Ze.unstable_now())},t)}Ze.unstable_IdlePriority=5;Ze.unstable_ImmediatePriority=1;Ze.unstable_LowPriority=4;Ze.unstable_NormalPriority=3;Ze.unstable_Profiling=null;Ze.unstable_UserBlockingPriority=2;Ze.unstable_cancelCallback=function(e){e.callback=null};Ze.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Yp=0<e?Math.floor(1e3/e):5};Ze.unstable_getCurrentPriorityLevel=function(){return wt};Ze.unstable_next=function(e){switch(wt){case 1:case 2:case 3:var t=3;break;default:t=wt}var n=wt;wt=t;try{return e()}finally{wt=n}};Ze.unstable_requestPaint=function(){Of=!0};Ze.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=wt;wt=e;try{return t()}finally{wt=n}};Ze.unstable_scheduleCallback=function(e,t,n){var a=Ze.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?a+n:a):n=a,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return l=n+l,e={id:Hk++,callback:t,priorityLevel:e,startTime:n,expirationTime:l,sortIndex:-1},n>a?(e.sortIndex=n,Af(Wa,e),$n(va)===null&&e===$n(Wa)&&(Ir?(Up(Pr),Pr=-1):Ir=!0,Rf(Df,n-a))):(e.sortIndex=l,Af(va,e),$r||Mf||($r=!0,zi||(zi=!0,Ni()))),e};Ze.unstable_shouldYield=Hp;Ze.unstable_wrapCallback=function(e){var t=wt;return function(){var n=wt;wt=t;try{return e.apply(this,arguments)}finally{wt=n}}}});var jp=Yn((N2,qp)=>{"use strict";qp.exports=Bp()});var Ip=Yn(ae=>{"use strict";var Cf=Symbol.for("react.transitional.element"),Bk=Symbol.for("react.portal"),qk=Symbol.for("react.fragment"),jk=Symbol.for("react.strict_mode"),Gk=Symbol.for("react.profiler"),Vk=Symbol.for("react.consumer"),Zk=Symbol.for("react.context"),Qk=Symbol.for("react.forward_ref"),Xk=Symbol.for("react.suspense"),Fk=Symbol.for("react.memo"),Xp=Symbol.for("react.lazy"),Kk=Symbol.for("react.activity"),Gp=Symbol.iterator;function Jk(e){return e===null||typeof e!="object"?null:(e=Gp&&e[Gp]||e["@@iterator"],typeof e=="function"?e:null)}var Fp={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Kp=Object.assign,Jp={};function Ui(e,t,n){this.props=e,this.context=t,this.refs=Jp,this.updater=n||Fp}Ui.prototype.isReactComponent={};Ui.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Ui.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Wp(){}Wp.prototype=Ui.prototype;function Uf(e,t,n){this.props=e,this.context=t,this.refs=Jp,this.updater=n||Fp}var Yf=Uf.prototype=new Wp;Yf.constructor=Uf;Kp(Yf,Ui.prototype);Yf.isPureReactComponent=!0;var Vp=Array.isArray;function zf(){}var Be={H:null,A:null,T:null,S:null},$p=Object.prototype.hasOwnProperty;function Lf(e,t,n){var a=n.ref;return{$$typeof:Cf,type:e,key:t,ref:a!==void 0?a:null,props:n}}function Wk(e,t){return Lf(e.type,t,e.props)}function Hf(e){return typeof e=="object"&&e!==null&&e.$$typeof===Cf}function $k(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var Zp=/\/+/g;function Nf(e,t){return typeof e=="object"&&e!==null&&e.key!=null?$k(""+e.key):t.toString(36)}function Ik(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(zf,zf):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Ci(e,t,n,a,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var u=!1;if(e===null)u=!0;else switch(i){case"bigint":case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case Cf:case Bk:u=!0;break;case Xp:return u=e._init,Ci(u(e._payload),t,n,a,l)}}if(u)return l=l(e),u=a===""?"."+Nf(e,0):a,Vp(l)?(n="",u!=null&&(n=u.replace(Zp,"$&/")+"/"),Ci(l,t,n,"",function(m){return m})):l!=null&&(Hf(l)&&(l=Wk(l,n+(l.key==null||e&&e.key===l.key?"":(""+l.key).replace(Zp,"$&/")+"/")+u)),t.push(l)),1;u=0;var c=a===""?".":a+":";if(Vp(e))for(var d=0;d<e.length;d++)a=e[d],i=c+Nf(a,d),u+=Ci(a,t,n,i,l);else if(d=Jk(e),typeof d=="function")for(e=d.call(e),d=0;!(a=e.next()).done;)a=a.value,i=c+Nf(a,d++),u+=Ci(a,t,n,i,l);else if(i==="object"){if(typeof e.then=="function")return Ci(Ik(e),t,n,a,l);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return u}function Fu(e,t,n){if(e==null)return e;var a=[],l=0;return Ci(e,a,"","",function(i){return t.call(n,i,l++)}),a}function Pk(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Qp=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},ex={map:Fu,forEach:function(e,t,n){Fu(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Fu(e,function(){t++}),t},toArray:function(e){return Fu(e,function(t){return t})||[]},only:function(e){if(!Hf(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ae.Activity=Kk;ae.Children=ex;ae.Component=Ui;ae.Fragment=qk;ae.Profiler=Gk;ae.PureComponent=Uf;ae.StrictMode=jk;ae.Suspense=Xk;ae.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Be;ae.__COMPILER_RUNTIME={__proto__:null,c:function(e){return Be.H.useMemoCache(e)}};ae.cache=function(e){return function(){return e.apply(null,arguments)}};ae.cacheSignal=function(){return null};ae.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var a=Kp({},e.props),l=e.key;if(t!=null)for(i in t.key!==void 0&&(l=""+t.key),t)!$p.call(t,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&t.ref===void 0||(a[i]=t[i]);var i=arguments.length-2;if(i===1)a.children=n;else if(1<i){for(var u=Array(i),c=0;c<i;c++)u[c]=arguments[c+2];a.children=u}return Lf(e.type,l,a)};ae.createContext=function(e){return e={$$typeof:Zk,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:Vk,_context:e},e};ae.createElement=function(e,t,n){var a,l={},i=null;if(t!=null)for(a in t.key!==void 0&&(i=""+t.key),t)$p.call(t,a)&&a!=="key"&&a!=="__self"&&a!=="__source"&&(l[a]=t[a]);var u=arguments.length-2;if(u===1)l.children=n;else if(1<u){for(var c=Array(u),d=0;d<u;d++)c[d]=arguments[d+2];l.children=c}if(e&&e.defaultProps)for(a in u=e.defaultProps,u)l[a]===void 0&&(l[a]=u[a]);return Lf(e,i,l)};ae.createRef=function(){return{current:null}};ae.forwardRef=function(e){return{$$typeof:Qk,render:e}};ae.isValidElement=Hf;ae.lazy=function(e){return{$$typeof:Xp,_payload:{_status:-1,_result:e},_init:Pk}};ae.memo=function(e,t){return{$$typeof:Fk,type:e,compare:t===void 0?null:t}};ae.startTransition=function(e){var t=Be.T,n={};Be.T=n;try{var a=e(),l=Be.S;l!==null&&l(n,a),typeof a=="object"&&a!==null&&typeof a.then=="function"&&a.then(zf,Qp)}catch(i){Qp(i)}finally{t!==null&&n.types!==null&&(t.types=n.types),Be.T=t}};ae.unstable_useCacheRefresh=function(){return Be.H.useCacheRefresh()};ae.use=function(e){return Be.H.use(e)};ae.useActionState=function(e,t,n){return Be.H.useActionState(e,t,n)};ae.useCallback=function(e,t){return Be.H.useCallback(e,t)};ae.useContext=function(e){return Be.H.useContext(e)};ae.useDebugValue=function(){};ae.useDeferredValue=function(e,t){return Be.H.useDeferredValue(e,t)};ae.useEffect=function(e,t){return Be.H.useEffect(e,t)};ae.useEffectEvent=function(e){return Be.H.useEffectEvent(e)};ae.useId=function(){return Be.H.useId()};ae.useImperativeHandle=function(e,t,n){return Be.H.useImperativeHandle(e,t,n)};ae.useInsertionEffect=function(e,t){return Be.H.useInsertionEffect(e,t)};ae.useLayoutEffect=function(e,t){return Be.H.useLayoutEffect(e,t)};ae.useMemo=function(e,t){return Be.H.useMemo(e,t)};ae.useOptimistic=function(e,t){return Be.H.useOptimistic(e,t)};ae.useReducer=function(e,t,n){return Be.H.useReducer(e,t,n)};ae.useRef=function(e){return Be.H.useRef(e)};ae.useState=function(e){return Be.H.useState(e)};ae.useSyncExternalStore=function(e,t,n){return Be.H.useSyncExternalStore(e,t,n)};ae.useTransition=function(){return Be.H.useTransition()};ae.version="19.2.6"});var qt=Yn((C2,Pp)=>{"use strict";Pp.exports=Ip()});var tg=Yn(zt=>{"use strict";var tx=qt();function eg(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function $a(){}var Nt={d:{f:$a,r:function(){throw Error(eg(522))},D:$a,C:$a,L:$a,m:$a,X:$a,S:$a,M:$a},p:0,findDOMNode:null},nx=Symbol.for("react.portal");function ax(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:nx,key:a==null?null:""+a,children:e,containerInfo:t,implementation:n}}var es=tx.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function Ku(e,t){if(e==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}zt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Nt;zt.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(eg(299));return ax(e,t,null,n)};zt.flushSync=function(e){var t=es.T,n=Nt.p;try{if(es.T=null,Nt.p=2,e)return e()}finally{es.T=t,Nt.p=n,Nt.d.f()}};zt.preconnect=function(e,t){typeof e=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,Nt.d.C(e,t))};zt.prefetchDNS=function(e){typeof e=="string"&&Nt.d.D(e)};zt.preinit=function(e,t){if(typeof e=="string"&&t&&typeof t.as=="string"){var n=t.as,a=Ku(n,t.crossOrigin),l=typeof t.integrity=="string"?t.integrity:void 0,i=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;n==="style"?Nt.d.S(e,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:a,integrity:l,fetchPriority:i}):n==="script"&&Nt.d.X(e,{crossOrigin:a,integrity:l,fetchPriority:i,nonce:typeof t.nonce=="string"?t.nonce:void 0})}};zt.preinitModule=function(e,t){if(typeof e=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var n=Ku(t.as,t.crossOrigin);Nt.d.M(e,{crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&Nt.d.M(e)};zt.preload=function(e,t){if(typeof e=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var n=t.as,a=Ku(n,t.crossOrigin);Nt.d.L(e,n,{crossOrigin:a,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}};zt.preloadModule=function(e,t){if(typeof e=="string")if(t){var n=Ku(t.as,t.crossOrigin);Nt.d.m(e,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else Nt.d.m(e)};zt.requestFormReset=function(e){Nt.d.r(e)};zt.unstable_batchedUpdates=function(e,t){return e(t)};zt.useFormState=function(e,t,n){return es.H.useFormState(e,t,n)};zt.useFormStatus=function(){return es.H.useHostTransitionStatus()};zt.version="19.2.6"});var lg=Yn((Y2,ag)=>{"use strict";function ng(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(ng)}catch(e){console.error(e)}}ng(),ag.exports=tg()});var gv=Yn(Sc=>{"use strict";var ct=jp(),Dy=qt(),lx=lg();function D(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Ry(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function qs(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function Ny(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function zy(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function ig(e){if(qs(e)!==e)throw Error(D(188))}function ix(e){var t=e.alternate;if(!t){if(t=qs(e),t===null)throw Error(D(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return ig(l),e;if(i===a)return ig(l),t;i=i.sibling}throw Error(D(188))}if(n.return!==a.return)n=l,a=i;else{for(var u=!1,c=l.child;c;){if(c===n){u=!0,n=l,a=i;break}if(c===a){u=!0,a=l,n=i;break}c=c.sibling}if(!u){for(c=i.child;c;){if(c===n){u=!0,n=i,a=l;break}if(c===a){u=!0,a=i,n=l;break}c=c.sibling}if(!u)throw Error(D(189))}}if(n.alternate!==a)throw Error(D(190))}if(n.tag!==3)throw Error(D(188));return n.stateNode.current===n?e:t}function Cy(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=Cy(e),t!==null)return t;e=e.sibling}return null}var Ge=Object.assign,rx=Symbol.for("react.element"),Ju=Symbol.for("react.transitional.element"),us=Symbol.for("react.portal"),ji=Symbol.for("react.fragment"),Uy=Symbol.for("react.strict_mode"),bd=Symbol.for("react.profiler"),Yy=Symbol.for("react.consumer"),Aa=Symbol.for("react.context"),hh=Symbol.for("react.forward_ref"),vd=Symbol.for("react.suspense"),Sd=Symbol.for("react.suspense_list"),mh=Symbol.for("react.memo"),Ia=Symbol.for("react.lazy"),Td=Symbol.for("react.activity"),sx=Symbol.for("react.memo_cache_sentinel"),rg=Symbol.iterator;function ts(e){return e===null||typeof e!="object"?null:(e=rg&&e[rg]||e["@@iterator"],typeof e=="function"?e:null)}var ux=Symbol.for("react.client.reference");function _d(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ux?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ji:return"Fragment";case bd:return"Profiler";case Uy:return"StrictMode";case vd:return"Suspense";case Sd:return"SuspenseList";case Td:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case us:return"Portal";case Aa:return e.displayName||"Context";case Yy:return(e._context.displayName||"Context")+".Consumer";case hh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case mh:return t=e.displayName||null,t!==null?t:_d(e.type)||"Memo";case Ia:t=e._payload,e=e._init;try{return _d(e(t))}catch(n){}}return null}var os=Array.isArray,ee=Dy.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Ee=lx.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Ql={pending:!1,data:null,method:null,action:null},kd=[],Gi=-1;function na(e){return{current:e}}function ht(e){0>Gi||(e.current=kd[Gi],kd[Gi]=null,Gi--)}function Ue(e,t){Gi++,kd[Gi]=e.current,e.current=t}var ta=na(null),ws=na(null),ol=na(null),Oo=na(null);function Do(e,t){switch(Ue(ol,t),Ue(ws,e),Ue(ta,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?hy(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=hy(t),e=nv(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}ht(ta),Ue(ta,e)}function rr(){ht(ta),ht(ws),ht(ol)}function xd(e){e.memoizedState!==null&&Ue(Oo,e);var t=ta.current,n=nv(t,e.type);t!==n&&(Ue(ws,e),Ue(ta,n))}function Ro(e){ws.current===e&&(ht(ta),ht(ws)),Oo.current===e&&(ht(Oo),Ls._currentValue=Ql)}var Bf,sg;function jl(e){if(Bf===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Bf=t&&t[1]||"",sg=-1<n.stack.indexOf("\n at")?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+Bf+e+sg}var qf=!1;function jf(e,t){if(!e||qf)return"";qf=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var T=function(){throw Error()};if(Object.defineProperty(T.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(T,[])}catch(_){var y=_}Reflect.construct(e,[],T)}else{try{T.call()}catch(_){y=_}e.call(T.prototype)}}else{try{throw Error()}catch(_){y=_}(T=e())&&typeof T.catch=="function"&&T.catch(function(){})}}catch(_){if(_&&y&&typeof _.stack=="string")return[_.stack,y.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var i=a.DetermineComponentFrameRoot(),u=i[0],c=i[1];if(u&&c){var d=u.split("\n"),m=c.split("\n");for(l=a=0;a<d.length&&!d[a].includes("DetermineComponentFrameRoot");)a++;for(;l<m.length&&!m[l].includes("DetermineComponentFrameRoot");)l++;if(a===d.length||l===m.length)for(a=d.length-1,l=m.length-1;1<=a&&0<=l&&d[a]!==m[l];)l--;for(;1<=a&&0<=l;a--,l--)if(d[a]!==m[l]){if(a!==1||l!==1)do if(a--,l--,0>l||d[a]!==m[l]){var p="\n"+d[a].replace(" at new "," at ");return e.displayName&&p.includes("<anonymous>")&&(p=p.replace("<anonymous>",e.displayName)),p}while(1<=a&&0<=l);break}}}finally{qf=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?jl(n):""}function ox(e,t){switch(e.tag){case 26:case 27:case 5:return jl(e.type);case 16:return jl("Lazy");case 13:return e.child!==t&&t!==null?jl("Suspense Fallback"):jl("Suspense");case 19:return jl("SuspenseList");case 0:case 15:return jf(e.type,!1);case 11:return jf(e.type.render,!1);case 1:return jf(e.type,!0);case 31:return jl("Activity");default:return""}}function ug(e){try{var t="",n=null;do t+=ox(e,n),n=e,e=e.return;while(e);return t}catch(a){return"\nError generating stack: "+a.message+"\n"+a.stack}}var Ed=Object.prototype.hasOwnProperty,ph=ct.unstable_scheduleCallback,Gf=ct.unstable_cancelCallback,cx=ct.unstable_shouldYield,fx=ct.unstable_requestPaint,an=ct.unstable_now,dx=ct.unstable_getCurrentPriorityLevel,Ly=ct.unstable_ImmediatePriority,Hy=ct.unstable_UserBlockingPriority,No=ct.unstable_NormalPriority,hx=ct.unstable_LowPriority,By=ct.unstable_IdlePriority,mx=ct.log,px=ct.unstable_setDisableYieldValue,js=null,ln=null;function ll(e){if(typeof mx=="function"&&px(e),ln&&typeof ln.setStrictMode=="function")try{ln.setStrictMode(js,e)}catch(t){}}var rn=Math.clz32?Math.clz32:bx,gx=Math.log,yx=Math.LN2;function bx(e){return e>>>=0,e===0?32:31-(gx(e)/yx|0)|0}var Wu=256,$u=262144,Iu=4194304;function Gl(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function lc(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,i=e.suspendedLanes,u=e.pingedLanes;e=e.warmLanes;var c=a&134217727;return c!==0?(a=c&~i,a!==0?l=Gl(a):(u&=c,u!==0?l=Gl(u):n||(n=c&~e,n!==0&&(l=Gl(n))))):(c=a&~i,c!==0?l=Gl(c):u!==0?l=Gl(u):n||(n=a&~e,n!==0&&(l=Gl(n)))),l===0?0:t!==0&&t!==l&&(t&i)===0&&(i=l&-l,n=t&-t,i>=n||i===32&&(n&4194048)!==0)?t:l}function Gs(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function vx(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function qy(){var e=Iu;return Iu<<=1,(Iu&62914560)===0&&(Iu=4194304),e}function Vf(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Vs(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Sx(e,t,n,a,l,i){var u=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var c=e.entanglements,d=e.expirationTimes,m=e.hiddenUpdates;for(n=u&~n;0<n;){var p=31-rn(n),T=1<<p;c[p]=0,d[p]=-1;var y=m[p];if(y!==null)for(m[p]=null,p=0;p<y.length;p++){var _=y[p];_!==null&&(_.lane&=-536870913)}n&=~T}a!==0&&jy(e,a,0),i!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=i&~(u&~t))}function jy(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-rn(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function Gy(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-rn(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function Vy(e,t){var n=t&-t;return n=(n&42)!==0?1:gh(n),(n&(e.suspendedLanes|t))!==0?0:n}function gh(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function yh(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Zy(){var e=Ee.p;return e!==0?e:(e=window.event,e===void 0?32:hv(e.type))}function og(e,t){var n=Ee.p;try{return Ee.p=e,t()}finally{Ee.p=n}}var _l=Math.random().toString(36).slice(2),yt="__reactFiber$"+_l,Xt="__reactProps$"+_l,yr="__reactContainer$"+_l,wd="__reactEvents$"+_l,Tx="__reactListeners$"+_l,_x="__reactHandles$"+_l,cg="__reactResources$"+_l,Zs="__reactMarker$"+_l;function bh(e){delete e[yt],delete e[Xt],delete e[wd],delete e[Tx],delete e[_x]}function Vi(e){var t=e[yt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[yr]||n[yt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=by(e);e!==null;){if(n=e[yt])return n;e=by(e)}return t}e=n,n=e.parentNode}return null}function br(e){if(e=e[yt]||e[yr]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function cs(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(D(33))}function Pi(e){var t=e[cg];return t||(t=e[cg]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function dt(e){e[Zs]=!0}var Qy=new Set,Xy={};function ti(e,t){sr(e,t),sr(e+"Capture",t)}function sr(e,t){for(Xy[e]=t,e=0;e<t.length;e++)Qy.add(t[e])}var kx=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),fg={},dg={};function xx(e){return Ed.call(dg,e)?!0:Ed.call(fg,e)?!1:kx.test(e)?dg[e]=!0:(fg[e]=!0,!1)}function mo(e,t,n){if(xx(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function Pu(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function Sa(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function vn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Fy(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ex(e,t,n){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var l=a.get,i=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(u){n=""+u,i.call(this,u)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(u){n=""+u},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ad(e){if(!e._valueTracker){var t=Fy(e)?"checked":"value";e._valueTracker=Ex(e,t,""+e[t])}}function Ky(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Fy(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function zo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch(t){return e.body}}var wx=/[\n"\\]/g;function _n(e){return e.replace(wx,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Md(e,t,n,a,l,i,u,c){e.name="",u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"?e.type=u:e.removeAttribute("type"),t!=null?u==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+vn(t)):e.value!==""+vn(t)&&(e.value=""+vn(t)):u!=="submit"&&u!=="reset"||e.removeAttribute("value"),t!=null?Od(e,u,vn(t)):n!=null?Od(e,u,vn(n)):a!=null&&e.removeAttribute("value"),l==null&&i!=null&&(e.defaultChecked=!!i),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?e.name=""+vn(c):e.removeAttribute("name")}function Jy(e,t,n,a,l,i,u,c){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||n!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){Ad(e);return}n=n!=null?""+vn(n):"",t=t!=null?""+vn(t):n,c||t===e.value||(e.value=t),e.defaultValue=t}a=a!=null?a:l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=c?e.checked:!!a,e.defaultChecked=!!a,u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.name=u),Ad(e)}function Od(e,t,n){t==="number"&&zo(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function er(e,t,n,a){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&a&&(e[n].defaultSelected=!0)}else{for(n=""+vn(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,a&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function Wy(e,t,n){if(t!=null&&(t=""+vn(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+vn(n):""}function $y(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(D(92));if(os(a)){if(1<a.length)throw Error(D(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=vn(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Ad(e)}function ur(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ax=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function hg(e,t,n){var a=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,n):typeof n!="number"||n===0||Ax.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Iy(e,t,n){if(t!=null&&typeof t!="object")throw Error(D(62));if(e=e.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var l in t)a=t[l],t.hasOwnProperty(l)&&n[l]!==a&&hg(e,l,a)}else for(var i in t)t.hasOwnProperty(i)&&hg(e,i,t[i])}function vh(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Mx=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Ox=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function po(e){return Ox.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Ma(){}var Dd=null;function Sh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Zi=null,tr=null;function mg(e){var t=br(e);if(t&&(e=t.stateNode)){var n=e[Xt]||null;e:switch(e=t.stateNode,t.type){case"input":if(Md(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+_n(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[Xt]||null;if(!l)throw Error(D(90));Md(a,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(t=0;t<n.length;t++)a=n[t],a.form===e.form&&Ky(a)}break e;case"textarea":Wy(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&er(e,!!n.multiple,t,!1)}}}var Zf=!1;function Py(e,t,n){if(Zf)return e(t,n);Zf=!0;try{var a=e(t);return a}finally{if(Zf=!1,(Zi!==null||tr!==null)&&(gc(),Zi&&(t=Zi,e=tr,tr=Zi=null,mg(t),e)))for(t=0;t<e.length;t++)mg(e[t])}}function As(e,t){var n=e.stateNode;if(n===null)return null;var a=n[Xt]||null;if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(D(231,t,typeof n));return n}var za=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Rd=!1;if(za)try{Yi={},Object.defineProperty(Yi,"passive",{get:function(){Rd=!0}}),window.addEventListener("test",Yi,Yi),window.removeEventListener("test",Yi,Yi)}catch(e){Rd=!1}var Yi,il=null,Th=null,go=null;function e0(){if(go)return go;var e,t=Th,n=t.length,a,l="value"in il?il.value:il.textContent,i=l.length;for(e=0;e<n&&t[e]===l[e];e++);var u=n-e;for(a=1;a<=u&&t[n-a]===l[i-a];a++);return go=l.slice(e,1<a?1-a:void 0)}function yo(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function eo(){return!0}function pg(){return!1}function Ft(e){function t(n,a,l,i,u){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=i,this.target=u,this.currentTarget=null;for(var c in e)e.hasOwnProperty(c)&&(n=e[c],this[c]=n?n(i):i[c]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?eo:pg,this.isPropagationStopped=pg,this}return Ge(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=eo)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=eo)},persist:function(){},isPersistent:eo}),t}var ni={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ic=Ft(ni),Qs=Ge({},ni,{view:0,detail:0}),Dx=Ft(Qs),Qf,Xf,ns,rc=Ge({},Qs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_h,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ns&&(ns&&e.type==="mousemove"?(Qf=e.screenX-ns.screenX,Xf=e.screenY-ns.screenY):Xf=Qf=0,ns=e),Qf)},movementY:function(e){return"movementY"in e?e.movementY:Xf}}),gg=Ft(rc),Rx=Ge({},rc,{dataTransfer:0}),Nx=Ft(Rx),zx=Ge({},Qs,{relatedTarget:0}),Ff=Ft(zx),Cx=Ge({},ni,{animationName:0,elapsedTime:0,pseudoElement:0}),Ux=Ft(Cx),Yx=Ge({},ni,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Lx=Ft(Yx),Hx=Ge({},ni,{data:0}),yg=Ft(Hx),Bx={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},qx={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},jx={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Gx(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=jx[e])?!!t[e]:!1}function _h(){return Gx}var Vx=Ge({},Qs,{key:function(e){if(e.key){var t=Bx[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=yo(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?qx[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_h,charCode:function(e){return e.type==="keypress"?yo(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?yo(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Zx=Ft(Vx),Qx=Ge({},rc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),bg=Ft(Qx),Xx=Ge({},Qs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_h}),Fx=Ft(Xx),Kx=Ge({},ni,{propertyName:0,elapsedTime:0,pseudoElement:0}),Jx=Ft(Kx),Wx=Ge({},rc,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),$x=Ft(Wx),Ix=Ge({},ni,{newState:0,oldState:0}),Px=Ft(Ix),eE=[9,13,27,32],kh=za&&"CompositionEvent"in window,hs=null;za&&"documentMode"in document&&(hs=document.documentMode);var tE=za&&"TextEvent"in window&&!hs,t0=za&&(!kh||hs&&8<hs&&11>=hs),vg=" ",Sg=!1;function n0(e,t){switch(e){case"keyup":return eE.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function a0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Qi=!1;function nE(e,t){switch(e){case"compositionend":return a0(t);case"keypress":return t.which!==32?null:(Sg=!0,vg);case"textInput":return e=t.data,e===vg&&Sg?null:e;default:return null}}function aE(e,t){if(Qi)return e==="compositionend"||!kh&&n0(e,t)?(e=e0(),go=Th=il=null,Qi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return t0&&t.locale!=="ko"?null:t.data;default:return null}}var lE={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Tg(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!lE[e.type]:t==="textarea"}function l0(e,t,n,a){Zi?tr?tr.push(a):tr=[a]:Zi=a,t=$o(t,"onChange"),0<t.length&&(n=new ic("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var ms=null,Ms=null;function iE(e){Pb(e,0)}function sc(e){var t=cs(e);if(Ky(t))return e}function _g(e,t){if(e==="change")return t}var i0=!1;za&&(za?(no="oninput"in document,no||(Kf=document.createElement("div"),Kf.setAttribute("oninput","return;"),no=typeof Kf.oninput=="function"),to=no):to=!1,i0=to&&(!document.documentMode||9<document.documentMode));var to,no,Kf;function kg(){ms&&(ms.detachEvent("onpropertychange",r0),Ms=ms=null)}function r0(e){if(e.propertyName==="value"&&sc(Ms)){var t=[];l0(t,Ms,e,Sh(e)),Py(iE,t)}}function rE(e,t,n){e==="focusin"?(kg(),ms=t,Ms=n,ms.attachEvent("onpropertychange",r0)):e==="focusout"&&kg()}function sE(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return sc(Ms)}function uE(e,t){if(e==="click")return sc(t)}function oE(e,t){if(e==="input"||e==="change")return sc(t)}function cE(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var un=typeof Object.is=="function"?Object.is:cE;function Os(e,t){if(un(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var l=n[a];if(!Ed.call(t,l)||!un(e[l],t[l]))return!1}return!0}function xg(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Eg(e,t){var n=xg(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=xg(n)}}function s0(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?s0(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function u0(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=zo(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch(a){n=!1}if(n)e=t.contentWindow;else break;t=zo(e.document)}return t}function xh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var fE=za&&"documentMode"in document&&11>=document.documentMode,Xi=null,Nd=null,ps=null,zd=!1;function wg(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;zd||Xi==null||Xi!==zo(a)||(a=Xi,"selectionStart"in a&&xh(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),ps&&Os(ps,a)||(ps=a,a=$o(Nd,"onSelect"),0<a.length&&(t=new ic("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Xi)))}function ql(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Fi={animationend:ql("Animation","AnimationEnd"),animationiteration:ql("Animation","AnimationIteration"),animationstart:ql("Animation","AnimationStart"),transitionrun:ql("Transition","TransitionRun"),transitionstart:ql("Transition","TransitionStart"),transitioncancel:ql("Transition","TransitionCancel"),transitionend:ql("Transition","TransitionEnd")},Jf={},o0={};za&&(o0=document.createElement("div").style,"AnimationEvent"in window||(delete Fi.animationend.animation,delete Fi.animationiteration.animation,delete Fi.animationstart.animation),"TransitionEvent"in window||delete Fi.transitionend.transition);function ai(e){if(Jf[e])return Jf[e];if(!Fi[e])return e;var t=Fi[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in o0)return Jf[e]=t[n];return e}var c0=ai("animationend"),f0=ai("animationiteration"),d0=ai("animationstart"),dE=ai("transitionrun"),hE=ai("transitionstart"),mE=ai("transitioncancel"),h0=ai("transitionend"),m0=new Map,Cd="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Cd.push("scrollEnd");function Bn(e,t){m0.set(e,t),ti(t,[e])}var Co=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},bn=[],Ki=0,Eh=0;function uc(){for(var e=Ki,t=Eh=Ki=0;t<e;){var n=bn[t];bn[t++]=null;var a=bn[t];bn[t++]=null;var l=bn[t];bn[t++]=null;var i=bn[t];if(bn[t++]=null,a!==null&&l!==null){var u=a.pending;u===null?l.next=l:(l.next=u.next,u.next=l),a.pending=l}i!==0&&p0(n,l,i)}}function oc(e,t,n,a){bn[Ki++]=e,bn[Ki++]=t,bn[Ki++]=n,bn[Ki++]=a,Eh|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function wh(e,t,n,a){return oc(e,t,n,a),Uo(e)}function li(e,t){return oc(e,null,null,t),Uo(e)}function p0(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,i=e.return;i!==null;)i.childLanes|=n,a=i.alternate,a!==null&&(a.childLanes|=n),i.tag===22&&(e=i.stateNode,e===null||e._visibility&1||(l=!0)),e=i,i=i.return;return e.tag===3?(i=e.stateNode,l&&t!==null&&(l=31-rn(n),e=i.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),i):null}function Uo(e){if(50<xs)throw xs=0,th=null,Error(D(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Ji={};function pE(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function tn(e,t,n,a){return new pE(e,t,n,a)}function Ah(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Da(e,t){var n=e.alternate;return n===null?(n=tn(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function g0(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function bo(e,t,n,a,l,i){var u=0;if(a=e,typeof e=="function")Ah(e)&&(u=1);else if(typeof e=="string")u=bw(e,n,ta.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case Td:return e=tn(31,n,t,l),e.elementType=Td,e.lanes=i,e;case ji:return Xl(n.children,l,i,t);case Uy:u=8,l|=24;break;case bd:return e=tn(12,n,t,l|2),e.elementType=bd,e.lanes=i,e;case vd:return e=tn(13,n,t,l),e.elementType=vd,e.lanes=i,e;case Sd:return e=tn(19,n,t,l),e.elementType=Sd,e.lanes=i,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Aa:u=10;break e;case Yy:u=9;break e;case hh:u=11;break e;case mh:u=14;break e;case Ia:u=16,a=null;break e}u=29,n=Error(D(130,e===null?"null":typeof e,"")),a=null}return t=tn(u,n,t,l),t.elementType=e,t.type=a,t.lanes=i,t}function Xl(e,t,n,a){return e=tn(7,e,a,t),e.lanes=n,e}function Wf(e,t,n){return e=tn(6,e,null,t),e.lanes=n,e}function y0(e){var t=tn(18,null,null,0);return t.stateNode=e,t}function $f(e,t,n){return t=tn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Ag=new WeakMap;function kn(e,t){if(typeof e=="object"&&e!==null){var n=Ag.get(e);return n!==void 0?n:(t={value:e,source:t,stack:ug(t)},Ag.set(e,t),t)}return{value:e,source:t,stack:ug(t)}}var Wi=[],$i=0,Yo=null,Ds=0,Sn=[],Tn=0,bl=null,In=1,Pn="";function Ea(e,t){Wi[$i++]=Ds,Wi[$i++]=Yo,Yo=e,Ds=t}function b0(e,t,n){Sn[Tn++]=In,Sn[Tn++]=Pn,Sn[Tn++]=bl,bl=e;var a=In;e=Pn;var l=32-rn(a)-1;a&=~(1<<l),n+=1;var i=32-rn(t)+l;if(30<i){var u=l-l%5;i=(a&(1<<u)-1).toString(32),a>>=u,l-=u,In=1<<32-rn(t)+l|n<<l|a,Pn=i+e}else In=1<<i|n<<l|a,Pn=e}function Mh(e){e.return!==null&&(Ea(e,1),b0(e,1,0))}function Oh(e){for(;e===Yo;)Yo=Wi[--$i],Wi[$i]=null,Ds=Wi[--$i],Wi[$i]=null;for(;e===bl;)bl=Sn[--Tn],Sn[Tn]=null,Pn=Sn[--Tn],Sn[Tn]=null,In=Sn[--Tn],Sn[Tn]=null}function v0(e,t){Sn[Tn++]=In,Sn[Tn++]=Pn,Sn[Tn++]=bl,In=t.id,Pn=t.overflow,bl=e}var bt=null,je=null,me=!1,cl=null,xn=!1,Ud=Error(D(519));function vl(e){var t=Error(D(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Rs(kn(t,e)),Ud}function Mg(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[yt]=e,t[Xt]=a,n){case"dialog":ue("cancel",t),ue("close",t);break;case"iframe":case"object":case"embed":ue("load",t);break;case"video":case"audio":for(n=0;n<Us.length;n++)ue(Us[n],t);break;case"source":ue("error",t);break;case"img":case"image":case"link":ue("error",t),ue("load",t);break;case"details":ue("toggle",t);break;case"input":ue("invalid",t),Jy(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":ue("invalid",t);break;case"textarea":ue("invalid",t),$y(t,a.value,a.defaultValue,a.children)}n=a.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||a.suppressHydrationWarning===!0||tv(t.textContent,n)?(a.popover!=null&&(ue("beforetoggle",t),ue("toggle",t)),a.onScroll!=null&&ue("scroll",t),a.onScrollEnd!=null&&ue("scrollend",t),a.onClick!=null&&(t.onclick=Ma),t=!0):t=!1,t||vl(e,!0)}function Og(e){for(bt=e.return;bt;)switch(bt.tag){case 5:case 31:case 13:xn=!1;return;case 27:case 3:xn=!0;return;default:bt=bt.return}}function Li(e){if(e!==bt)return!1;if(!me)return Og(e),me=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||rh(e.type,e.memoizedProps)),n=!n),n&&je&&vl(e),Og(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(D(317));je=yy(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(D(317));je=yy(e)}else t===27?(t=je,kl(e.type)?(e=ch,ch=null,je=e):je=t):je=bt?wn(e.stateNode.nextSibling):null;return!0}function Wl(){je=bt=null,me=!1}function If(){var e=cl;return e!==null&&(Zt===null?Zt=e:Zt.push.apply(Zt,e),cl=null),e}function Rs(e){cl===null?cl=[e]:cl.push(e)}var Yd=na(null),ii=null,Oa=null;function el(e,t,n){Ue(Yd,t._currentValue),t._currentValue=n}function Ra(e){e._currentValue=Yd.current,ht(Yd)}function Ld(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function Hd(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var i=l.dependencies;if(i!==null){var u=l.child;i=i.firstContext;e:for(;i!==null;){var c=i;i=l;for(var d=0;d<t.length;d++)if(c.context===t[d]){i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Ld(i.return,n,e),a||(u=null);break e}i=c.next}}else if(l.tag===18){if(u=l.return,u===null)throw Error(D(341));u.lanes|=n,i=u.alternate,i!==null&&(i.lanes|=n),Ld(u,n,e),u=null}else u=l.child;if(u!==null)u.return=l;else for(u=l;u!==null;){if(u===e){u=null;break}if(l=u.sibling,l!==null){l.return=u.return,u=l;break}u=u.return}l=u}}function vr(e,t,n,a){e=null;for(var l=t,i=!1;l!==null;){if(!i){if((l.flags&524288)!==0)i=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var u=l.alternate;if(u===null)throw Error(D(387));if(u=u.memoizedProps,u!==null){var c=l.type;un(l.pendingProps.value,u.value)||(e!==null?e.push(c):e=[c])}}else if(l===Oo.current){if(u=l.alternate,u===null)throw Error(D(387));u.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(Ls):e=[Ls])}l=l.return}e!==null&&Hd(t,e,n,a),t.flags|=262144}function Lo(e){for(e=e.firstContext;e!==null;){if(!un(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function $l(e){ii=e,Oa=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function vt(e){return S0(ii,e)}function ao(e,t){return ii===null&&$l(e),S0(e,t)}function S0(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Oa===null){if(e===null)throw Error(D(308));Oa=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Oa=Oa.next=t;return n}var gE=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},yE=ct.unstable_scheduleCallback,bE=ct.unstable_NormalPriority,lt={$$typeof:Aa,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Dh(){return{controller:new gE,data:new Map,refCount:0}}function Xs(e){e.refCount--,e.refCount===0&&yE(bE,function(){e.controller.abort()})}var gs=null,Bd=0,or=0,nr=null;function vE(e,t){if(gs===null){var n=gs=[];Bd=0,or=tm(),nr={status:"pending",value:void 0,then:function(a){n.push(a)}}}return Bd++,t.then(Dg,Dg),t}function Dg(){if(--Bd===0&&gs!==null){nr!==null&&(nr.status="fulfilled");var e=gs;gs=null,or=0,nr=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function SE(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(a.status="rejected",a.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),a}var Rg=ee.S;ee.S=function(e,t){Cb=an(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&vE(e,t),Rg!==null&&Rg(e,t)};var Fl=na(null);function Rh(){var e=Fl.current;return e!==null?e:ze.pooledCache}function vo(e,t){t===null?Ue(Fl,Fl.current):Ue(Fl,t.pool)}function T0(){var e=Rh();return e===null?null:{parent:lt._currentValue,pool:e}}var Sr=Error(D(460)),Nh=Error(D(474)),cc=Error(D(542)),Ho={then:function(){}};function Ng(e){return e=e.status,e==="fulfilled"||e==="rejected"}function _0(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Ma,Ma),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Cg(e),e;default:if(typeof t.status=="string")t.then(Ma,Ma);else{if(e=ze,e!==null&&100<e.shellSuspendCounter)throw Error(D(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=a}},function(a){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Cg(e),e}throw Kl=t,Sr}}function Vl(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Kl=n,Sr):n}}var Kl=null;function zg(){if(Kl===null)throw Error(D(459));var e=Kl;return Kl=null,e}function Cg(e){if(e===Sr||e===cc)throw Error(D(483))}var ar=null,Ns=0;function lo(e){var t=Ns;return Ns+=1,ar===null&&(ar=[]),_0(ar,e,t)}function as(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function io(e,t){throw t.$$typeof===rx?Error(D(525)):(e=Object.prototype.toString.call(t),Error(D(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function k0(e){function t(g,b){if(e){var k=g.deletions;k===null?(g.deletions=[b],g.flags|=16):k.push(b)}}function n(g,b){if(!e)return null;for(;b!==null;)t(g,b),b=b.sibling;return null}function a(g){for(var b=new Map;g!==null;)g.key!==null?b.set(g.key,g):b.set(g.index,g),g=g.sibling;return b}function l(g,b){return g=Da(g,b),g.index=0,g.sibling=null,g}function i(g,b,k){return g.index=k,e?(k=g.alternate,k!==null?(k=k.index,k<b?(g.flags|=67108866,b):k):(g.flags|=67108866,b)):(g.flags|=1048576,b)}function u(g){return e&&g.alternate===null&&(g.flags|=67108866),g}function c(g,b,k,x){return b===null||b.tag!==6?(b=Wf(k,g.mode,x),b.return=g,b):(b=l(b,k),b.return=g,b)}function d(g,b,k,x){var N=k.type;return N===ji?p(g,b,k.props.children,x,k.key):b!==null&&(b.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===Ia&&Vl(N)===b.type)?(b=l(b,k.props),as(b,k),b.return=g,b):(b=bo(k.type,k.key,k.props,null,g.mode,x),as(b,k),b.return=g,b)}function m(g,b,k,x){return b===null||b.tag!==4||b.stateNode.containerInfo!==k.containerInfo||b.stateNode.implementation!==k.implementation?(b=$f(k,g.mode,x),b.return=g,b):(b=l(b,k.children||[]),b.return=g,b)}function p(g,b,k,x,N){return b===null||b.tag!==7?(b=Xl(k,g.mode,x,N),b.return=g,b):(b=l(b,k),b.return=g,b)}function T(g,b,k){if(typeof b=="string"&&b!==""||typeof b=="number"||typeof b=="bigint")return b=Wf(""+b,g.mode,k),b.return=g,b;if(typeof b=="object"&&b!==null){switch(b.$$typeof){case Ju:return k=bo(b.type,b.key,b.props,null,g.mode,k),as(k,b),k.return=g,k;case us:return b=$f(b,g.mode,k),b.return=g,b;case Ia:return b=Vl(b),T(g,b,k)}if(os(b)||ts(b))return b=Xl(b,g.mode,k,null),b.return=g,b;if(typeof b.then=="function")return T(g,lo(b),k);if(b.$$typeof===Aa)return T(g,ao(g,b),k);io(g,b)}return null}function y(g,b,k,x){var N=b!==null?b.key:null;if(typeof k=="string"&&k!==""||typeof k=="number"||typeof k=="bigint")return N!==null?null:c(g,b,""+k,x);if(typeof k=="object"&&k!==null){switch(k.$$typeof){case Ju:return k.key===N?d(g,b,k,x):null;case us:return k.key===N?m(g,b,k,x):null;case Ia:return k=Vl(k),y(g,b,k,x)}if(os(k)||ts(k))return N!==null?null:p(g,b,k,x,null);if(typeof k.then=="function")return y(g,b,lo(k),x);if(k.$$typeof===Aa)return y(g,b,ao(g,k),x);io(g,k)}return null}function _(g,b,k,x,N){if(typeof x=="string"&&x!==""||typeof x=="number"||typeof x=="bigint")return g=g.get(k)||null,c(b,g,""+x,N);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case Ju:return g=g.get(x.key===null?k:x.key)||null,d(b,g,x,N);case us:return g=g.get(x.key===null?k:x.key)||null,m(b,g,x,N);case Ia:return x=Vl(x),_(g,b,k,x,N)}if(os(x)||ts(x))return g=g.get(k)||null,p(b,g,x,N,null);if(typeof x.then=="function")return _(g,b,k,lo(x),N);if(x.$$typeof===Aa)return _(g,b,k,ao(b,x),N);io(b,x)}return null}function E(g,b,k,x){for(var N=null,z=null,Y=b,q=b=0,J=null;Y!==null&&q<k.length;q++){Y.index>q?(J=Y,Y=null):J=Y.sibling;var W=y(g,Y,k[q],x);if(W===null){Y===null&&(Y=J);break}e&&Y&&W.alternate===null&&t(g,Y),b=i(W,b,q),z===null?N=W:z.sibling=W,z=W,Y=J}if(q===k.length)return n(g,Y),me&&Ea(g,q),N;if(Y===null){for(;q<k.length;q++)Y=T(g,k[q],x),Y!==null&&(b=i(Y,b,q),z===null?N=Y:z.sibling=Y,z=Y);return me&&Ea(g,q),N}for(Y=a(Y);q<k.length;q++)J=_(Y,g,q,k[q],x),J!==null&&(e&&J.alternate!==null&&Y.delete(J.key===null?q:J.key),b=i(J,b,q),z===null?N=J:z.sibling=J,z=J);return e&&Y.forEach(function(be){return t(g,be)}),me&&Ea(g,q),N}function w(g,b,k,x){if(k==null)throw Error(D(151));for(var N=null,z=null,Y=b,q=b=0,J=null,W=k.next();Y!==null&&!W.done;q++,W=k.next()){Y.index>q?(J=Y,Y=null):J=Y.sibling;var be=y(g,Y,W.value,x);if(be===null){Y===null&&(Y=J);break}e&&Y&&be.alternate===null&&t(g,Y),b=i(be,b,q),z===null?N=be:z.sibling=be,z=be,Y=J}if(W.done)return n(g,Y),me&&Ea(g,q),N;if(Y===null){for(;!W.done;q++,W=k.next())W=T(g,W.value,x),W!==null&&(b=i(W,b,q),z===null?N=W:z.sibling=W,z=W);return me&&Ea(g,q),N}for(Y=a(Y);!W.done;q++,W=k.next())W=_(Y,g,q,W.value,x),W!==null&&(e&&W.alternate!==null&&Y.delete(W.key===null?q:W.key),b=i(W,b,q),z===null?N=W:z.sibling=W,z=W);return e&&Y.forEach(function(Ye){return t(g,Ye)}),me&&Ea(g,q),N}function R(g,b,k,x){if(typeof k=="object"&&k!==null&&k.type===ji&&k.key===null&&(k=k.props.children),typeof k=="object"&&k!==null){switch(k.$$typeof){case Ju:e:{for(var N=k.key;b!==null;){if(b.key===N){if(N=k.type,N===ji){if(b.tag===7){n(g,b.sibling),x=l(b,k.props.children),x.return=g,g=x;break e}}else if(b.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===Ia&&Vl(N)===b.type){n(g,b.sibling),x=l(b,k.props),as(x,k),x.return=g,g=x;break e}n(g,b);break}else t(g,b);b=b.sibling}k.type===ji?(x=Xl(k.props.children,g.mode,x,k.key),x.return=g,g=x):(x=bo(k.type,k.key,k.props,null,g.mode,x),as(x,k),x.return=g,g=x)}return u(g);case us:e:{for(N=k.key;b!==null;){if(b.key===N)if(b.tag===4&&b.stateNode.containerInfo===k.containerInfo&&b.stateNode.implementation===k.implementation){n(g,b.sibling),x=l(b,k.children||[]),x.return=g,g=x;break e}else{n(g,b);break}else t(g,b);b=b.sibling}x=$f(k,g.mode,x),x.return=g,g=x}return u(g);case Ia:return k=Vl(k),R(g,b,k,x)}if(os(k))return E(g,b,k,x);if(ts(k)){if(N=ts(k),typeof N!="function")throw Error(D(150));return k=N.call(k),w(g,b,k,x)}if(typeof k.then=="function")return R(g,b,lo(k),x);if(k.$$typeof===Aa)return R(g,b,ao(g,k),x);io(g,k)}return typeof k=="string"&&k!==""||typeof k=="number"||typeof k=="bigint"?(k=""+k,b!==null&&b.tag===6?(n(g,b.sibling),x=l(b,k),x.return=g,g=x):(n(g,b),x=Wf(k,g.mode,x),x.return=g,g=x),u(g)):n(g,b)}return function(g,b,k,x){try{Ns=0;var N=R(g,b,k,x);return ar=null,N}catch(Y){if(Y===Sr||Y===cc)throw Y;var z=tn(29,Y,null,g.mode);return z.lanes=x,z.return=g,z}}}var Il=k0(!0),x0=k0(!1),Pa=!1;function zh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function fl(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function dl(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(xe&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=Uo(e),p0(e,null,n),t}return oc(e,a,t,n),Uo(e)}function ys(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Gy(e,n)}}function Pf(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var u={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};i===null?l=i=u:i=i.next=u,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var jd=!1;function bs(){if(jd){var e=nr;if(e!==null)throw e}}function vs(e,t,n,a){jd=!1;var l=e.updateQueue;Pa=!1;var i=l.firstBaseUpdate,u=l.lastBaseUpdate,c=l.shared.pending;if(c!==null){l.shared.pending=null;var d=c,m=d.next;d.next=null,u===null?i=m:u.next=m,u=d;var p=e.alternate;p!==null&&(p=p.updateQueue,c=p.lastBaseUpdate,c!==u&&(c===null?p.firstBaseUpdate=m:c.next=m,p.lastBaseUpdate=d))}if(i!==null){var T=l.baseState;u=0,p=m=d=null,c=i;do{var y=c.lane&-536870913,_=y!==c.lane;if(_?(fe&y)===y:(a&y)===y){y!==0&&y===or&&(jd=!0),p!==null&&(p=p.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});e:{var E=e,w=c;y=t;var R=n;switch(w.tag){case 1:if(E=w.payload,typeof E=="function"){T=E.call(R,T,y);break e}T=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=w.payload,y=typeof E=="function"?E.call(R,T,y):E,y==null)break e;T=Ge({},T,y);break e;case 2:Pa=!0}}y=c.callback,y!==null&&(e.flags|=64,_&&(e.flags|=8192),_=l.callbacks,_===null?l.callbacks=[y]:_.push(y))}else _={lane:y,tag:c.tag,payload:c.payload,callback:c.callback,next:null},p===null?(m=p=_,d=T):p=p.next=_,u|=y;if(c=c.next,c===null){if(c=l.shared.pending,c===null)break;_=c,c=_.next,_.next=null,l.lastBaseUpdate=_,l.shared.pending=null}}while(!0);p===null&&(d=T),l.baseState=d,l.firstBaseUpdate=m,l.lastBaseUpdate=p,i===null&&(l.shared.lanes=0),Tl|=u,e.lanes=u,e.memoizedState=T}}function E0(e,t){if(typeof e!="function")throw Error(D(191,e));e.call(t)}function w0(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)E0(n[e],t)}var cr=na(null),Bo=na(0);function Ug(e,t){e=La,Ue(Bo,e),Ue(cr,t),La=e|t.baseLanes}function Gd(){Ue(Bo,La),Ue(cr,cr.current)}function Ch(){La=Bo.current,ht(cr),ht(Bo)}var on=na(null),En=null;function tl(e){var t=e.alternate;Ue(Ie,Ie.current&1),Ue(on,e),En===null&&(t===null||cr.current!==null||t.memoizedState!==null)&&(En=e)}function Vd(e){Ue(Ie,Ie.current),Ue(on,e),En===null&&(En=e)}function A0(e){e.tag===22?(Ue(Ie,Ie.current),Ue(on,e),En===null&&(En=e)):nl(e)}function nl(){Ue(Ie,Ie.current),Ue(on,on.current)}function en(e){ht(on),En===e&&(En=null),ht(Ie)}var Ie=na(0);function qo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||uh(n)||oh(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ca=0,le=null,Re=null,nt=null,jo=!1,lr=!1,Pl=!1,Go=0,zs=0,ir=null,TE=0;function Ke(){throw Error(D(321))}function Uh(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!un(e[n],t[n]))return!1;return!0}function Yh(e,t,n,a,l,i){return Ca=i,le=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ee.H=e===null||e.memoizedState===null?lb:Fh,Pl=!1,i=n(a,l),Pl=!1,lr&&(i=O0(t,n,a,l)),M0(e),i}function M0(e){ee.H=Cs;var t=Re!==null&&Re.next!==null;if(Ca=0,nt=Re=le=null,jo=!1,zs=0,ir=null,t)throw Error(D(300));e===null||it||(e=e.dependencies,e!==null&&Lo(e)&&(it=!0))}function O0(e,t,n,a){le=e;var l=0;do{if(lr&&(ir=null),zs=0,lr=!1,25<=l)throw Error(D(301));if(l+=1,nt=Re=null,e.updateQueue!=null){var i=e.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,i.memoCache!=null&&(i.memoCache.index=0)}ee.H=ib,i=t(n,a)}while(lr);return i}function _E(){var e=ee.H,t=e.useState()[0];return t=typeof t.then=="function"?Fs(t):t,e=e.useState()[0],(Re!==null?Re.memoizedState:null)!==e&&(le.flags|=1024),t}function Lh(){var e=Go!==0;return Go=0,e}function Hh(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Bh(e){if(jo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}jo=!1}Ca=0,nt=Re=le=null,lr=!1,zs=Go=0,ir=null}function Ct(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return nt===null?le.memoizedState=nt=e:nt=nt.next=e,nt}function Pe(){if(Re===null){var e=le.alternate;e=e!==null?e.memoizedState:null}else e=Re.next;var t=nt===null?le.memoizedState:nt.next;if(t!==null)nt=t,Re=e;else{if(e===null)throw le.alternate===null?Error(D(467)):Error(D(310));Re=e,e={memoizedState:Re.memoizedState,baseState:Re.baseState,baseQueue:Re.baseQueue,queue:Re.queue,next:null},nt===null?le.memoizedState=nt=e:nt=nt.next=e}return nt}function fc(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Fs(e){var t=zs;return zs+=1,ir===null&&(ir=[]),e=_0(ir,e,t),t=le,(nt===null?t.memoizedState:nt.next)===null&&(t=t.alternate,ee.H=t===null||t.memoizedState===null?lb:Fh),e}function dc(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Fs(e);if(e.$$typeof===Aa)return vt(e)}throw Error(D(438,String(e)))}function qh(e){var t=null,n=le.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=le.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=fc(),le.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),a=0;a<e;a++)n[a]=sx;return t.index++,n}function Ua(e,t){return typeof t=="function"?t(e):t}function So(e){var t=Pe();return jh(t,Re,e)}function jh(e,t,n){var a=e.queue;if(a===null)throw Error(D(311));a.lastRenderedReducer=n;var l=e.baseQueue,i=a.pending;if(i!==null){if(l!==null){var u=l.next;l.next=i.next,i.next=u}t.baseQueue=l=i,a.pending=null}if(i=e.baseState,l===null)e.memoizedState=i;else{t=l.next;var c=u=null,d=null,m=t,p=!1;do{var T=m.lane&-536870913;if(T!==m.lane?(fe&T)===T:(Ca&T)===T){var y=m.revertLane;if(y===0)d!==null&&(d=d.next={lane:0,revertLane:0,gesture:null,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null}),T===or&&(p=!0);else if((Ca&y)===y){m=m.next,y===or&&(p=!0);continue}else T={lane:0,revertLane:m.revertLane,gesture:null,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null},d===null?(c=d=T,u=i):d=d.next=T,le.lanes|=y,Tl|=y;T=m.action,Pl&&n(i,T),i=m.hasEagerState?m.eagerState:n(i,T)}else y={lane:T,revertLane:m.revertLane,gesture:m.gesture,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null},d===null?(c=d=y,u=i):d=d.next=y,le.lanes|=T,Tl|=T;m=m.next}while(m!==null&&m!==t);if(d===null?u=i:d.next=c,!un(i,e.memoizedState)&&(it=!0,p&&(n=nr,n!==null)))throw n;e.memoizedState=i,e.baseState=u,e.baseQueue=d,a.lastRenderedState=i}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function ed(e){var t=Pe(),n=t.queue;if(n===null)throw Error(D(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var u=l=l.next;do i=e(i,u.action),u=u.next;while(u!==l);un(i,t.memoizedState)||(it=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,a]}function D0(e,t,n){var a=le,l=Pe(),i=me;if(i){if(n===void 0)throw Error(D(407));n=n()}else n=t();var u=!un((Re||l).memoizedState,n);if(u&&(l.memoizedState=n,it=!0),l=l.queue,Gh(z0.bind(null,a,l,e),[e]),l.getSnapshot!==t||u||nt!==null&&nt.memoizedState.tag&1){if(a.flags|=2048,fr(9,{destroy:void 0},N0.bind(null,a,l,n,t),null),ze===null)throw Error(D(349));i||(Ca&127)!==0||R0(a,t,n)}return n}function R0(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=le.updateQueue,t===null?(t=fc(),le.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function N0(e,t,n,a){t.value=n,t.getSnapshot=a,C0(t)&&U0(e)}function z0(e,t,n){return n(function(){C0(t)&&U0(e)})}function C0(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!un(e,n)}catch(a){return!0}}function U0(e){var t=li(e,2);t!==null&&Qt(t,e,2)}function Zd(e){var t=Ct();if(typeof e=="function"){var n=e;if(e=n(),Pl){ll(!0);try{n()}finally{ll(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ua,lastRenderedState:e},t}function Y0(e,t,n,a){return e.baseState=n,jh(e,Re,typeof a=="function"?a:Ua)}function kE(e,t,n,a,l){if(mc(e))throw Error(D(485));if(e=t.action,e!==null){var i={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(u){i.listeners.push(u)}};ee.T!==null?n(!0):i.isTransition=!1,a(i),n=t.pending,n===null?(i.next=t.pending=i,L0(t,i)):(i.next=n.next,t.pending=n.next=i)}}function L0(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var i=ee.T,u={};ee.T=u;try{var c=n(l,a),d=ee.S;d!==null&&d(u,c),Yg(e,t,c)}catch(m){Qd(e,t,m)}finally{i!==null&&u.types!==null&&(i.types=u.types),ee.T=i}}else try{i=n(l,a),Yg(e,t,i)}catch(m){Qd(e,t,m)}}function Yg(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){Lg(e,t,a)},function(a){return Qd(e,t,a)}):Lg(e,t,n)}function Lg(e,t,n){t.status="fulfilled",t.value=n,H0(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,L0(e,n)))}function Qd(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,H0(t),t=t.next;while(t!==a)}e.action=null}function H0(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function B0(e,t){return t}function Hg(e,t){if(me){var n=ze.formState;if(n!==null){e:{var a=le;if(me){if(je){t:{for(var l=je,i=xn;l.nodeType!==8;){if(!i){l=null;break t}if(l=wn(l.nextSibling),l===null){l=null;break t}}i=l.data,l=i==="F!"||i==="F"?l:null}if(l){je=wn(l.nextSibling),a=l.data==="F!";break e}}vl(a)}a=!1}a&&(t=n[0])}}return n=Ct(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:B0,lastRenderedState:t},n.queue=a,n=tb.bind(null,le,a),a.dispatch=n,a=Zd(!1),i=Xh.bind(null,le,!1,a.queue),a=Ct(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=kE.bind(null,le,l,i,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function Bg(e){var t=Pe();return q0(t,Re,e)}function q0(e,t,n){if(t=jh(e,t,B0)[0],e=So(Ua)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Fs(t)}catch(u){throw u===Sr?cc:u}else a=t;t=Pe();var l=t.queue,i=l.dispatch;return n!==t.memoizedState&&(le.flags|=2048,fr(9,{destroy:void 0},xE.bind(null,l,n),null)),[a,i,e]}function xE(e,t){e.action=t}function qg(e){var t=Pe(),n=Re;if(n!==null)return q0(t,n,e);Pe(),t=t.memoizedState,n=Pe();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function fr(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=le.updateQueue,t===null&&(t=fc(),le.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function j0(){return Pe().memoizedState}function To(e,t,n,a){var l=Ct();le.flags|=e,l.memoizedState=fr(1|t,{destroy:void 0},n,a===void 0?null:a)}function hc(e,t,n,a){var l=Pe();a=a===void 0?null:a;var i=l.memoizedState.inst;Re!==null&&a!==null&&Uh(a,Re.memoizedState.deps)?l.memoizedState=fr(t,i,n,a):(le.flags|=e,l.memoizedState=fr(1|t,i,n,a))}function jg(e,t){To(8390656,8,e,t)}function Gh(e,t){hc(2048,8,e,t)}function EE(e){le.flags|=4;var t=le.updateQueue;if(t===null)t=fc(),le.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function G0(e){var t=Pe().memoizedState;return EE({ref:t,nextImpl:e}),function(){if((xe&2)!==0)throw Error(D(440));return t.impl.apply(void 0,arguments)}}function V0(e,t){return hc(4,2,e,t)}function Z0(e,t){return hc(4,4,e,t)}function Q0(e,t){if(typeof t=="function"){e=e();var n=t(e);return function(){typeof n=="function"?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function X0(e,t,n){n=n!=null?n.concat([e]):null,hc(4,4,Q0.bind(null,t,e),n)}function Vh(){}function F0(e,t){var n=Pe();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&Uh(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function K0(e,t){var n=Pe();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&Uh(t,a[1]))return a[0];if(a=e(),Pl){ll(!0);try{e()}finally{ll(!1)}}return n.memoizedState=[a,t],a}function Zh(e,t,n){return n===void 0||(Ca&1073741824)!==0&&(fe&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=Yb(),le.lanes|=e,Tl|=e,n)}function J0(e,t,n,a){return un(n,t)?n:cr.current!==null?(e=Zh(e,n,a),un(e,t)||(it=!0),e):(Ca&42)===0||(Ca&1073741824)!==0&&(fe&261930)===0?(it=!0,e.memoizedState=n):(e=Yb(),le.lanes|=e,Tl|=e,t)}function W0(e,t,n,a,l){var i=Ee.p;Ee.p=i!==0&&8>i?i:8;var u=ee.T,c={};ee.T=c,Xh(e,!1,t,n);try{var d=l(),m=ee.S;if(m!==null&&m(c,d),d!==null&&typeof d=="object"&&typeof d.then=="function"){var p=SE(d,a);Ss(e,t,p,sn(e))}else Ss(e,t,a,sn(e))}catch(T){Ss(e,t,{then:function(){},status:"rejected",reason:T},sn())}finally{Ee.p=i,u!==null&&c.types!==null&&(u.types=c.types),ee.T=u}}function wE(){}function Xd(e,t,n,a){if(e.tag!==5)throw Error(D(476));var l=$0(e).queue;W0(e,l,t,Ql,n===null?wE:function(){return I0(e),n(a)})}function $0(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Ql,baseState:Ql,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ua,lastRenderedState:Ql},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ua,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function I0(e){var t=$0(e);t.next===null&&(t=e.alternate.memoizedState),Ss(e,t.next.queue,{},sn())}function Qh(){return vt(Ls)}function P0(){return Pe().memoizedState}function eb(){return Pe().memoizedState}function AE(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=sn();e=fl(n);var a=dl(t,e,n);a!==null&&(Qt(a,t,n),ys(a,t,n)),t={cache:Dh()},e.payload=t;return}t=t.return}}function ME(e,t,n){var a=sn();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},mc(e)?nb(t,n):(n=wh(e,t,n,a),n!==null&&(Qt(n,e,a),ab(n,t,a)))}function tb(e,t,n){var a=sn();Ss(e,t,n,a)}function Ss(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(mc(e))nb(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var u=t.lastRenderedState,c=i(u,n);if(l.hasEagerState=!0,l.eagerState=c,un(c,u))return oc(e,t,l,0),ze===null&&uc(),!1}catch(d){}if(n=wh(e,t,l,a),n!==null)return Qt(n,e,a),ab(n,t,a),!0}return!1}function Xh(e,t,n,a){if(a={lane:2,revertLane:tm(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},mc(e)){if(t)throw Error(D(479))}else t=wh(e,n,a,2),t!==null&&Qt(t,e,2)}function mc(e){var t=e.alternate;return e===le||t!==null&&t===le}function nb(e,t){lr=jo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ab(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Gy(e,n)}}var Cs={readContext:vt,use:dc,useCallback:Ke,useContext:Ke,useEffect:Ke,useImperativeHandle:Ke,useLayoutEffect:Ke,useInsertionEffect:Ke,useMemo:Ke,useReducer:Ke,useRef:Ke,useState:Ke,useDebugValue:Ke,useDeferredValue:Ke,useTransition:Ke,useSyncExternalStore:Ke,useId:Ke,useHostTransitionStatus:Ke,useFormState:Ke,useActionState:Ke,useOptimistic:Ke,useMemoCache:Ke,useCacheRefresh:Ke};Cs.useEffectEvent=Ke;var lb={readContext:vt,use:dc,useCallback:function(e,t){return Ct().memoizedState=[e,t===void 0?null:t],e},useContext:vt,useEffect:jg,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,To(4194308,4,Q0.bind(null,t,e),n)},useLayoutEffect:function(e,t){return To(4194308,4,e,t)},useInsertionEffect:function(e,t){To(4,2,e,t)},useMemo:function(e,t){var n=Ct();t=t===void 0?null:t;var a=e();if(Pl){ll(!0);try{e()}finally{ll(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=Ct();if(n!==void 0){var l=n(t);if(Pl){ll(!0);try{n(t)}finally{ll(!1)}}}else l=t;return a.memoizedState=a.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},a.queue=e,e=e.dispatch=ME.bind(null,le,e),[a.memoizedState,e]},useRef:function(e){var t=Ct();return e={current:e},t.memoizedState=e},useState:function(e){e=Zd(e);var t=e.queue,n=tb.bind(null,le,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Vh,useDeferredValue:function(e,t){var n=Ct();return Zh(n,e,t)},useTransition:function(){var e=Zd(!1);return e=W0.bind(null,le,e.queue,!0,!1),Ct().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=le,l=Ct();if(me){if(n===void 0)throw Error(D(407));n=n()}else{if(n=t(),ze===null)throw Error(D(349));(fe&127)!==0||R0(a,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,jg(z0.bind(null,a,i,e),[e]),a.flags|=2048,fr(9,{destroy:void 0},N0.bind(null,a,i,n,t),null),n},useId:function(){var e=Ct(),t=ze.identifierPrefix;if(me){var n=Pn,a=In;n=(a&~(1<<32-rn(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=Go++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=TE++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Qh,useFormState:Hg,useActionState:Hg,useOptimistic:function(e){var t=Ct();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Xh.bind(null,le,!0,n),n.dispatch=t,[e,t]},useMemoCache:qh,useCacheRefresh:function(){return Ct().memoizedState=AE.bind(null,le)},useEffectEvent:function(e){var t=Ct(),n={impl:e};return t.memoizedState=n,function(){if((xe&2)!==0)throw Error(D(440));return n.impl.apply(void 0,arguments)}}},Fh={readContext:vt,use:dc,useCallback:F0,useContext:vt,useEffect:Gh,useImperativeHandle:X0,useInsertionEffect:V0,useLayoutEffect:Z0,useMemo:K0,useReducer:So,useRef:j0,useState:function(){return So(Ua)},useDebugValue:Vh,useDeferredValue:function(e,t){var n=Pe();return J0(n,Re.memoizedState,e,t)},useTransition:function(){var e=So(Ua)[0],t=Pe().memoizedState;return[typeof e=="boolean"?e:Fs(e),t]},useSyncExternalStore:D0,useId:P0,useHostTransitionStatus:Qh,useFormState:Bg,useActionState:Bg,useOptimistic:function(e,t){var n=Pe();return Y0(n,Re,e,t)},useMemoCache:qh,useCacheRefresh:eb};Fh.useEffectEvent=G0;var ib={readContext:vt,use:dc,useCallback:F0,useContext:vt,useEffect:Gh,useImperativeHandle:X0,useInsertionEffect:V0,useLayoutEffect:Z0,useMemo:K0,useReducer:ed,useRef:j0,useState:function(){return ed(Ua)},useDebugValue:Vh,useDeferredValue:function(e,t){var n=Pe();return Re===null?Zh(n,e,t):J0(n,Re.memoizedState,e,t)},useTransition:function(){var e=ed(Ua)[0],t=Pe().memoizedState;return[typeof e=="boolean"?e:Fs(e),t]},useSyncExternalStore:D0,useId:P0,useHostTransitionStatus:Qh,useFormState:qg,useActionState:qg,useOptimistic:function(e,t){var n=Pe();return Re!==null?Y0(n,Re,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:qh,useCacheRefresh:eb};ib.useEffectEvent=G0;function td(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:Ge({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Fd={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=sn(),l=fl(a);l.payload=t,n!=null&&(l.callback=n),t=dl(e,l,a),t!==null&&(Qt(t,e,a),ys(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=sn(),l=fl(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=dl(e,l,a),t!==null&&(Qt(t,e,a),ys(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=sn(),a=fl(n);a.tag=2,t!=null&&(a.callback=t),t=dl(e,a,n),t!==null&&(Qt(t,e,n),ys(t,e,n))}};function Gg(e,t,n,a,l,i,u){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,i,u):t.prototype&&t.prototype.isPureReactComponent?!Os(n,a)||!Os(l,i):!0}function Vg(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&Fd.enqueueReplaceState(t,t.state,null)}function ei(e,t){var n=t;if("ref"in t){n={};for(var a in t)a!=="ref"&&(n[a]=t[a])}if(e=e.defaultProps){n===t&&(n=Ge({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function rb(e){Co(e)}function sb(e){console.error(e)}function ub(e){Co(e)}function Vo(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Zg(e,t,n){try{var a=e.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(l){setTimeout(function(){throw l})}}function Kd(e,t,n){return n=fl(n),n.tag=3,n.payload={element:null},n.callback=function(){Vo(e,t)},n}function ob(e){return e=fl(e),e.tag=3,e}function cb(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var i=a.value;e.payload=function(){return l(i)},e.callback=function(){Zg(t,n,a)}}var u=n.stateNode;u!==null&&typeof u.componentDidCatch=="function"&&(e.callback=function(){Zg(t,n,a),typeof l!="function"&&(hl===null?hl=new Set([this]):hl.add(this));var c=a.stack;this.componentDidCatch(a.value,{componentStack:c!==null?c:""})})}function OE(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&vr(t,n,l,!0),n=on.current,n!==null){switch(n.tag){case 31:case 13:return En===null?Ko():n.alternate===null&&Je===0&&(Je=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===Ho?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),dd(e,a,l)),!1;case 22:return n.flags|=65536,a===Ho?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([a]):n.add(a)),dd(e,a,l)),!1}throw Error(D(435,n.tag))}return dd(e,a,l),Ko(),!1}if(me)return t=on.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==Ud&&(e=Error(D(422),{cause:a}),Rs(kn(e,n)))):(a!==Ud&&(t=Error(D(423),{cause:a}),Rs(kn(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=kn(a,n),l=Kd(e.stateNode,a,l),Pf(e,l),Je!==4&&(Je=2)),!1;var i=Error(D(520),{cause:a});if(i=kn(i,n),ks===null?ks=[i]:ks.push(i),Je!==4&&(Je=2),t===null)return!0;a=kn(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Kd(n.stateNode,a,e),Pf(n,e),!1;case 1:if(t=n.type,i=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(hl===null||!hl.has(i))))return n.flags|=65536,l&=-l,n.lanes|=l,l=ob(l),cb(l,e,n,a),Pf(n,l),!1}n=n.return}while(n!==null);return!1}var Kh=Error(D(461)),it=!1;function gt(e,t,n,a){t.child=e===null?x0(t,null,n,a):Il(t,e.child,n,a)}function Qg(e,t,n,a,l){n=n.render;var i=t.ref;if("ref"in a){var u={};for(var c in a)c!=="ref"&&(u[c]=a[c])}else u=a;return $l(t),a=Yh(e,t,n,u,i,l),c=Lh(),e!==null&&!it?(Hh(e,t,l),Ya(e,t,l)):(me&&c&&Mh(t),t.flags|=1,gt(e,t,a,l),t.child)}function Xg(e,t,n,a,l){if(e===null){var i=n.type;return typeof i=="function"&&!Ah(i)&&i.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=i,fb(e,t,i,a,l)):(e=bo(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!Jh(e,l)){var u=i.memoizedProps;if(n=n.compare,n=n!==null?n:Os,n(u,a)&&e.ref===t.ref)return Ya(e,t,l)}return t.flags|=1,e=Da(i,a),e.ref=t.ref,e.return=t,t.child=e}function fb(e,t,n,a,l){if(e!==null){var i=e.memoizedProps;if(Os(i,a)&&e.ref===t.ref)if(it=!1,t.pendingProps=a=i,Jh(e,l))(e.flags&131072)!==0&&(it=!0);else return t.lanes=e.lanes,Ya(e,t,l)}return Jd(e,t,n,a,l)}function db(e,t,n,a){var l=a.children,i=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(i=i!==null?i.baseLanes|n:n,e!==null){for(a=t.child=e.child,l=0;a!==null;)l=l|a.lanes|a.childLanes,a=a.sibling;a=l&~i}else a=0,t.child=null;return Fg(e,t,i,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&vo(t,i!==null?i.cachePool:null),i!==null?Ug(t,i):Gd(),A0(t);else return a=t.lanes=536870912,Fg(e,t,i!==null?i.baseLanes|n:n,n,a)}else i!==null?(vo(t,i.cachePool),Ug(t,i),nl(t),t.memoizedState=null):(e!==null&&vo(t,null),Gd(),nl(t));return gt(e,t,l,n),t.child}function fs(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Fg(e,t,n,a,l){var i=Rh();return i=i===null?null:{parent:lt._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},e!==null&&vo(t,null),Gd(),A0(t),e!==null&&vr(e,t,a,!0),t.childLanes=l,null}function _o(e,t){return t=Zo({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Kg(e,t,n){return Il(t,e.child,null,n),e=_o(t,t.pendingProps),e.flags|=2,en(t),t.memoizedState=null,e}function DE(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(me){if(a.mode==="hidden")return e=_o(t,a),t.lanes=536870912,fs(null,e);if(Vd(t),(e=je)?(e=lv(e,xn),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:bl!==null?{id:In,overflow:Pn}:null,retryLane:536870912,hydrationErrors:null},n=y0(e),n.return=t,t.child=n,bt=t,je=null)):e=null,e===null)throw vl(t);return t.lanes=536870912,null}return _o(t,a)}var i=e.memoizedState;if(i!==null){var u=i.dehydrated;if(Vd(t),l)if(t.flags&256)t.flags&=-257,t=Kg(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(D(558));else if(it||vr(e,t,n,!1),l=(n&e.childLanes)!==0,it||l){if(a=ze,a!==null&&(u=Vy(a,n),u!==0&&u!==i.retryLane))throw i.retryLane=u,li(e,u),Qt(a,e,u),Kh;Ko(),t=Kg(e,t,n)}else e=i.treeContext,je=wn(u.nextSibling),bt=t,me=!0,cl=null,xn=!1,e!==null&&v0(t,e),t=_o(t,a),t.flags|=4096;return t}return e=Da(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function ko(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(D(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Jd(e,t,n,a,l){return $l(t),n=Yh(e,t,n,a,void 0,l),a=Lh(),e!==null&&!it?(Hh(e,t,l),Ya(e,t,l)):(me&&a&&Mh(t),t.flags|=1,gt(e,t,n,l),t.child)}function Jg(e,t,n,a,l,i){return $l(t),t.updateQueue=null,n=O0(t,a,n,l),M0(e),a=Lh(),e!==null&&!it?(Hh(e,t,i),Ya(e,t,i)):(me&&a&&Mh(t),t.flags|=1,gt(e,t,n,i),t.child)}function Wg(e,t,n,a,l){if($l(t),t.stateNode===null){var i=Ji,u=n.contextType;typeof u=="object"&&u!==null&&(i=vt(u)),i=new n(a,i),t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=Fd,t.stateNode=i,i._reactInternals=t,i=t.stateNode,i.props=a,i.state=t.memoizedState,i.refs={},zh(t),u=n.contextType,i.context=typeof u=="object"&&u!==null?vt(u):Ji,i.state=t.memoizedState,u=n.getDerivedStateFromProps,typeof u=="function"&&(td(t,n,u,a),i.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(u=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),u!==i.state&&Fd.enqueueReplaceState(i,i.state,null),vs(t,a,i,l),bs(),i.state=t.memoizedState),typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){i=t.stateNode;var c=t.memoizedProps,d=ei(n,c);i.props=d;var m=i.context,p=n.contextType;u=Ji,typeof p=="object"&&p!==null&&(u=vt(p));var T=n.getDerivedStateFromProps;p=typeof T=="function"||typeof i.getSnapshotBeforeUpdate=="function",c=t.pendingProps!==c,p||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(c||m!==u)&&Vg(t,i,a,u),Pa=!1;var y=t.memoizedState;i.state=y,vs(t,a,i,l),bs(),m=t.memoizedState,c||y!==m||Pa?(typeof T=="function"&&(td(t,n,T,a),m=t.memoizedState),(d=Pa||Gg(t,n,d,a,y,m,u))?(p||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=m),i.props=a,i.state=m,i.context=u,a=d):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,qd(e,t),u=t.memoizedProps,p=ei(n,u),i.props=p,T=t.pendingProps,y=i.context,m=n.contextType,d=Ji,typeof m=="object"&&m!==null&&(d=vt(m)),c=n.getDerivedStateFromProps,(m=typeof c=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==T||y!==d)&&Vg(t,i,a,d),Pa=!1,y=t.memoizedState,i.state=y,vs(t,a,i,l),bs();var _=t.memoizedState;u!==T||y!==_||Pa||e!==null&&e.dependencies!==null&&Lo(e.dependencies)?(typeof c=="function"&&(td(t,n,c,a),_=t.memoizedState),(p=Pa||Gg(t,n,p,a,y,_,d)||e!==null&&e.dependencies!==null&&Lo(e.dependencies))?(m||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,_,d),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,_,d)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&y===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&y===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=_),i.props=a,i.state=_,i.context=d,a=p):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&y===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&y===e.memoizedState||(t.flags|=1024),a=!1)}return i=a,ko(e,t),a=(t.flags&128)!==0,i||a?(i=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:i.render(),t.flags|=1,e!==null&&a?(t.child=Il(t,e.child,null,l),t.child=Il(t,null,n,l)):gt(e,t,n,l),t.memoizedState=i.state,e=t.child):e=Ya(e,t,l),e}function $g(e,t,n,a){return Wl(),t.flags|=256,gt(e,t,n,a),t.child}var nd={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ad(e){return{baseLanes:e,cachePool:T0()}}function ld(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=nn),e}function hb(e,t,n){var a=t.pendingProps,l=!1,i=(t.flags&128)!==0,u;if((u=i)||(u=e!==null&&e.memoizedState===null?!1:(Ie.current&2)!==0),u&&(l=!0,t.flags&=-129),u=(t.flags&32)!==0,t.flags&=-33,e===null){if(me){if(l?tl(t):nl(t),(e=je)?(e=lv(e,xn),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:bl!==null?{id:In,overflow:Pn}:null,retryLane:536870912,hydrationErrors:null},n=y0(e),n.return=t,t.child=n,bt=t,je=null)):e=null,e===null)throw vl(t);return oh(e)?t.lanes=32:t.lanes=536870912,null}var c=a.children;return a=a.fallback,l?(nl(t),l=t.mode,c=Zo({mode:"hidden",children:c},l),a=Xl(a,l,n,null),c.return=t,a.return=t,c.sibling=a,t.child=c,a=t.child,a.memoizedState=ad(n),a.childLanes=ld(e,u,n),t.memoizedState=nd,fs(null,a)):(tl(t),Wd(t,c))}var d=e.memoizedState;if(d!==null&&(c=d.dehydrated,c!==null)){if(i)t.flags&256?(tl(t),t.flags&=-257,t=id(e,t,n)):t.memoizedState!==null?(nl(t),t.child=e.child,t.flags|=128,t=null):(nl(t),c=a.fallback,l=t.mode,a=Zo({mode:"visible",children:a.children},l),c=Xl(c,l,n,null),c.flags|=2,a.return=t,c.return=t,a.sibling=c,t.child=a,Il(t,e.child,null,n),a=t.child,a.memoizedState=ad(n),a.childLanes=ld(e,u,n),t.memoizedState=nd,t=fs(null,a));else if(tl(t),oh(c)){if(u=c.nextSibling&&c.nextSibling.dataset,u)var m=u.dgst;u=m,a=Error(D(419)),a.stack="",a.digest=u,Rs({value:a,source:null,stack:null}),t=id(e,t,n)}else if(it||vr(e,t,n,!1),u=(n&e.childLanes)!==0,it||u){if(u=ze,u!==null&&(a=Vy(u,n),a!==0&&a!==d.retryLane))throw d.retryLane=a,li(e,a),Qt(u,e,a),Kh;uh(c)||Ko(),t=id(e,t,n)}else uh(c)?(t.flags|=192,t.child=e.child,t=null):(e=d.treeContext,je=wn(c.nextSibling),bt=t,me=!0,cl=null,xn=!1,e!==null&&v0(t,e),t=Wd(t,a.children),t.flags|=4096);return t}return l?(nl(t),c=a.fallback,l=t.mode,d=e.child,m=d.sibling,a=Da(d,{mode:"hidden",children:a.children}),a.subtreeFlags=d.subtreeFlags&65011712,m!==null?c=Da(m,c):(c=Xl(c,l,n,null),c.flags|=2),c.return=t,a.return=t,a.sibling=c,t.child=a,fs(null,a),a=t.child,c=e.child.memoizedState,c===null?c=ad(n):(l=c.cachePool,l!==null?(d=lt._currentValue,l=l.parent!==d?{parent:d,pool:d}:l):l=T0(),c={baseLanes:c.baseLanes|n,cachePool:l}),a.memoizedState=c,a.childLanes=ld(e,u,n),t.memoizedState=nd,fs(e.child,a)):(tl(t),n=e.child,e=n.sibling,n=Da(n,{mode:"visible",children:a.children}),n.return=t,n.sibling=null,e!==null&&(u=t.deletions,u===null?(t.deletions=[e],t.flags|=16):u.push(e)),t.child=n,t.memoizedState=null,n)}function Wd(e,t){return t=Zo({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Zo(e,t){return e=tn(22,e,null,t),e.lanes=0,e}function id(e,t,n){return Il(t,e.child,null,n),e=Wd(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Ig(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Ld(e.return,t,n)}function rd(e,t,n,a,l,i){var u=e.memoizedState;u===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:i}:(u.isBackwards=t,u.rendering=null,u.renderingStartTime=0,u.last=a,u.tail=n,u.tailMode=l,u.treeForkCount=i)}function mb(e,t,n){var a=t.pendingProps,l=a.revealOrder,i=a.tail;a=a.children;var u=Ie.current,c=(u&2)!==0;if(c?(u=u&1|2,t.flags|=128):u&=1,Ue(Ie,u),gt(e,t,a,n),a=me?Ds:0,!c&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Ig(e,n,t);else if(e.tag===19)Ig(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&qo(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),rd(t,!1,l,n,i,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&qo(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}rd(t,!0,n,null,i,a);break;case"together":rd(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function Ya(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Tl|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(vr(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(D(153));if(t.child!==null){for(e=t.child,n=Da(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Da(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Jh(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Lo(e)))}function RE(e,t,n){switch(t.tag){case 3:Do(t,t.stateNode.containerInfo),el(t,lt,e.memoizedState.cache),Wl();break;case 27:case 5:xd(t);break;case 4:Do(t,t.stateNode.containerInfo);break;case 10:el(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Vd(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(tl(t),t.flags|=128,null):(n&t.child.childLanes)!==0?hb(e,t,n):(tl(t),e=Ya(e,t,n),e!==null?e.sibling:null);tl(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(vr(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return mb(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),Ue(Ie,Ie.current),a)break;return null;case 22:return t.lanes=0,db(e,t,n,t.pendingProps);case 24:el(t,lt,e.memoizedState.cache)}return Ya(e,t,n)}function pb(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)it=!0;else{if(!Jh(e,n)&&(t.flags&128)===0)return it=!1,RE(e,t,n);it=(e.flags&131072)!==0}else it=!1,me&&(t.flags&1048576)!==0&&b0(t,Ds,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=Vl(t.elementType),t.type=e,typeof e=="function")Ah(e)?(a=ei(e,a),t.tag=1,t=Wg(null,t,e,a,n)):(t.tag=0,t=Jd(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===hh){t.tag=11,t=Qg(null,t,e,a,n);break e}else if(l===mh){t.tag=14,t=Xg(null,t,e,a,n);break e}}throw t=_d(e)||e,Error(D(306,t,""))}}return t;case 0:return Jd(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=ei(a,t.pendingProps),Wg(e,t,a,l,n);case 3:e:{if(Do(t,t.stateNode.containerInfo),e===null)throw Error(D(387));a=t.pendingProps;var i=t.memoizedState;l=i.element,qd(e,t),vs(t,a,null,n);var u=t.memoizedState;if(a=u.cache,el(t,lt,a),a!==i.cache&&Hd(t,[lt],n,!0),bs(),a=u.element,i.isDehydrated)if(i={element:a,isDehydrated:!1,cache:u.cache},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){t=$g(e,t,a,n);break e}else if(a!==l){l=kn(Error(D(424)),t),Rs(l),t=$g(e,t,a,n);break e}else for(e=t.stateNode.containerInfo,e.nodeType===9?e=e.body:e=e.nodeName==="HTML"?e.ownerDocument.body:e,je=wn(e.firstChild),bt=t,me=!0,cl=null,xn=!0,n=x0(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Wl(),a===l){t=Ya(e,t,n);break e}gt(e,t,a,n)}t=t.child}return t;case 26:return ko(e,t),e===null?(n=Sy(t.type,null,t.pendingProps,null))?t.memoizedState=n:me||(n=t.type,e=t.pendingProps,a=Io(ol.current).createElement(n),a[yt]=t,a[Xt]=e,St(a,n,e),dt(a),t.stateNode=a):t.memoizedState=Sy(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return xd(t),e===null&&me&&(a=t.stateNode=iv(t.type,t.pendingProps,ol.current),bt=t,xn=!0,l=je,kl(t.type)?(ch=l,je=wn(a.firstChild)):je=l),gt(e,t,t.pendingProps.children,n),ko(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&me&&((l=a=je)&&(a=iw(a,t.type,t.pendingProps,xn),a!==null?(t.stateNode=a,bt=t,je=wn(a.firstChild),xn=!1,l=!0):l=!1),l||vl(t)),xd(t),l=t.type,i=t.pendingProps,u=e!==null?e.memoizedProps:null,a=i.children,rh(l,i)?a=null:u!==null&&rh(l,u)&&(t.flags|=32),t.memoizedState!==null&&(l=Yh(e,t,_E,null,null,n),Ls._currentValue=l),ko(e,t),gt(e,t,a,n),t.child;case 6:return e===null&&me&&((e=n=je)&&(n=rw(n,t.pendingProps,xn),n!==null?(t.stateNode=n,bt=t,je=null,e=!0):e=!1),e||vl(t)),null;case 13:return hb(e,t,n);case 4:return Do(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=Il(t,null,a,n):gt(e,t,a,n),t.child;case 11:return Qg(e,t,t.type,t.pendingProps,n);case 7:return gt(e,t,t.pendingProps,n),t.child;case 8:return gt(e,t,t.pendingProps.children,n),t.child;case 12:return gt(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,el(t,t.type,a.value),gt(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,$l(t),l=vt(l),a=a(l),t.flags|=1,gt(e,t,a,n),t.child;case 14:return Xg(e,t,t.type,t.pendingProps,n);case 15:return fb(e,t,t.type,t.pendingProps,n);case 19:return mb(e,t,n);case 31:return DE(e,t,n);case 22:return db(e,t,n,t.pendingProps);case 24:return $l(t),a=vt(lt),e===null?(l=Rh(),l===null&&(l=ze,i=Dh(),l.pooledCache=i,i.refCount++,i!==null&&(l.pooledCacheLanes|=n),l=i),t.memoizedState={parent:a,cache:l},zh(t),el(t,lt,l)):((e.lanes&n)!==0&&(qd(e,t),vs(t,null,null,n),bs()),l=e.memoizedState,i=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),el(t,lt,a)):(a=i.cache,el(t,lt,a),a!==l.cache&&Hd(t,[lt],n,!0))),gt(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(D(156,t.tag))}function Ta(e){e.flags|=4}function sd(e,t,n,a,l){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(l&335544128)===l)if(e.stateNode.complete)e.flags|=8192;else if(Bb())e.flags|=8192;else throw Kl=Ho,Nh}else e.flags&=-16777217}function Pg(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!uv(t))if(Bb())e.flags|=8192;else throw Kl=Ho,Nh}function ro(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?qy():536870912,e.lanes|=t,dr|=t)}function ls(e,t){if(!me)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function qe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags&65011712,a|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags,a|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function NE(e,t,n){var a=t.pendingProps;switch(Oh(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return qe(t),null;case 1:return qe(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Ra(lt),rr(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Li(t)?Ta(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,If())),qe(t),null;case 26:var l=t.type,i=t.memoizedState;return e===null?(Ta(t),i!==null?(qe(t),Pg(t,i)):(qe(t),sd(t,l,null,a,n))):i?i!==e.memoizedState?(Ta(t),qe(t),Pg(t,i)):(qe(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&Ta(t),qe(t),sd(t,l,e,a,n)),null;case 27:if(Ro(t),n=ol.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Ta(t);else{if(!a){if(t.stateNode===null)throw Error(D(166));return qe(t),null}e=ta.current,Li(t)?Mg(t,e):(e=iv(l,a,n),t.stateNode=e,Ta(t))}return qe(t),null;case 5:if(Ro(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Ta(t);else{if(!a){if(t.stateNode===null)throw Error(D(166));return qe(t),null}if(i=ta.current,Li(t))Mg(t,i);else{var u=Io(ol.current);switch(i){case 1:i=u.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:i=u.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":i=u.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":i=u.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":i=u.createElement("div"),i.innerHTML="<script><\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof a.is=="string"?u.createElement("select",{is:a.is}):u.createElement("select"),a.multiple?i.multiple=!0:a.size&&(i.size=a.size);break;default:i=typeof a.is=="string"?u.createElement(l,{is:a.is}):u.createElement(l)}}i[yt]=t,i[Xt]=a;e:for(u=t.child;u!==null;){if(u.tag===5||u.tag===6)i.appendChild(u.stateNode);else if(u.tag!==4&&u.tag!==27&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===t)break e;for(;u.sibling===null;){if(u.return===null||u.return===t)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}t.stateNode=i;e:switch(St(i,l,a),l){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&Ta(t)}}return qe(t),sd(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&Ta(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(D(166));if(e=ol.current,Li(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=bt,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[yt]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||tv(e.nodeValue,n)),e||vl(t,!0)}else e=Io(e).createTextNode(a),e[yt]=t,t.stateNode=e}return qe(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=Li(t),n!==null){if(e===null){if(!a)throw Error(D(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(D(557));e[yt]=t}else Wl(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;qe(t),e=!1}else n=If(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(en(t),t):(en(t),null);if((t.flags&128)!==0)throw Error(D(558))}return qe(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=Li(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(D(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(D(317));l[yt]=t}else Wl(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;qe(t),l=!1}else l=If(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(en(t),t):(en(t),null)}return en(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),i=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(i=a.memoizedState.cachePool.pool),i!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),ro(t,t.updateQueue),qe(t),null);case 4:return rr(),e===null&&nm(t.stateNode.containerInfo),qe(t),null;case 10:return Ra(t.type),qe(t),null;case 19:if(ht(Ie),a=t.memoizedState,a===null)return qe(t),null;if(l=(t.flags&128)!==0,i=a.rendering,i===null)if(l)ls(a,!1);else{if(Je!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=qo(e),i!==null){for(t.flags|=128,ls(a,!1),e=i.updateQueue,t.updateQueue=e,ro(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)g0(n,e),n=n.sibling;return Ue(Ie,Ie.current&1|2),me&&Ea(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&an()>Xo&&(t.flags|=128,l=!0,ls(a,!1),t.lanes=4194304)}else{if(!l)if(e=qo(i),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,ro(t,e),ls(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!me)return qe(t),null}else 2*an()-a.renderingStartTime>Xo&&n!==536870912&&(t.flags|=128,l=!0,ls(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(e=a.last,e!==null?e.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=an(),e.sibling=null,n=Ie.current,Ue(Ie,l?n&1|2:n&1),me&&Ea(t,a.treeForkCount),e):(qe(t),null);case 22:case 23:return en(t),Ch(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&(qe(t),t.subtreeFlags&6&&(t.flags|=8192)):qe(t),n=t.updateQueue,n!==null&&ro(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&ht(Fl),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ra(lt),qe(t),null;case 25:return null;case 30:return null}throw Error(D(156,t.tag))}function zE(e,t){switch(Oh(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ra(lt),rr(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Ro(t),null;case 31:if(t.memoizedState!==null){if(en(t),t.alternate===null)throw Error(D(340));Wl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(en(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(D(340));Wl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ht(Ie),null;case 4:return rr(),null;case 10:return Ra(t.type),null;case 22:case 23:return en(t),Ch(),e!==null&&ht(Fl),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Ra(lt),null;case 25:return null;default:return null}}function gb(e,t){switch(Oh(t),t.tag){case 3:Ra(lt),rr();break;case 26:case 27:case 5:Ro(t);break;case 4:rr();break;case 31:t.memoizedState!==null&&en(t);break;case 13:en(t);break;case 19:ht(Ie);break;case 10:Ra(t.type);break;case 22:case 23:en(t),Ch(),e!==null&&ht(Fl);break;case 24:Ra(lt)}}function Ks(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var l=a.next;n=l;do{if((n.tag&e)===e){a=void 0;var i=n.create,u=n.inst;a=i(),u.destroy=a}n=n.next}while(n!==l)}}catch(c){Me(t,t.return,c)}}function Sl(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){var u=a.inst,c=u.destroy;if(c!==void 0){u.destroy=void 0,l=t;var d=n,m=c;try{m()}catch(p){Me(l,d,p)}}}a=a.next}while(a!==i)}}catch(p){Me(t,t.return,p)}}function yb(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{w0(t,n)}catch(a){Me(e,e.return,a)}}}function bb(e,t,n){n.props=ei(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){Me(e,t,a)}}function Ts(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof n=="function"?e.refCleanup=n(a):n.current=a}}catch(l){Me(e,t,l)}}function ea(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){Me(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(l){Me(e,t,l)}else n.current=null}function vb(e){var t=e.type,n=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break e;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(l){Me(e,e.return,l)}}function ud(e,t,n){try{var a=e.stateNode;PE(a,e.type,n,t),a[Xt]=t}catch(l){Me(e,e.return,l)}}function Sb(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&kl(e.type)||e.tag===4}function od(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Sb(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&kl(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function $d(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ma));else if(a!==4&&(a===27&&kl(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for($d(e,t,n),e=e.sibling;e!==null;)$d(e,t,n),e=e.sibling}function Qo(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&kl(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Qo(e,t,n),e=e.sibling;e!==null;)Qo(e,t,n),e=e.sibling}function Tb(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);St(t,a,n),t[yt]=e,t[Xt]=n}catch(i){Me(e,e.return,i)}}var wa=!1,at=!1,cd=!1,ey=typeof WeakSet=="function"?WeakSet:Set,ft=null;function CE(e,t){if(e=e.containerInfo,lh=nc,e=u0(e),xh(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var l=a.anchorOffset,i=a.focusNode;a=a.focusOffset;try{n.nodeType,i.nodeType}catch(w){n=null;break e}var u=0,c=-1,d=-1,m=0,p=0,T=e,y=null;t:for(;;){for(var _;T!==n||l!==0&&T.nodeType!==3||(c=u+l),T!==i||a!==0&&T.nodeType!==3||(d=u+a),T.nodeType===3&&(u+=T.nodeValue.length),(_=T.firstChild)!==null;)y=T,T=_;for(;;){if(T===e)break t;if(y===n&&++m===l&&(c=u),y===i&&++p===a&&(d=u),(_=T.nextSibling)!==null)break;T=y,y=T.parentNode}T=_}n=c===-1||d===-1?null:{start:c,end:d}}else n=null}n=n||{start:0,end:0}}else n=null;for(ih={focusedElem:e,selectionRange:n},nc=!1,ft=t;ft!==null;)if(t=ft,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ft=e;else for(;ft!==null;){switch(t=ft,i=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&i!==null){e=void 0,n=t,l=i.memoizedProps,i=i.memoizedState,a=n.stateNode;try{var E=ei(n.type,l);e=a.getSnapshotBeforeUpdate(E,i),a.__reactInternalSnapshotBeforeUpdate=e}catch(w){Me(n,n.return,w)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)sh(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":sh(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(D(163))}if(e=t.sibling,e!==null){e.return=t.return,ft=e;break}ft=t.return}}function _b(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:ka(e,n),a&4&&Ks(5,n);break;case 1:if(ka(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(u){Me(n,n.return,u)}else{var l=ei(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(u){Me(n,n.return,u)}}a&64&&yb(n),a&512&&Ts(n,n.return);break;case 3:if(ka(e,n),a&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{w0(e,t)}catch(u){Me(n,n.return,u)}}break;case 27:t===null&&a&4&&Tb(n);case 26:case 5:ka(e,n),t===null&&a&4&&vb(n),a&512&&Ts(n,n.return);break;case 12:ka(e,n);break;case 31:ka(e,n),a&4&&Eb(e,n);break;case 13:ka(e,n),a&4&&wb(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=VE.bind(null,n),sw(e,n))));break;case 22:if(a=n.memoizedState!==null||wa,!a){t=t!==null&&t.memoizedState!==null||at,l=wa;var i=at;wa=a,(at=t)&&!i?xa(e,n,(n.subtreeFlags&8772)!==0):ka(e,n),wa=l,at=i}break;case 30:break;default:ka(e,n)}}function kb(e){var t=e.alternate;t!==null&&(e.alternate=null,kb(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&bh(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Qe=null,Vt=!1;function _a(e,t,n){for(n=n.child;n!==null;)xb(e,t,n),n=n.sibling}function xb(e,t,n){if(ln&&typeof ln.onCommitFiberUnmount=="function")try{ln.onCommitFiberUnmount(js,n)}catch(i){}switch(n.tag){case 26:at||ea(n,t),_a(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:at||ea(n,t);var a=Qe,l=Vt;kl(n.type)&&(Qe=n.stateNode,Vt=!1),_a(e,t,n),Es(n.stateNode),Qe=a,Vt=l;break;case 5:at||ea(n,t);case 6:if(a=Qe,l=Vt,Qe=null,_a(e,t,n),Qe=a,Vt=l,Qe!==null)if(Vt)try{(Qe.nodeType===9?Qe.body:Qe.nodeName==="HTML"?Qe.ownerDocument.body:Qe).removeChild(n.stateNode)}catch(i){Me(n,t,i)}else try{Qe.removeChild(n.stateNode)}catch(i){Me(n,t,i)}break;case 18:Qe!==null&&(Vt?(e=Qe,py(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),gr(e)):py(Qe,n.stateNode));break;case 4:a=Qe,l=Vt,Qe=n.stateNode.containerInfo,Vt=!0,_a(e,t,n),Qe=a,Vt=l;break;case 0:case 11:case 14:case 15:Sl(2,n,t),at||Sl(4,n,t),_a(e,t,n);break;case 1:at||(ea(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&bb(n,t,a)),_a(e,t,n);break;case 21:_a(e,t,n);break;case 22:at=(a=at)||n.memoizedState!==null,_a(e,t,n),at=a;break;default:_a(e,t,n)}}function Eb(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{gr(e)}catch(n){Me(t,t.return,n)}}}function wb(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{gr(e)}catch(n){Me(t,t.return,n)}}function UE(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new ey),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new ey),t;default:throw Error(D(435,e.tag))}}function so(e,t){var n=UE(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=ZE.bind(null,e,a);a.then(l,l)}})}function jt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],i=e,u=t,c=u;e:for(;c!==null;){switch(c.tag){case 27:if(kl(c.type)){Qe=c.stateNode,Vt=!1;break e}break;case 5:Qe=c.stateNode,Vt=!1;break e;case 3:case 4:Qe=c.stateNode.containerInfo,Vt=!0;break e}c=c.return}if(Qe===null)throw Error(D(160));xb(i,u,l),Qe=null,Vt=!1,i=l.alternate,i!==null&&(i.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Ab(t,e),t=t.sibling}var Hn=null;function Ab(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:jt(t,e),Gt(e),a&4&&(Sl(3,e,e.return),Ks(3,e),Sl(5,e,e.return));break;case 1:jt(t,e),Gt(e),a&512&&(at||n===null||ea(n,n.return)),a&64&&wa&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var l=Hn;if(jt(t,e),Gt(e),a&512&&(at||n===null||ea(n,n.return)),a&4){var i=n!==null?n.memoizedState:null;if(a=e.memoizedState,n===null)if(a===null)if(e.stateNode===null){e:{a=e.type,n=e.memoizedProps,l=l.ownerDocument||l;t:switch(a){case"title":i=l.getElementsByTagName("title")[0],(!i||i[Zs]||i[yt]||i.namespaceURI==="http://www.w3.org/2000/svg"||i.hasAttribute("itemprop"))&&(i=l.createElement(a),l.head.insertBefore(i,l.querySelector("head > title"))),St(i,a,n),i[yt]=e,dt(i),a=i;break e;case"link":var u=_y("link","href",l).get(a+(n.href||""));if(u){for(var c=0;c<u.length;c++)if(i=u[c],i.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&i.getAttribute("rel")===(n.rel==null?null:n.rel)&&i.getAttribute("title")===(n.title==null?null:n.title)&&i.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){u.splice(c,1);break t}}i=l.createElement(a),St(i,a,n),l.head.appendChild(i);break;case"meta":if(u=_y("meta","content",l).get(a+(n.content||""))){for(c=0;c<u.length;c++)if(i=u[c],i.getAttribute("content")===(n.content==null?null:""+n.content)&&i.getAttribute("name")===(n.name==null?null:n.name)&&i.getAttribute("property")===(n.property==null?null:n.property)&&i.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&i.getAttribute("charset")===(n.charSet==null?null:n.charSet)){u.splice(c,1);break t}}i=l.createElement(a),St(i,a,n),l.head.appendChild(i);break;default:throw Error(D(468,a))}i[yt]=e,dt(i),a=i}e.stateNode=a}else ky(l,e.type,e.stateNode);else e.stateNode=Ty(l,a,e.memoizedProps);else i!==a?(i===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):i.count--,a===null?ky(l,e.type,e.stateNode):Ty(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&ud(e,e.memoizedProps,n.memoizedProps)}break;case 27:jt(t,e),Gt(e),a&512&&(at||n===null||ea(n,n.return)),n!==null&&a&4&&ud(e,e.memoizedProps,n.memoizedProps);break;case 5:if(jt(t,e),Gt(e),a&512&&(at||n===null||ea(n,n.return)),e.flags&32){l=e.stateNode;try{ur(l,"")}catch(E){Me(e,e.return,E)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,ud(e,l,n!==null?n.memoizedProps:l)),a&1024&&(cd=!0);break;case 6:if(jt(t,e),Gt(e),a&4){if(e.stateNode===null)throw Error(D(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(E){Me(e,e.return,E)}}break;case 3:if(wo=null,l=Hn,Hn=Po(t.containerInfo),jt(t,e),Hn=l,Gt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{gr(t.containerInfo)}catch(E){Me(e,e.return,E)}cd&&(cd=!1,Mb(e));break;case 4:a=Hn,Hn=Po(e.stateNode.containerInfo),jt(t,e),Gt(e),Hn=a;break;case 12:jt(t,e),Gt(e);break;case 31:jt(t,e),Gt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,so(e,a)));break;case 13:jt(t,e),Gt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(pc=an()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,so(e,a)));break;case 22:l=e.memoizedState!==null;var d=n!==null&&n.memoizedState!==null,m=wa,p=at;if(wa=m||l,at=p||d,jt(t,e),at=p,wa=m,Gt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||d||wa||at||Zl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){d=n=t;try{if(i=d.stateNode,l)u=i.style,typeof u.setProperty=="function"?u.setProperty("display","none","important"):u.display="none";else{c=d.stateNode;var T=d.memoizedProps.style,y=T!=null&&T.hasOwnProperty("display")?T.display:null;c.style.display=y==null||typeof y=="boolean"?"":(""+y).trim()}}catch(E){Me(d,d.return,E)}}}else if(t.tag===6){if(n===null){d=t;try{d.stateNode.nodeValue=l?"":d.memoizedProps}catch(E){Me(d,d.return,E)}}}else if(t.tag===18){if(n===null){d=t;try{var _=d.stateNode;l?gy(_,!0):gy(d.stateNode,!1)}catch(E){Me(d,d.return,E)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,so(e,n))));break;case 19:jt(t,e),Gt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,so(e,a)));break;case 30:break;case 21:break;default:jt(t,e),Gt(e)}}function Gt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(Sb(a)){n=a;break}a=a.return}if(n==null)throw Error(D(160));switch(n.tag){case 27:var l=n.stateNode,i=od(e);Qo(e,i,l);break;case 5:var u=n.stateNode;n.flags&32&&(ur(u,""),n.flags&=-33);var c=od(e);Qo(e,c,u);break;case 3:case 4:var d=n.stateNode.containerInfo,m=od(e);$d(e,m,d);break;default:throw Error(D(161))}}catch(p){Me(e,e.return,p)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Mb(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Mb(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function ka(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)_b(e,t.alternate,t),t=t.sibling}function Zl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Sl(4,t,t.return),Zl(t);break;case 1:ea(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&bb(t,t.return,n),Zl(t);break;case 27:Es(t.stateNode);case 26:case 5:ea(t,t.return),Zl(t);break;case 22:t.memoizedState===null&&Zl(t);break;case 30:Zl(t);break;default:Zl(t)}e=e.sibling}}function xa(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,i=t,u=i.flags;switch(i.tag){case 0:case 11:case 15:xa(l,i,n),Ks(4,i);break;case 1:if(xa(l,i,n),a=i,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(m){Me(a,a.return,m)}if(a=i,l=a.updateQueue,l!==null){var c=a.stateNode;try{var d=l.shared.hiddenCallbacks;if(d!==null)for(l.shared.hiddenCallbacks=null,l=0;l<d.length;l++)E0(d[l],c)}catch(m){Me(a,a.return,m)}}n&&u&64&&yb(i),Ts(i,i.return);break;case 27:Tb(i);case 26:case 5:xa(l,i,n),n&&a===null&&u&4&&vb(i),Ts(i,i.return);break;case 12:xa(l,i,n);break;case 31:xa(l,i,n),n&&u&4&&Eb(l,i);break;case 13:xa(l,i,n),n&&u&4&&wb(l,i);break;case 22:i.memoizedState===null&&xa(l,i,n),Ts(i,i.return);break;case 30:break;default:xa(l,i,n)}t=t.sibling}}function Wh(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Xs(n))}function $h(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Xs(e))}function Ln(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Ob(e,t,n,a),t=t.sibling}function Ob(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:Ln(e,t,n,a),l&2048&&Ks(9,t);break;case 1:Ln(e,t,n,a);break;case 3:Ln(e,t,n,a),l&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Xs(e)));break;case 12:if(l&2048){Ln(e,t,n,a),e=t.stateNode;try{var i=t.memoizedProps,u=i.id,c=i.onPostCommit;typeof c=="function"&&c(u,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(d){Me(t,t.return,d)}}else Ln(e,t,n,a);break;case 31:Ln(e,t,n,a);break;case 13:Ln(e,t,n,a);break;case 23:break;case 22:i=t.stateNode,u=t.alternate,t.memoizedState!==null?i._visibility&2?Ln(e,t,n,a):_s(e,t):i._visibility&2?Ln(e,t,n,a):(i._visibility|=2,Bi(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&Wh(u,t);break;case 24:Ln(e,t,n,a),l&2048&&$h(t.alternate,t);break;default:Ln(e,t,n,a)}}function Bi(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var i=e,u=t,c=n,d=a,m=u.flags;switch(u.tag){case 0:case 11:case 15:Bi(i,u,c,d,l),Ks(8,u);break;case 23:break;case 22:var p=u.stateNode;u.memoizedState!==null?p._visibility&2?Bi(i,u,c,d,l):_s(i,u):(p._visibility|=2,Bi(i,u,c,d,l)),l&&m&2048&&Wh(u.alternate,u);break;case 24:Bi(i,u,c,d,l),l&&m&2048&&$h(u.alternate,u);break;default:Bi(i,u,c,d,l)}t=t.sibling}}function _s(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,a=t,l=a.flags;switch(a.tag){case 22:_s(n,a),l&2048&&Wh(a.alternate,a);break;case 24:_s(n,a),l&2048&&$h(a.alternate,a);break;default:_s(n,a)}t=t.sibling}}var ds=8192;function Hi(e,t,n){if(e.subtreeFlags&ds)for(e=e.child;e!==null;)Db(e,t,n),e=e.sibling}function Db(e,t,n){switch(e.tag){case 26:Hi(e,t,n),e.flags&ds&&e.memoizedState!==null&&vw(n,Hn,e.memoizedState,e.memoizedProps);break;case 5:Hi(e,t,n);break;case 3:case 4:var a=Hn;Hn=Po(e.stateNode.containerInfo),Hi(e,t,n),Hn=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=ds,ds=16777216,Hi(e,t,n),ds=a):Hi(e,t,n));break;default:Hi(e,t,n)}}function Rb(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function is(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];ft=a,zb(a,e)}Rb(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Nb(e),e=e.sibling}function Nb(e){switch(e.tag){case 0:case 11:case 15:is(e),e.flags&2048&&Sl(9,e,e.return);break;case 3:is(e);break;case 12:is(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,xo(e)):is(e);break;default:is(e)}}function xo(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];ft=a,zb(a,e)}Rb(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Sl(8,t,t.return),xo(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,xo(t));break;default:xo(t)}e=e.sibling}}function zb(e,t){for(;ft!==null;){var n=ft;switch(n.tag){case 0:case 11:case 15:Sl(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var a=n.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Xs(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,ft=a;else e:for(n=e;ft!==null;){a=ft;var l=a.sibling,i=a.return;if(kb(a),a===n){ft=null;break e}if(l!==null){l.return=i,ft=l;break e}ft=i}}}var YE={getCacheForType:function(e){var t=vt(lt),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return vt(lt).controller.signal}},LE=typeof WeakMap=="function"?WeakMap:Map,xe=0,ze=null,oe=null,fe=0,Ae=0,Pt=null,rl=!1,Tr=!1,Ih=!1,La=0,Je=0,Tl=0,Jl=0,Ph=0,nn=0,dr=0,ks=null,Zt=null,Id=!1,pc=0,Cb=0,Xo=1/0,Fo=null,hl=null,ot=0,ml=null,hr=null,Na=0,Pd=0,eh=null,Ub=null,xs=0,th=null;function sn(){return(xe&2)!==0&&fe!==0?fe&-fe:ee.T!==null?tm():Zy()}function Yb(){if(nn===0)if((fe&536870912)===0||me){var e=$u;$u<<=1,($u&3932160)===0&&($u=262144),nn=e}else nn=536870912;return e=on.current,e!==null&&(e.flags|=32),nn}function Qt(e,t,n){(e===ze&&(Ae===2||Ae===9)||e.cancelPendingCommit!==null)&&(mr(e,0),sl(e,fe,nn,!1)),Vs(e,n),((xe&2)===0||e!==ze)&&(e===ze&&((xe&2)===0&&(Jl|=n),Je===4&&sl(e,fe,nn,!1)),aa(e))}function Lb(e,t,n){if((xe&6)!==0)throw Error(D(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||Gs(e,t),l=a?qE(e,t):fd(e,t,!0),i=a;do{if(l===0){Tr&&!a&&sl(e,t,0,!1);break}else{if(n=e.current.alternate,i&&!HE(n)){l=fd(e,t,!1),i=!1;continue}if(l===2){if(i=t,e.errorRecoveryDisabledLanes&i)var u=0;else u=e.pendingLanes&-536870913,u=u!==0?u:u&536870912?536870912:0;if(u!==0){t=u;e:{var c=e;l=ks;var d=c.current.memoizedState.isDehydrated;if(d&&(mr(c,u).flags|=256),u=fd(c,u,!1),u!==2){if(Ih&&!d){c.errorRecoveryDisabledLanes|=i,Jl|=i,l=4;break e}i=Zt,Zt=l,i!==null&&(Zt===null?Zt=i:Zt.push.apply(Zt,i))}l=u}if(i=!1,l!==2)continue}}if(l===1){mr(e,0),sl(e,t,0,!0);break}e:{switch(a=e,i=l,i){case 0:case 1:throw Error(D(345));case 4:if((t&4194048)!==t)break;case 6:sl(a,t,nn,!rl);break e;case 2:Zt=null;break;case 3:case 5:break;default:throw Error(D(329))}if((t&62914560)===t&&(l=pc+300-an(),10<l)){if(sl(a,t,nn,!rl),lc(a,0,!0)!==0)break e;Na=t,a.timeoutHandle=av(ty.bind(null,a,n,Zt,Fo,Id,t,nn,Jl,dr,rl,i,"Throttled",-0,0),l);break e}ty(a,n,Zt,Fo,Id,t,nn,Jl,dr,rl,i,null,-0,0)}}break}while(!0);aa(e)}function ty(e,t,n,a,l,i,u,c,d,m,p,T,y,_){if(e.timeoutHandle=-1,T=t.subtreeFlags,T&8192||(T&16785408)===16785408){T={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Ma},Db(t,i,T);var E=(i&62914560)===i?pc-an():(i&4194048)===i?Cb-an():0;if(E=Sw(T,E),E!==null){Na=i,e.cancelPendingCommit=E(ay.bind(null,e,t,i,n,a,l,u,c,d,p,T,null,y,_)),sl(e,i,u,!m);return}}ay(e,t,i,n,a,l,u,c,d)}function HE(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var l=n[a],i=l.getSnapshot;l=l.value;try{if(!un(i(),l))return!1}catch(u){return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function sl(e,t,n,a){t&=~Ph,t&=~Jl,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var i=31-rn(l),u=1<<i;a[i]=-1,l&=~u}n!==0&&jy(e,n,t)}function gc(){return(xe&6)===0?(Js(0,!1),!1):!0}function em(){if(oe!==null){if(Ae===0)var e=oe.return;else e=oe,Oa=ii=null,Bh(e),ar=null,Ns=0,e=oe;for(;e!==null;)gb(e.alternate,e),e=e.return;oe=null}}function mr(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,nw(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),Na=0,em(),ze=e,oe=n=Da(e.current,null),fe=t,Ae=0,Pt=null,rl=!1,Tr=Gs(e,t),Ih=!1,dr=nn=Ph=Jl=Tl=Je=0,Zt=ks=null,Id=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var l=31-rn(a),i=1<<l;t|=e[l],a&=~i}return La=t,uc(),n}function Hb(e,t){le=null,ee.H=Cs,t===Sr||t===cc?(t=zg(),Ae=3):t===Nh?(t=zg(),Ae=4):Ae=t===Kh?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Pt=t,oe===null&&(Je=1,Vo(e,kn(t,e.current)))}function Bb(){var e=on.current;return e===null?!0:(fe&4194048)===fe?En===null:(fe&62914560)===fe||(fe&536870912)!==0?e===En:!1}function qb(){var e=ee.H;return ee.H=Cs,e===null?Cs:e}function jb(){var e=ee.A;return ee.A=YE,e}function Ko(){Je=4,rl||(fe&4194048)!==fe&&on.current!==null||(Tr=!0),(Tl&134217727)===0&&(Jl&134217727)===0||ze===null||sl(ze,fe,nn,!1)}function fd(e,t,n){var a=xe;xe|=2;var l=qb(),i=jb();(ze!==e||fe!==t)&&(Fo=null,mr(e,t)),t=!1;var u=Je;e:do try{if(Ae!==0&&oe!==null){var c=oe,d=Pt;switch(Ae){case 8:em(),u=6;break e;case 3:case 2:case 9:case 6:on.current===null&&(t=!0);var m=Ae;if(Ae=0,Pt=null,Ii(e,c,d,m),n&&Tr){u=0;break e}break;default:m=Ae,Ae=0,Pt=null,Ii(e,c,d,m)}}BE(),u=Je;break}catch(p){Hb(e,p)}while(!0);return t&&e.shellSuspendCounter++,Oa=ii=null,xe=a,ee.H=l,ee.A=i,oe===null&&(ze=null,fe=0,uc()),u}function BE(){for(;oe!==null;)Gb(oe)}function qE(e,t){var n=xe;xe|=2;var a=qb(),l=jb();ze!==e||fe!==t?(Fo=null,Xo=an()+500,mr(e,t)):Tr=Gs(e,t);e:do try{if(Ae!==0&&oe!==null){t=oe;var i=Pt;t:switch(Ae){case 1:Ae=0,Pt=null,Ii(e,t,i,1);break;case 2:case 9:if(Ng(i)){Ae=0,Pt=null,ny(t);break}t=function(){Ae!==2&&Ae!==9||ze!==e||(Ae=7),aa(e)},i.then(t,t);break e;case 3:Ae=7;break e;case 4:Ae=5;break e;case 7:Ng(i)?(Ae=0,Pt=null,ny(t)):(Ae=0,Pt=null,Ii(e,t,i,7));break;case 5:var u=null;switch(oe.tag){case 26:u=oe.memoizedState;case 5:case 27:var c=oe;if(u?uv(u):c.stateNode.complete){Ae=0,Pt=null;var d=c.sibling;if(d!==null)oe=d;else{var m=c.return;m!==null?(oe=m,yc(m)):oe=null}break t}}Ae=0,Pt=null,Ii(e,t,i,5);break;case 6:Ae=0,Pt=null,Ii(e,t,i,6);break;case 8:em(),Je=6;break e;default:throw Error(D(462))}}jE();break}catch(p){Hb(e,p)}while(!0);return Oa=ii=null,ee.H=a,ee.A=l,xe=n,oe!==null?0:(ze=null,fe=0,uc(),Je)}function jE(){for(;oe!==null&&!cx();)Gb(oe)}function Gb(e){var t=pb(e.alternate,e,La);e.memoizedProps=e.pendingProps,t===null?yc(e):oe=t}function ny(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Jg(n,t,t.pendingProps,t.type,void 0,fe);break;case 11:t=Jg(n,t,t.pendingProps,t.type.render,t.ref,fe);break;case 5:Bh(t);default:gb(n,t),t=oe=g0(t,La),t=pb(n,t,La)}e.memoizedProps=e.pendingProps,t===null?yc(e):oe=t}function Ii(e,t,n,a){Oa=ii=null,Bh(t),ar=null,Ns=0;var l=t.return;try{if(OE(e,l,t,n,fe)){Je=1,Vo(e,kn(n,e.current)),oe=null;return}}catch(i){if(l!==null)throw oe=l,i;Je=1,Vo(e,kn(n,e.current)),oe=null;return}t.flags&32768?(me||a===1?e=!0:Tr||(fe&536870912)!==0?e=!1:(rl=e=!0,(a===2||a===9||a===3||a===6)&&(a=on.current,a!==null&&a.tag===13&&(a.flags|=16384))),Vb(t,e)):yc(t)}function yc(e){var t=e;do{if((t.flags&32768)!==0){Vb(t,rl);return}e=t.return;var n=NE(t.alternate,t,La);if(n!==null){oe=n;return}if(t=t.sibling,t!==null){oe=t;return}oe=t=e}while(t!==null);Je===0&&(Je=5)}function Vb(e,t){do{var n=zE(e.alternate,e);if(n!==null){n.flags&=32767,oe=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){oe=e;return}oe=e=n}while(e!==null);Je=6,oe=null}function ay(e,t,n,a,l,i,u,c,d){e.cancelPendingCommit=null;do bc();while(ot!==0);if((xe&6)!==0)throw Error(D(327));if(t!==null){if(t===e.current)throw Error(D(177));if(i=t.lanes|t.childLanes,i|=Eh,Sx(e,n,i,u,c,d),e===ze&&(oe=ze=null,fe=0),hr=t,ml=e,Na=n,Pd=i,eh=l,Ub=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,QE(No,function(){return Kb(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=ee.T,ee.T=null,l=Ee.p,Ee.p=2,u=xe,xe|=4;try{CE(e,t,n)}finally{xe=u,Ee.p=l,ee.T=a}}ot=1,Zb(),Qb(),Xb()}}function Zb(){if(ot===1){ot=0;var e=ml,t=hr,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=ee.T,ee.T=null;var a=Ee.p;Ee.p=2;var l=xe;xe|=4;try{Ab(t,e);var i=ih,u=u0(e.containerInfo),c=i.focusedElem,d=i.selectionRange;if(u!==c&&c&&c.ownerDocument&&s0(c.ownerDocument.documentElement,c)){if(d!==null&&xh(c)){var m=d.start,p=d.end;if(p===void 0&&(p=m),"selectionStart"in c)c.selectionStart=m,c.selectionEnd=Math.min(p,c.value.length);else{var T=c.ownerDocument||document,y=T&&T.defaultView||window;if(y.getSelection){var _=y.getSelection(),E=c.textContent.length,w=Math.min(d.start,E),R=d.end===void 0?w:Math.min(d.end,E);!_.extend&&w>R&&(u=R,R=w,w=u);var g=Eg(c,w),b=Eg(c,R);if(g&&b&&(_.rangeCount!==1||_.anchorNode!==g.node||_.anchorOffset!==g.offset||_.focusNode!==b.node||_.focusOffset!==b.offset)){var k=T.createRange();k.setStart(g.node,g.offset),_.removeAllRanges(),w>R?(_.addRange(k),_.extend(b.node,b.offset)):(k.setEnd(b.node,b.offset),_.addRange(k))}}}}for(T=[],_=c;_=_.parentNode;)_.nodeType===1&&T.push({element:_,left:_.scrollLeft,top:_.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;c<T.length;c++){var x=T[c];x.element.scrollLeft=x.left,x.element.scrollTop=x.top}}nc=!!lh,ih=lh=null}finally{xe=l,Ee.p=a,ee.T=n}}e.current=t,ot=2}}function Qb(){if(ot===2){ot=0;var e=ml,t=hr,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=ee.T,ee.T=null;var a=Ee.p;Ee.p=2;var l=xe;xe|=4;try{_b(e,t.alternate,t)}finally{xe=l,Ee.p=a,ee.T=n}}ot=3}}function Xb(){if(ot===4||ot===3){ot=0,fx();var e=ml,t=hr,n=Na,a=Ub;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?ot=5:(ot=0,hr=ml=null,Fb(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(hl=null),yh(n),t=t.stateNode,ln&&typeof ln.onCommitFiberRoot=="function")try{ln.onCommitFiberRoot(js,t,void 0,(t.current.flags&128)===128)}catch(d){}if(a!==null){t=ee.T,l=Ee.p,Ee.p=2,ee.T=null;try{for(var i=e.onRecoverableError,u=0;u<a.length;u++){var c=a[u];i(c.value,{componentStack:c.stack})}}finally{ee.T=t,Ee.p=l}}(Na&3)!==0&&bc(),aa(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===th?xs++:(xs=0,th=e):xs=0,Js(0,!1)}}function Fb(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Xs(t)))}function bc(){return Zb(),Qb(),Xb(),Kb()}function Kb(){if(ot!==5)return!1;var e=ml,t=Pd;Pd=0;var n=yh(Na),a=ee.T,l=Ee.p;try{Ee.p=32>n?32:n,ee.T=null,n=eh,eh=null;var i=ml,u=Na;if(ot=0,hr=ml=null,Na=0,(xe&6)!==0)throw Error(D(331));var c=xe;if(xe|=4,Nb(i.current),Ob(i,i.current,u,n),xe=c,Js(0,!1),ln&&typeof ln.onPostCommitFiberRoot=="function")try{ln.onPostCommitFiberRoot(js,i)}catch(d){}return!0}finally{Ee.p=l,ee.T=a,Fb(e,t)}}function ly(e,t,n){t=kn(n,t),t=Kd(e.stateNode,t,2),e=dl(e,t,2),e!==null&&(Vs(e,2),aa(e))}function Me(e,t,n){if(e.tag===3)ly(e,e,n);else for(;t!==null;){if(t.tag===3){ly(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(hl===null||!hl.has(a))){e=kn(n,e),n=ob(2),a=dl(t,n,2),a!==null&&(cb(n,a,t,e),Vs(a,2),aa(a));break}}t=t.return}}function dd(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new LE;var l=new Set;a.set(t,l)}else l=a.get(t),l===void 0&&(l=new Set,a.set(t,l));l.has(n)||(Ih=!0,l.add(n),e=GE.bind(null,e,t,n),t.then(e,e))}function GE(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ze===e&&(fe&n)===n&&(Je===4||Je===3&&(fe&62914560)===fe&&300>an()-pc?(xe&2)===0&&mr(e,0):Ph|=n,dr===fe&&(dr=0)),aa(e)}function Jb(e,t){t===0&&(t=qy()),e=li(e,t),e!==null&&(Vs(e,t),aa(e))}function VE(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Jb(e,n)}function ZE(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(D(314))}a!==null&&a.delete(t),Jb(e,n)}function QE(e,t){return ph(e,t)}var Jo=null,qi=null,nh=!1,Wo=!1,hd=!1,ul=0;function aa(e){e!==qi&&e.next===null&&(qi===null?Jo=qi=e:qi=qi.next=e),Wo=!0,nh||(nh=!0,FE())}function Js(e,t){if(!hd&&Wo){hd=!0;do for(var n=!1,a=Jo;a!==null;){if(!t)if(e!==0){var l=a.pendingLanes;if(l===0)var i=0;else{var u=a.suspendedLanes,c=a.pingedLanes;i=(1<<31-rn(42|e)+1)-1,i&=l&~(u&~c),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(n=!0,iy(a,i))}else i=fe,i=lc(a,a===ze?i:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(i&3)===0||Gs(a,i)||(n=!0,iy(a,i));a=a.next}while(n);hd=!1}}function XE(){Wb()}function Wb(){Wo=nh=!1;var e=0;ul!==0&&tw()&&(e=ul);for(var t=an(),n=null,a=Jo;a!==null;){var l=a.next,i=$b(a,t);i===0?(a.next=null,n===null?Jo=l:n.next=l,l===null&&(qi=n)):(n=a,(e!==0||(i&3)!==0)&&(Wo=!0)),a=l}ot!==0&&ot!==5||Js(e,!1),ul!==0&&(ul=0)}function $b(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes&-62914561;0<i;){var u=31-rn(i),c=1<<u,d=l[u];d===-1?((c&n)===0||(c&a)!==0)&&(l[u]=vx(c,t)):d<=t&&(e.expiredLanes|=c),i&=~c}if(t=ze,n=fe,n=lc(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(Ae===2||Ae===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&Gf(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||Gs(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&Gf(a),yh(n)){case 2:case 8:n=Hy;break;case 32:n=No;break;case 268435456:n=By;break;default:n=No}return a=Ib.bind(null,e),n=ph(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&Gf(a),e.callbackPriority=2,e.callbackNode=null,2}function Ib(e,t){if(ot!==0&&ot!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(bc()&&e.callbackNode!==n)return null;var a=fe;return a=lc(e,e===ze?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(Lb(e,a,t),$b(e,an()),e.callbackNode!=null&&e.callbackNode===n?Ib.bind(null,e):null)}function iy(e,t){if(bc())return null;Lb(e,t,!0)}function FE(){aw(function(){(xe&6)!==0?ph(Ly,XE):Wb()})}function tm(){if(ul===0){var e=or;e===0&&(e=Wu,Wu<<=1,(Wu&261888)===0&&(Wu=256)),ul=e}return ul}function ry(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:po(""+e)}function sy(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function KE(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var i=ry((l[Xt]||null).action),u=a.submitter;u&&(t=(t=u[Xt]||null)?ry(t.formAction):u.getAttribute("formAction"),t!==null&&(i=t,u=null));var c=new ic("action","action",null,a,l);e.push({event:c,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(ul!==0){var d=u?sy(l,u):new FormData(l);Xd(n,{pending:!0,data:d,method:l.method,action:i},null,d)}}else typeof i=="function"&&(c.preventDefault(),d=u?sy(l,u):new FormData(l),Xd(n,{pending:!0,data:d,method:l.method,action:i},i,d))},currentTarget:l}]})}}for(uo=0;uo<Cd.length;uo++)oo=Cd[uo],uy=oo.toLowerCase(),oy=oo[0].toUpperCase()+oo.slice(1),Bn(uy,"on"+oy);var oo,uy,oy,uo;Bn(c0,"onAnimationEnd");Bn(f0,"onAnimationIteration");Bn(d0,"onAnimationStart");Bn("dblclick","onDoubleClick");Bn("focusin","onFocus");Bn("focusout","onBlur");Bn(dE,"onTransitionRun");Bn(hE,"onTransitionStart");Bn(mE,"onTransitionCancel");Bn(h0,"onTransitionEnd");sr("onMouseEnter",["mouseout","mouseover"]);sr("onMouseLeave",["mouseout","mouseover"]);sr("onPointerEnter",["pointerout","pointerover"]);sr("onPointerLeave",["pointerout","pointerover"]);ti("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));ti("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));ti("onBeforeInput",["compositionend","keypress","textInput","paste"]);ti("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));ti("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));ti("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Us="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),JE=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Us));function Pb(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],l=a.event;a=a.listeners;e:{var i=void 0;if(t)for(var u=a.length-1;0<=u;u--){var c=a[u],d=c.instance,m=c.currentTarget;if(c=c.listener,d!==i&&l.isPropagationStopped())break e;i=c,l.currentTarget=m;try{i(l)}catch(p){Co(p)}l.currentTarget=null,i=d}else for(u=0;u<a.length;u++){if(c=a[u],d=c.instance,m=c.currentTarget,c=c.listener,d!==i&&l.isPropagationStopped())break e;i=c,l.currentTarget=m;try{i(l)}catch(p){Co(p)}l.currentTarget=null,i=d}}}}function ue(e,t){var n=t[wd];n===void 0&&(n=t[wd]=new Set);var a=e+"__bubble";n.has(a)||(ev(t,e,2,!1),n.add(a))}function md(e,t,n){var a=0;t&&(a|=4),ev(n,e,a,t)}var co="_reactListening"+Math.random().toString(36).slice(2);function nm(e){if(!e[co]){e[co]=!0,Qy.forEach(function(n){n!=="selectionchange"&&(JE.has(n)||md(n,!1,e),md(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[co]||(t[co]=!0,md("selectionchange",!1,t))}}function ev(e,t,n,a){switch(hv(t)){case 2:var l=kw;break;case 8:l=xw;break;default:l=rm}n=l.bind(null,t,n,e),l=void 0,!Rd||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),a?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function pd(e,t,n,a,l){var i=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var u=a.tag;if(u===3||u===4){var c=a.stateNode.containerInfo;if(c===l)break;if(u===4)for(u=a.return;u!==null;){var d=u.tag;if((d===3||d===4)&&u.stateNode.containerInfo===l)return;u=u.return}for(;c!==null;){if(u=Vi(c),u===null)return;if(d=u.tag,d===5||d===6||d===26||d===27){a=i=u;continue e}c=c.parentNode}}a=a.return}Py(function(){var m=i,p=Sh(n),T=[];e:{var y=m0.get(e);if(y!==void 0){var _=ic,E=e;switch(e){case"keypress":if(yo(n)===0)break e;case"keydown":case"keyup":_=Zx;break;case"focusin":E="focus",_=Ff;break;case"focusout":E="blur",_=Ff;break;case"beforeblur":case"afterblur":_=Ff;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":_=gg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":_=Nx;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":_=Fx;break;case c0:case f0:case d0:_=Ux;break;case h0:_=Jx;break;case"scroll":case"scrollend":_=Dx;break;case"wheel":_=$x;break;case"copy":case"cut":case"paste":_=Lx;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":_=bg;break;case"toggle":case"beforetoggle":_=Px}var w=(t&4)!==0,R=!w&&(e==="scroll"||e==="scrollend"),g=w?y!==null?y+"Capture":null:y;w=[];for(var b=m,k;b!==null;){var x=b;if(k=x.stateNode,x=x.tag,x!==5&&x!==26&&x!==27||k===null||g===null||(x=As(b,g),x!=null&&w.push(Ys(b,x,k))),R)break;b=b.return}0<w.length&&(y=new _(y,E,null,n,p),T.push({event:y,listeners:w}))}}if((t&7)===0){e:{if(y=e==="mouseover"||e==="pointerover",_=e==="mouseout"||e==="pointerout",y&&n!==Dd&&(E=n.relatedTarget||n.fromElement)&&(Vi(E)||E[yr]))break e;if((_||y)&&(y=p.window===p?p:(y=p.ownerDocument)?y.defaultView||y.parentWindow:window,_?(E=n.relatedTarget||n.toElement,_=m,E=E?Vi(E):null,E!==null&&(R=qs(E),w=E.tag,E!==R||w!==5&&w!==27&&w!==6)&&(E=null)):(_=null,E=m),_!==E)){if(w=gg,x="onMouseLeave",g="onMouseEnter",b="mouse",(e==="pointerout"||e==="pointerover")&&(w=bg,x="onPointerLeave",g="onPointerEnter",b="pointer"),R=_==null?y:cs(_),k=E==null?y:cs(E),y=new w(x,b+"leave",_,n,p),y.target=R,y.relatedTarget=k,x=null,Vi(p)===m&&(w=new w(g,b+"enter",E,n,p),w.target=k,w.relatedTarget=R,x=w),R=x,_&&E)t:{for(w=WE,g=_,b=E,k=0,x=g;x;x=w(x))k++;x=0;for(var N=b;N;N=w(N))x++;for(;0<k-x;)g=w(g),k--;for(;0<x-k;)b=w(b),x--;for(;k--;){if(g===b||b!==null&&g===b.alternate){w=g;break t}g=w(g),b=w(b)}w=null}else w=null;_!==null&&cy(T,y,_,w,!1),E!==null&&R!==null&&cy(T,R,E,w,!0)}}e:{if(y=m?cs(m):window,_=y.nodeName&&y.nodeName.toLowerCase(),_==="select"||_==="input"&&y.type==="file")var z=_g;else if(Tg(y))if(i0)z=oE;else{z=sE;var Y=rE}else _=y.nodeName,!_||_.toLowerCase()!=="input"||y.type!=="checkbox"&&y.type!=="radio"?m&&vh(m.elementType)&&(z=_g):z=uE;if(z&&(z=z(e,m))){l0(T,z,n,p);break e}Y&&Y(e,y,m),e==="focusout"&&m&&y.type==="number"&&m.memoizedProps.value!=null&&Od(y,"number",y.value)}switch(Y=m?cs(m):window,e){case"focusin":(Tg(Y)||Y.contentEditable==="true")&&(Xi=Y,Nd=m,ps=null);break;case"focusout":ps=Nd=Xi=null;break;case"mousedown":zd=!0;break;case"contextmenu":case"mouseup":case"dragend":zd=!1,wg(T,n,p);break;case"selectionchange":if(fE)break;case"keydown":case"keyup":wg(T,n,p)}var q;if(kh)e:{switch(e){case"compositionstart":var J="onCompositionStart";break e;case"compositionend":J="onCompositionEnd";break e;case"compositionupdate":J="onCompositionUpdate";break e}J=void 0}else Qi?n0(e,n)&&(J="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(J="onCompositionStart");J&&(t0&&n.locale!=="ko"&&(Qi||J!=="onCompositionStart"?J==="onCompositionEnd"&&Qi&&(q=e0()):(il=p,Th="value"in il?il.value:il.textContent,Qi=!0)),Y=$o(m,J),0<Y.length&&(J=new yg(J,e,null,n,p),T.push({event:J,listeners:Y}),q?J.data=q:(q=a0(n),q!==null&&(J.data=q)))),(q=tE?nE(e,n):aE(e,n))&&(J=$o(m,"onBeforeInput"),0<J.length&&(Y=new yg("onBeforeInput","beforeinput",null,n,p),T.push({event:Y,listeners:J}),Y.data=q)),KE(T,e,m,n,p)}Pb(T,t)})}function Ys(e,t,n){return{instance:e,listener:t,currentTarget:n}}function $o(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,i=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||i===null||(l=As(e,n),l!=null&&a.unshift(Ys(e,l,i)),l=As(e,t),l!=null&&a.push(Ys(e,l,i))),e.tag===3)return a;e=e.return}return[]}function WE(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function cy(e,t,n,a,l){for(var i=t._reactName,u=[];n!==null&&n!==a;){var c=n,d=c.alternate,m=c.stateNode;if(c=c.tag,d!==null&&d===a)break;c!==5&&c!==26&&c!==27||m===null||(d=m,l?(m=As(n,i),m!=null&&u.unshift(Ys(n,m,d))):l||(m=As(n,i),m!=null&&u.push(Ys(n,m,d)))),n=n.return}u.length!==0&&e.push({event:t,listeners:u})}var $E=/\r\n?/g,IE=/\u0000|\uFFFD/g;function fy(e){return(typeof e=="string"?e:""+e).replace($E,"\n").replace(IE,"")}function tv(e,t){return t=fy(t),fy(e)===t}function De(e,t,n,a,l,i){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||ur(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&ur(e,""+a);break;case"className":Pu(e,"class",a);break;case"tabIndex":Pu(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":Pu(e,n,a);break;case"style":Iy(e,a,i);break;case"data":if(t!=="object"){Pu(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=po(""+a),e.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof i=="function"&&(n==="formAction"?(t!=="input"&&De(e,t,"name",l.name,l,null),De(e,t,"formEncType",l.formEncType,l,null),De(e,t,"formMethod",l.formMethod,l,null),De(e,t,"formTarget",l.formTarget,l,null)):(De(e,t,"encType",l.encType,l,null),De(e,t,"method",l.method,l,null),De(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=po(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=Ma);break;case"onScroll":a!=null&&ue("scroll",e);break;case"onScrollEnd":a!=null&&ue("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(D(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(D(60));e.innerHTML=n}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}n=po(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""+a):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":a===!0?e.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,a):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(n,a):e.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(n):e.setAttribute(n,a);break;case"popover":ue("beforetoggle",e),ue("toggle",e),mo(e,"popover",a);break;case"xlinkActuate":Sa(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":Sa(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":Sa(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":Sa(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":Sa(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":Sa(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":Sa(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":Sa(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":Sa(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":mo(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=Mx.get(n)||n,mo(e,n,a))}}function ah(e,t,n,a,l,i){switch(n){case"style":Iy(e,a,i);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(D(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(D(60));e.innerHTML=n}}break;case"children":typeof a=="string"?ur(e,a):(typeof a=="number"||typeof a=="bigint")&&ur(e,""+a);break;case"onScroll":a!=null&&ue("scroll",e);break;case"onScrollEnd":a!=null&&ue("scrollend",e);break;case"onClick":a!=null&&(e.onclick=Ma);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Xy.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),i=e[Xt]||null,i=i!=null?i[n]:null,typeof i=="function"&&e.removeEventListener(t,i,l),typeof a=="function")){typeof i!="function"&&i!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,l);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):mo(e,n,a)}}}function St(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":ue("error",e),ue("load",e);var a=!1,l=!1,i;for(i in n)if(n.hasOwnProperty(i)){var u=n[i];if(u!=null)switch(i){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(D(137,t));default:De(e,t,i,u,n,null)}}l&&De(e,t,"srcSet",n.srcSet,n,null),a&&De(e,t,"src",n.src,n,null);return;case"input":ue("invalid",e);var c=i=u=l=null,d=null,m=null;for(a in n)if(n.hasOwnProperty(a)){var p=n[a];if(p!=null)switch(a){case"name":l=p;break;case"type":u=p;break;case"checked":d=p;break;case"defaultChecked":m=p;break;case"value":i=p;break;case"defaultValue":c=p;break;case"children":case"dangerouslySetInnerHTML":if(p!=null)throw Error(D(137,t));break;default:De(e,t,a,p,n,null)}}Jy(e,i,c,d,m,u,l,!1);return;case"select":ue("invalid",e),a=u=i=null;for(l in n)if(n.hasOwnProperty(l)&&(c=n[l],c!=null))switch(l){case"value":i=c;break;case"defaultValue":u=c;break;case"multiple":a=c;default:De(e,t,l,c,n,null)}t=i,n=u,e.multiple=!!a,t!=null?er(e,!!a,t,!1):n!=null&&er(e,!!a,n,!0);return;case"textarea":ue("invalid",e),i=l=a=null;for(u in n)if(n.hasOwnProperty(u)&&(c=n[u],c!=null))switch(u){case"value":a=c;break;case"defaultValue":l=c;break;case"children":i=c;break;case"dangerouslySetInnerHTML":if(c!=null)throw Error(D(91));break;default:De(e,t,u,c,n,null)}$y(e,a,l,i);return;case"option":for(d in n)n.hasOwnProperty(d)&&(a=n[d],a!=null)&&(d==="selected"?e.selected=a&&typeof a!="function"&&typeof a!="symbol":De(e,t,d,a,n,null));return;case"dialog":ue("beforetoggle",e),ue("toggle",e),ue("cancel",e),ue("close",e);break;case"iframe":case"object":ue("load",e);break;case"video":case"audio":for(a=0;a<Us.length;a++)ue(Us[a],e);break;case"image":ue("error",e),ue("load",e);break;case"details":ue("toggle",e);break;case"embed":case"source":case"link":ue("error",e),ue("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(m in n)if(n.hasOwnProperty(m)&&(a=n[m],a!=null))switch(m){case"children":case"dangerouslySetInnerHTML":throw Error(D(137,t));default:De(e,t,m,a,n,null)}return;default:if(vh(t)){for(p in n)n.hasOwnProperty(p)&&(a=n[p],a!==void 0&&ah(e,t,p,a,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(a=n[c],a!=null&&De(e,t,c,a,n,null))}function PE(e,t,n,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,i=null,u=null,c=null,d=null,m=null,p=null;for(_ in n){var T=n[_];if(n.hasOwnProperty(_)&&T!=null)switch(_){case"checked":break;case"value":break;case"defaultValue":d=T;default:a.hasOwnProperty(_)||De(e,t,_,null,a,T)}}for(var y in a){var _=a[y];if(T=n[y],a.hasOwnProperty(y)&&(_!=null||T!=null))switch(y){case"type":i=_;break;case"name":l=_;break;case"checked":m=_;break;case"defaultChecked":p=_;break;case"value":u=_;break;case"defaultValue":c=_;break;case"children":case"dangerouslySetInnerHTML":if(_!=null)throw Error(D(137,t));break;default:_!==T&&De(e,t,y,_,a,T)}}Md(e,u,c,d,m,p,i,l);return;case"select":_=u=c=y=null;for(i in n)if(d=n[i],n.hasOwnProperty(i)&&d!=null)switch(i){case"value":break;case"multiple":_=d;default:a.hasOwnProperty(i)||De(e,t,i,null,a,d)}for(l in a)if(i=a[l],d=n[l],a.hasOwnProperty(l)&&(i!=null||d!=null))switch(l){case"value":y=i;break;case"defaultValue":c=i;break;case"multiple":u=i;default:i!==d&&De(e,t,l,i,a,d)}t=c,n=u,a=_,y!=null?er(e,!!n,y,!1):!!a!=!!n&&(t!=null?er(e,!!n,t,!0):er(e,!!n,n?[]:"",!1));return;case"textarea":_=y=null;for(c in n)if(l=n[c],n.hasOwnProperty(c)&&l!=null&&!a.hasOwnProperty(c))switch(c){case"value":break;case"children":break;default:De(e,t,c,null,a,l)}for(u in a)if(l=a[u],i=n[u],a.hasOwnProperty(u)&&(l!=null||i!=null))switch(u){case"value":y=l;break;case"defaultValue":_=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(D(91));break;default:l!==i&&De(e,t,u,l,a,i)}Wy(e,y,_);return;case"option":for(var E in n)y=n[E],n.hasOwnProperty(E)&&y!=null&&!a.hasOwnProperty(E)&&(E==="selected"?e.selected=!1:De(e,t,E,null,a,y));for(d in a)y=a[d],_=n[d],a.hasOwnProperty(d)&&y!==_&&(y!=null||_!=null)&&(d==="selected"?e.selected=y&&typeof y!="function"&&typeof y!="symbol":De(e,t,d,y,a,_));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var w in n)y=n[w],n.hasOwnProperty(w)&&y!=null&&!a.hasOwnProperty(w)&&De(e,t,w,null,a,y);for(m in a)if(y=a[m],_=n[m],a.hasOwnProperty(m)&&y!==_&&(y!=null||_!=null))switch(m){case"children":case"dangerouslySetInnerHTML":if(y!=null)throw Error(D(137,t));break;default:De(e,t,m,y,a,_)}return;default:if(vh(t)){for(var R in n)y=n[R],n.hasOwnProperty(R)&&y!==void 0&&!a.hasOwnProperty(R)&&ah(e,t,R,void 0,a,y);for(p in a)y=a[p],_=n[p],!a.hasOwnProperty(p)||y===_||y===void 0&&_===void 0||ah(e,t,p,y,a,_);return}}for(var g in n)y=n[g],n.hasOwnProperty(g)&&y!=null&&!a.hasOwnProperty(g)&&De(e,t,g,null,a,y);for(T in a)y=a[T],_=n[T],!a.hasOwnProperty(T)||y===_||y==null&&_==null||De(e,t,T,y,a,_)}function dy(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function ew(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var l=n[a],i=l.transferSize,u=l.initiatorType,c=l.duration;if(i&&c&&dy(u)){for(u=0,c=l.responseEnd,a+=1;a<n.length;a++){var d=n[a],m=d.startTime;if(m>c)break;var p=d.transferSize,T=d.initiatorType;p&&dy(T)&&(d=d.responseEnd,u+=p*(d<c?1:(c-m)/(d-m)))}if(--a,t+=8*(i+u)/(l.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var lh=null,ih=null;function Io(e){return e.nodeType===9?e:e.ownerDocument}function hy(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function nv(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function rh(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var gd=null;function tw(){var e=window.event;return e&&e.type==="popstate"?e===gd?!1:(gd=e,!0):(gd=null,!1)}var av=typeof setTimeout=="function"?setTimeout:void 0,nw=typeof clearTimeout=="function"?clearTimeout:void 0,my=typeof Promise=="function"?Promise:void 0,aw=typeof queueMicrotask=="function"?queueMicrotask:typeof my<"u"?function(e){return my.resolve(null).then(e).catch(lw)}:av;function lw(e){setTimeout(function(){throw e})}function kl(e){return e==="head"}function py(e,t){var n=t,a=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"||n==="/&"){if(a===0){e.removeChild(l),gr(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")Es(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,Es(n);for(var i=n.firstChild;i;){var u=i.nextSibling,c=i.nodeName;i[Zs]||c==="SCRIPT"||c==="STYLE"||c==="LINK"&&i.rel.toLowerCase()==="stylesheet"||n.removeChild(i),i=u}}else n==="body"&&Es(e.ownerDocument.body);n=l}while(n);gr(t)}function gy(e,t){var n=e;e=0;do{var a=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=a}while(n)}function sh(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":sh(n),bh(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function iw(e,t,n,a){for(;e.nodeType===1;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[Zs])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(i=e.getAttribute("rel"),i==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(i!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(i=e.getAttribute("src"),(i!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&i&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var i=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===i)return e}else return e;if(e=wn(e.nextSibling),e===null)break}return null}function rw(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=wn(e.nextSibling),e===null))return null;return e}function lv(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=wn(e.nextSibling),e===null))return null;return e}function uh(e){return e.data==="$?"||e.data==="$~"}function oh(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function sw(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function wn(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var ch=null;function yy(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return wn(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function by(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(t===0)return e;t--}else n!=="/$"&&n!=="/&"||t++}e=e.previousSibling}return null}function iv(e,t,n){switch(t=Io(n),e){case"html":if(e=t.documentElement,!e)throw Error(D(452));return e;case"head":if(e=t.head,!e)throw Error(D(453));return e;case"body":if(e=t.body,!e)throw Error(D(454));return e;default:throw Error(D(451))}}function Es(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);bh(e)}var An=new Map,vy=new Set;function Po(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Ha=Ee.d;Ee.d={f:uw,r:ow,D:cw,C:fw,L:dw,m:hw,X:pw,S:mw,M:gw};function uw(){var e=Ha.f(),t=gc();return e||t}function ow(e){var t=br(e);t!==null&&t.tag===5&&t.type==="form"?I0(t):Ha.r(e)}var _r=typeof document>"u"?null:document;function rv(e,t,n){var a=_r;if(a&&typeof t=="string"&&t){var l=_n(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),vy.has(l)||(vy.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),St(t,"link",e),dt(t),a.head.appendChild(t)))}}function cw(e){Ha.D(e),rv("dns-prefetch",e,null)}function fw(e,t){Ha.C(e,t),rv("preconnect",e,t)}function dw(e,t,n){Ha.L(e,t,n);var a=_r;if(a&&e&&t){var l='link[rel="preload"][as="'+_n(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+_n(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+_n(n.imageSizes)+'"]')):l+='[href="'+_n(e)+'"]';var i=l;switch(t){case"style":i=pr(e);break;case"script":i=kr(e)}An.has(i)||(e=Ge({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),An.set(i,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(Ws(i))||t==="script"&&a.querySelector($s(i))||(t=a.createElement("link"),St(t,"link",e),dt(t),a.head.appendChild(t)))}}function hw(e,t){Ha.m(e,t);var n=_r;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+_n(a)+'"][href="'+_n(e)+'"]',i=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=kr(e)}if(!An.has(i)&&(e=Ge({rel:"modulepreload",href:e},t),An.set(i,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector($s(i)))return}a=n.createElement("link"),St(a,"link",e),dt(a),n.head.appendChild(a)}}}function mw(e,t,n){Ha.S(e,t,n);var a=_r;if(a&&e){var l=Pi(a).hoistableStyles,i=pr(e);t=t||"default";var u=l.get(i);if(!u){var c={loading:0,preload:null};if(u=a.querySelector(Ws(i)))c.loading=5;else{e=Ge({rel:"stylesheet",href:e,"data-precedence":t},n),(n=An.get(i))&&am(e,n);var d=u=a.createElement("link");dt(d),St(d,"link",e),d._p=new Promise(function(m,p){d.onload=m,d.onerror=p}),d.addEventListener("load",function(){c.loading|=1}),d.addEventListener("error",function(){c.loading|=2}),c.loading|=4,Eo(u,t,a)}u={type:"stylesheet",instance:u,count:1,state:c},l.set(i,u)}}}function pw(e,t){Ha.X(e,t);var n=_r;if(n&&e){var a=Pi(n).hoistableScripts,l=kr(e),i=a.get(l);i||(i=n.querySelector($s(l)),i||(e=Ge({src:e,async:!0},t),(t=An.get(l))&&lm(e,t),i=n.createElement("script"),dt(i),St(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function gw(e,t){Ha.M(e,t);var n=_r;if(n&&e){var a=Pi(n).hoistableScripts,l=kr(e),i=a.get(l);i||(i=n.querySelector($s(l)),i||(e=Ge({src:e,async:!0,type:"module"},t),(t=An.get(l))&&lm(e,t),i=n.createElement("script"),dt(i),St(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function Sy(e,t,n,a){var l=(l=ol.current)?Po(l):null;if(!l)throw Error(D(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=pr(n.href),n=Pi(l).hoistableStyles,a=n.get(t),a||(a={type:"style",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=pr(n.href);var i=Pi(l).hoistableStyles,u=i.get(e);if(u||(l=l.ownerDocument||l,u={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,u),(i=l.querySelector(Ws(e)))&&!i._p&&(u.instance=i,u.state.loading=5),An.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},An.set(e,n),i||yw(l,e,n,u.state))),t&&a===null)throw Error(D(528,""));return u}if(t&&a!==null)throw Error(D(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=kr(n),n=Pi(l).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(D(444,e))}}function pr(e){return'href="'+_n(e)+'"'}function Ws(e){return'link[rel="stylesheet"]['+e+"]"}function sv(e){return Ge({},e,{"data-precedence":e.precedence,precedence:null})}function yw(e,t,n,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),St(t,"link",n),dt(t),e.head.appendChild(t))}function kr(e){return'[src="'+_n(e)+'"]'}function $s(e){return"script[async]"+e}function Ty(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+_n(n.href)+'"]');if(a)return t.instance=a,dt(a),a;var l=Ge({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),dt(a),St(a,"style",l),Eo(a,n.precedence,e),t.instance=a;case"stylesheet":l=pr(n.href);var i=e.querySelector(Ws(l));if(i)return t.state.loading|=4,t.instance=i,dt(i),i;a=sv(n),(l=An.get(l))&&am(a,l),i=(e.ownerDocument||e).createElement("link"),dt(i);var u=i;return u._p=new Promise(function(c,d){u.onload=c,u.onerror=d}),St(i,"link",a),t.state.loading|=4,Eo(i,n.precedence,e),t.instance=i;case"script":return i=kr(n.src),(l=e.querySelector($s(i)))?(t.instance=l,dt(l),l):(a=n,(l=An.get(i))&&(a=Ge({},n),lm(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),dt(l),St(l,"link",a),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(D(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,Eo(a,n.precedence,e));return t.instance}function Eo(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,i=l,u=0;u<a.length;u++){var c=a[u];if(c.dataset.precedence===t)i=c;else if(i!==l)break}i?i.parentNode.insertBefore(e,i.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function am(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function lm(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var wo=null;function _y(e,t,n){if(wo===null){var a=new Map,l=wo=new Map;l.set(n,a)}else l=wo,a=l.get(n),a||(a=new Map,l.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var i=n[l];if(!(i[Zs]||i[yt]||e==="link"&&i.getAttribute("rel")==="stylesheet")&&i.namespaceURI!=="http://www.w3.org/2000/svg"){var u=i.getAttribute(t)||"";u=e+u;var c=a.get(u);c?c.push(i):a.set(u,[i])}}return a}function ky(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function bw(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function uv(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function vw(e,t,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var l=pr(a.href),i=t.querySelector(Ws(l));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=ec.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=i,dt(i);return}i=t.ownerDocument||t,a=sv(a),(l=An.get(l))&&am(a,l),i=i.createElement("link"),dt(i);var u=i;u._p=new Promise(function(c,d){u.onload=c,u.onerror=d}),St(i,"link",a),n.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=ec.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var yd=0;function Sw(e,t){return e.stylesheets&&e.count===0&&Ao(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&Ao(e,e.stylesheets),e.unsuspend){var i=e.unsuspend;e.unsuspend=null,i()}},6e4+t);0<e.imgBytes&&yd===0&&(yd=62500*ew());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Ao(e,e.stylesheets),e.unsuspend)){var i=e.unsuspend;e.unsuspend=null,i()}},(e.imgBytes>yd?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function ec(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ao(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var tc=null;function Ao(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,tc=new Map,t.forEach(Tw,e),tc=null,ec.call(e))}function Tw(e,t){if(!(t.state.loading&4)){var n=tc.get(e);if(n)var a=n.get(null);else{n=new Map,tc.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i<l.length;i++){var u=l[i];(u.nodeName==="LINK"||u.getAttribute("media")!=="not all")&&(n.set(u.dataset.precedence,u),a=u)}a&&n.set(null,a)}l=t.instance,u=l.getAttribute("data-precedence"),i=n.get(u)||a,i===a&&n.set(null,l),n.set(u,l),this.count++,a=ec.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),i?i.parentNode.insertBefore(l,i.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var Ls={$$typeof:Aa,Provider:null,Consumer:null,_currentValue:Ql,_currentValue2:Ql,_threadCount:0};function _w(e,t,n,a,l,i,u,c,d){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Vf(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vf(0),this.hiddenUpdates=Vf(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=i,this.onRecoverableError=u,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=d,this.incompleteTransitions=new Map}function ov(e,t,n,a,l,i,u,c,d,m,p,T){return e=new _w(e,t,n,u,d,m,p,T,c),t=1,i===!0&&(t|=24),i=tn(3,null,null,t),e.current=i,i.stateNode=e,t=Dh(),t.refCount++,e.pooledCache=t,t.refCount++,i.memoizedState={element:a,isDehydrated:n,cache:t},zh(i),e}function cv(e){return e?(e=Ji,e):Ji}function fv(e,t,n,a,l,i){l=cv(l),a.context===null?a.context=l:a.pendingContext=l,a=fl(t),a.payload={element:n},i=i===void 0?null:i,i!==null&&(a.callback=i),n=dl(e,a,t),n!==null&&(Qt(n,e,t),ys(n,e,t))}function xy(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function im(e,t){xy(e,t),(e=e.alternate)&&xy(e,t)}function dv(e){if(e.tag===13||e.tag===31){var t=li(e,67108864);t!==null&&Qt(t,e,67108864),im(e,67108864)}}function Ey(e){if(e.tag===13||e.tag===31){var t=sn();t=gh(t);var n=li(e,t);n!==null&&Qt(n,e,t),im(e,t)}}var nc=!0;function kw(e,t,n,a){var l=ee.T;ee.T=null;var i=Ee.p;try{Ee.p=2,rm(e,t,n,a)}finally{Ee.p=i,ee.T=l}}function xw(e,t,n,a){var l=ee.T;ee.T=null;var i=Ee.p;try{Ee.p=8,rm(e,t,n,a)}finally{Ee.p=i,ee.T=l}}function rm(e,t,n,a){if(nc){var l=fh(a);if(l===null)pd(e,t,a,ac,n),wy(e,a);else if(ww(l,e,t,n,a))a.stopPropagation();else if(wy(e,a),t&4&&-1<Ew.indexOf(e)){for(;l!==null;){var i=br(l);if(i!==null)switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var u=Gl(i.pendingLanes);if(u!==0){var c=i;for(c.pendingLanes|=2,c.entangledLanes|=2;u;){var d=1<<31-rn(u);c.entanglements[1]|=d,u&=~d}aa(i),(xe&6)===0&&(Xo=an()+500,Js(0,!1))}}break;case 31:case 13:c=li(i,2),c!==null&&Qt(c,i,2),gc(),im(i,2)}if(i=fh(a),i===null&&pd(e,t,a,ac,n),i===l)break;l=i}l!==null&&a.stopPropagation()}else pd(e,t,a,null,n)}}function fh(e){return e=Sh(e),sm(e)}var ac=null;function sm(e){if(ac=null,e=Vi(e),e!==null){var t=qs(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=Ny(t),e!==null)return e;e=null}else if(n===31){if(e=zy(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return ac=e,null}function hv(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(dx()){case Ly:return 2;case Hy:return 8;case No:case hx:return 32;case By:return 268435456;default:return 32}default:return 32}}var dh=!1,pl=null,gl=null,yl=null,Hs=new Map,Bs=new Map,al=[],Ew="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function wy(e,t){switch(e){case"focusin":case"focusout":pl=null;break;case"dragenter":case"dragleave":gl=null;break;case"mouseover":case"mouseout":yl=null;break;case"pointerover":case"pointerout":Hs.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Bs.delete(t.pointerId)}}function rs(e,t,n,a,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:i,targetContainers:[l]},t!==null&&(t=br(t),t!==null&&dv(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function ww(e,t,n,a,l){switch(t){case"focusin":return pl=rs(pl,e,t,n,a,l),!0;case"dragenter":return gl=rs(gl,e,t,n,a,l),!0;case"mouseover":return yl=rs(yl,e,t,n,a,l),!0;case"pointerover":var i=l.pointerId;return Hs.set(i,rs(Hs.get(i)||null,e,t,n,a,l)),!0;case"gotpointercapture":return i=l.pointerId,Bs.set(i,rs(Bs.get(i)||null,e,t,n,a,l)),!0}return!1}function mv(e){var t=Vi(e.target);if(t!==null){var n=qs(t);if(n!==null){if(t=n.tag,t===13){if(t=Ny(n),t!==null){e.blockedOn=t,og(e.priority,function(){Ey(n)});return}}else if(t===31){if(t=zy(n),t!==null){e.blockedOn=t,og(e.priority,function(){Ey(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Mo(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=fh(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Dd=a,n.target.dispatchEvent(a),Dd=null}else return t=br(n),t!==null&&dv(t),e.blockedOn=n,!1;t.shift()}return!0}function Ay(e,t,n){Mo(e)&&n.delete(t)}function Aw(){dh=!1,pl!==null&&Mo(pl)&&(pl=null),gl!==null&&Mo(gl)&&(gl=null),yl!==null&&Mo(yl)&&(yl=null),Hs.forEach(Ay),Bs.forEach(Ay)}function fo(e,t){e.blockedOn===t&&(e.blockedOn=null,dh||(dh=!0,ct.unstable_scheduleCallback(ct.unstable_NormalPriority,Aw)))}var ho=null;function My(e){ho!==e&&(ho=e,ct.unstable_scheduleCallback(ct.unstable_NormalPriority,function(){ho===e&&(ho=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],l=e[t+2];if(typeof a!="function"){if(sm(a||n)===null)continue;break}var i=br(n);i!==null&&(e.splice(t,3),t-=3,Xd(i,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function gr(e){function t(d){return fo(d,e)}pl!==null&&fo(pl,e),gl!==null&&fo(gl,e),yl!==null&&fo(yl,e),Hs.forEach(t),Bs.forEach(t);for(var n=0;n<al.length;n++){var a=al[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<al.length&&(n=al[0],n.blockedOn===null);)mv(n),n.blockedOn===null&&al.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],i=n[a+1],u=l[Xt]||null;if(typeof i=="function")u||My(n);else if(u){var c=null;if(i&&i.hasAttribute("formAction")){if(l=i,u=i[Xt]||null)c=u.formAction;else if(sm(l)!==null)continue}else c=u.action;typeof c=="function"?n[a+1]=c:(n.splice(a,3),a-=3),My(n)}}}function pv(){function e(i){i.canIntercept&&i.info==="react-transition"&&i.intercept({handler:function(){return new Promise(function(u){return l=u})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var i=navigation.currentEntry;i&&i.url!=null&&navigation.navigate(i.url,{state:i.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),l!==null&&(l(),l=null)}}}function um(e){this._internalRoot=e}vc.prototype.render=um.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(D(409));var n=t.current,a=sn();fv(n,a,e,t,null,null)};vc.prototype.unmount=um.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;fv(e.current,2,null,e,null,null),gc(),t[yr]=null}};function vc(e){this._internalRoot=e}vc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Zy();e={blockedOn:null,target:e,priority:t};for(var n=0;n<al.length&&t!==0&&t<al[n].priority;n++);al.splice(n,0,e),n===0&&mv(e)}};var Oy=Dy.version;if(Oy!=="19.2.6")throw Error(D(527,Oy,"19.2.6"));Ee.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(D(188)):(e=Object.keys(e).join(","),Error(D(268,e)));return e=ix(t),e=e!==null?Cy(e):null,e=e===null?null:e.stateNode,e};var Mw={bundleType:0,version:"19.2.6",rendererPackageName:"react-dom",currentDispatcherRef:ee,reconcilerVersion:"19.2.6"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(ss=__REACT_DEVTOOLS_GLOBAL_HOOK__,!ss.isDisabled&&ss.supportsFiber))try{js=ss.inject(Mw),ln=ss}catch(e){}var ss;Sc.createRoot=function(e,t){if(!Ry(e))throw Error(D(299));var n=!1,a="",l=rb,i=sb,u=ub;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(u=t.onRecoverableError)),t=ov(e,1,!1,null,null,n,a,null,l,i,u,pv),e[yr]=t.current,nm(e),new um(t)};Sc.hydrateRoot=function(e,t,n){if(!Ry(e))throw Error(D(299));var a=!1,l="",i=rb,u=sb,c=ub,d=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(i=n.onUncaughtError),n.onCaughtError!==void 0&&(u=n.onCaughtError),n.onRecoverableError!==void 0&&(c=n.onRecoverableError),n.formState!==void 0&&(d=n.formState)),t=ov(e,1,!0,t,n!=null?n:null,a,l,d,i,u,c,pv),t.context=cv(null),n=t.current,a=sn(),a=gh(a),l=fl(a),l.callback=null,dl(n,l,a),n=a,t.current.lanes=n,Vs(t,n),aa(t),e[yr]=t.current,nm(e),new vc(t)};Sc.version="19.2.6"});var vv=Yn((H2,bv)=>{"use strict";function yv(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(yv)}catch(e){console.error(e)}}yv(),bv.exports=gv()});var Pv=Yn((km,Nr)=>{(function(e,t){typeof km=="object"&&typeof Nr<"u"?Nr.exports=t():typeof define=="function"&&define.amd?define(t):e.moment=t()})(km,(function(){"use strict";var e;function t(){return e.apply(null,arguments)}function n(r){e=r}function a(r){return r instanceof Array||Object.prototype.toString.call(r)==="[object Array]"}function l(r){return r!=null&&Object.prototype.toString.call(r)==="[object Object]"}function i(r,s){return Object.prototype.hasOwnProperty.call(r,s)}function u(r){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(r).length===0;var s;for(s in r)if(i(r,s))return!1;return!0}function c(r){return r===void 0}function d(r){return typeof r=="number"||Object.prototype.toString.call(r)==="[object Number]"}function m(r){return r instanceof Date||Object.prototype.toString.call(r)==="[object Date]"}function p(r,s){var o=[],f,h=r.length;for(f=0;f<h;++f)o.push(s(r[f],f));return o}function T(r,s){for(var o in s)i(s,o)&&(r[o]=s[o]);return i(s,"toString")&&(r.toString=s.toString),i(s,"valueOf")&&(r.valueOf=s.valueOf),r}function y(r,s,o,f){return ap(r,s,o,f,!0).utc()}function _(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function E(r){return r._pf==null&&(r._pf=_()),r._pf}var w;Array.prototype.some?w=Array.prototype.some:w=function(r){var s=Object(this),o=s.length>>>0,f;for(f=0;f<o;f++)if(f in s&&r.call(this,s[f],f,s))return!0;return!1};function R(r){var s=null,o=!1,f=r._d&&!isNaN(r._d.getTime());if(f&&(s=E(r),o=w.call(s.parsedDateParts,function(h){return h!=null}),f=s.overflow<0&&!s.empty&&!s.invalidEra&&!s.invalidMonth&&!s.invalidWeekday&&!s.weekdayMismatch&&!s.nullInput&&!s.invalidFormat&&!s.userInvalidated&&(!s.meridiem||s.meridiem&&o),r._strict&&(f=f&&s.charsLeftOver===0&&s.unusedTokens.length===0&&s.bigHour===void 0)),Object.isFrozen==null||!Object.isFrozen(r))r._isValid=f;else return f;return r._isValid}function g(r){var s=y(NaN);return r!=null?T(E(s),r):E(s).userInvalidated=!0,s}var b=t.momentProperties=[],k=!1;function x(r,s){var o,f,h,S=b.length;if(c(s._isAMomentObject)||(r._isAMomentObject=s._isAMomentObject),c(s._i)||(r._i=s._i),c(s._f)||(r._f=s._f),c(s._l)||(r._l=s._l),c(s._strict)||(r._strict=s._strict),c(s._tzm)||(r._tzm=s._tzm),c(s._isUTC)||(r._isUTC=s._isUTC),c(s._offset)||(r._offset=s._offset),c(s._pf)||(r._pf=E(s)),c(s._locale)||(r._locale=s._locale),S>0)for(o=0;o<S;o++)f=b[o],h=s[f],c(h)||(r[f]=h);return r}function N(r){x(this,r),this._d=new Date(r._d!=null?r._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),k===!1&&(k=!0,t.updateOffset(this),k=!1)}function z(r){return r instanceof N||r!=null&&r._isAMomentObject!=null}function Y(r){t.suppressDeprecationWarnings===!1&&typeof console<"u"&&console.warn&&console.warn("Deprecation warning: "+r)}function q(r,s){var o=!0;return T(function(){if(t.deprecationHandler!=null&&t.deprecationHandler(null,r),o){var f=[],h,S,A,V=arguments.length;for(S=0;S<V;S++){if(h="",typeof arguments[S]=="object"){h+="\n["+S+"] ";for(A in arguments[0])i(arguments[0],A)&&(h+=A+": "+arguments[0][A]+", ");h=h.slice(0,-2)}else h=arguments[S];f.push(h)}Y(r+"\nArguments: "+Array.prototype.slice.call(f).join("")+"\n"+new Error().stack),o=!1}return s.apply(this,arguments)},s)}var J={};function W(r,s){t.deprecationHandler!=null&&t.deprecationHandler(r,s),J[r]||(Y(s),J[r]=!0)}t.suppressDeprecationWarnings=!1,t.deprecationHandler=null;function be(r){return typeof Function<"u"&&r instanceof Function||Object.prototype.toString.call(r)==="[object Function]"}function Ye(r){var s,o;for(o in r)i(r,o)&&(s=r[o],be(s)?this[o]=s:this["_"+o]=s);this._config=r,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function Fe(r,s){var o=T({},r),f;for(f in s)i(s,f)&&(l(r[f])&&l(s[f])?(o[f]={},T(o[f],r[f]),T(o[f],s[f])):s[f]!=null?o[f]=s[f]:delete o[f]);for(f in r)i(r,f)&&!i(s,f)&&l(r[f])&&(o[f]=T({},o[f]));return o}function I(r){r!=null&&this.set(r)}var ce;Object.keys?ce=Object.keys:ce=function(r){var s,o=[];for(s in r)i(r,s)&&o.push(s);return o};var _t={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function Vn(r,s,o){var f=this._calendar[r]||this._calendar.sameElse;return be(f)?f.call(s,o):f}function pt(r,s,o){var f=""+Math.abs(r),h=s-f.length,S=r>=0;return(S?o?"+":"":"-")+Math.pow(10,Math.max(0,h)).toString().substr(1)+f}var Rn=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Nn=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ja={},Zn={};function Q(r,s,o,f){var h=f;typeof f=="string"&&(h=function(){return this[f]()}),r&&(Zn[r]=h),s&&(Zn[s[0]]=function(){return pt(h.apply(this,arguments),s[1],s[2])}),o&&(Zn[o]=function(){return this.localeData().ordinal(h.apply(this,arguments),r)})}function X(r){return r.match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"")}function Ce(r){var s=r.match(Rn),o,f;for(o=0,f=s.length;o<f;o++)Zn[s[o]]?s[o]=Zn[s[o]]:s[o]=X(s[o]);return function(h){var S="",A;for(A=0;A<f;A++)S+=be(s[A])?s[A].call(h,r):s[A];return S}}function ve(r,s){return r.isValid()?(s=yi(s,r.localeData()),ja[s]=ja[s]||Ce(s),ja[s](r)):r.localeData().invalidDate()}function yi(r,s){var o=5;function f(h){return s.longDateFormat(h)||h}for(Nn.lastIndex=0;o>=0&&Nn.test(r);)r=r.replace(Nn,f),Nn.lastIndex=0,o-=1;return r}var Xe={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function Ol(r){var s=this._longDateFormat[r],o=this._longDateFormat[r.toUpperCase()];return s||!o?s:(this._longDateFormat[r]=o.match(Rn).map(function(f){return f==="MMMM"||f==="MM"||f==="DD"||f==="dddd"?f.slice(1):f}).join(""),this._longDateFormat[r])}var bi="Invalid date";function Qn(){return this._invalidDate}var _u="%d",Vr=/\d{1,2}/;function ku(r){return this._ordinal.replace("%d",r)}var xu={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function Xn(r,s,o,f){var h=this._relativeTime[o];return be(h)?h(r,s,o,f):h.replace(/%d/i,r)}function Dl(r,s){var o=this._relativeTime[r>0?"future":"past"];return be(o)?o(s):o.replace(/%s/i,s)}var Fn={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function kt(r){return typeof r=="string"?Fn[r]||Fn[r.toLowerCase()]:void 0}function Rl(r){var s={},o,f;for(f in r)i(r,f)&&(o=kt(f),o&&(s[o]=r[f]));return s}var Ga={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function vi(r){var s=[],o;for(o in r)i(r,o)&&s.push({unit:o,priority:Ga[o]});return s.sort(function(f,h){return f.priority-h.priority}),s}var Nl=/\d/,xt=/\d\d/,Zr=/\d{3}/,Si=/\d{4}/,Va=/[+-]?\d{6}/,_e=/\d\d?/,ca=/\d\d\d\d?/,$t=/\d\d\d\d\d\d?/,Za=/\d{1,3}/,Ti=/\d{1,4}/,zl=/[+-]?\d{1,6}/,Kn=/\d+/,Cl=/[+-]?\d+/,_i=/Z|[+-]\d\d:?\d\d/gi,fa=/Z|[+-]\d\d(?::?\d\d)?/gi,fn=/[+-]?\d+(\.\d{1,3})?/,dn=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Jn=/^[1-9]\d?/,Ul=/^([1-9]\d|\d)/,ki;ki={};function j(r,s,o){ki[r]=be(s)?s:function(f,h){return f&&o?o:s}}function Qr(r,s){return i(ki,r)?ki[r](s._strict,s._locale):new RegExp(ef(r))}function ef(r){return Dt(r.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(s,o,f,h,S){return o||f||h||S}))}function Dt(r){return r.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Lt(r){return r<0?Math.ceil(r)||0:Math.floor(r)}function re(r){var s=+r,o=0;return s!==0&&isFinite(s)&&(o=Lt(s)),o}var Le={};function de(r,s){var o,f=s,h;for(typeof r=="string"&&(r=[r]),d(s)&&(f=function(S,A){A[s]=re(S)}),h=r.length,o=0;o<h;o++)Le[r[o]]=f}function Yl(r,s){de(r,function(o,f,h,S){h._w=h._w||{},s(o,h._w,h,S)})}function Eu(r,s,o){s!=null&&i(Le,r)&&Le[r](s,o._a,o,r)}function Qa(r){return r%4===0&&r%100!==0||r%400===0}var st=0,hn=1,mn=2,ke=3,ut=4,pn=5,Wn=6,wu=7,xi=8;Q("Y",0,0,function(){var r=this.year();return r<=9999?pt(r,4):"+"+r}),Q(0,["YY",2],0,function(){return this.year()%100}),Q(0,["YYYY",4],0,"year"),Q(0,["YYYYY",5],0,"year"),Q(0,["YYYYYY",6,!0],0,"year"),j("Y",Cl),j("YY",_e,xt),j("YYYY",Ti,Si),j("YYYYY",zl,Va),j("YYYYYY",zl,Va),de(["YYYYY","YYYYYY"],st),de("YYYY",function(r,s){s[st]=r.length===2?t.parseTwoDigitYear(r):re(r)}),de("YY",function(r,s){s[st]=t.parseTwoDigitYear(r)}),de("Y",function(r,s){s[st]=parseInt(r,10)});function zn(r){return Qa(r)?366:365}t.parseTwoDigitYear=function(r){return re(r)+(re(r)>68?1900:2e3)};var Ll=da("FullYear",!0);function Cn(){return Qa(this.year())}function da(r,s){return function(o){return o!=null?(Au(this,r,o),t.updateOffset(this,s),this):Xa(this,r)}}function Xa(r,s){if(!r.isValid())return NaN;var o=r._d,f=r._isUTC;switch(s){case"Milliseconds":return f?o.getUTCMilliseconds():o.getMilliseconds();case"Seconds":return f?o.getUTCSeconds():o.getSeconds();case"Minutes":return f?o.getUTCMinutes():o.getMinutes();case"Hours":return f?o.getUTCHours():o.getHours();case"Date":return f?o.getUTCDate():o.getDate();case"Day":return f?o.getUTCDay():o.getDay();case"Month":return f?o.getUTCMonth():o.getMonth();case"FullYear":return f?o.getUTCFullYear():o.getFullYear();default:return NaN}}function Au(r,s,o){var f,h,S,A,V;if(!(!r.isValid()||isNaN(o))){switch(f=r._d,h=r._isUTC,s){case"Milliseconds":return void(h?f.setUTCMilliseconds(o):f.setMilliseconds(o));case"Seconds":return void(h?f.setUTCSeconds(o):f.setSeconds(o));case"Minutes":return void(h?f.setUTCMinutes(o):f.setMinutes(o));case"Hours":return void(h?f.setUTCHours(o):f.setHours(o));case"Date":return void(h?f.setUTCDate(o):f.setDate(o));case"FullYear":break;default:return}S=o,A=r.month(),V=r.date(),V=V===29&&A===1&&!Qa(S)?28:V,h?f.setUTCFullYear(S,A,V):f.setFullYear(S,A,V)}}function Mu(r){return r=kt(r),be(this[r])?this[r]():this}function Ou(r,s){if(typeof r=="object"){r=Rl(r);var o=vi(r),f,h=o.length;for(f=0;f<h;f++)this[o[f].unit](r[o[f].unit])}else if(r=kt(r),be(this[r]))return this[r](s);return this}function Ei(r,s){return(r%s+s)%s}var Oe;Array.prototype.indexOf?Oe=Array.prototype.indexOf:Oe=function(r){var s;for(s=0;s<this.length;++s)if(this[s]===r)return s;return-1};function Z(r,s){if(isNaN(r)||isNaN(s))return NaN;var o=Ei(s,12);return r+=(s-o)/12,o===1?Qa(r)?29:28:31-o%7%2}Q("M",["MM",2],"Mo",function(){return this.month()+1}),Q("MMM",0,0,function(r){return this.localeData().monthsShort(this,r)}),Q("MMMM",0,0,function(r){return this.localeData().months(this,r)}),j("M",_e,Jn),j("MM",_e,xt),j("MMM",function(r,s){return s.monthsShortRegex(r)}),j("MMMM",function(r,s){return s.monthsRegex(r)}),de(["M","MM"],function(r,s){s[hn]=re(r)-1}),de(["MMM","MMMM"],function(r,s,o,f){var h=o._locale.monthsParse(r,f,o._strict);h!=null?s[hn]=h:E(o).invalidMonth=r});var v="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),M="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),H=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Se=dn,se=dn;function Ne(r,s){return r?a(this._months)?this._months[r.month()]:this._months[(this._months.isFormat||H).test(s)?"format":"standalone"][r.month()]:a(this._months)?this._months:this._months.standalone}function Ht(r,s){return r?a(this._monthsShort)?this._monthsShort[r.month()]:this._monthsShort[H.test(s)?"format":"standalone"][r.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function gn(r,s,o){var f,h,S,A=r.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],f=0;f<12;++f)S=y([2e3,f]),this._shortMonthsParse[f]=this.monthsShort(S,"").toLocaleLowerCase(),this._longMonthsParse[f]=this.months(S,"").toLocaleLowerCase();return o?s==="MMM"?(h=Oe.call(this._shortMonthsParse,A),h!==-1?h:null):(h=Oe.call(this._longMonthsParse,A),h!==-1?h:null):s==="MMM"?(h=Oe.call(this._shortMonthsParse,A),h!==-1?h:(h=Oe.call(this._longMonthsParse,A),h!==-1?h:null)):(h=Oe.call(this._longMonthsParse,A),h!==-1?h:(h=Oe.call(this._shortMonthsParse,A),h!==-1?h:null))}function It(r,s,o){var f,h,S;if(this._monthsParseExact)return gn.call(this,r,s,o);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),f=0;f<12;f++){if(h=y([2e3,f]),o&&!this._longMonthsParse[f]&&(this._longMonthsParse[f]=new RegExp("^"+this.months(h,"").replace(".","")+"$","i"),this._shortMonthsParse[f]=new RegExp("^"+this.monthsShort(h,"").replace(".","")+"$","i")),!o&&!this._monthsParse[f]&&(S="^"+this.months(h,"")+"|^"+this.monthsShort(h,""),this._monthsParse[f]=new RegExp(S.replace(".",""),"i")),o&&s==="MMMM"&&this._longMonthsParse[f].test(r))return f;if(o&&s==="MMM"&&this._shortMonthsParse[f].test(r))return f;if(!o&&this._monthsParse[f].test(r))return f}}function wi(r,s){if(!r.isValid())return r;if(typeof s=="string"){if(/^\d+$/.test(s))s=re(s);else if(s=r.localeData().monthsParse(s),!d(s))return r}var o=s,f=r.date();return f=f<29?f:Math.min(f,Z(r.year(),o)),r._isUTC?r._d.setUTCMonth(o,f):r._d.setMonth(o,f),r}function $e(r){return r!=null?(wi(this,r),t.updateOffset(this,!0),this):Xa(this,"Month")}function Du(){return Z(this.year(),this.month())}function Ru(r){return this._monthsParseExact?(i(this,"_monthsRegex")||Fm.call(this),r?this._monthsShortStrictRegex:this._monthsShortRegex):(i(this,"_monthsShortRegex")||(this._monthsShortRegex=Se),this._monthsShortStrictRegex&&r?this._monthsShortStrictRegex:this._monthsShortRegex)}function gS(r){return this._monthsParseExact?(i(this,"_monthsRegex")||Fm.call(this),r?this._monthsStrictRegex:this._monthsRegex):(i(this,"_monthsRegex")||(this._monthsRegex=se),this._monthsStrictRegex&&r?this._monthsStrictRegex:this._monthsRegex)}function Fm(){function r(te,he){return he.length-te.length}var s=[],o=[],f=[],h,S,A,V;for(h=0;h<12;h++)S=y([2e3,h]),A=Dt(this.monthsShort(S,"")),V=Dt(this.months(S,"")),s.push(A),o.push(V),f.push(V),f.push(A);s.sort(r),o.sort(r),f.sort(r),this._monthsRegex=new RegExp("^("+f.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function yS(r,s,o,f,h,S,A){var V;return r<100&&r>=0?(V=new Date(r+400,s,o,f,h,S,A),isFinite(V.getFullYear())&&V.setFullYear(r)):V=new Date(r,s,o,f,h,S,A),V}function Xr(r){var s,o;return r<100&&r>=0?(o=Array.prototype.slice.call(arguments),o[0]=r+400,s=new Date(Date.UTC.apply(null,o)),isFinite(s.getUTCFullYear())&&s.setUTCFullYear(r)):s=new Date(Date.UTC.apply(null,arguments)),s}function Nu(r,s,o){var f=7+s-o,h=(7+Xr(r,0,f).getUTCDay()-s)%7;return-h+f-1}function Km(r,s,o,f,h){var S=(7+o-f)%7,A=Nu(r,f,h),V=1+7*(s-1)+S+A,te,he;return V<=0?(te=r-1,he=zn(te)+V):V>zn(r)?(te=r+1,he=V-zn(r)):(te=r,he=V),{year:te,dayOfYear:he}}function Fr(r,s,o){var f=Nu(r.year(),s,o),h=Math.floor((r.dayOfYear()-f-1)/7)+1,S,A;return h<1?(A=r.year()-1,S=h+ha(A,s,o)):h>ha(r.year(),s,o)?(S=h-ha(r.year(),s,o),A=r.year()+1):(A=r.year(),S=h),{week:S,year:A}}function ha(r,s,o){var f=Nu(r,s,o),h=Nu(r+1,s,o);return(zn(r)-f+h)/7}Q("w",["ww",2],"wo","week"),Q("W",["WW",2],"Wo","isoWeek"),j("w",_e,Jn),j("ww",_e,xt),j("W",_e,Jn),j("WW",_e,xt),Yl(["w","ww","W","WW"],function(r,s,o,f){s[f.substr(0,1)]=re(r)});function bS(r){return Fr(r,this._week.dow,this._week.doy).week}var vS={dow:0,doy:6};function SS(){return this._week.dow}function TS(){return this._week.doy}function _S(r){var s=this.localeData().week(this);return r==null?s:this.add((r-s)*7,"d")}function kS(r){var s=Fr(this,1,4).week;return r==null?s:this.add((r-s)*7,"d")}Q("d",0,"do","day"),Q("dd",0,0,function(r){return this.localeData().weekdaysMin(this,r)}),Q("ddd",0,0,function(r){return this.localeData().weekdaysShort(this,r)}),Q("dddd",0,0,function(r){return this.localeData().weekdays(this,r)}),Q("e",0,0,"weekday"),Q("E",0,0,"isoWeekday"),j("d",_e),j("e",_e),j("E",_e),j("dd",function(r,s){return s.weekdaysMinRegex(r)}),j("ddd",function(r,s){return s.weekdaysShortRegex(r)}),j("dddd",function(r,s){return s.weekdaysRegex(r)}),Yl(["dd","ddd","dddd"],function(r,s,o,f){var h=o._locale.weekdaysParse(r,f,o._strict);h!=null?s.d=h:E(o).invalidWeekday=r}),Yl(["d","e","E"],function(r,s,o,f){s[f]=re(r)});function xS(r,s){return typeof r!="string"?r:isNaN(r)?(r=s.weekdaysParse(r),typeof r=="number"?r:null):parseInt(r,10)}function ES(r,s){return typeof r=="string"?s.weekdaysParse(r)%7||7:isNaN(r)?null:r}function tf(r,s){return r.slice(s,7).concat(r.slice(0,s))}var wS="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Jm="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),AS="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),MS=dn,OS=dn,DS=dn;function RS(r,s){var o=a(this._weekdays)?this._weekdays:this._weekdays[r&&r!==!0&&this._weekdays.isFormat.test(s)?"format":"standalone"];return r===!0?tf(o,this._week.dow):r?o[r.day()]:o}function NS(r){return r===!0?tf(this._weekdaysShort,this._week.dow):r?this._weekdaysShort[r.day()]:this._weekdaysShort}function zS(r){return r===!0?tf(this._weekdaysMin,this._week.dow):r?this._weekdaysMin[r.day()]:this._weekdaysMin}function CS(r,s,o){var f,h,S,A=r.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],f=0;f<7;++f)S=y([2e3,1]).day(f),this._minWeekdaysParse[f]=this.weekdaysMin(S,"").toLocaleLowerCase(),this._shortWeekdaysParse[f]=this.weekdaysShort(S,"").toLocaleLowerCase(),this._weekdaysParse[f]=this.weekdays(S,"").toLocaleLowerCase();return o?s==="dddd"?(h=Oe.call(this._weekdaysParse,A),h!==-1?h:null):s==="ddd"?(h=Oe.call(this._shortWeekdaysParse,A),h!==-1?h:null):(h=Oe.call(this._minWeekdaysParse,A),h!==-1?h:null):s==="dddd"?(h=Oe.call(this._weekdaysParse,A),h!==-1||(h=Oe.call(this._shortWeekdaysParse,A),h!==-1)?h:(h=Oe.call(this._minWeekdaysParse,A),h!==-1?h:null)):s==="ddd"?(h=Oe.call(this._shortWeekdaysParse,A),h!==-1||(h=Oe.call(this._weekdaysParse,A),h!==-1)?h:(h=Oe.call(this._minWeekdaysParse,A),h!==-1?h:null)):(h=Oe.call(this._minWeekdaysParse,A),h!==-1||(h=Oe.call(this._weekdaysParse,A),h!==-1)?h:(h=Oe.call(this._shortWeekdaysParse,A),h!==-1?h:null))}function US(r,s,o){var f,h,S;if(this._weekdaysParseExact)return CS.call(this,r,s,o);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),f=0;f<7;f++){if(h=y([2e3,1]).day(f),o&&!this._fullWeekdaysParse[f]&&(this._fullWeekdaysParse[f]=new RegExp("^"+this.weekdays(h,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[f]=new RegExp("^"+this.weekdaysShort(h,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[f]=new RegExp("^"+this.weekdaysMin(h,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[f]||(S="^"+this.weekdays(h,"")+"|^"+this.weekdaysShort(h,"")+"|^"+this.weekdaysMin(h,""),this._weekdaysParse[f]=new RegExp(S.replace(".",""),"i")),o&&s==="dddd"&&this._fullWeekdaysParse[f].test(r))return f;if(o&&s==="ddd"&&this._shortWeekdaysParse[f].test(r))return f;if(o&&s==="dd"&&this._minWeekdaysParse[f].test(r))return f;if(!o&&this._weekdaysParse[f].test(r))return f}}function YS(r){if(!this.isValid())return r!=null?this:NaN;var s=Xa(this,"Day");return r!=null?(r=xS(r,this.localeData()),this.add(r-s,"d")):s}function LS(r){if(!this.isValid())return r!=null?this:NaN;var s=(this.day()+7-this.localeData()._week.dow)%7;return r==null?s:this.add(r-s,"d")}function HS(r){if(!this.isValid())return r!=null?this:NaN;if(r!=null){var s=ES(r,this.localeData());return this.day(this.day()%7?s:s-7)}else return this.day()||7}function BS(r){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||nf.call(this),r?this._weekdaysStrictRegex:this._weekdaysRegex):(i(this,"_weekdaysRegex")||(this._weekdaysRegex=MS),this._weekdaysStrictRegex&&r?this._weekdaysStrictRegex:this._weekdaysRegex)}function qS(r){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||nf.call(this),r?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(i(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=OS),this._weekdaysShortStrictRegex&&r?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function jS(r){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||nf.call(this),r?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(i(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=DS),this._weekdaysMinStrictRegex&&r?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function nf(){function r(Rt,ba){return ba.length-Rt.length}var s=[],o=[],f=[],h=[],S,A,V,te,he;for(S=0;S<7;S++)A=y([2e3,1]).day(S),V=Dt(this.weekdaysMin(A,"")),te=Dt(this.weekdaysShort(A,"")),he=Dt(this.weekdays(A,"")),s.push(V),o.push(te),f.push(he),h.push(V),h.push(te),h.push(he);s.sort(r),o.sort(r),f.sort(r),h.sort(r),this._weekdaysRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+f.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function af(){return this.hours()%12||12}function GS(){return this.hours()||24}Q("H",["HH",2],0,"hour"),Q("h",["hh",2],0,af),Q("k",["kk",2],0,GS),Q("hmm",0,0,function(){return""+af.apply(this)+pt(this.minutes(),2)}),Q("hmmss",0,0,function(){return""+af.apply(this)+pt(this.minutes(),2)+pt(this.seconds(),2)}),Q("Hmm",0,0,function(){return""+this.hours()+pt(this.minutes(),2)}),Q("Hmmss",0,0,function(){return""+this.hours()+pt(this.minutes(),2)+pt(this.seconds(),2)});function Wm(r,s){Q(r,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),s)})}Wm("a",!0),Wm("A",!1);function $m(r,s){return s._meridiemParse}j("a",$m),j("A",$m),j("H",_e,Ul),j("h",_e,Jn),j("k",_e,Jn),j("HH",_e,xt),j("hh",_e,xt),j("kk",_e,xt),j("hmm",ca),j("hmmss",$t),j("Hmm",ca),j("Hmmss",$t),de(["H","HH"],ke),de(["k","kk"],function(r,s,o){var f=re(r);s[ke]=f===24?0:f}),de(["a","A"],function(r,s,o){o._isPm=o._locale.isPM(r),o._meridiem=r}),de(["h","hh"],function(r,s,o){s[ke]=re(r),E(o).bigHour=!0}),de("hmm",function(r,s,o){var f=r.length-2;s[ke]=re(r.substr(0,f)),s[ut]=re(r.substr(f)),E(o).bigHour=!0}),de("hmmss",function(r,s,o){var f=r.length-4,h=r.length-2;s[ke]=re(r.substr(0,f)),s[ut]=re(r.substr(f,2)),s[pn]=re(r.substr(h)),E(o).bigHour=!0}),de("Hmm",function(r,s,o){var f=r.length-2;s[ke]=re(r.substr(0,f)),s[ut]=re(r.substr(f))}),de("Hmmss",function(r,s,o){var f=r.length-4,h=r.length-2;s[ke]=re(r.substr(0,f)),s[ut]=re(r.substr(f,2)),s[pn]=re(r.substr(h))});function VS(r){return(r+"").toLowerCase().charAt(0)==="p"}var ZS=/[ap]\.?m?\.?/i,QS=da("Hours",!0);function XS(r,s,o){return r>11?o?"pm":"PM":o?"am":"AM"}var Im={calendar:_t,longDateFormat:Xe,invalidDate:bi,ordinal:_u,dayOfMonthOrdinalParse:Vr,relativeTime:xu,months:v,monthsShort:M,week:vS,weekdays:wS,weekdaysMin:AS,weekdaysShort:Jm,meridiemParse:ZS},Ve={},Kr={},Jr;function FS(r,s){var o,f=Math.min(r.length,s.length);for(o=0;o<f;o+=1)if(r[o]!==s[o])return o;return f}function Pm(r){return r&&r.toLowerCase().replace("_","-")}function KS(r){for(var s=0,o,f,h,S;s<r.length;){for(S=Pm(r[s]).split("-"),o=S.length,f=Pm(r[s+1]),f=f?f.split("-"):null;o>0;){if(h=zu(S.slice(0,o).join("-")),h)return h;if(f&&f.length>=o&&FS(S,f)>=o-1)break;o--}s++}return Jr}function JS(r){return!!(r&&r.match("^[^/\\\\]*$"))}function zu(r){var s=null,o;if(Ve[r]===void 0&&typeof Nr<"u"&&Nr&&Nr.exports&&JS(r))try{s=Jr._abbr,o=Mp,o("./locale/"+r),Fa(s)}catch(f){Ve[r]=null}return Ve[r]}function Fa(r,s){var o;return r&&(c(s)?o=ma(r):o=lf(r,s),o?Jr=o:typeof console<"u"&&console.warn&&console.warn("Locale "+r+" not found. Did you forget to load it?")),Jr._abbr}function lf(r,s){if(s!==null){var o,f=Im;if(s.abbr=r,Ve[r]!=null)W("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),f=Ve[r]._config;else if(s.parentLocale!=null)if(Ve[s.parentLocale]!=null)f=Ve[s.parentLocale]._config;else if(o=zu(s.parentLocale),o!=null)f=o._config;else return Kr[s.parentLocale]||(Kr[s.parentLocale]=[]),Kr[s.parentLocale].push({name:r,config:s}),null;return Ve[r]=new I(Fe(f,s)),Kr[r]&&Kr[r].forEach(function(h){lf(h.name,h.config)}),Fa(r),Ve[r]}else return delete Ve[r],null}function WS(r,s){if(s!=null){var o,f,h=Im;Ve[r]!=null&&Ve[r].parentLocale!=null?Ve[r].set(Fe(Ve[r]._config,s)):(f=zu(r),f!=null&&(h=f._config),s=Fe(h,s),f==null&&(s.abbr=r),o=new I(s),o.parentLocale=Ve[r],Ve[r]=o),Fa(r)}else Ve[r]!=null&&(Ve[r].parentLocale!=null?(Ve[r]=Ve[r].parentLocale,r===Fa()&&Fa(r)):Ve[r]!=null&&delete Ve[r]);return Ve[r]}function ma(r){var s;if(r&&r._locale&&r._locale._abbr&&(r=r._locale._abbr),!r)return Jr;if(!a(r)){if(s=zu(r),s)return s;r=[r]}return KS(r)}function $S(){return ce(Ve)}function rf(r){var s,o=r._a;return o&&E(r).overflow===-2&&(s=o[hn]<0||o[hn]>11?hn:o[mn]<1||o[mn]>Z(o[st],o[hn])?mn:o[ke]<0||o[ke]>24||o[ke]===24&&(o[ut]!==0||o[pn]!==0||o[Wn]!==0)?ke:o[ut]<0||o[ut]>59?ut:o[pn]<0||o[pn]>59?pn:o[Wn]<0||o[Wn]>999?Wn:-1,E(r)._overflowDayOfYear&&(s<st||s>mn)&&(s=mn),E(r)._overflowWeeks&&s===-1&&(s=wu),E(r)._overflowWeekday&&s===-1&&(s=xi),E(r).overflow=s),r}var IS=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,PS=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,eT=/Z|[+-]\d\d(?::?\d\d)?/,Cu=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],sf=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],tT=/^\/?Date\((-?\d+)/i,nT=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,aT={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ep(r){var s,o,f=r._i,h=IS.exec(f)||PS.exec(f),S,A,V,te,he=Cu.length,Rt=sf.length;if(h){for(E(r).iso=!0,s=0,o=he;s<o;s++)if(Cu[s][1].exec(h[1])){A=Cu[s][0],S=Cu[s][2]!==!1;break}if(A==null){r._isValid=!1;return}if(h[3]){for(s=0,o=Rt;s<o;s++)if(sf[s][1].exec(h[3])){V=(h[2]||" ")+sf[s][0];break}if(V==null){r._isValid=!1;return}}if(!S&&V!=null){r._isValid=!1;return}if(h[4])if(eT.exec(h[4]))te="Z";else{r._isValid=!1;return}r._f=A+(V||"")+(te||""),of(r)}else r._isValid=!1}function lT(r,s,o,f,h,S){var A=[iT(r),M.indexOf(s),parseInt(o,10),parseInt(f,10),parseInt(h,10)];return S&&A.push(parseInt(S,10)),A}function iT(r){var s=parseInt(r,10);return s<=49?2e3+s:s<=999?1900+s:s}function rT(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function sT(r,s,o){if(r){var f=Jm.indexOf(r),h=new Date(s[0],s[1],s[2]).getDay();if(f!==h)return E(o).weekdayMismatch=!0,o._isValid=!1,!1}return!0}function uT(r,s,o){if(r)return aT[r];if(s)return 0;var f=parseInt(o,10),h=f%100,S=(f-h)/100;return S*60+h}function tp(r){var s=nT.exec(rT(r._i)),o;if(s){if(o=lT(s[4],s[3],s[2],s[5],s[6],s[7]),!sT(s[1],o,r))return;r._a=o,r._tzm=uT(s[8],s[9],s[10]),r._d=Xr.apply(null,r._a),r._d.setUTCMinutes(r._d.getUTCMinutes()-r._tzm),E(r).rfc2822=!0}else r._isValid=!1}function oT(r){var s=tT.exec(r._i);if(s!==null){r._d=new Date(+s[1]);return}if(ep(r),r._isValid===!1)delete r._isValid;else return;if(tp(r),r._isValid===!1)delete r._isValid;else return;r._strict?r._isValid=!1:t.createFromInputFallback(r)}t.createFromInputFallback=q("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(r){r._d=new Date(r._i+(r._useUTC?" UTC":""))});function Ai(r,s,o){return r!=null?r:s!=null?s:o}function cT(r){var s=new Date(t.now());return r._useUTC?[s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()]:[s.getFullYear(),s.getMonth(),s.getDate()]}function uf(r){var s,o,f=[],h,S,A;if(!r._d){for(h=cT(r),r._w&&r._a[mn]==null&&r._a[hn]==null&&fT(r),r._dayOfYear!=null&&(A=Ai(r._a[st],h[st]),(r._dayOfYear>zn(A)||r._dayOfYear===0)&&(E(r)._overflowDayOfYear=!0),o=Xr(A,0,r._dayOfYear),r._a[hn]=o.getUTCMonth(),r._a[mn]=o.getUTCDate()),s=0;s<3&&r._a[s]==null;++s)r._a[s]=f[s]=h[s];for(;s<7;s++)r._a[s]=f[s]=r._a[s]==null?s===2?1:0:r._a[s];r._a[ke]===24&&r._a[ut]===0&&r._a[pn]===0&&r._a[Wn]===0&&(r._nextDay=!0,r._a[ke]=0),r._d=(r._useUTC?Xr:yS).apply(null,f),S=r._useUTC?r._d.getUTCDay():r._d.getDay(),r._tzm!=null&&r._d.setUTCMinutes(r._d.getUTCMinutes()-r._tzm),r._nextDay&&(r._a[ke]=24),r._w&&typeof r._w.d<"u"&&r._w.d!==S&&(E(r).weekdayMismatch=!0)}}function fT(r){var s,o,f,h,S,A,V,te,he;s=r._w,s.GG!=null||s.W!=null||s.E!=null?(S=1,A=4,o=Ai(s.GG,r._a[st],Fr(He(),1,4).year),f=Ai(s.W,1),h=Ai(s.E,1),(h<1||h>7)&&(te=!0)):(S=r._locale._week.dow,A=r._locale._week.doy,he=Fr(He(),S,A),o=Ai(s.gg,r._a[st],he.year),f=Ai(s.w,he.week),s.d!=null?(h=s.d,(h<0||h>6)&&(te=!0)):s.e!=null?(h=s.e+S,(s.e<0||s.e>6)&&(te=!0)):h=S),f<1||f>ha(o,S,A)?E(r)._overflowWeeks=!0:te!=null?E(r)._overflowWeekday=!0:(V=Km(o,f,h,S,A),r._a[st]=V.year,r._dayOfYear=V.dayOfYear)}t.ISO_8601=function(){},t.RFC_2822=function(){};function of(r){if(r._f===t.ISO_8601){ep(r);return}if(r._f===t.RFC_2822){tp(r);return}r._a=[],E(r).empty=!0;var s=""+r._i,o,f,h,S,A,V=s.length,te=0,he,Rt;for(h=yi(r._f,r._locale).match(Rn)||[],Rt=h.length,o=0;o<Rt;o++)S=h[o],f=(s.match(Qr(S,r))||[])[0],f&&(A=s.substr(0,s.indexOf(f)),A.length>0&&E(r).unusedInput.push(A),s=s.slice(s.indexOf(f)+f.length),te+=f.length),Zn[S]?(f?E(r).empty=!1:E(r).unusedTokens.push(S),Eu(S,f,r)):r._strict&&!f&&E(r).unusedTokens.push(S);E(r).charsLeftOver=V-te,s.length>0&&E(r).unusedInput.push(s),r._a[ke]<=12&&E(r).bigHour===!0&&r._a[ke]>0&&(E(r).bigHour=void 0),E(r).parsedDateParts=r._a.slice(0),E(r).meridiem=r._meridiem,r._a[ke]=dT(r._locale,r._a[ke],r._meridiem),he=E(r).era,he!==null&&(r._a[st]=r._locale.erasConvertYear(he,r._a[st])),uf(r),rf(r)}function dT(r,s,o){var f;return o==null?s:r.meridiemHour!=null?r.meridiemHour(s,o):(r.isPM!=null&&(f=r.isPM(o),f&&s<12&&(s+=12),!f&&s===12&&(s=0)),s)}function hT(r){var s,o,f,h,S,A,V=!1,te=r._f.length;if(te===0){E(r).invalidFormat=!0,r._d=new Date(NaN);return}for(h=0;h<te;h++)S=0,A=!1,s=x({},r),r._useUTC!=null&&(s._useUTC=r._useUTC),s._f=r._f[h],of(s),R(s)&&(A=!0),S+=E(s).charsLeftOver,S+=E(s).unusedTokens.length*10,E(s).score=S,V?S<f&&(f=S,o=s):(f==null||S<f||A)&&(f=S,o=s,A&&(V=!0));T(r,o||s)}function mT(r){if(!r._d){var s=Rl(r._i),o=s.day===void 0?s.date:s.day;r._a=p([s.year,s.month,o,s.hour,s.minute,s.second,s.millisecond],function(f){return f&&parseInt(f,10)}),uf(r)}}function pT(r){var s=new N(rf(np(r)));return s._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function np(r){var s=r._i,o=r._f;return r._locale=r._locale||ma(r._l),s===null||o===void 0&&s===""?g({nullInput:!0}):(typeof s=="string"&&(r._i=s=r._locale.preparse(s)),z(s)?new N(rf(s)):(m(s)?r._d=s:a(o)?hT(r):o?of(r):gT(r),R(r)||(r._d=null),r))}function gT(r){var s=r._i;c(s)?r._d=new Date(t.now()):m(s)?r._d=new Date(s.valueOf()):typeof s=="string"?oT(r):a(s)?(r._a=p(s.slice(0),function(o){return parseInt(o,10)}),uf(r)):l(s)?mT(r):d(s)?r._d=new Date(s):t.createFromInputFallback(r)}function ap(r,s,o,f,h){var S={};return(s===!0||s===!1)&&(f=s,s=void 0),(o===!0||o===!1)&&(f=o,o=void 0),(l(r)&&u(r)||a(r)&&r.length===0)&&(r=void 0),S._isAMomentObject=!0,S._useUTC=S._isUTC=h,S._l=o,S._i=r,S._f=s,S._strict=f,pT(S)}function He(r,s,o,f){return ap(r,s,o,f,!1)}var yT=q("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var r=He.apply(null,arguments);return this.isValid()&&r.isValid()?r<this?this:r:g()}),bT=q("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var r=He.apply(null,arguments);return this.isValid()&&r.isValid()?r>this?this:r:g()});function lp(r,s){var o,f;if(s.length===1&&a(s[0])&&(s=s[0]),!s.length)return He();for(o=s[0],f=1;f<s.length;++f)(!s[f].isValid()||s[f][r](o))&&(o=s[f]);return o}function vT(){var r=[].slice.call(arguments,0);return lp("isBefore",r)}function ST(){var r=[].slice.call(arguments,0);return lp("isAfter",r)}var TT=function(){return Date.now?Date.now():+new Date},Wr=["year","quarter","month","week","day","hour","minute","second","millisecond"];function _T(r){var s,o=!1,f,h=Wr.length;for(s in r)if(i(r,s)&&!(Oe.call(Wr,s)!==-1&&(r[s]==null||!isNaN(r[s]))))return!1;for(f=0;f<h;++f)if(r[Wr[f]]){if(o)return!1;parseFloat(r[Wr[f]])!==re(r[Wr[f]])&&(o=!0)}return!0}function kT(){return this._isValid}function xT(){return Un(NaN)}function Uu(r){var s=Rl(r),o=s.year||0,f=s.quarter||0,h=s.month||0,S=s.week||s.isoWeek||0,A=s.day||0,V=s.hour||0,te=s.minute||0,he=s.second||0,Rt=s.millisecond||0;this._isValid=_T(s),this._milliseconds=+Rt+he*1e3+te*6e4+V*1e3*60*60,this._days=+A+S*7,this._months=+h+f*3+o*12,this._data={},this._locale=ma(),this._bubble()}function Yu(r){return r instanceof Uu}function cf(r){return r<0?Math.round(-1*r)*-1:Math.round(r)}function ET(r,s,o){var f=Math.min(r.length,s.length),h=Math.abs(r.length-s.length),S=0,A;for(A=0;A<f;A++)(o&&r[A]!==s[A]||!o&&re(r[A])!==re(s[A]))&&S++;return S+h}function ip(r,s){Q(r,0,0,function(){var o=this.utcOffset(),f="+";return o<0&&(o=-o,f="-"),f+pt(~~(o/60),2)+s+pt(~~o%60,2)})}ip("Z",":"),ip("ZZ",""),j("Z",fa),j("ZZ",fa),de(["Z","ZZ"],function(r,s,o){o._useUTC=!0,o._tzm=ff(fa,r)});var wT=/([\+\-]|\d\d)/gi;function ff(r,s){var o=(s||"").match(r),f,h,S;return o===null?null:(f=o[o.length-1]||[],h=(f+"").match(wT)||["-",0,0],S=+(h[1]*60)+re(h[2]),S===0?0:h[0]==="+"?S:-S)}function df(r,s){var o,f;return s._isUTC?(o=s.clone(),f=(z(r)||m(r)?r.valueOf():He(r).valueOf())-o.valueOf(),o._d.setTime(o._d.valueOf()+f),t.updateOffset(o,!1),o):He(r).local()}function hf(r){return-Math.round(r._d.getTimezoneOffset())}t.updateOffset=function(){};function AT(r,s,o){var f=this._offset||0,h;if(!this.isValid())return r!=null?this:NaN;if(r!=null){if(typeof r=="string"){if(r=ff(fa,r),r===null)return this}else Math.abs(r)<16&&!o&&(r=r*60);return!this._isUTC&&s&&(h=hf(this)),this._offset=r,this._isUTC=!0,h!=null&&this.add(h,"m"),f!==r&&(!s||this._changeInProgress?op(this,Un(r-f,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?f:hf(this)}function MT(r,s){return r!=null?(typeof r!="string"&&(r=-r),this.utcOffset(r,s),this):-this.utcOffset()}function OT(r){return this.utcOffset(0,r)}function DT(r){return this._isUTC&&(this.utcOffset(0,r),this._isUTC=!1,r&&this.subtract(hf(this),"m")),this}function RT(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var r=ff(_i,this._i);r!=null?this.utcOffset(r):this.utcOffset(0,!0)}return this}function NT(r){return this.isValid()?(r=r?He(r).utcOffset():0,(this.utcOffset()-r)%60===0):!1}function zT(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function CT(){if(!c(this._isDSTShifted))return this._isDSTShifted;var r={},s;return x(r,this),r=np(r),r._a?(s=r._isUTC?y(r._a):He(r._a),this._isDSTShifted=this.isValid()&&ET(r._a,s.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function UT(){return this.isValid()?!this._isUTC:!1}function YT(){return this.isValid()?this._isUTC:!1}function rp(){return this.isValid()?this._isUTC&&this._offset===0:!1}var LT=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,HT=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Un(r,s){var o=r,f=null,h,S,A;return Yu(r)?o={ms:r._milliseconds,d:r._days,M:r._months}:d(r)||!isNaN(+r)?(o={},s?o[s]=+r:o.milliseconds=+r):(f=LT.exec(r))?(h=f[1]==="-"?-1:1,o={y:0,d:re(f[mn])*h,h:re(f[ke])*h,m:re(f[ut])*h,s:re(f[pn])*h,ms:re(cf(f[Wn]*1e3))*h}):(f=HT.exec(r))?(h=f[1]==="-"?-1:1,o={y:Hl(f[2],h),M:Hl(f[3],h),w:Hl(f[4],h),d:Hl(f[5],h),h:Hl(f[6],h),m:Hl(f[7],h),s:Hl(f[8],h)}):o==null?o={}:typeof o=="object"&&("from"in o||"to"in o)&&(A=BT(He(o.from),He(o.to)),o={},o.ms=A.milliseconds,o.M=A.months),S=new Uu(o),Yu(r)&&i(r,"_locale")&&(S._locale=r._locale),Yu(r)&&i(r,"_isValid")&&(S._isValid=r._isValid),S}Un.fn=Uu.prototype,Un.invalid=xT;function Hl(r,s){var o=r&&parseFloat(r.replace(",","."));return(isNaN(o)?0:o)*s}function sp(r,s){var o={};return o.months=s.month()-r.month()+(s.year()-r.year())*12,r.clone().add(o.months,"M").isAfter(s)&&--o.months,o.milliseconds=+s-+r.clone().add(o.months,"M"),o}function BT(r,s){var o;return r.isValid()&&s.isValid()?(s=df(s,r),r.isBefore(s)?o=sp(r,s):(o=sp(s,r),o.milliseconds=-o.milliseconds,o.months=-o.months),o):{milliseconds:0,months:0}}function up(r,s){return function(o,f){var h,S;return f!==null&&!isNaN(+f)&&(W(s,"moment()."+s+"(period, number) is deprecated. Please use moment()."+s+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),S=o,o=f,f=S),h=Un(o,f),op(this,h,r),this}}function op(r,s,o,f){var h=s._milliseconds,S=cf(s._days),A=cf(s._months);r.isValid()&&(f=f==null?!0:f,A&&wi(r,Xa(r,"Month")+A*o),S&&Au(r,"Date",Xa(r,"Date")+S*o),h&&r._d.setTime(r._d.valueOf()+h*o),f&&t.updateOffset(r,S||A))}var qT=up(1,"add"),jT=up(-1,"subtract");function cp(r){return typeof r=="string"||r instanceof String}function GT(r){return z(r)||m(r)||cp(r)||d(r)||ZT(r)||VT(r)||r===null||r===void 0}function VT(r){var s=l(r)&&!u(r),o=!1,f=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],h,S,A=f.length;for(h=0;h<A;h+=1)S=f[h],o=o||i(r,S);return s&&o}function ZT(r){var s=a(r),o=!1;return s&&(o=r.filter(function(f){return!d(f)&&cp(r)}).length===0),s&&o}function QT(r){var s=l(r)&&!u(r),o=!1,f=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],h,S;for(h=0;h<f.length;h+=1)S=f[h],o=o||i(r,S);return s&&o}function XT(r,s){var o=r.diff(s,"days",!0);return o<-6?"sameElse":o<-1?"lastWeek":o<0?"lastDay":o<1?"sameDay":o<2?"nextDay":o<7?"nextWeek":"sameElse"}function FT(r,s){arguments.length===1&&(arguments[0]?GT(arguments[0])?(r=arguments[0],s=void 0):QT(arguments[0])&&(s=arguments[0],r=void 0):(r=void 0,s=void 0));var o=r||He(),f=df(o,this).startOf("day"),h=t.calendarFormat(this,f)||"sameElse",S=s&&(be(s[h])?s[h].call(this,o):s[h]);return this.format(S||this.localeData().calendar(h,this,He(o)))}function KT(){return new N(this)}function JT(r,s){var o=z(r)?r:He(r);return this.isValid()&&o.isValid()?(s=kt(s)||"millisecond",s==="millisecond"?this.valueOf()>o.valueOf():o.valueOf()<this.clone().startOf(s).valueOf()):!1}function WT(r,s){var o=z(r)?r:He(r);return this.isValid()&&o.isValid()?(s=kt(s)||"millisecond",s==="millisecond"?this.valueOf()<o.valueOf():this.clone().endOf(s).valueOf()<o.valueOf()):!1}function $T(r,s,o,f){var h=z(r)?r:He(r),S=z(s)?s:He(s);return this.isValid()&&h.isValid()&&S.isValid()?(f=f||"()",(f[0]==="("?this.isAfter(h,o):!this.isBefore(h,o))&&(f[1]===")"?this.isBefore(S,o):!this.isAfter(S,o))):!1}function IT(r,s){var o=z(r)?r:He(r),f;return this.isValid()&&o.isValid()?(s=kt(s)||"millisecond",s==="millisecond"?this.valueOf()===o.valueOf():(f=o.valueOf(),this.clone().startOf(s).valueOf()<=f&&f<=this.clone().endOf(s).valueOf())):!1}function PT(r,s){return this.isSame(r,s)||this.isAfter(r,s)}function e_(r,s){return this.isSame(r,s)||this.isBefore(r,s)}function t_(r,s,o){var f,h,S;if(!this.isValid())return NaN;if(f=df(r,this),!f.isValid())return NaN;switch(h=(f.utcOffset()-this.utcOffset())*6e4,s=kt(s),s){case"year":S=Lu(this,f)/12;break;case"month":S=Lu(this,f);break;case"quarter":S=Lu(this,f)/3;break;case"second":S=(this-f)/1e3;break;case"minute":S=(this-f)/6e4;break;case"hour":S=(this-f)/36e5;break;case"day":S=(this-f-h)/864e5;break;case"week":S=(this-f-h)/6048e5;break;default:S=this-f}return o?S:Lt(S)}function Lu(r,s){if(r.date()<s.date())return-Lu(s,r);var o=(s.year()-r.year())*12+(s.month()-r.month()),f=r.clone().add(o,"months"),h,S;return s-f<0?(h=r.clone().add(o-1,"months"),S=(s-f)/(f-h)):(h=r.clone().add(o+1,"months"),S=(s-f)/(h-f)),-(o+S)||0}t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function n_(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function a_(r){if(!this.isValid())return null;var s=r!==!0,o=s?this.clone().utc():this;return o.year()<0||o.year()>9999?ve(o,s?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):be(Date.prototype.toISOString)?s?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",ve(o,"Z")):ve(o,s?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function l_(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var r="moment",s="",o,f,h,S;return this.isLocal()||(r=this.utcOffset()===0?"moment.utc":"moment.parseZone",s="Z"),o="["+r+'("]',f=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",h="-MM-DD[T]HH:mm:ss.SSS",S=s+'[")]',this.format(o+f+h+S)}function i_(r){r||(r=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var s=ve(this,r);return this.localeData().postformat(s)}function r_(r,s){return this.isValid()&&(z(r)&&r.isValid()||He(r).isValid())?Un({to:this,from:r}).locale(this.locale()).humanize(!s):this.localeData().invalidDate()}function s_(r){return this.from(He(),r)}function u_(r,s){return this.isValid()&&(z(r)&&r.isValid()||He(r).isValid())?Un({from:this,to:r}).locale(this.locale()).humanize(!s):this.localeData().invalidDate()}function o_(r){return this.to(He(),r)}function fp(r){var s;return r===void 0?this._locale._abbr:(s=ma(r),s!=null&&(this._locale=s),this)}var dp=q("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(r){return r===void 0?this.localeData():this.locale(r)});function hp(){return this._locale}var Hu=1e3,Mi=60*Hu,Bu=60*Mi,mp=(365*400+97)*24*Bu;function Oi(r,s){return(r%s+s)%s}function pp(r,s,o){return r<100&&r>=0?new Date(r+400,s,o)-mp:new Date(r,s,o).valueOf()}function gp(r,s,o){return r<100&&r>=0?Date.UTC(r+400,s,o)-mp:Date.UTC(r,s,o)}function c_(r){var s,o;if(r=kt(r),r===void 0||r==="millisecond"||!this.isValid())return this;switch(o=this._isUTC?gp:pp,r){case"year":s=o(this.year(),0,1);break;case"quarter":s=o(this.year(),this.month()-this.month()%3,1);break;case"month":s=o(this.year(),this.month(),1);break;case"week":s=o(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":s=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":s=o(this.year(),this.month(),this.date());break;case"hour":s=this._d.valueOf(),s-=Oi(s+(this._isUTC?0:this.utcOffset()*Mi),Bu);break;case"minute":s=this._d.valueOf(),s-=Oi(s,Mi);break;case"second":s=this._d.valueOf(),s-=Oi(s,Hu);break}return this._d.setTime(s),t.updateOffset(this,!0),this}function f_(r){var s,o;if(r=kt(r),r===void 0||r==="millisecond"||!this.isValid())return this;switch(o=this._isUTC?gp:pp,r){case"year":s=o(this.year()+1,0,1)-1;break;case"quarter":s=o(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":s=o(this.year(),this.month()+1,1)-1;break;case"week":s=o(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":s=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":s=o(this.year(),this.month(),this.date()+1)-1;break;case"hour":s=this._d.valueOf(),s+=Bu-Oi(s+(this._isUTC?0:this.utcOffset()*Mi),Bu)-1;break;case"minute":s=this._d.valueOf(),s+=Mi-Oi(s,Mi)-1;break;case"second":s=this._d.valueOf(),s+=Hu-Oi(s,Hu)-1;break}return this._d.setTime(s),t.updateOffset(this,!0),this}function d_(){return this._d.valueOf()-(this._offset||0)*6e4}function h_(){return Math.floor(this.valueOf()/1e3)}function m_(){return new Date(this.valueOf())}function p_(){var r=this;return[r.year(),r.month(),r.date(),r.hour(),r.minute(),r.second(),r.millisecond()]}function g_(){var r=this;return{years:r.year(),months:r.month(),date:r.date(),hours:r.hours(),minutes:r.minutes(),seconds:r.seconds(),milliseconds:r.milliseconds()}}function y_(){return this.isValid()?this.toISOString():null}function b_(){return R(this)}function v_(){return T({},E(this))}function S_(){return E(this).overflow}function T_(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}Q("N",0,0,"eraAbbr"),Q("NN",0,0,"eraAbbr"),Q("NNN",0,0,"eraAbbr"),Q("NNNN",0,0,"eraName"),Q("NNNNN",0,0,"eraNarrow"),Q("y",["y",1],"yo","eraYear"),Q("y",["yy",2],0,"eraYear"),Q("y",["yyy",3],0,"eraYear"),Q("y",["yyyy",4],0,"eraYear"),j("N",mf),j("NN",mf),j("NNN",mf),j("NNNN",N_),j("NNNNN",z_),de(["N","NN","NNN","NNNN","NNNNN"],function(r,s,o,f){var h=o._locale.erasParse(r,f,o._strict);h?E(o).era=h:E(o).invalidEra=r}),j("y",Kn),j("yy",Kn),j("yyy",Kn),j("yyyy",Kn),j("yo",C_),de(["y","yy","yyy","yyyy"],st),de(["yo"],function(r,s,o,f){var h;o._locale._eraYearOrdinalRegex&&(h=r.match(o._locale._eraYearOrdinalRegex)),o._locale.eraYearOrdinalParse?s[st]=o._locale.eraYearOrdinalParse(r,h):s[st]=parseInt(r,10)});function __(r,s){var o,f,h,S=this._eras||ma("en")._eras;for(o=0,f=S.length;o<f;++o)switch(typeof S[o].since==="string"&&(h=t(S[o].since).startOf("day"),S[o].since=h.valueOf()),typeof S[o].until){case"undefined":S[o].until=1/0;break;case"string":h=t(S[o].until).startOf("day").valueOf(),S[o].until=h.valueOf();break}return S}function k_(r,s,o){var f,h,S=this.eras(),A,V,te;for(r=r.toUpperCase(),f=0,h=S.length;f<h;++f)if(A=S[f].name.toUpperCase(),V=S[f].abbr.toUpperCase(),te=S[f].narrow.toUpperCase(),o)switch(s){case"N":case"NN":case"NNN":if(V===r)return S[f];break;case"NNNN":if(A===r)return S[f];break;case"NNNNN":if(te===r)return S[f];break}else if([A,V,te].indexOf(r)>=0)return S[f]}function x_(r,s){var o=r.since<=r.until?1:-1;return s===void 0?t(r.since).year():t(r.since).year()+(s-r.offset)*o}function E_(){var r,s,o,f=this.localeData().eras();for(r=0,s=f.length;r<s;++r)if(o=this.clone().startOf("day").valueOf(),f[r].since<=o&&o<=f[r].until||f[r].until<=o&&o<=f[r].since)return f[r].name;return""}function w_(){var r,s,o,f=this.localeData().eras();for(r=0,s=f.length;r<s;++r)if(o=this.clone().startOf("day").valueOf(),f[r].since<=o&&o<=f[r].until||f[r].until<=o&&o<=f[r].since)return f[r].narrow;return""}function A_(){var r,s,o,f=this.localeData().eras();for(r=0,s=f.length;r<s;++r)if(o=this.clone().startOf("day").valueOf(),f[r].since<=o&&o<=f[r].until||f[r].until<=o&&o<=f[r].since)return f[r].abbr;return""}function M_(){var r,s,o,f,h=this.localeData().eras();for(r=0,s=h.length;r<s;++r)if(o=h[r].since<=h[r].until?1:-1,f=this.clone().startOf("day").valueOf(),h[r].since<=f&&f<=h[r].until||h[r].until<=f&&f<=h[r].since)return(this.year()-t(h[r].since).year())*o+h[r].offset;return this.year()}function O_(r){return i(this,"_erasNameRegex")||pf.call(this),r?this._erasNameRegex:this._erasRegex}function D_(r){return i(this,"_erasAbbrRegex")||pf.call(this),r?this._erasAbbrRegex:this._erasRegex}function R_(r){return i(this,"_erasNarrowRegex")||pf.call(this),r?this._erasNarrowRegex:this._erasRegex}function mf(r,s){return s.erasAbbrRegex(r)}function N_(r,s){return s.erasNameRegex(r)}function z_(r,s){return s.erasNarrowRegex(r)}function C_(r,s){return s._eraYearOrdinalRegex||Kn}function pf(){var r=[],s=[],o=[],f=[],h,S,A,V,te,he=this.eras();for(h=0,S=he.length;h<S;++h)A=Dt(he[h].name),V=Dt(he[h].abbr),te=Dt(he[h].narrow),s.push(A),r.push(V),o.push(te),f.push(A),f.push(V),f.push(te);this._erasRegex=new RegExp("^("+f.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+s.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+r.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+o.join("|")+")","i")}Q(0,["gg",2],0,function(){return this.weekYear()%100}),Q(0,["GG",2],0,function(){return this.isoWeekYear()%100});function qu(r,s){Q(0,[r,r.length],0,s)}qu("gggg","weekYear"),qu("ggggg","weekYear"),qu("GGGG","isoWeekYear"),qu("GGGGG","isoWeekYear"),j("G",Cl),j("g",Cl),j("GG",_e,xt),j("gg",_e,xt),j("GGGG",Ti,Si),j("gggg",Ti,Si),j("GGGGG",zl,Va),j("ggggg",zl,Va),Yl(["gggg","ggggg","GGGG","GGGGG"],function(r,s,o,f){s[f.substr(0,2)]=re(r)}),Yl(["gg","GG"],function(r,s,o,f){s[f]=t.parseTwoDigitYear(r)});function U_(r){return yp.call(this,r,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function Y_(r){return yp.call(this,r,this.isoWeek(),this.isoWeekday(),1,4)}function L_(){return ha(this.year(),1,4)}function H_(){return ha(this.isoWeekYear(),1,4)}function B_(){var r=this.localeData()._week;return ha(this.year(),r.dow,r.doy)}function q_(){var r=this.localeData()._week;return ha(this.weekYear(),r.dow,r.doy)}function yp(r,s,o,f,h){var S;return r==null?Fr(this,f,h).year:(S=ha(r,f,h),s>S&&(s=S),j_.call(this,r,s,o,f,h))}function j_(r,s,o,f,h){var S=Km(r,s,o,f,h),A=Xr(S.year,0,S.dayOfYear);return this.year(A.getUTCFullYear()),this.month(A.getUTCMonth()),this.date(A.getUTCDate()),this}Q("Q",0,"Qo","quarter"),j("Q",Nl),de("Q",function(r,s){s[hn]=(re(r)-1)*3});function G_(r){return r==null?Math.ceil((this.month()+1)/3):this.month((r-1)*3+this.month()%3)}Q("D",["DD",2],"Do","date"),j("D",_e,Jn),j("DD",_e,xt),j("Do",function(r,s){return r?s._dayOfMonthOrdinalParse||s._ordinalParse:s._dayOfMonthOrdinalParseLenient}),de(["D","DD"],mn),de("Do",function(r,s){s[mn]=re(r.match(_e)[0])});var bp=da("Date",!0);Q("DDD",["DDDD",3],"DDDo","dayOfYear"),j("DDD",Za),j("DDDD",Zr),de(["DDD","DDDD"],function(r,s,o){o._dayOfYear=re(r)});function V_(r){var s=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return r==null?s:this.add(r-s,"d")}Q("m",["mm",2],0,"minute"),j("m",_e,Ul),j("mm",_e,xt),de(["m","mm"],ut);var Z_=da("Minutes",!1);Q("s",["ss",2],0,"second"),j("s",_e,Ul),j("ss",_e,xt),de(["s","ss"],pn);var Q_=da("Seconds",!1);Q("S",0,0,function(){return~~(this.millisecond()/100)}),Q(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),Q(0,["SSS",3],0,"millisecond"),Q(0,["SSSS",4],0,function(){return this.millisecond()*10}),Q(0,["SSSSS",5],0,function(){return this.millisecond()*100}),Q(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),Q(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),Q(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),Q(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),j("S",Za,Nl),j("SS",Za,xt),j("SSS",Za,Zr);var Ka,vp;for(Ka="SSSS";Ka.length<=9;Ka+="S")j(Ka,Kn);function X_(r,s){s[Wn]=re(("0."+r)*1e3)}for(Ka="S";Ka.length<=9;Ka+="S")de(Ka,X_);vp=da("Milliseconds",!1),Q("z",0,0,"zoneAbbr"),Q("zz",0,0,"zoneName");function F_(){return this._isUTC?"UTC":""}function K_(){return this._isUTC?"Coordinated Universal Time":""}var U=N.prototype;U.add=qT,U.calendar=FT,U.clone=KT,U.diff=t_,U.endOf=f_,U.format=i_,U.from=r_,U.fromNow=s_,U.to=u_,U.toNow=o_,U.get=Mu,U.invalidAt=S_,U.isAfter=JT,U.isBefore=WT,U.isBetween=$T,U.isSame=IT,U.isSameOrAfter=PT,U.isSameOrBefore=e_,U.isValid=b_,U.lang=dp,U.locale=fp,U.localeData=hp,U.max=bT,U.min=yT,U.parsingFlags=v_,U.set=Ou,U.startOf=c_,U.subtract=jT,U.toArray=p_,U.toObject=g_,U.toDate=m_,U.toISOString=a_,U.inspect=l_,typeof Symbol<"u"&&Symbol.for!=null&&(U[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),U.toJSON=y_,U.toString=n_,U.unix=h_,U.valueOf=d_,U.creationData=T_,U.eraName=E_,U.eraNarrow=w_,U.eraAbbr=A_,U.eraYear=M_,U.year=Ll,U.isLeapYear=Cn,U.weekYear=U_,U.isoWeekYear=Y_,U.quarter=U.quarters=G_,U.month=$e,U.daysInMonth=Du,U.week=U.weeks=_S,U.isoWeek=U.isoWeeks=kS,U.weeksInYear=B_,U.weeksInWeekYear=q_,U.isoWeeksInYear=L_,U.isoWeeksInISOWeekYear=H_,U.date=bp,U.day=U.days=YS,U.weekday=LS,U.isoWeekday=HS,U.dayOfYear=V_,U.hour=U.hours=QS,U.minute=U.minutes=Z_,U.second=U.seconds=Q_,U.millisecond=U.milliseconds=vp,U.utcOffset=AT,U.utc=OT,U.local=DT,U.parseZone=RT,U.hasAlignedHourOffset=NT,U.isDST=zT,U.isLocal=UT,U.isUtcOffset=YT,U.isUtc=rp,U.isUTC=rp,U.zoneAbbr=F_,U.zoneName=K_,U.dates=q("dates accessor is deprecated. Use date instead.",bp),U.months=q("months accessor is deprecated. Use month instead",$e),U.years=q("years accessor is deprecated. Use year instead",Ll),U.zone=q("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",MT),U.isDSTShifted=q("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",CT);function J_(r){return He(r*1e3)}function W_(){return He.apply(null,arguments).parseZone()}function Sp(r){return r}var Te=I.prototype;Te.calendar=Vn,Te.longDateFormat=Ol,Te.invalidDate=Qn,Te.ordinal=ku,Te.preparse=Sp,Te.postformat=Sp,Te.relativeTime=Xn,Te.pastFuture=Dl,Te.set=Ye,Te.eras=__,Te.erasParse=k_,Te.erasConvertYear=x_,Te.erasAbbrRegex=D_,Te.erasNameRegex=O_,Te.erasNarrowRegex=R_,Te.months=Ne,Te.monthsShort=Ht,Te.monthsParse=It,Te.monthsRegex=gS,Te.monthsShortRegex=Ru,Te.week=bS,Te.firstDayOfYear=TS,Te.firstDayOfWeek=SS,Te.weekdays=RS,Te.weekdaysMin=zS,Te.weekdaysShort=NS,Te.weekdaysParse=US,Te.weekdaysRegex=BS,Te.weekdaysShortRegex=qS,Te.weekdaysMinRegex=jS,Te.isPM=VS,Te.meridiem=XS;function ju(r,s,o,f){var h=ma(),S=y().set(f,s);return h[o](S,r)}function Tp(r,s,o){if(d(r)&&(s=r,r=void 0),r=r||"",s!=null)return ju(r,s,o,"month");var f,h=[];for(f=0;f<12;f++)h[f]=ju(r,f,o,"month");return h}function gf(r,s,o,f){typeof r=="boolean"?(d(s)&&(o=s,s=void 0),s=s||""):(s=r,o=s,r=!1,d(s)&&(o=s,s=void 0),s=s||"");var h=ma(),S=r?h._week.dow:0,A,V=[];if(o!=null)return ju(s,(o+S)%7,f,"day");for(A=0;A<7;A++)V[A]=ju(s,(A+S)%7,f,"day");return V}function $_(r,s){return Tp(r,s,"months")}function I_(r,s){return Tp(r,s,"monthsShort")}function P_(r,s,o){return gf(r,s,o,"weekdays")}function ek(r,s,o){return gf(r,s,o,"weekdaysShort")}function tk(r,s,o){return gf(r,s,o,"weekdaysMin")}Fa("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(r){var s=r%10,o=re(r%100/10)===1?"th":s===1?"st":s===2?"nd":s===3?"rd":"th";return r+o}}),t.lang=q("moment.lang is deprecated. Use moment.locale instead.",Fa),t.langData=q("moment.langData is deprecated. Use moment.localeData instead.",ma);var pa=Math.abs;function nk(){var r=this._data;return this._milliseconds=pa(this._milliseconds),this._days=pa(this._days),this._months=pa(this._months),r.milliseconds=pa(r.milliseconds),r.seconds=pa(r.seconds),r.minutes=pa(r.minutes),r.hours=pa(r.hours),r.months=pa(r.months),r.years=pa(r.years),this}function _p(r,s,o,f){var h=Un(s,o);return r._milliseconds+=f*h._milliseconds,r._days+=f*h._days,r._months+=f*h._months,r._bubble()}function ak(r,s){return _p(this,r,s,1)}function lk(r,s){return _p(this,r,s,-1)}function kp(r){return r<0?Math.floor(r):Math.ceil(r)}function ik(){var r=this._milliseconds,s=this._days,o=this._months,f=this._data,h,S,A,V,te;return r>=0&&s>=0&&o>=0||r<=0&&s<=0&&o<=0||(r+=kp(yf(o)+s)*864e5,s=0,o=0),f.milliseconds=r%1e3,h=Lt(r/1e3),f.seconds=h%60,S=Lt(h/60),f.minutes=S%60,A=Lt(S/60),f.hours=A%24,s+=Lt(A/24),te=Lt(xp(s)),o+=te,s-=kp(yf(te)),V=Lt(o/12),o%=12,f.days=s,f.months=o,f.years=V,this}function xp(r){return r*4800/146097}function yf(r){return r*146097/4800}function rk(r){if(!this.isValid())return NaN;var s,o,f=this._milliseconds;if(r=kt(r),r==="month"||r==="quarter"||r==="year")switch(s=this._days+f/864e5,o=this._months+xp(s),r){case"month":return o;case"quarter":return o/3;case"year":return o/12}else switch(s=this._days+Math.round(yf(this._months)),r){case"week":return s/7+f/6048e5;case"day":return s+f/864e5;case"hour":return s*24+f/36e5;case"minute":return s*1440+f/6e4;case"second":return s*86400+f/1e3;case"millisecond":return Math.floor(s*864e5)+f;default:throw new Error("Unknown unit "+r)}}function ga(r){return function(){return this.as(r)}}var Ep=ga("ms"),sk=ga("s"),uk=ga("m"),ok=ga("h"),ck=ga("d"),fk=ga("w"),dk=ga("M"),hk=ga("Q"),mk=ga("y"),pk=Ep;function gk(){return Un(this)}function yk(r){return r=kt(r),this.isValid()?this[r+"s"]():NaN}function Bl(r){return function(){return this.isValid()?this._data[r]:NaN}}var bk=Bl("milliseconds"),vk=Bl("seconds"),Sk=Bl("minutes"),Tk=Bl("hours"),_k=Bl("days"),kk=Bl("months"),xk=Bl("years");function Ek(){return Lt(this.days()/7)}var ya=Math.round,Di={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function wk(r,s,o,f,h){return h.relativeTime(s||1,!!o,r,f)}function Ak(r,s,o,f){var h=Un(r).abs(),S=ya(h.as("s")),A=ya(h.as("m")),V=ya(h.as("h")),te=ya(h.as("d")),he=ya(h.as("M")),Rt=ya(h.as("w")),ba=ya(h.as("y")),Ja=S<=o.ss&&["s",S]||S<o.s&&["ss",S]||A<=1&&["m"]||A<o.m&&["mm",A]||V<=1&&["h"]||V<o.h&&["hh",V]||te<=1&&["d"]||te<o.d&&["dd",te];return o.w!=null&&(Ja=Ja||Rt<=1&&["w"]||Rt<o.w&&["ww",Rt]),Ja=Ja||he<=1&&["M"]||he<o.M&&["MM",he]||ba<=1&&["y"]||["yy",ba],Ja[2]=s,Ja[3]=+r>0,Ja[4]=f,wk.apply(null,Ja)}function Mk(r){return r===void 0?ya:typeof r=="function"?(ya=r,!0):!1}function Ok(r,s){return Di[r]===void 0?!1:s===void 0?Di[r]:(Di[r]=s,r==="s"&&(Di.ss=s-1),!0)}function Dk(r,s){if(!this.isValid())return this.localeData().invalidDate();var o=!1,f=Di,h,S;return typeof r=="object"&&(s=r,r=!1),typeof r=="boolean"&&(o=r),typeof s=="object"&&(f=Object.assign({},Di,s),s.s!=null&&s.ss==null&&(f.ss=s.s-1)),h=this.localeData(),S=Ak(this,!o,f,h),o&&(S=h.pastFuture(+this,S)),h.postformat(S)}var bf=Math.abs;function Ri(r){return(r>0)-(r<0)||+r}function Gu(){if(!this.isValid())return this.localeData().invalidDate();var r=bf(this._milliseconds)/1e3,s=bf(this._days),o=bf(this._months),f,h,S,A,V=this.asSeconds(),te,he,Rt,ba;return V?(f=Lt(r/60),h=Lt(f/60),r%=60,f%=60,S=Lt(o/12),o%=12,A=r?r.toFixed(3).replace(/\.?0+$/,""):"",te=V<0?"-":"",he=Ri(this._months)!==Ri(V)?"-":"",Rt=Ri(this._days)!==Ri(V)?"-":"",ba=Ri(this._milliseconds)!==Ri(V)?"-":"",te+"P"+(S?he+S+"Y":"")+(o?he+o+"M":"")+(s?Rt+s+"D":"")+(h||f||r?"T":"")+(h?ba+h+"H":"")+(f?ba+f+"M":"")+(r?ba+A+"S":"")):"P0D"}var pe=Uu.prototype;pe.isValid=kT,pe.abs=nk,pe.add=ak,pe.subtract=lk,pe.as=rk,pe.asMilliseconds=Ep,pe.asSeconds=sk,pe.asMinutes=uk,pe.asHours=ok,pe.asDays=ck,pe.asWeeks=fk,pe.asMonths=dk,pe.asQuarters=hk,pe.asYears=mk,pe.valueOf=pk,pe._bubble=ik,pe.clone=gk,pe.get=yk,pe.milliseconds=bk,pe.seconds=vk,pe.minutes=Sk,pe.hours=Tk,pe.days=_k,pe.weeks=Ek,pe.months=kk,pe.years=xk,pe.humanize=Dk,pe.toISOString=Gu,pe.toString=Gu,pe.toJSON=Gu,pe.locale=fp,pe.localeData=hp,pe.toIsoString=q("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Gu),pe.lang=dp,Q("X",0,0,"unix"),Q("x",0,0,"valueOf"),j("x",Cl),j("X",fn),de("X",function(r,s,o){o._d=new Date(parseFloat(r)*1e3)}),de("x",function(r,s,o){o._d=new Date(re(r))});return t.version="2.30.1",n(He),t.fn=U,t.min=vT,t.max=ST,t.now=TT,t.utc=y,t.unix=J_,t.months=$_,t.isDate=m,t.locale=Fa,t.invalid=g,t.duration=Un,t.isMoment=z,t.weekdays=P_,t.parseZone=W_,t.localeData=ma,t.isDuration=Yu,t.monthsShort=I_,t.weekdaysMin=tk,t.defineLocale=lf,t.updateLocale=WS,t.locales=$S,t.weekdaysShort=ek,t.normalizeUnits=kt,t.relativeTimeRounding=Mk,t.relativeTimeThreshold=Ok,t.calendarFormat=XT,t.prototype=U,t.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},t}))});var d1=Yn(Bc=>{"use strict";var Iw=Symbol.for("react.transitional.element"),Pw=Symbol.for("react.fragment");function f1(e,t,n){var a=null;if(n!==void 0&&(a=""+n),t.key!==void 0&&(a=""+t.key),"key"in t){n={};for(var l in t)l!=="key"&&(n[l]=t[l])}else n=t;return t=n.ref,{$$typeof:Iw,type:e,key:a,ref:t!==void 0?t:null,props:n}}Bc.Fragment=Pw;Bc.jsx=f1;Bc.jsxs=f1});var et=Yn((eO,h1)=>{"use strict";h1.exports=d1()});var pi=ye(vv());var la=class extends Error{constructor(){super(...arguments);K(this,"name","KyError")}get isKyError(){return!0}};var xr=class extends la{constructor(n,a,l){var m;let i=n.status||n.status===0?n.status:"",u=(m=n.statusText)!=null?m:"",c="".concat(i," ").concat(u).trim(),d=c?"status code ".concat(c):"an unknown error";super("Request failed with ".concat(d,": ").concat(a.method," ").concat(a.url));K(this,"name","HTTPError");K(this,"response");K(this,"request");K(this,"options");K(this,"data");this.response=n,this.request=a,this.options=l}};var Er=class extends la{constructor(n,a){super("Request failed due to a network error: ".concat(n.method," ").concat(n.url),a);K(this,"name","NetworkError");K(this,"request");this.request=n}};var wr=class extends Error{constructor(n){let a="Non-error value was thrown";try{typeof n=="string"?a=n:n&&typeof n=="object"&&"message"in n&&typeof n.message=="string"&&(a=n.message)}catch(l){}super(a);K(this,"name","NonError");K(this,"value");this.value=n}};var ri=class extends la{constructor(n){let a=n!=null&&n.cause?n.cause instanceof Error?n.cause:new wr(n.cause):void 0;super(n!=null&&n.code?"Forced retry: ".concat(n.code):"Forced retry",a?{cause:a}:void 0);K(this,"name","ForceRetryError");K(this,"customDelay");K(this,"code");K(this,"customRequest");this.customDelay=n==null?void 0:n.delay,this.code=n==null?void 0:n.code,this.customRequest=n==null?void 0:n.request}};var Tc=class extends Error{constructor(n){super("Response schema validation failed");K(this,"name","SchemaValidationError");K(this,"issues");this.issues=n}};var Mn=class extends la{constructor(n){super("Request timed out: ".concat(n.method," ").concat(n.url));K(this,"name","TimeoutError");K(this,"request");this.request=n}};var om=(()=>{let e=!1,t=!1,n=typeof globalThis.ReadableStream=="function",a=typeof globalThis.Request=="function";if(n&&a)try{t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")}catch(l){if(l instanceof Error&&l.message==="unsupported BodyInit type")return!1;throw l}return e&&!t})(),Sv=typeof globalThis.AbortController=="function",_c=typeof globalThis.AbortSignal=="function"&&typeof globalThis.AbortSignal.any=="function",Tv=typeof globalThis.ReadableStream=="function",_v=typeof globalThis.FormData=="function",kc=["get","post","put","patch","head","delete"],Ow=()=>{};Ow();var kv={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*",bytes:"*/*"},Ar=2147483647,xv=40,xc=Symbol("stop"),Is=class{constructor(t){K(this,"options");this.options=t}},Ev=e=>new Is(e),wv={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,baseUrl:!0,prefix:!0,retry:!0,timeout:!0,totalTimeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0,context:!0},Av={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,duplex:!0};var Ec=new TextEncoder,Dw=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(let[n,a]of e)t+=xv,t+=Ec.encode('Content-Disposition: form-data; name="'.concat(n,'"')).byteLength,t+=typeof a=="string"?Ec.encode(a).byteLength:a.size;return t}return e instanceof Blob?e.size:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:typeof e=="string"?Ec.encode(e).byteLength:e instanceof URLSearchParams?Ec.encode(e.toString()).byteLength:0},Mv=(e,t,n)=>{let a,l=0;return e.pipeThrough(new TransformStream({transform(i,u){if(u.enqueue(i),a){l+=a.byteLength;let c=t===0?0:l/t;c>=1&&(c=1-Number.EPSILON),n==null||n({percent:c,totalBytes:Math.max(t,l),transferredBytes:l},a)}a=i},flush(){a&&(l+=a.byteLength,n==null||n({percent:1,totalBytes:Math.max(t,l),transferredBytes:l},a))}}))},Ov=(e,t)=>{if(!e.body)return e;let n={status:e.status,statusText:e.statusText,headers:e.headers};if(e.status===204)return new Response(null,n);let a=Math.max(0,Number(e.headers.get("content-length"))||0);return new Response(Mv(e.body,a,t),n)},Dv=(e,t,n)=>{if(!e.body)return e;let a=Dw(n!=null?n:e.body);return new Request(e,{duplex:"half",body:Mv(e.body,a,t)})};var ia=e=>e!==null&&typeof e=="object";var Rw=Symbol("replaceOption"),cm=e=>ia(e)&&e[Rw]===!0?{isReplace:!0,value:e.value}:{isReplace:!1,value:e};var eu=(...e)=>{for(let t of e)if((!ia(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return hm({},...e)},dm=(e={},t={})=>{let n=new globalThis.Headers(e),a=t instanceof globalThis.Headers,l=new globalThis.Headers(t);for(let[i,u]of l.entries())a&&u==="undefined"||u===void 0?n.delete(i):n.set(i,u);return n},fm=e=>{if(!ia(e)||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},Mr=e=>{if(e instanceof URLSearchParams){let t=new URLSearchParams(e),n=e[xl];return n&&(t[xl]=new Set(n)),t}return e instanceof globalThis.Headers?new globalThis.Headers(e):Array.isArray(e)?[...e]:fm(e)?B({},e):e},Nw=e=>Object.fromEntries(Object.entries(e).filter(t=>t[1]!==void 0)),zw=(e,t)=>fm(e)&&fm(t)?Nw(B(B({},e),t)):dm(e,t);function Ps(e,t,n){var a,l;return Object.hasOwn(t,n)&&t[n]===void 0?[]:hm((a=e[n])!=null?a:[],(l=t[n])!=null?l:[])}var wc=(e={},t={})=>({init:Ps(e,t,"init"),beforeRequest:Ps(e,t,"beforeRequest"),beforeRetry:Ps(e,t,"beforeRetry"),beforeError:Ps(e,t,"beforeError"),afterResponse:Ps(e,t,"afterResponse")}),xl=Symbol("deletedParameters"),Cw=(e,t)=>{let n=new URLSearchParams,a=new Set;for(let l of[e,t])if(l!==void 0)if(l instanceof URLSearchParams){for(let[u,c]of l.entries())n.append(u,c),a.delete(u);let i=l[xl];if(i)for(let u of i)n.delete(u),a.add(u)}else if(Array.isArray(l))for(let i of l){if(!Array.isArray(i)||i.length!==2)throw new TypeError("Array search parameters must be provided in [[key, value], ...] format");n.append(String(i[0]),String(i[1])),a.delete(String(i[0]))}else if(ia(l))for(let[i,u]of Object.entries(l))u===void 0?(n.delete(i),a.add(i)):(n.append(i,String(u)),a.delete(i));else{let i=new URLSearchParams(l);for(let[u,c]of i.entries())n.append(u,c),a.delete(u)}return a.size>0&&(n[xl]=a),n},hm=(...e)=>{let t={},n={},a={},l,i=[];for(let u of e)if(Array.isArray(u))Array.isArray(t)||(t=[]),t=[...t,...u];else if(ia(u)){for(let[c,d]of Object.entries(u)){if(c==="signal"&&d instanceof globalThis.AbortSignal){i.push(d);continue}let m=cm(d),{isReplace:p}=m;if(d=m.value,c==="context"){if(d!=null&&(!ia(d)||Array.isArray(d)))throw new TypeError("The `context` option must be an object");t=$(B({},t),{context:d==null?{}:B(p?{}:B({},t.context),d)});continue}if(c==="searchParams"){d==null?l=void 0:p?l=d:l=l===void 0?d:Cw(l,d);continue}ia(d)&&!p&&c in t&&(d=hm(t[c],d)),t=$(B({},t),{[c]:d})}if(ia(u.hooks)){let{value:c,isReplace:d}=cm(u.hooks);a=wc(d?{}:a,c),t.hooks=a}if(ia(u.headers)){let{value:c,isReplace:d}=cm(u.headers);n=d?Mr(c):zw(n,c),t.headers=n}}return l!==void 0&&(t.searchParams=l),i.length>0&&(i.length===1?t.signal=i[0]:_c?t.signal=AbortSignal.any(i):t.signal=i.at(-1)),t};var Nv=e=>kc.includes(e)?e.toUpperCase():e,Uw=["get","put","head","delete","options","trace"],Yw=[408,413,429,500,502,503,504],Lw=[413,429,503],Rv={limit:2,methods:Uw,statusCodes:Yw,afterStatusCodes:Lw,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3,jitter:void 0,retryOnTimeout:!1},zv=(e={})=>{var n;if(typeof e=="number")return $(B({},Rv),{limit:e});if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");let t=Object.fromEntries(Object.entries($(B({},e),{methods:(n=e.methods)==null?void 0:n.map(a=>a.toLowerCase())})).filter(([,a])=>a!==void 0));return B(B({},Rv),t)};async function mm(e,t,n,a){return new Promise((l,i)=>{let u=setTimeout(()=>{n&&n.abort(),i(new Mn(e))},a.timeout);a.fetch(e,t).then(l).catch(i).then(()=>{clearTimeout(u)})})}async function Ac(e,{signal:t}){return new Promise((n,a)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",l,{once:!0}));function l(){clearTimeout(i),a(t.reason)}let i=setTimeout(()=>{t==null||t.removeEventListener("abort",l),n()},e)})}var Cv=e=>{let t={};for(let n in e)Object.hasOwn(e,n)&&!(n in Av)&&!(n in wv)&&(t[n]=e[n]);return t},Uv=e=>{var t;return e===void 0?!1:Array.isArray(e)?e.length>0:e instanceof URLSearchParams?e.size>0||!!((t=e[xl])!=null&&t.size):typeof e=="object"?Object.keys(e).length>0:typeof e=="string"?e.trim().length>0:!!e};var Hw=Object.prototype.toString,Bw=e=>Hw.call(e)==="[object Error]",qw=new Set(["network error","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function pm(e){if(!(e&&Bw(e)&&e.name==="TypeError"&&typeof e.message=="string"))return!1;let{message:n,stack:a}=e;return n==="Load failed"?a===void 0||"__sentry_captured__"in e:n.startsWith("error sending request for url")||n==="Failed to fetch"||n.startsWith("Failed to fetch (")&&n.endsWith(")")?!0:qw.has(n)}var gm=(e,t)=>e instanceof t||(e==null?void 0:e.name)===t.name;function Yv(e){return gm(e,xr)}function Lv(e){return gm(e,Er)}function Hv(e){return gm(e,Mn)}var jw=10*1024*1024,Gw="The `prefixUrl` option has been renamed `prefix` in v2 and enhanced to allow slashes in input. See also the new `baseUrl` option for improved flexibility with standard URL resolution: https://github.com/sindresorhus/ky#baseurl",tu=Symbol("timedOutResponseData"),Vw=e=>{var a;let t=/;\s*charset\s*=\s*(?:"([^"]+)"|([^;,\s]+))/i.exec(e),n=(a=t==null?void 0:t[1])!=null?a:t==null?void 0:t[2];if(n)try{return new TextDecoder(n)}catch(l){}return new TextDecoder},Bv="The `schema` argument must follow the Standard Schema specification",Zw=e=>typeof e!="object"?e:B(B(B(B({},e),e.methods&&{methods:[...e.methods]}),e.statusCodes&&{statusCodes:[...e.statusCodes]}),e.afterStatusCodes&&{afterStatusCodes:[...e.afterStatusCodes]}),Gv=Object.prototype.toString,qv=e=>e instanceof globalThis.Request||Gv.call(e)==="[object Request]",nu=e=>e instanceof globalThis.Response||Gv.call(e)==="[object Response]",Qw=e=>Array.isArray(e)?e.map(t=>[...t]):Mr(e);function Xw(e){let t=$(B({},e),{json:Mr(e.json),context:Mr(e.context),headers:Mr(e.headers),searchParams:Qw(e.searchParams)});return e.retry!==void 0&&(t.retry=Zw(e.retry)),t}var jv=async(e,t)=>{if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(Bv);let n=t["~standard"];if(typeof n!="object"||n===null||typeof n.validate!="function")throw new TypeError(Bv);let a=await n.validate(e);if(a.issues)throw new Tc(a.issues);return a.value},Cc,Vv,Ba,qn,mt,L,su,ui,uu,oi,Rr,ci,ou,C,si,Zv,ym,Qv,bm,Xv,Fv,Kv,Mc,El,vm,au,Jv,Wv,Sm,Oc,Dc,Rc,lu,Tm,Or,Nc,Dr,zc,$v,iu=class iu{constructor(t,n={}){Bt(this,C);K(this,"request");Bt(this,Ba);Bt(this,qn,0);Bt(this,mt);Bt(this,L);Bt(this,su);Bt(this,ui);Bt(this,uu,new WeakSet);Bt(this,oi);Bt(this,Rr);Bt(this,ci,!1);Bt(this,ou,new WeakMap);var l,i,u,c,d,m,p,T,y,_,E,w,R,g;if(Et(this,mt,t),Object.hasOwn(n,"prefixUrl"))throw new Error(Gw);if(Et(this,L,$(B({},n),{headers:dm(O(this,mt).headers,n.headers),hooks:wc({},n.hooks),method:Nv((i=(l=n.method)!=null?l:O(this,mt).method)!=null?i:"GET"),prefix:String(n.prefix||""),retry:zv(n.retry),throwHttpErrors:(u=n.throwHttpErrors)!=null?u:!0,timeout:(c=n.timeout)!=null?c:1e4,totalTimeout:(d=n.totalTimeout)!=null?d:!1,fetch:(m=n.fetch)!=null?m:globalThis.fetch.bind(globalThis),context:(p=n.context)!=null?p:{}})),typeof O(this,mt)!="string"&&!(O(this,mt)instanceof URL||O(this,mt)instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(typeof O(this,mt)=="string"){if(O(this,L).prefix){let b=O(this,L).prefix.replace(/\/+$/,""),k=O(this,mt).replace(/^\/+/,"");Et(this,mt,"".concat(b,"/").concat(k))}if(O(this,L).baseUrl){let b;try{b=new URL(O(this,mt))}catch(k){}b||Et(this,mt,new URL(O(this,mt),new Request(O(this,L).baseUrl).url))}}Sv&&_c&&(Et(this,ui,(T=O(this,L).signal)!=null?T:O(this,mt).signal),Et(this,Ba,new globalThis.AbortController),O(this,L).signal=G(this,C,vm).call(this)),om&&(O(this,L).duplex="half"),O(this,L).json!==void 0&&(O(this,L).body=(E=(_=(y=O(this,L)).stringifyJson)==null?void 0:_.call(y,O(this,L).json))!=null?E:JSON.stringify(O(this,L).json),O(this,L).headers.set("content-type",(w=O(this,L).headers.get("content-type"))!=null?w:"application/json"));let a=n.headers&&new globalThis.Headers(n.headers).has("content-type");if(O(this,mt)instanceof globalThis.Request&&(_v&&O(this,L).body instanceof globalThis.FormData||O(this,L).body instanceof URLSearchParams)&&!a&&O(this,L).headers.delete("content-type"),this.request=new globalThis.Request(O(this,mt),O(this,L)),Uv(O(this,L).searchParams)){let b=new URL(this.request.url),k=(R=O(this,L).searchParams)==null?void 0:R[xl];if(k)for(let x of k)b.searchParams.delete(x);if(typeof O(this,L).searchParams=="string"){let x=O(this,L).searchParams.replace(/^\?/,"");x!==""&&(b.search=b.search?"".concat(b.search,"&").concat(x):"?".concat(x))}else{let x=new URLSearchParams(G(g=iu,Cc,Vv).call(g,O(this,L).searchParams));for(let[N,z]of x.entries())b.searchParams.append(N,z)}if(O(this,L).searchParams&&typeof O(this,L).searchParams=="object"&&!Array.isArray(O(this,L).searchParams)&&!(O(this,L).searchParams instanceof URLSearchParams))for(let[x,N]of Object.entries(O(this,L).searchParams))N===void 0&&b.searchParams.delete(x);this.request=new globalThis.Request(b,O(this,L))}if(O(this,L).onUploadProgress&&typeof O(this,L).onUploadProgress!="function")throw new TypeError("The `onUploadProgress` option must be a function");Et(this,Rr,typeof O(this,L).totalTimeout=="number"?G(this,C,Tm).call(this):void 0)}static create(t,n){var d,m,p,T;let a=(m=(d=n.hooks)==null?void 0:d.init)!=null?m:[],l=a.length>0?Xw(n):n;for(let y of a)y(l);let i=new iu(t,l),u=async()=>{var w,R,g,b,k,x,N,z,Y,q,J,W,be;if(typeof O(i,L).timeout=="number"&&O(i,L).timeout>Ar)throw new RangeError("The `timeout` option cannot be greater than ".concat(Ar));if(typeof O(i,L).totalTimeout=="number"&&O(i,L).totalTimeout>Ar)throw new RangeError("The `totalTimeout` option cannot be greater than ".concat(Ar));await Promise.resolve();let y=await G(w=i,C,Jv).call(w),_=y!=null?y:await G(R=i,C,Sm).call(R,async()=>{var Ye;return G(Ye=i,C,Rc).call(Ye)}),E=y!==void 0||G(g=i,C,Dc).call(g);for(;;){if(_===void 0)return _;if(nu(_))try{_=await G(b=i,C,Wv).call(b,_)}catch(Fe){if(!(Fe instanceof ri))throw Fe;let I=await G(k=i,C,Oc).call(k,Fe,async()=>{var ce;return G(ce=i,C,Rc).call(ce)});if(I===void 0)return I;_=I,E=G(x=i,C,Dc).call(x);continue}let Ye=_;if(!Ye.ok&&Ye.type!=="opaque"&&(typeof O(i,L).throwHttpErrors=="function"?O(i,L).throwHttpErrors(Ye.status):O(i,L).throwHttpErrors)){let Fe=new xr(Ye,G(N=i,C,Dr).call(N,Ye),G(z=i,C,Or).call(z)),I=Fe;if(Fe.data=await G(Y=i,C,Qv).call(Y,Ye),E)throw I;let ce=await G(q=i,C,Oc).call(q,Fe,async()=>{var _t;return G(_t=i,C,Rc).call(_t)});if(ce===void 0)return ce;_=ce,E=G(J=i,C,Dc).call(J);continue}break}if(!nu(_))return _;if(G(W=i,C,ym).call(W,_),O(i,L).onDownloadProgress){if(typeof O(i,L).onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!Tv)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");let Ye=_.clone();return G(be=i,C,El).call(be,_),Ov(Ye,O(i,L).onDownloadProgress)}return _},c=(async()=>{var y,_,E,w,R;try{return await u()}catch(g){if(!(g instanceof Error)||O(i,uu).has(g))throw g;let b=g;for(let k of O(i,L).hooks.beforeError){let x=await k({request:i.request,options:G(y=i,C,Or).call(y),error:b,retryCount:O(i,qn)});x instanceof Error&&(b=x)}throw b}finally{let g=O(i,su);G(E=i,C,Mc).call(E,(_=g==null?void 0:g.body)!=null?_:void 0),i.request!==g&&G(R=i,C,Mc).call(R,(w=i.request.body)!=null?w:void 0)}})();for(let[y,_]of Object.entries(kv))y==="bytes"&&typeof((T=(p=globalThis.Response)==null?void 0:p.prototype)==null?void 0:T.bytes)!="function"||(c[y]=async E=>{var b;i.request.headers.set("accept",i.request.headers.get("accept")||_);let w=await c;if(y!=="json")return w[y]();let R=await w.text();if(R==="")return E!==void 0?jv(void 0,E):JSON.parse(R);let g=l.parseJson?await l.parseJson(R,{request:G(b=i,C,Dr).call(b,w),response:w}):JSON.parse(R);return E===void 0?g:jv(g,E)});return c}};Cc=new WeakSet,Vv=function(t){return t&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof URLSearchParams)?Object.fromEntries(Object.entries(t).filter(([,n])=>n!==void 0)):t},Ba=new WeakMap,qn=new WeakMap,mt=new WeakMap,L=new WeakMap,su=new WeakMap,ui=new WeakMap,uu=new WeakMap,oi=new WeakMap,Rr=new WeakMap,ci=new WeakMap,ou=new WeakMap,C=new WeakSet,si=function(){let t=O(this,L).retry.delay(O(this,qn)+1),n=t;return O(this,L).retry.jitter===!0?n=Math.random()*t:typeof O(this,L).retry.jitter=="function"&&(n=O(this,L).retry.jitter(t),(!Number.isFinite(n)||n<0)&&(n=t)),Math.min(O(this,L).retry.backoffLimit,n)},Zv=async function(t){var a,l,i,u,c;if(O(this,qn)>=O(this,L).retry.limit)throw t;let n=t instanceof Error?t:new wr(t);if(n instanceof ri)return(a=n.customDelay)!=null?a:G(this,C,si).call(this);if(!O(this,L).retry.methods.includes(this.request.method.toLowerCase()))throw t;if(O(this,L).retry.shouldRetry!==void 0){let d=await O(this,L).retry.shouldRetry({error:n,retryCount:O(this,qn)+1});if(d===!1)throw t;if(d===!0)return G(this,C,si).call(this)}if(Hv(t)){if(!O(this,L).retry.retryOnTimeout)throw t;return G(this,C,si).call(this)}if(Yv(t)){if(!O(this,L).retry.statusCodes.includes(t.response.status))throw t;let d=(c=(u=(i=(l=t.response.headers.get("Retry-After"))!=null?l:t.response.headers.get("RateLimit-Reset"))!=null?i:t.response.headers.get("X-RateLimit-Retry-After"))!=null?u:t.response.headers.get("X-RateLimit-Reset"))!=null?c:t.response.headers.get("X-Rate-Limit-Reset");if(d&&O(this,L).retry.afterStatusCodes.includes(t.response.status)){let m=Number(d)*1e3;return Number.isNaN(m)?m=Date.parse(d)-Date.now():m>=Date.parse("2024-01-01")&&(m-=Date.now()),Number.isFinite(m)?(m=Math.max(0,m),Math.min(O(this,L).retry.maxRetryAfter,m)):Math.min(O(this,L).retry.maxRetryAfter,G(this,C,si).call(this))}if(t.response.status===413)throw t;return G(this,C,si).call(this)}if(!Lv(t))throw t;return G(this,C,si).call(this)},ym=function(t){let n=G(this,C,Dr).call(this,t);return O(this,L).parseJson&&(t.json=async()=>{let a=await t.text();return a===""?JSON.parse(a):O(this,L).parseJson(a,{request:n,response:t})}),t},Qv=async function(t){var l;let n=await G(this,C,Fv).call(this,t,G(this,C,bm).call(this));if(n===tu){G(this,C,au).call(this);return}if(!n)return;if(!G(this,C,Xv).call(this,(l=t.headers.get("content-type"))!=null?l:""))return n;let a=await G(this,C,Kv).call(this,n,t,G(this,C,bm).call(this),G(this,C,Dr).call(this,t));if(a===tu){G(this,C,au).call(this);return}return a},bm=function(){let t=O(this,L).timeout===!1?1e4:O(this,L).timeout,n=G(this,C,lu).call(this);if(n===void 0)return t;if(n<=0)throw new Mn(this.request);return Math.min(t,n)},Xv=function(t){var a;let n=((a=t.split(";",1)[0])!=null?a:"").trim().toLowerCase();return/\/(?:.*[.+-])?json$/.test(n)},Fv=async function(t,n){var T;let{body:a}=t;if(!a)try{return await t.text()}catch(y){return}let l;try{l=a.getReader()}catch(y){return}let i=Vw((T=t.headers.get("content-type"))!=null?T:""),u=[],c=0,d=(async()=>{try{for(;;){let{done:y,value:_}=await l.read();if(y)break;if(c+=_.byteLength,c>jw){l.cancel().catch(()=>{});return}u.push(i.decode(_,{stream:!0}))}}catch(y){return}return u.push(i.decode()),u.join("")})(),m=new Promise(y=>{let _=setTimeout(()=>{y(tu)},n);d.finally(()=>{clearTimeout(_)})}),p=await Promise.race([d,m]);return p===tu&&l.cancel().catch(()=>{}),p},Kv=async function(t,n,a,l){let i;try{return await Promise.race([Promise.resolve().then(()=>O(this,L).parseJson?O(this,L).parseJson(t,{request:l,response:n}):JSON.parse(t)),new Promise(u=>{i=setTimeout(()=>{u(tu)},a)})])}catch(u){return}finally{clearTimeout(i)}},Mc=function(t){t&&t.cancel().catch(()=>{})},El=function(t){var n;G(this,C,Mc).call(this,(n=t.body)!=null?n:void 0)},vm=function(){return O(this,ui)?AbortSignal.any([O(this,ui),O(this,Ba).signal]):O(this,Ba).signal},au=function(){let t=G(this,C,lu).call(this);if(t!==void 0&&t<=0)throw new Mn(this.request)},Jv=async function(){for(let t of O(this,L).hooks.beforeRequest){let n=await t({request:this.request,options:G(this,C,Or).call(this),retryCount:0});if(qv(n))G(this,C,Nc).call(this,n);else if(nu(n))return n}},Wv=async function(t){let n=G(this,C,Dr).call(this,t);for(let a of O(this,L).hooks.afterResponse){let l=G(this,C,zc).call(this,t.clone(),n);G(this,C,ym).call(this,l);let i;try{i=await a({request:this.request,options:G(this,C,Or).call(this),response:l,retryCount:O(this,qn)})}catch(c){throw l!==t&&G(this,C,El).call(this,l),G(this,C,El).call(this,t),c}if(i instanceof Is)throw l!==t&&G(this,C,El).call(this,l),G(this,C,El).call(this,t),new ri(i.options);let u=nu(i)?G(this,C,zc).call(this,i,n):t;l!==t&&l!==u&&l.body!==u.body&&G(this,C,El).call(this,l),t!==u&&t.body!==u.body&&G(this,C,El).call(this,t),t=u}return t},Sm=async function(t){try{return await t()}catch(n){return G(this,C,Oc).call(this,n,t)}},Oc=async function(t,n){Et(this,ci,!1);let a=Math.min(await G(this,C,Zv).call(this,t),Ar),l={signal:O(this,ui)},i=G(this,C,lu).call(this);if(i!==void 0){if(i<=0)throw new Mn(this.request);if(a>=i)throw await Ac(i,l),new Mn(this.request)}if(await Ac(a,l),G(this,C,au).call(this),t instanceof ri&&t.customRequest){let u=new globalThis.Request(t.customRequest,O(this,L).signal?{signal:O(this,L).signal}:void 0);G(this,C,Nc).call(this,u)}for(let u of O(this,L).hooks.beforeRetry){let c;try{c=await u({request:this.request,options:G(this,C,Or).call(this),error:t,retryCount:O(this,qn)+1})}catch(d){throw d instanceof Error&&d!==t&&O(this,uu).add(d),d}if(qv(c)){G(this,C,Nc).call(this,c);break}if(nu(c))return Et(this,ci,!0),kf(this,qn)._++,c;if(c===xc)return}return G(this,C,au).call(this),kf(this,qn)._++,G(this,C,Sm).call(this,n)},Dc=function(){let t=O(this,ci);return Et(this,ci,!1),t},Rc=async function(){var l,i;(l=O(this,Ba))!=null&&l.signal.aborted&&(Et(this,Ba,new globalThis.AbortController),O(this,L).signal=G(this,C,vm).call(this),this.request=new globalThis.Request(this.request,{signal:O(this,L).signal}));let t=Cv(O(this,L)),n=O(this,L).retry.limit>0?this.request.clone():void 0,a=G(this,C,$v).call(this,this.request,(i=O(this,L).body)!=null?i:void 0);Et(this,su,a),n&&(this.request=n);try{let u=G(this,C,lu).call(this);if(u!==void 0&&u<=0)throw new Mn(this.request);let c=O(this,L).timeout===!1?u:u===void 0?O(this,L).timeout:Math.min(O(this,L).timeout,u),d=c===void 0?await O(this,L).fetch(a,t):await mm(a,t,O(this,Ba),{timeout:c,fetch:O(this,L).fetch});return G(this,C,zc).call(this,d,a)}catch(u){throw pm(u)?new Er(this.request,{cause:u}):u}},lu=function(){if(O(this,Rr)===void 0)return;let t=G(this,C,Tm).call(this)-O(this,Rr);return Math.max(0,O(this,L).totalTimeout-t)},Tm=function(){var t,n;return(n=(t=globalThis.performance)==null?void 0:t.now())!=null?n:Date.now()},Or=function(){if(!O(this,oi)){let t=O(this,L),{hooks:n,json:a,parseJson:l,stringifyJson:i,searchParams:u,timeout:c,totalTimeout:d,throwHttpErrors:m,fetch:p}=t,T=Op(t,["hooks","json","parseJson","stringifyJson","searchParams","timeout","totalTimeout","throwHttpErrors","fetch"]);Et(this,oi,Object.freeze(T))}return O(this,oi)},Nc=function(t){Et(this,oi,void 0),this.request=t},Dr=function(t){var n;return(n=O(this,ou).get(t))!=null?n:this.request},zc=function(t,n){return O(this,ou).set(t,n),t},$v=function(t,n){var a;return!O(this,L).onUploadProgress||!t.body||!om?t:Dv(t,O(this,L).onUploadProgress,(a=n!=null?n:O(this,L).body)!=null?a:void 0)},Bt(iu,Cc);var ru=iu;var _m=e=>{let t=(n,a)=>ru.create(n,eu(e,a));for(let n of kc)t[n]=(a,l)=>ru.create(a,eu(e,l,{method:n}));return t.create=n=>_m(eu(n)),t.extend=n=>(typeof n=="function"&&(n=n(e!=null?e:{})),_m(eu(e,n))),t.stop=xc,t.retry=Ev,t},Fw=_m(),Iv=Fw;var xm=ye(Pv());function Kt(){return globalThis.app}function Kw(e){let t=(0,xm.default)(e,xm.default.ISO_8601),n=t.fromNow(),a="".concat(t.format("MMMM D YYYY, h:mm a")," (").concat(t.format(),") ");return[n,a]}function zr(e){try{return Kw(e)}catch(t){return null}}function Cr(e){e.close()}function Uc(e){var t;(t=document.getElementById(e))==null||t.focus()}function e1(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function Jw(e){let t=Kt(),n=new Headers(e);return n.set(t.csrfHeaderName,t.csrfToken),n}function Ww(e){return"".concat(Kt().homeR).concat(e)}function $w(e){try{let t=new URL(e,window.location.origin),n="".concat(t.pathname).concat(t.search).concat(t.hash);return n.startsWith("/")?n.slice(1):n}catch(t){return e.replace(/^\/+/,"")}}async function cn(e,t,n={}){var l;return await Iv(Ww(t),{method:e,headers:Jw(n.headers),body:(l=n.body)!=null?l:void 0,throwHttpErrors:!1})}async function t1(e,t){await cn("POST","bm/".concat(e.toString(),"/").concat(t),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function Yc(e){await cn("DELETE","bm/".concat(e.toString()),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function n1(e){await cn("POST","bm/".concat(e.toString(),"/read"),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function a1(e){await cn("POST","bm/".concat(e.toString(),"/archive"),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function Lc(e){let t=await cn("POST","api/add",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});return{ok:t.ok,status:t.status,bodyText:await t.text()}}async function l1(e){let t=await cn("POST","api/note/add",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});return{ok:t.ok,status:t.status,bodyText:await t.text()}}async function Hc(e){let t=await cn("POST","api/lookuptitle",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});return t.status===200?await t.text():null}async function i1(e){let t=await cn("POST","api/tagcloud",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!t.ok)return null;try{return await t.json()}catch(n){return null}}async function r1(e){await cn("POST","api/tagcloudmode",{headers:{"content-type":"application/json"},body:JSON.stringify(e)})}async function s1(e){let t=await cn("POST","api/tagSuggestions",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!t.ok)return null;try{return await t.json()}catch(n){return null}}async function u1(e){await cn("DELETE","api/note/".concat(e.toString()),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function o1(e){await cn("POST","api/accountSettings",{headers:{"content-type":"application/json"},body:JSON.stringify(e)})}async function c1(){let e=Kt();await cn("POST",$w(e.authRlogoutR)),window.location.reload()}var m1=ye(qt());var At=ye(et());function p1({initial:e}){let[t,n]=m1.default.useState(e),a=!t.archiveBackendEnabled,l=a?"Archiving Disabled":void 0;async function i(u){n(u),await o1(u)}return(0,At.jsxs)("div",{className:"settings-form",children:[(0,At.jsx)("div",{className:"fw7 mb2",children:"Account Settings"}),(0,At.jsxs)("div",{className:"flex items-center mb2".concat(a?" o-50":""),title:l,children:[(0,At.jsx)("input",{type:"checkbox",className:"mr2".concat(a?"":" pointer"),id:"archiveDefault",name:"archiveDefault",checked:t.archiveDefault,disabled:a,title:l,onChange:u=>{i($(B({},t),{archiveDefault:u.target.checked}))}}),(0,At.jsx)("label",{htmlFor:"archiveDefault",className:"lh-copy".concat(a?" thm-text-tertiary":""),title:l,children:"Archive new non-Private bookmarks by default"})]}),(0,At.jsxs)("div",{className:"flex items-center mb2",children:[(0,At.jsx)("input",{type:"checkbox",className:"pointer mr2",id:"privateDefault",name:"privateDefault",checked:t.privateDefault,onChange:u=>{i($(B({},t),{privateDefault:u.target.checked}))}}),(0,At.jsx)("label",{htmlFor:"privateDefault",className:"lh-copy",children:"Default new bookmarks to Private"})]}),(0,At.jsxs)("div",{className:"flex items-center mb2",children:[(0,At.jsx)("input",{type:"checkbox",className:"pointer mr2",id:"suggestTags",name:"suggestTags",checked:t.suggestTags,onChange:u=>{i($(B({},t),{suggestTags:u.target.checked}))}}),(0,At.jsx)("label",{htmlFor:"suggestTags",className:"lh-copy",children:"Enable tag suggestions"})]}),(0,At.jsxs)("div",{className:"flex items-center mb2",children:[(0,At.jsx)("input",{type:"checkbox",className:"pointer mr2",id:"privacyLock",name:"privacyLock",checked:t.privacyLock,onChange:u=>{i($(B({},t),{privacyLock:u.target.checked}))}}),(0,At.jsx)("label",{htmlFor:"privacyLock",className:"lh-copy",children:"Privacy Lock (Private Account)"})]})]})}var fi=ye(qt());var Jt=ye(qt());var eA=180;function qc({enabled:e,tags:t,onTagsUpdate:n,maxSuggestions:a=10}){let[l,i]=Jt.default.useState(null),u=Jt.default.useRef(0),c=Jt.default.useRef(null),d=Jt.default.useRef(null),m=Jt.default.useCallback(()=>{c.current!=null&&(window.clearTimeout(c.current),c.current=null),u.current+=1},[]),p=Jt.default.useCallback(()=>{m(),i(null)},[m]);Jt.default.useEffect(()=>()=>{m()},[m]),Jt.default.useEffect(()=>{e||p()},[e,p]);let T=Jt.default.useCallback(R=>{let{value:g,selectionStart:b,selectionEnd:k}=R.target;if(n(g),!e){p();return}if(b==null||k==null||b!==k){p();return}if(aA(t,g)){p();return}let x=g1(g,b);if(x==null||x.token.length<2){p();return}let N=lA(g),z=x.token.toLowerCase(),q=N.filter(W=>W===z).length>1,J={query:x.token,currentTags:Array.from(new Set(N.filter(W=>q||W!==z)))};m(),c.current=window.setTimeout(()=>{let W=u.current+1;u.current=W,(async()=>{let be=await s1(J);if(W!==u.current||be==null||d.current==null)return;let Ye=be.suggestions.slice(0,a);if(Ye.length===0){p();return}let Fe=tA(d.current,b);i({items:Ye,selectedIndex:0,tokenRange:x,anchorLeft:Fe.left,anchorTop:Fe.top})})()},eA)},[m,p,e,a,n]),y=Jt.default.useCallback(R=>{let g=d.current;if(g==null||l==null)return;let b=nA(t,l.tokenRange,R);n(b.value),p(),requestAnimationFrame(()=>{g.focus(),g.setSelectionRange(b.caret,b.caret)})},[p,n,l,t]),_=Jt.default.useCallback(R=>{if(R.key==="Escape"){l!=null&&(R.preventDefault(),p());return}if(R.key===" "){p();return}if(l!=null){if(R.key==="ArrowDown"){R.preventDefault(),i(g=>g==null?g:$(B({},g),{selectedIndex:(g.selectedIndex+1)%g.items.length}));return}if(R.key==="ArrowUp"){R.preventDefault(),i(g=>g==null?g:$(B({},g),{selectedIndex:(g.selectedIndex-1+g.items.length)%g.items.length}));return}if(R.key==="Enter"||R.key==="Tab"){R.preventDefault();let g=l.items[l.selectedIndex];y(g.term)}}},[y,p,l]),E=Jt.default.useCallback(R=>{if(l==null)return;let g=R.currentTarget,{selectionStart:b,selectionEnd:k,value:x}=g;if(b==null||k==null||b!==k){p();return}let N=g1(x,b);if(N==null){p();return}N.start!==l.tokenRange.start&&p()},[p,l]),w=Jt.default.useCallback(R=>{i(g=>g==null?g:$(B({},g),{selectedIndex:R}))},[]);return{tagInputRef:d,suggestionState:l,closeSuggestions:p,onTagsChange:T,onTagsKeyDown:_,onTagsSelect:E,onSuggestionHover:w,onSuggestionPick:y}}function g1(e,t){let n=Math.max(0,Math.min(t,e.length)),a=n;for(;a>0&&e[a-1]!==" ";)a-=1;let l=n;for(;l<e.length&&e[l]!==" ";)l+=1;let i=e.slice(a,l).trim();return i===""?null:{token:i,start:a,end:l}}function tA(e,t){let n=window.getComputedStyle(e),a=document.createElement("div");a.style.position="absolute",a.style.visibility="hidden",a.style.whiteSpace="pre",a.style.top="0",a.style.left="0",a.style.font=n.font,a.style.fontKerning=n.fontKerning,a.style.fontFeatureSettings=n.fontFeatureSettings,a.style.fontVariantLigatures=n.fontVariantLigatures,a.style.letterSpacing=n.letterSpacing,a.style.textTransform=n.textTransform,a.style.textIndent=n.textIndent,a.style.boxSizing=n.boxSizing,a.style.padding=n.padding,a.style.border=n.border,a.style.width="".concat(String(e.clientWidth),"px");let l=document.createElement("span");l.textContent=e.value.slice(0,t),a.appendChild(l);let i=document.createElement("span");i.textContent="\u200B",a.appendChild(i),document.body.appendChild(a);let u=i.offsetLeft-e.scrollLeft+1,c=i.offsetTop-e.scrollTop+e.offsetHeight+4;return document.body.removeChild(a),{left:u,top:c}}function nA(e,t,n){let a=e.slice(0,t.start),l=e.slice(t.end).replace(/^ /,""),i="".concat(n," ");return{value:"".concat(a).concat(i).concat(l),caret:a.length+i.length}}function aA(e,t){if(e===t)return!1;let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n+=1;let a=e.length,l=t.length;for(;a>n&&l>n&&e[a-1]===t[l-1];)a-=1,l-=1;let i=e.slice(n,a),u=t.slice(n,l);return i===""&&u===""?!1:y1(i)&&y1(u)}function y1(e){return e===""||/^ *$/.test(e)}function lA(e){return e.split(" ").map(t=>t.trim().toLowerCase()).filter(t=>t!=="")}function iA(e){return decodeURIComponent(e)}function rA(e){var u;let t=e.slice(0,1),a=(t==="#"||t==="?"?e.slice(1):e).split("&").filter(c=>c!==""),l=c=>iA(c.replace(/\+/g," ")),i=[];for(let c of a){let[d,...m]=c.split("=");d&&(m.length===0?i.push([l(d),null]):m.length===1&&i.push([l(d),l((u=m[0])!=null?u:"")]))}return i}function cu(){return rA(window.location.search)}function fu(e,t){for(let[n,a]of e)if(n===t)return a;return null}function Ur(e){return encodeURIComponent(e.replace(/\+/g,"%2B"))}function qa(e){return e!=null?e:""}function jc(e){var t;return(t=e==null?void 0:e.replace(/,/g," ").replace(/\s+/g," ").trim())!=null?t:""}var uO=ye(qt()),ra=ye(et()),b1=80;function Gc({suggestionState:e,onHover:t,onPick:n}){return(0,ra.jsx)("div",{className:"absolute z-5 thm-bg-secondary thm-text-primary ba thm-border-default br2 shadow-4 overflow-hidden f6",style:{left:e.anchorLeft,top:e.anchorTop,width:"max-content",maxWidth:"22rem"},children:e.items.map((a,l)=>{let i=l===e.selectedIndex,u=uA(a.term);return(0,ra.jsxs)("button",{type:"button",className:"flex items-center justify-between w-100 bn bg-transparent tl ph2 pv1 pointer nowrap thm-text-primary thm-hover-link-color ".concat(i?"thm-bg-selected thm-text-selected":""),onMouseEnter:()=>{t(l)},onMouseDown:c=>{c.preventDefault()},onClick:()=>{n(a.term)},title:a.term,children:[(0,ra.jsx)("span",{className:"mr2",children:sA(u,e.tokenRange.token)}),(0,ra.jsx)("span",{className:"thm-text-tertiary f6 tr",style:{minWidth:"3ch"},children:a.count})]},"".concat(a.term,"-").concat(a.count.toString()))})})}function sA(e,t){let n=e.toLocaleLowerCase(),a=t.toLocaleLowerCase(),l=n.indexOf(a);if(l<0)return e;let i=e.slice(0,l),u=e.slice(l,l+t.length),c=e.slice(l+t.length);return(0,ra.jsxs)(ra.Fragment,{children:[i,(0,ra.jsx)("strong",{children:u}),c]})}function uA(e){return e.length<=b1?e:"".concat(e.slice(0,b1),"...")}var F=ye(et());function v1({initial:e}){var be,Ye,Fe;let t=Kt(),[n,a]=fi.default.useState(e),[l,i]=fi.default.useState(e),[u,c]=fi.default.useState(!1),[d,m]=fi.default.useState(!1),[p,T]=fi.default.useState(!1),[y,_]=fi.default.useState(null),E=t.dat.suggestTags===!0,{tagInputRef:w,suggestionState:R,closeSuggestions:g,onTagsChange:b,onTagsKeyDown:k,onTagsSelect:x,onSuggestionHover:N,onSuggestionPick:z}=qc({enabled:E,tags:l.tags,maxSuggestions:4,onTagsUpdate:I=>{i(ce=>$(B({},ce),{tags:I}))}}),Y=zr(n.time);async function q(){m(!0);try{let I=await Hc(l);I!=null&&i(ce=>$(B({},ce),{title:I}))}finally{m(!1)}}async function J(){await Yc(n.bid),T(!0)}let W=async I=>{I.preventDefault(),_(null);let ce=$(B({},l),{tags:jc(l.tags)}),_t=await Lc(ce);if(_t.ok&&_t.status>=200&&_t.status<300){a(ce);let Vn=cu(),pt=fu(Vn,"next"),Rn=document.referrer,Nn=window.location.origin;pt==="closeWindow"?Cr(window):pt==="back"?Rn.startsWith(Nn)?window.location.href=Rn:window.location.href=Nn:Cr(window)}else _(_t.bodyText)};return p?(0,F.jsx)("p",{className:"thm-text-killed",children:"you killed this bookmark"}):(0,F.jsx)("form",{onSubmit:I=>{W(I)},children:(0,F.jsx)("table",{className:"w-100",children:(0,F.jsxs)("tbody",{children:[(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{className:"w1"}),(0,F.jsxs)("td",{children:[n.bid>0?(0,F.jsxs)("div",{className:"alert",children:["previously saved\xA0",(0,F.jsx)("span",{className:"link f7 dib thm-text-tertiary thm-hover-link-color pr3",title:(be=Y==null?void 0:Y[1])!=null?be:n.time,children:(Ye=Y==null?void 0:Y[0])!=null?Ye:"\xA0"}),(0,F.jsx)("div",{className:"edit_links dib ml1",children:(0,F.jsxs)("div",{className:"delete_link di",children:[(0,F.jsx)("button",{type:"button",onClick:()=>{c(!0)},className:"delete",hidden:u,children:"delete"}),(0,F.jsxs)("span",{className:"confirm thm-text-error",hidden:!u,children:[(0,F.jsx)("button",{type:"button",onClick:()=>{c(!1)},children:"cancel\xA0/\xA0"}),(0,F.jsx)("button",{type:"button",onClick:()=>{J()},className:"thm-text-error",children:"destroy"})]})]})})]}):null,y?(0,F.jsx)("div",{className:"alert alert-err",children:y}):null]})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{children:(0,F.jsx)("label",{htmlFor:"url",children:"URL"})}),(0,F.jsx)("td",{children:(0,F.jsx)("input",{type:"url",id:"url",className:"w-100 mv1",required:!0,name:"url",autoFocus:n.url==="",value:l.url,onChange:I=>{i(ce=>$(B({},ce),{url:I.target.value}))}})})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{children:(0,F.jsx)("label",{htmlFor:"title",children:"title"})}),(0,F.jsxs)("td",{className:"flex",children:[(0,F.jsx)("input",{type:"text",id:"title",className:"w-100 mv1 flex-auto",name:"title",value:l.title,onChange:I=>{i(ce=>$(B({},ce),{title:I.target.value}))}}),(0,F.jsx)("button",{disabled:d,type:"button",onClick:()=>{q()},className:"ml2 input-reset ba thm-border-primary pointer f6 di dim pa1 ma1 mr0".concat(d?" thm-bg-disabled":""),children:"fetch"})]})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{children:(0,F.jsx)("label",{htmlFor:"description",children:"description"})}),(0,F.jsx)("td",{children:(0,F.jsx)("textarea",{className:"w-100 mt1 thm-text-secondary",id:"description",name:"description",rows:4,value:l.description,onChange:I=>{i(ce=>$(B({},ce),{description:I.target.value}))}})})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{children:(0,F.jsx)("label",{htmlFor:"tags",children:"tags"})}),(0,F.jsx)("td",{children:(0,F.jsxs)("div",{className:"relative",children:[(0,F.jsx)("input",{ref:w,type:"text",id:"tags",className:"w-100 mv1",name:"tags",autoComplete:"off",autoCapitalize:"off",autoFocus:n.url!=="",value:l.tags,onChange:b,onKeyDown:k,onClick:x,onSelect:x,onBlur:()=>{window.setTimeout(()=>{g()},0)}}),R!=null?(0,F.jsx)(Gc,{suggestionState:R,onHover:N,onPick:z}):null]})})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{children:(0,F.jsx)("label",{htmlFor:"private",children:"private"})}),(0,F.jsxs)("td",{children:[(0,F.jsx)("div",{className:"mr4 dib",children:(0,F.jsx)("input",{type:"checkbox",id:"private",className:"private pointer",name:"private",checked:l.private,onChange:I=>{i(ce=>B($(B({},ce),{private:I.target.checked}),t.dat.archiveBackendEnabled&&l.archiveRequested&&I.target.checked?{archiveRequested:!1}:{}))}})}),!(n.bid>0)&&t.dat.archiveBackendEnabled?(0,F.jsxs)("div",{className:"dib ".concat(l.private?"o-50":""),title:l.private?"archiving is unavailable for private bookmarks":void 0,children:[(0,F.jsx)("label",{className:"mr2 di",htmlFor:"archiveRequested",children:"archive"}),(0,F.jsx)("input",{type:"checkbox",id:"archiveRequested",className:"archive pointer ml2",name:"archiveRequested",disabled:l.private,checked:(Fe=l.archiveRequested)!=null?Fe:!1,onChange:I=>{i(ce=>$(B({},ce),{archiveRequested:I.target.checked}))}})]}):null]})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{children:(0,F.jsx)("label",{htmlFor:"toread",children:"read later"})}),(0,F.jsx)("td",{children:(0,F.jsx)("input",{type:"checkbox",id:"toread",className:"toread pointer",name:"toread",checked:l.toread,onChange:I=>{i(ce=>$(B({},ce),{toread:I.target.checked}))}})})]}),(0,F.jsxs)("tr",{children:[(0,F.jsx)("td",{}),(0,F.jsx)("td",{children:(0,F.jsx)("input",{type:"submit",className:"ph3 pv2 input-reset thm-text-strong ba thm-border-primary bg-transparent pointer f6 dib mt1 dim",value:n.bid>0?"update bookmark":"add bookmark"})})]})]})})})}var rS=ye(qt());var S1=e=>{let t,n=new Set,a=(m,p)=>{let T=typeof m=="function"?m(t):m;if(!Object.is(T,t)){let y=t;t=(p!=null?p:typeof T!="object"||T===null)?T:Object.assign({},t,T),n.forEach(_=>_(t,y))}},l=()=>t,c={setState:a,getState:l,getInitialState:()=>d,subscribe:m=>(n.add(m),()=>n.delete(m))},d=t=e(a,l,c);return c},T1=(e=>e?S1(e):S1);var du=ye(qt(),1);var oA=e=>e;function cA(e,t=oA){let n=du.default.useSyncExternalStore(e.subscribe,du.default.useCallback(()=>t(e.getState()),[e,t]),du.default.useCallback(()=>t(e.getInitialState()),[e,t]));return du.default.useDebugValue(n),n}var _1=e=>{let t=T1(e),n=a=>cA(t,a);return Object.assign(n,t),n},Vc=(e=>e?_1(e):_1);var hu=Vc(e=>({bmarks:[],setAll:t=>{e({bmarks:t})},removeById:t=>{e(n=>({bmarks:n.bmarks.filter(a=>a.bid!==t)}))},upsert:t=>{e(n=>({bmarks:n.bmarks.map(a=>a.bid===t.bid?t:a)}))}}));var Al=ye(qt());function k1(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function fA(e){if(Array.isArray(e))return e}function dA(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,l,i,u,c=[],d=!0,m=!1;try{if(i=(n=n.call(e)).next,t!==0)for(;!(d=(a=i.call(n)).done)&&(c.push(a.value),c.length!==t);d=!0);}catch(p){m=!0,l=p}finally{try{if(!d&&n.return!=null&&(u=n.return(),Object(u)!==u))return}finally{if(m)throw l}}return c}}function hA(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function mA(e,t){return fA(e)||dA(e,t)||pA(e,t)||hA()}function pA(e,t){if(e){if(typeof e=="string")return k1(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k1(e,t):void 0}}var Y1=Object.entries,x1=Object.setPrototypeOf,gA=Object.isFrozen,yA=Object.getPrototypeOf,bA=Object.getOwnPropertyDescriptor,Yt=Object.freeze,On=Object.seal,Br=Object.create,L1=typeof Reflect<"u"&&Reflect,Dm=L1.apply,Rm=L1.construct;Yt||(Yt=function(t){return t});On||(On=function(t){return t});Dm||(Dm=function(t,n){for(var a=arguments.length,l=new Array(a>2?a-2:0),i=2;i<a;i++)l[i-2]=arguments[i];return t.apply(n,l)});Rm||(Rm=function(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];return new t(...a)});var Yr=rt(Array.prototype.forEach),vA=rt(Array.prototype.lastIndexOf),E1=rt(Array.prototype.pop),Lr=rt(Array.prototype.push),SA=rt(Array.prototype.splice),Ut=Array.isArray,gu=rt(String.prototype.toLowerCase),Em=rt(String.prototype.toString),w1=rt(String.prototype.match),Hr=rt(String.prototype.replace),A1=rt(String.prototype.indexOf),TA=rt(String.prototype.trim),_A=rt(Number.prototype.toString),kA=rt(Boolean.prototype.toString),M1=typeof BigInt>"u"?null:rt(BigInt.prototype.toString),O1=typeof Symbol>"u"?null:rt(Symbol.prototype.toString),We=rt(Object.prototype.hasOwnProperty),mu=rt(Object.prototype.toString),Tt=rt(RegExp.prototype.test),pu=xA(TypeError);function rt(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];return Dm(e,t,a)}}function xA(e){return function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return Rm(e,n)}}function ie(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:gu;if(x1&&x1(e,null),!Ut(t))return e;let a=t.length;for(;a--;){let l=t[a];if(typeof l=="string"){let i=n(l);i!==l&&(gA(t)||(t[a]=i),l=i)}e[l]=!0}return e}function EA(e){for(let t=0;t<e.length;t++)We(e,t)||(e[t]=null);return e}function Mt(e){let t=Br(null);for(let a of Y1(e)){var n=mA(a,2);let l=n[0],i=n[1];We(e,l)&&(Ut(i)?t[l]=EA(i):i&&typeof i=="object"&&i.constructor===Object?t[l]=Mt(i):t[l]=i)}return t}function wA(e){switch(typeof e){case"string":return e;case"number":return _A(e);case"boolean":return kA(e);case"bigint":return M1?M1(e):"0";case"symbol":return O1?O1(e):"Symbol()";case"undefined":return mu(e);case"function":case"object":{if(e===null)return mu(e);let t=e,n=ua(t,"toString");if(typeof n=="function"){let a=n(t);return typeof a=="string"?a:mu(a)}return mu(e)}default:return mu(e)}}function ua(e,t){for(;e!==null;){let a=bA(e,t);if(a){if(a.get)return rt(a.get);if(typeof a.value=="function")return rt(a.value)}e=yA(e)}function n(){return null}return n}function AA(e){try{return Tt(e,""),!0}catch(t){return!1}}var D1=Yt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),wm=Yt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Am=Yt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),MA=Yt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Mm=Yt(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),OA=Yt(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),R1=Yt(["#text"]),N1=Yt(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),Om=Yt(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),z1=Yt(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Zc=Yt(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),DA=On(/{{[\w\W]*|^[\w\W]*}}/g),RA=On(/<%[\w\W]*|^[\w\W]*%>/g),NA=On(/\${[\w\W]*/g),zA=On(/^data-[\-\w.\u00B7-\uFFFF]+$/),CA=On(/^aria-[\-\w]+$/),C1=On(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),UA=On(/^(?:\w+script|data):/i),YA=On(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),LA=On(/^html$/i),HA=On(/^[a-z][.\w]*(-[.\w]+)+$/i),sa={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},BA=function(){return typeof window>"u"?null:window},qA=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let a=null,l="data-tt-policy-suffix";n&&n.hasAttribute(l)&&(a=n.getAttribute(l));let i="dompurify"+(a?"#"+a:"");try{return t.createPolicy(i,{createHTML(u){return u},createScriptURL(u){return u}})}catch(u){return console.warn("TrustedTypes policy "+i+" could not be created."),null}},U1=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function H1(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:BA(),t=Z=>H1(Z);if(t.version="3.4.7",t.removed=[],!e||!e.document||e.document.nodeType!==sa.document||!e.Element)return t.isSupported=!1,t;let n=e.document,a=n,l=a.currentScript;e.DocumentFragment;let i=e.HTMLTemplateElement,u=e.Node,c=e.Element,d=e.NodeFilter,m=e.NamedNodeMap;m===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let p=e.DOMParser,T=e.trustedTypes,y=c.prototype,_=ua(y,"cloneNode"),E=ua(y,"remove"),w=ua(y,"nextSibling"),R=ua(y,"childNodes"),g=ua(y,"parentNode"),b=ua(y,"shadowRoot"),k=ua(y,"attributes"),x=u&&u.prototype?ua(u.prototype,"nodeType"):null,N=u&&u.prototype?ua(u.prototype,"nodeName"):null;if(typeof i=="function"){let Z=n.createElement("template");Z.content&&Z.content.ownerDocument&&(n=Z.content.ownerDocument)}let z,Y="",q=n,J=q.implementation,W=q.createNodeIterator,be=q.createDocumentFragment,Ye=q.getElementsByTagName,Fe=a.importNode,I=U1();t.isSupported=typeof Y1=="function"&&typeof g=="function"&&J&&J.createHTMLDocument!==void 0;let ce=DA,_t=RA,Vn=NA,pt=zA,Rn=CA,Nn=UA,ja=YA,Zn=HA,Q=C1,X=null,Ce=ie({},[...D1,...wm,...Am,...Mm,...R1]),ve=null,yi=ie({},[...N1,...Om,...z1,...Zc]),Xe=Object.seal(Br(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ol=null,bi=null,Qn=Object.seal(Br(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),_u=!0,Vr=!0,ku=!1,xu=!0,Xn=!1,Dl=!0,Fn=!1,kt=!1,Rl=!1,Ga=!1,vi=!1,Nl=!1,xt=!0,Zr=!1,Si="user-content-",Va=!0,_e=!1,ca={},$t=null,Za=ie({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Ti=null,zl=ie({},["audio","video","img","source","image","track"]),Kn=null,Cl=ie({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),_i="http://www.w3.org/1998/Math/MathML",fa="http://www.w3.org/2000/svg",fn="http://www.w3.org/1999/xhtml",dn=fn,Jn=!1,Ul=null,ki=ie({},[_i,fa,fn],Em),j=ie({},["mi","mo","mn","ms","mtext"]),Qr=ie({},["annotation-xml"]),ef=ie({},["title","style","font","a","script"]),Dt=null,Lt=["application/xhtml+xml","text/html"],re="text/html",Le=null,de=null,Yl=n.createElement("form"),Eu=function(v){return v instanceof RegExp||v instanceof Function},Qa=function(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(de&&de===v)return;(!v||typeof v!="object")&&(v={}),v=Mt(v),Dt=Lt.indexOf(v.PARSER_MEDIA_TYPE)===-1?re:v.PARSER_MEDIA_TYPE,Le=Dt==="application/xhtml+xml"?Em:gu,X=We(v,"ALLOWED_TAGS")&&Ut(v.ALLOWED_TAGS)?ie({},v.ALLOWED_TAGS,Le):Ce,ve=We(v,"ALLOWED_ATTR")&&Ut(v.ALLOWED_ATTR)?ie({},v.ALLOWED_ATTR,Le):yi,Ul=We(v,"ALLOWED_NAMESPACES")&&Ut(v.ALLOWED_NAMESPACES)?ie({},v.ALLOWED_NAMESPACES,Em):ki,Kn=We(v,"ADD_URI_SAFE_ATTR")&&Ut(v.ADD_URI_SAFE_ATTR)?ie(Mt(Cl),v.ADD_URI_SAFE_ATTR,Le):Cl,Ti=We(v,"ADD_DATA_URI_TAGS")&&Ut(v.ADD_DATA_URI_TAGS)?ie(Mt(zl),v.ADD_DATA_URI_TAGS,Le):zl,$t=We(v,"FORBID_CONTENTS")&&Ut(v.FORBID_CONTENTS)?ie({},v.FORBID_CONTENTS,Le):Za,Ol=We(v,"FORBID_TAGS")&&Ut(v.FORBID_TAGS)?ie({},v.FORBID_TAGS,Le):Mt({}),bi=We(v,"FORBID_ATTR")&&Ut(v.FORBID_ATTR)?ie({},v.FORBID_ATTR,Le):Mt({}),ca=We(v,"USE_PROFILES")?v.USE_PROFILES&&typeof v.USE_PROFILES=="object"?Mt(v.USE_PROFILES):v.USE_PROFILES:!1,_u=v.ALLOW_ARIA_ATTR!==!1,Vr=v.ALLOW_DATA_ATTR!==!1,ku=v.ALLOW_UNKNOWN_PROTOCOLS||!1,xu=v.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Xn=v.SAFE_FOR_TEMPLATES||!1,Dl=v.SAFE_FOR_XML!==!1,Fn=v.WHOLE_DOCUMENT||!1,Ga=v.RETURN_DOM||!1,vi=v.RETURN_DOM_FRAGMENT||!1,Nl=v.RETURN_TRUSTED_TYPE||!1,Rl=v.FORCE_BODY||!1,xt=v.SANITIZE_DOM!==!1,Zr=v.SANITIZE_NAMED_PROPS||!1,Va=v.KEEP_CONTENT!==!1,_e=v.IN_PLACE||!1,Q=AA(v.ALLOWED_URI_REGEXP)?v.ALLOWED_URI_REGEXP:C1,dn=typeof v.NAMESPACE=="string"?v.NAMESPACE:fn,j=We(v,"MATHML_TEXT_INTEGRATION_POINTS")&&v.MATHML_TEXT_INTEGRATION_POINTS&&typeof v.MATHML_TEXT_INTEGRATION_POINTS=="object"?Mt(v.MATHML_TEXT_INTEGRATION_POINTS):ie({},["mi","mo","mn","ms","mtext"]),Qr=We(v,"HTML_INTEGRATION_POINTS")&&v.HTML_INTEGRATION_POINTS&&typeof v.HTML_INTEGRATION_POINTS=="object"?Mt(v.HTML_INTEGRATION_POINTS):ie({},["annotation-xml"]);let M=We(v,"CUSTOM_ELEMENT_HANDLING")&&v.CUSTOM_ELEMENT_HANDLING&&typeof v.CUSTOM_ELEMENT_HANDLING=="object"?Mt(v.CUSTOM_ELEMENT_HANDLING):Br(null);if(Xe=Br(null),We(M,"tagNameCheck")&&Eu(M.tagNameCheck)&&(Xe.tagNameCheck=M.tagNameCheck),We(M,"attributeNameCheck")&&Eu(M.attributeNameCheck)&&(Xe.attributeNameCheck=M.attributeNameCheck),We(M,"allowCustomizedBuiltInElements")&&typeof M.allowCustomizedBuiltInElements=="boolean"&&(Xe.allowCustomizedBuiltInElements=M.allowCustomizedBuiltInElements),Xn&&(Vr=!1),vi&&(Ga=!0),ca&&(X=ie({},R1),ve=Br(null),ca.html===!0&&(ie(X,D1),ie(ve,N1)),ca.svg===!0&&(ie(X,wm),ie(ve,Om),ie(ve,Zc)),ca.svgFilters===!0&&(ie(X,Am),ie(ve,Om),ie(ve,Zc)),ca.mathMl===!0&&(ie(X,Mm),ie(ve,z1),ie(ve,Zc))),Qn.tagCheck=null,Qn.attributeCheck=null,We(v,"ADD_TAGS")&&(typeof v.ADD_TAGS=="function"?Qn.tagCheck=v.ADD_TAGS:Ut(v.ADD_TAGS)&&(X===Ce&&(X=Mt(X)),ie(X,v.ADD_TAGS,Le))),We(v,"ADD_ATTR")&&(typeof v.ADD_ATTR=="function"?Qn.attributeCheck=v.ADD_ATTR:Ut(v.ADD_ATTR)&&(ve===yi&&(ve=Mt(ve)),ie(ve,v.ADD_ATTR,Le))),We(v,"ADD_URI_SAFE_ATTR")&&Ut(v.ADD_URI_SAFE_ATTR)&&ie(Kn,v.ADD_URI_SAFE_ATTR,Le),We(v,"FORBID_CONTENTS")&&Ut(v.FORBID_CONTENTS)&&($t===Za&&($t=Mt($t)),ie($t,v.FORBID_CONTENTS,Le)),We(v,"ADD_FORBID_CONTENTS")&&Ut(v.ADD_FORBID_CONTENTS)&&($t===Za&&($t=Mt($t)),ie($t,v.ADD_FORBID_CONTENTS,Le)),Va&&(X["#text"]=!0),Fn&&ie(X,["html","head","body"]),X.table&&(ie(X,["tbody"]),delete Ol.tbody),v.TRUSTED_TYPES_POLICY){if(typeof v.TRUSTED_TYPES_POLICY.createHTML!="function")throw pu('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof v.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw pu('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');z=v.TRUSTED_TYPES_POLICY,Y=z.createHTML("")}else z===void 0&&(z=qA(T,l)),z!==null&&typeof Y=="string"&&(Y=z.createHTML(""));(I.uponSanitizeElement.length>0||I.uponSanitizeAttribute.length>0)&&X===Ce&&(X=Mt(X)),I.uponSanitizeAttribute.length>0&&ve===yi&&(ve=Mt(ve)),Yt&&Yt(v),de=v},st=ie({},[...wm,...Am,...MA]),hn=ie({},[...Mm,...OA]),mn=function(v){let M=g(v);(!M||!M.tagName)&&(M={namespaceURI:dn,tagName:"template"});let H=gu(v.tagName),Se=gu(M.tagName);return Ul[v.namespaceURI]?v.namespaceURI===fa?M.namespaceURI===fn?H==="svg":M.namespaceURI===_i?H==="svg"&&(Se==="annotation-xml"||j[Se]):!!st[H]:v.namespaceURI===_i?M.namespaceURI===fn?H==="math":M.namespaceURI===fa?H==="math"&&Qr[Se]:!!hn[H]:v.namespaceURI===fn?M.namespaceURI===fa&&!Qr[Se]||M.namespaceURI===_i&&!j[Se]?!1:!hn[H]&&(ef[H]||!st[H]):!!(Dt==="application/xhtml+xml"&&Ul[v.namespaceURI]):!1},ke=function(v){Lr(t.removed,{element:v});try{g(v).removeChild(v)}catch(M){E(v)}},ut=function(v,M){try{Lr(t.removed,{attribute:M.getAttributeNode(v),from:M})}catch(H){Lr(t.removed,{attribute:null,from:M})}if(M.removeAttribute(v),v==="is")if(Ga||vi)try{ke(M)}catch(H){}else try{M.setAttribute(v,"")}catch(H){}},pn=function(v){let M=null,H=null;if(Rl)v="<remove></remove>"+v;else{let Ne=w1(v,/^[\r\n\t ]+/);H=Ne&&Ne[0]}Dt==="application/xhtml+xml"&&dn===fn&&(v='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+v+"</body></html>");let Se=z?z.createHTML(v):v;if(dn===fn)try{M=new p().parseFromString(Se,Dt)}catch(Ne){}if(!M||!M.documentElement){M=J.createDocument(dn,"template",null);try{M.documentElement.innerHTML=Jn?Y:Se}catch(Ne){}}let se=M.body||M.documentElement;return v&&H&&se.insertBefore(n.createTextNode(H),se.childNodes[0]||null),dn===fn?Ye.call(M,Fn?"html":"body")[0]:Fn?M.documentElement:se},Wn=function(v){return W.call(v.ownerDocument||v,v,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT|d.SHOW_PROCESSING_INSTRUCTION|d.SHOW_CDATA_SECTION,null)},wu=function(v){v.normalize();let M=W.call(v.ownerDocument||v,v,d.SHOW_TEXT|d.SHOW_COMMENT|d.SHOW_CDATA_SECTION|d.SHOW_PROCESSING_INSTRUCTION,null),H=M.nextNode();for(;H;){let Se=H.data;Yr([ce,_t,Vn],se=>{Se=Hr(Se,se," ")}),H.data=Se,H=M.nextNode()}},xi=function(v){let M=N?N(v):null;return typeof M!="string"||Le(M)!=="form"?!1:typeof v.nodeName!="string"||typeof v.textContent!="string"||typeof v.removeChild!="function"||v.attributes!==k(v)||typeof v.removeAttribute!="function"||typeof v.setAttribute!="function"||typeof v.namespaceURI!="string"||typeof v.insertBefore!="function"||typeof v.hasChildNodes!="function"||v.nodeType!==x(v)||v.childNodes!==R(v)},zn=function(v){if(!x||typeof v!="object"||v===null)return!1;try{return x(v)===sa.documentFragment}catch(M){return!1}},Ll=function(v){if(!x||typeof v!="object"||v===null)return!1;try{return typeof x(v)=="number"}catch(M){return!1}};function Cn(Z,v,M){Yr(Z,H=>{H.call(t,v,M,de)})}let da=function(v){let M=null;if(Cn(I.beforeSanitizeElements,v,null),xi(v))return ke(v),!0;let H=Le(v.nodeName);if(Cn(I.uponSanitizeElement,v,{tagName:H,allowedTags:X}),Dl&&v.hasChildNodes()&&!Ll(v.firstElementChild)&&Tt(/<[/\w!]/g,v.innerHTML)&&Tt(/<[/\w!]/g,v.textContent)||Dl&&v.namespaceURI===fn&&H==="style"&&Ll(v.firstElementChild)||v.nodeType===sa.progressingInstruction||Dl&&v.nodeType===sa.comment&&Tt(/<[/\w]/g,v.data))return ke(v),!0;if(Ol[H]||!(Qn.tagCheck instanceof Function&&Qn.tagCheck(H))&&!X[H]){if(!Ol[H]&&Mu(H)&&(Xe.tagNameCheck instanceof RegExp&&Tt(Xe.tagNameCheck,H)||Xe.tagNameCheck instanceof Function&&Xe.tagNameCheck(H)))return!1;if(Va&&!$t[H]){let se=g(v),Ne=R(v);if(Ne&&se){let Ht=Ne.length;for(let gn=Ht-1;gn>=0;--gn){let It=_(Ne[gn],!0);se.insertBefore(It,w(v))}}}return ke(v),!0}return(x?x(v):v.nodeType)===sa.element&&!mn(v)||(H==="noscript"||H==="noembed"||H==="noframes")&&Tt(/<\/no(script|embed|frames)/i,v.innerHTML)?(ke(v),!0):(Xn&&v.nodeType===sa.text&&(M=v.textContent,Yr([ce,_t,Vn],se=>{M=Hr(M,se," ")}),v.textContent!==M&&(Lr(t.removed,{element:v.cloneNode()}),v.textContent=M)),Cn(I.afterSanitizeElements,v,null),!1)},Xa=function(v,M,H){if(bi[M]||xt&&(M==="id"||M==="name")&&(H in n||H in Yl))return!1;let Se=ve[M]||Qn.attributeCheck instanceof Function&&Qn.attributeCheck(M,v);if(!(Vr&&!bi[M]&&Tt(pt,M))){if(!(_u&&Tt(Rn,M))){if(!Se||bi[M]){if(!(Mu(v)&&(Xe.tagNameCheck instanceof RegExp&&Tt(Xe.tagNameCheck,v)||Xe.tagNameCheck instanceof Function&&Xe.tagNameCheck(v))&&(Xe.attributeNameCheck instanceof RegExp&&Tt(Xe.attributeNameCheck,M)||Xe.attributeNameCheck instanceof Function&&Xe.attributeNameCheck(M,v))||M==="is"&&Xe.allowCustomizedBuiltInElements&&(Xe.tagNameCheck instanceof RegExp&&Tt(Xe.tagNameCheck,H)||Xe.tagNameCheck instanceof Function&&Xe.tagNameCheck(H))))return!1}else if(!Kn[M]){if(!Tt(Q,Hr(H,ja,""))){if(!((M==="src"||M==="xlink:href"||M==="href")&&v!=="script"&&A1(H,"data:")===0&&Ti[v])){if(!(ku&&!Tt(Nn,Hr(H,ja,"")))){if(H)return!1}}}}}}return!0},Au=ie({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Mu=function(v){return!Au[gu(v)]&&Tt(Zn,v)},Ou=function(v){Cn(I.beforeSanitizeAttributes,v,null);let M=v.attributes;if(!M||xi(v))return;let H={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ve,forceKeepAttr:void 0},Se=M.length;for(;Se--;){let se=M[Se],Ne=se.name,Ht=se.namespaceURI,gn=se.value,It=Le(Ne),wi=gn,$e=Ne==="value"?wi:TA(wi);if(H.attrName=It,H.attrValue=$e,H.keepAttr=!0,H.forceKeepAttr=void 0,Cn(I.uponSanitizeAttribute,v,H),$e=H.attrValue,Zr&&(It==="id"||It==="name")&&A1($e,Si)!==0&&(ut(Ne,v),$e=Si+$e),Dl&&Tt(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,$e)){ut(Ne,v);continue}if(It==="attributename"&&w1($e,"href")){ut(Ne,v);continue}if(H.forceKeepAttr)continue;if(!H.keepAttr){ut(Ne,v);continue}if(!xu&&Tt(/\/>/i,$e)){ut(Ne,v);continue}Xn&&Yr([ce,_t,Vn],Ru=>{$e=Hr($e,Ru," ")});let Du=Le(v.nodeName);if(!Xa(Du,It,$e)){ut(Ne,v);continue}if(z&&typeof T=="object"&&typeof T.getAttributeType=="function"&&!Ht)switch(T.getAttributeType(Du,It)){case"TrustedHTML":{$e=z.createHTML($e);break}case"TrustedScriptURL":{$e=z.createScriptURL($e);break}}if($e!==wi)try{Ht?v.setAttributeNS(Ht,Ne,$e):v.setAttribute(Ne,$e),xi(v)?ke(v):E1(t.removed)}catch(Ru){ut(Ne,v)}}Cn(I.afterSanitizeAttributes,v,null)},Ei=function(v){let M=null,H=Wn(v);for(Cn(I.beforeSanitizeShadowDOM,v,null);M=H.nextNode();)if(Cn(I.uponSanitizeShadowNode,M,null),da(M),Ou(M),zn(M.content)&&Ei(M.content),(x?x(M):M.nodeType)===sa.element){let se=b?b(M):M.shadowRoot;zn(se)&&(Oe(se),Ei(se))}Cn(I.afterSanitizeShadowDOM,v,null)},Oe=function(v){let M=x?x(v):v.nodeType;if(M===sa.element){let se=b?b(v):v.shadowRoot;zn(se)&&(Oe(se),Ei(se))}let H=R?R(v):v.childNodes;if(!H)return;let Se=[];Yr(H,se=>{Lr(Se,se)});for(let se of Se)Oe(se);if(M===sa.element){let se=N?N(v):null;if(typeof se=="string"&&Le(se)==="template"){let Ne=v.content;zn(Ne)&&Oe(Ne)}}};return t.sanitize=function(Z){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},M=null,H=null,Se=null,se=null;if(Jn=!Z,Jn&&(Z="<!-->"),typeof Z!="string"&&!Ll(Z)&&(Z=wA(Z),typeof Z!="string"))throw pu("dirty is not a string, aborting");if(!t.isSupported)return Z;if(kt||Qa(v),t.removed=[],typeof Z=="string"&&(_e=!1),_e){let gn=N?N(Z):Z.nodeName;if(typeof gn=="string"){let It=Le(gn);if(!X[It]||Ol[It])throw pu("root node is forbidden and cannot be sanitized in-place")}if(xi(Z))throw pu("root node is clobbered and cannot be sanitized in-place");Oe(Z)}else if(Ll(Z))M=pn("<!---->"),H=M.ownerDocument.importNode(Z,!0),H.nodeType===sa.element&&H.nodeName==="BODY"||H.nodeName==="HTML"?M=H:M.appendChild(H),Oe(H);else{if(!Ga&&!Xn&&!Fn&&Z.indexOf("<")===-1)return z&&Nl?z.createHTML(Z):Z;if(M=pn(Z),!M)return Ga?null:Nl?Y:""}M&&Rl&&ke(M.firstChild);let Ne=Wn(_e?Z:M);for(;Se=Ne.nextNode();)da(Se),Ou(Se),zn(Se.content)&&Ei(Se.content);if(_e)return Xn&&wu(Z),Z;if(Ga){if(Xn&&wu(M),vi)for(se=be.call(M.ownerDocument);M.firstChild;)se.appendChild(M.firstChild);else se=M;return(ve.shadowroot||ve.shadowrootmode)&&(se=Fe.call(a,se,!0)),se}let Ht=Fn?M.outerHTML:M.innerHTML;return Fn&&X["!doctype"]&&M.ownerDocument&&M.ownerDocument.doctype&&M.ownerDocument.doctype.name&&Tt(LA,M.ownerDocument.doctype.name)&&(Ht="<!DOCTYPE "+M.ownerDocument.doctype.name+">\n"+Ht),Xn&&Yr([ce,_t,Vn],gn=>{Ht=Hr(Ht,gn," ")}),z&&Nl?z.createHTML(Ht):Ht},t.setConfig=function(){let Z=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Qa(Z),kt=!0},t.clearConfig=function(){de=null,kt=!1},t.isValidAttribute=function(Z,v,M){de||Qa({});let H=Le(Z),Se=Le(v);return Xa(H,Se,M)},t.addHook=function(Z,v){typeof v=="function"&&Lr(I[Z],v)},t.removeHook=function(Z,v){if(v!==void 0){let M=vA(I[Z],v);return M===-1?void 0:SA(I[Z],M,1)[0]}return E1(I[Z])},t.removeHooks=function(Z){I[Z]=[]},t.removeAllHooks=function(){I=U1()},t}var B1=H1();function Um(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var mi=Um();function F1(e){mi=e}var di={exec:()=>null};function qr(e){let t=[];return n=>{let a=Math.max(0,Math.min(3,n-1)),l=t[a];return l||(l=e(a),t[a]=l),l}}function ge(e,t=""){let n=typeof e=="string"?e:e.source,a={replace:(l,i)=>{let u=typeof i=="string"?i:i.source;return u=u.replace(Ot.caret,"$1"),n=n.replace(l,u),a},getRegex:()=>new RegExp(n,t)};return a}var jA=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch(t){return!1}})(),Ot={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp("^( {0,3}".concat(e,")((?:[ ][^\\n]*)?(?:\\n|$))")),nextBulletRegex:qr(e=>new RegExp("^ {0,".concat(e,"}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))"))),hrRegex:qr(e=>new RegExp("^ {0,".concat(e,"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"))),fencesBeginRegex:qr(e=>new RegExp("^ {0,".concat(e,"}(?:```|~~~)"))),headingBeginRegex:qr(e=>new RegExp("^ {0,".concat(e,"}#"))),htmlBeginRegex:qr(e=>new RegExp("^ {0,".concat(e,"}<(?:[a-z].*>|!--)"),"i")),blockquoteBeginRegex:qr(e=>new RegExp("^ {0,".concat(e,"}>")))},GA=/^(?:[ \t]*(?:\n|$))+/,VA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ZA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,vu=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,QA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ym=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,K1=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,J1=ge(K1).replace(/bull/g,Ym).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),XA=ge(K1).replace(/bull/g,Ym).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Lm=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,FA=/^[^\n]+/,Hm=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,KA=ge(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Hm).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),JA=ge(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ym).getRegex(),Wc="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Bm=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,WA=ge("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Bm).replace("tag",Wc).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),W1=ge(Lm).replace("hr",vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wc).getRegex(),$A=ge(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",W1).getRegex(),qm={blockquote:$A,code:VA,def:KA,fences:ZA,heading:QA,hr:vu,html:WA,lheading:J1,list:JA,newline:GA,paragraph:W1,table:di,text:FA},q1=ge("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wc).getRegex(),IA=$(B({},qm),{lheading:XA,table:q1,paragraph:ge(Lm).replace("hr",vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",q1).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wc).getRegex()}),PA=$(B({},qm),{html:ge("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Bm).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:di,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ge(Lm).replace("hr",vu).replace("heading"," *#{1,6} *[^\n]").replace("lheading",J1).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),e2=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,t2=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,$1=/^( {2,}|\\)\n(?!\s*$)/,n2=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,jr=/[\p{P}\p{S}]/u,$c=/[\s\p{P}\p{S}]/u,jm=/[^\s\p{P}\p{S}]/u,a2=ge(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,$c).getRegex(),I1=/(?!~)[\p{P}\p{S}]/u,l2=/(?!~)[\s\p{P}\p{S}]/u,i2=/(?:[^\s\p{P}\p{S}]|~)/u,r2=ge(/link|precode-code|html/,"g").replace("link",new RegExp("\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)")).replace("precode-",jA?"(?<!`)()":"(^^|[^`])").replace("code",new RegExp("(?<b>`+)[^`]+\\k<b>(?!`)")).replace("html",/<(?! )[^<>]*?>/).getRegex(),P1=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,s2=ge(P1,"u").replace(/punct/g,jr).getRegex(),u2=ge(P1,"u").replace(/punct/g,I1).getRegex(),eS="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",o2=ge(eS,"gu").replace(/notPunctSpace/g,jm).replace(/punctSpace/g,$c).replace(/punct/g,jr).getRegex(),c2=ge(eS,"gu").replace(/notPunctSpace/g,i2).replace(/punctSpace/g,l2).replace(/punct/g,I1).getRegex(),f2=ge("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,jm).replace(/punctSpace/g,$c).replace(/punct/g,jr).getRegex(),d2=ge(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,jr).getRegex(),h2="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",m2=ge(h2,"gu").replace(/notPunctSpace/g,jm).replace(/punctSpace/g,$c).replace(/punct/g,jr).getRegex(),p2=ge(/\\(punct)/,"gu").replace(/punct/g,jr).getRegex(),g2=ge(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),y2=ge(Bm).replace("(?:-->|$)","-->").getRegex(),b2=ge("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",y2).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Fc=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,v2=ge(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Fc).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),tS=ge(/^!?\[(label)\]\[(ref)\]/).replace("label",Fc).replace("ref",Hm).getRegex(),nS=ge(/^!?\[(ref)\](?:\[\])?/).replace("ref",Hm).getRegex(),S2=ge("reflink|nolink(?!\\()","g").replace("reflink",tS).replace("nolink",nS).getRegex(),j1=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Gm={_backpedal:di,anyPunctuation:p2,autolink:g2,blockSkip:r2,br:$1,code:t2,del:di,delLDelim:di,delRDelim:di,emStrongLDelim:s2,emStrongRDelimAst:o2,emStrongRDelimUnd:f2,escape:e2,link:v2,nolink:nS,punctuation:a2,reflink:tS,reflinkSearch:S2,tag:b2,text:n2,url:di},T2=$(B({},Gm),{link:ge(/^!?\[(label)\]\((.*?)\)/).replace("label",Fc).getRegex(),reflink:ge(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Fc).getRegex()}),Nm=$(B({},Gm),{emStrongRDelimAst:c2,emStrongLDelim:u2,delLDelim:d2,delRDelim:m2,url:ge(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",j1).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:ge(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",j1).getRegex()}),_2=$(B({},Nm),{br:ge($1).replace("{2,}","*").getRegex(),text:ge(Nm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),Qc={normal:qm,gfm:IA,pedantic:PA},yu={normal:Gm,gfm:Nm,breaks:_2,pedantic:T2},k2={"&":"&","<":"<",">":">",'"':""","'":"'"},G1=e=>k2[e];function oa(e,t){if(t){if(Ot.escapeTest.test(e))return e.replace(Ot.escapeReplace,G1)}else if(Ot.escapeTestNoEncode.test(e))return e.replace(Ot.escapeReplaceNoEncode,G1);return e}function V1(e){try{e=encodeURI(e).replace(Ot.percentDecode,"%")}catch(t){return null}return e}function Z1(e,t){var i;let n=e.replace(Ot.findPipe,(u,c,d)=>{let m=!1,p=c;for(;--p>=0&&d[p]==="\\";)m=!m;return m?"|":" |"}),a=n.split(Ot.splitPipe),l=0;if(a[0].trim()||a.shift(),a.length>0&&!((i=a.at(-1))!=null&&i.trim())&&a.pop(),t)if(a.length>t)a.splice(t);else for(;a.length<t;)a.push("");for(;l<a.length;l++)a[l]=a[l].trim().replace(Ot.slashPipe,"|");return a}function wl(e,t,n){let a=e.length;if(a===0)return"";let l=0;for(;l<a;){let i=e.charAt(a-l-1);if(i===t&&!n)l++;else if(i!==t&&n)l++;else break}return e.slice(0,a-l)}function Q1(e){let t=e.split("\n"),n=t.length-1;for(;n>=0&&Ot.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join("\n")}function x2(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let a=0;a<e.length;a++)if(e[a]==="\\")a++;else if(e[a]===t[0])n++;else if(e[a]===t[1]&&(n--,n<0))return a;return n>0?-2:-1}function E2(e,t=0){let n=t,a="";for(let l of e)if(l===" "){let i=4-n%4;a+=" ".repeat(i),n+=i}else a+=l,n++;return a}function X1(e,t,n,a,l){let i=t.href,u=t.title||null,c=e[1].replace(l.other.outputLinkReplace,"$1");a.state.inLink=!0;let d={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:i,title:u,text:c,tokens:a.inlineTokens(c)};return a.state.inLink=!1,d}function w2(e,t,n){let a=e.match(n.other.indentCodeCompensation);if(a===null)return t;let l=a[1];return t.split("\n").map(i=>{let u=i.match(n.other.beginningSpace);if(u===null)return i;let[c]=u;return c.length>=l.length?i.slice(l.length):i}).join("\n")}var Kc=class{constructor(e){K(this,"options");K(this,"rules");K(this,"lexer");this.options=e||mi}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:Q1(t[0]),a=n.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n,codeBlockStyle:"indented",text:a}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],a=w2(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:a}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let a=wl(n,"#");(this.options.pedantic||!a||this.rules.other.endingSpaceChar.test(a))&&(n=a.trim())}return{type:"heading",raw:wl(t[0],"\n"),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:wl(t[0],"\n")}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=wl(t[0],"\n").split("\n"),a="",l="",i=[];for(;n.length>0;){let u=!1,c=[],d;for(d=0;d<n.length;d++)if(this.rules.other.blockquoteStart.test(n[d]))c.push(n[d]),u=!0;else if(!u)c.push(n[d]);else break;n=n.slice(d);let m=c.join("\n"),p=m.replace(this.rules.other.blockquoteSetextReplace,"\n $1").replace(this.rules.other.blockquoteSetextReplace2,"");a=a?"".concat(a,"\n").concat(m):m,l=l?"".concat(l,"\n").concat(p):p;let T=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=T,n.length===0)break;let y=i.at(-1);if((y==null?void 0:y.type)==="code")break;if((y==null?void 0:y.type)==="blockquote"){let _=y,E=_.raw+"\n"+n.join("\n"),w=this.blockquote(E);i[i.length-1]=w,a=a.substring(0,a.length-_.raw.length)+w.raw,l=l.substring(0,l.length-_.text.length)+w.text;break}else if((y==null?void 0:y.type)==="list"){let _=y,E=_.raw+"\n"+n.join("\n"),w=this.list(E);i[i.length-1]=w,a=a.substring(0,a.length-y.raw.length)+w.raw,l=l.substring(0,l.length-_.raw.length)+w.raw,n=E.substring(i.at(-1).raw.length).split("\n");continue}}return{type:"blockquote",raw:a,tokens:i,text:l}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),a=n.length>1,l={type:"list",raw:"",ordered:a,start:a?+n.slice(0,-1):"",loose:!1,items:[]};n=a?"\\d{1,9}\\".concat(n.slice(-1)):"\\".concat(n),this.options.pedantic&&(n=a?n:"[*+-]");let i=this.rules.other.listItemRegex(n),u=!1;for(;e;){let d=!1,m="",p="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;m=t[0],e=e.substring(m.length);let T=E2(t[2].split("\n",1)[0],t[1].length),y=e.split("\n",1)[0],_=!T.trim(),E=0;if(this.options.pedantic?(E=2,p=T.trimStart()):_?E=t[1].length+1:(E=T.search(this.rules.other.nonSpaceChar),E=E>4?1:E,p=T.slice(E),E+=t[1].length),_&&this.rules.other.blankLine.test(y)&&(m+=y+"\n",e=e.substring(y.length+1),d=!0),!d){let w=this.rules.other.nextBulletRegex(E),R=this.rules.other.hrRegex(E),g=this.rules.other.fencesBeginRegex(E),b=this.rules.other.headingBeginRegex(E),k=this.rules.other.htmlBeginRegex(E),x=this.rules.other.blockquoteBeginRegex(E);for(;e;){let N=e.split("\n",1)[0],z;if(y=N,this.options.pedantic?(y=y.replace(this.rules.other.listReplaceNesting," "),z=y):z=y.replace(this.rules.other.tabCharGlobal," "),g.test(y)||b.test(y)||k.test(y)||x.test(y)||w.test(y)||R.test(y))break;if(z.search(this.rules.other.nonSpaceChar)>=E||!y.trim())p+="\n"+z.slice(E);else{if(_||T.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||g.test(T)||b.test(T)||R.test(T))break;p+="\n"+y}_=!y.trim(),m+=N+"\n",e=e.substring(N.length+1),T=z.slice(E)}}l.loose||(u?l.loose=!0:this.rules.other.doubleBlankLine.test(m)&&(u=!0)),l.items.push({type:"list_item",raw:m,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]}),l.raw+=m}let c=l.items.at(-1);if(c)c.raw=c.raw.trimEnd(),c.text=c.text.trimEnd();else return;l.raw=l.raw.trimEnd();for(let d of l.items){this.lexer.state.top=!1,d.tokens=this.lexer.blockTokens(d.text,[]);let m=d.tokens[0];if(d.task&&((m==null?void 0:m.type)==="text"||(m==null?void 0:m.type)==="paragraph")){d.text=d.text.replace(this.rules.other.listReplaceTask,""),m.raw=m.raw.replace(this.rules.other.listReplaceTask,""),m.text=m.text.replace(this.rules.other.listReplaceTask,"");for(let T=this.lexer.inlineQueue.length-1;T>=0;T--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[T].src)){this.lexer.inlineQueue[T].src=this.lexer.inlineQueue[T].src.replace(this.rules.other.listReplaceTask,"");break}let p=this.rules.other.listTaskCheckbox.exec(d.raw);if(p){let T={type:"checkbox",raw:p[0]+" ",checked:p[0]!=="[ ]"};d.checked=T.checked,l.loose?d.tokens[0]&&["paragraph","text"].includes(d.tokens[0].type)&&"tokens"in d.tokens[0]&&d.tokens[0].tokens?(d.tokens[0].raw=T.raw+d.tokens[0].raw,d.tokens[0].text=T.raw+d.tokens[0].text,d.tokens[0].tokens.unshift(T)):d.tokens.unshift({type:"paragraph",raw:T.raw,text:T.raw,tokens:[T]}):d.tokens.unshift(T)}}else d.task&&(d.task=!1);if(!l.loose){let p=d.tokens.filter(y=>y.type==="space"),T=p.length>0&&p.some(y=>this.rules.other.anyLine.test(y.raw));l.loose=T}}if(l.loose)for(let d of l.items){d.loose=!0;for(let m of d.tokens)m.type==="text"&&(m.type="paragraph")}return l}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=Q1(t[0]);return{type:"html",block:!0,raw:n,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),a=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",l=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:wl(t[0],"\n"),href:a,title:l}}}table(e){var u;let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Z1(t[1]),a=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),l=(u=t[3])!=null&&u.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split("\n"):[],i={type:"table",raw:wl(t[0],"\n"),header:[],align:[],rows:[]};if(n.length===a.length){for(let c of a)this.rules.other.tableAlignRight.test(c)?i.align.push("right"):this.rules.other.tableAlignCenter.test(c)?i.align.push("center"):this.rules.other.tableAlignLeft.test(c)?i.align.push("left"):i.align.push(null);for(let c=0;c<n.length;c++)i.header.push({text:n[c],tokens:this.lexer.inline(n[c]),header:!0,align:i.align[c]});for(let c of l)i.rows.push(Z1(c,i.header.length).map((d,m)=>({text:d,tokens:this.lexer.inline(d),header:!1,align:i.align[m]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:wl(t[0],"\n"),depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)==="\n"?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let i=wl(n.slice(0,-1),"\\");if((n.length-i.length)%2===0)return}else{let i=x2(t[2],"()");if(i===-2)return;if(i>-1){let u=(t[0].indexOf("!")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,u).trim(),t[3]=""}}let a=t[2],l="";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(a);i&&(a=i[1],l=i[3])}else l=t[3]?t[3].slice(1,-1):"";return a=a.trim(),this.rules.other.startAngleBracket.test(a)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?a=a.slice(1):a=a.slice(1,-1)),X1(t,{href:a&&a.replace(this.rules.inline.anyPunctuation,"$1"),title:l&&l.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let a=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),l=t[a.toLowerCase()];if(!l){let i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return X1(n,l,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let a=this.rules.inline.emStrongLDelim.exec(e);if(!(!a||!a[1]&&!a[2]&&!a[3]&&!a[4]||a[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(a[1]||a[3])||!n||this.rules.inline.punctuation.exec(n))){let l=[...a[0]].length-1,i,u,c=l,d=0,m=a[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(m.lastIndex=0,t=t.slice(-1*e.length+l);(a=m.exec(t))!==null;){if(i=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!i)continue;if(u=[...i].length,a[3]||a[4]){c+=u;continue}else if((a[5]||a[6])&&l%3&&!((l+u)%3)){d+=u;continue}if(c-=u,c>0)continue;u=Math.min(u,u+c+d);let p=[...a[0]][0].length,T=e.slice(0,l+a.index+p+u);if(Math.min(l,u)%2){let _=T.slice(1,-1);return{type:"em",raw:T,text:_,tokens:this.lexer.inlineTokens(_)}}let y=T.slice(2,-2);return{type:"strong",raw:T,text:y,tokens:this.lexer.inlineTokens(y)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),a=this.rules.other.nonSpaceChar.test(n),l=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return a&&l&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let a=this.rules.inline.delLDelim.exec(e);if(a&&(!a[1]||!n||this.rules.inline.punctuation.exec(n))){let l=[...a[0]].length-1,i,u,c=l,d=this.rules.inline.delRDelim;for(d.lastIndex=0,t=t.slice(-1*e.length+l);(a=d.exec(t))!==null;){if(i=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!i||(u=[...i].length,u!==l))continue;if(a[3]||a[4]){c+=u;continue}if(c-=u,c>0)continue;u=Math.min(u,u+c);let m=[...a[0]][0].length,p=e.slice(0,l+a.index+m+u),T=p.slice(l,-l);return{type:"del",raw:p,text:T,tokens:this.lexer.inlineTokens(T)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,a;return t[2]==="@"?(n=t[1],a="mailto:"+n):(n=t[1],a=n),{type:"link",raw:t[0],text:n,href:a,tokens:[{type:"text",raw:n,text:n}]}}}url(e){var n,a;let t;if(t=this.rules.inline.url.exec(e)){let l,i;if(t[2]==="@")l=t[0],i="mailto:"+l;else{let u;do u=t[0],t[0]=(a=(n=this.rules.inline._backpedal.exec(t[0]))==null?void 0:n[0])!=null?a:"";while(u!==t[0]);l=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:l,href:i,tokens:[{type:"text",raw:l,text:l}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},jn=class zm{constructor(t){K(this,"tokens");K(this,"options");K(this,"state");K(this,"inlineQueue");K(this,"tokenizer");this.tokens=[],this.tokens.links=Object.create(null),this.options=t||mi,this.options.tokenizer=this.options.tokenizer||new Kc,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:Ot,block:Qc.normal,inline:yu.normal};this.options.pedantic?(n.block=Qc.pedantic,n.inline=yu.pedantic):this.options.gfm&&(n.block=Qc.gfm,this.options.breaks?n.inline=yu.breaks:n.inline=yu.gfm),this.tokenizer.rules=n}static get rules(){return{block:Qc,inline:yu}}static lex(t,n){return new zm(n).lex(t)}static lexInline(t,n){return new zm(n).inlineTokens(t)}lex(t){t=t.replace(Ot.carriageReturn,"\n"),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let a=this.inlineQueue[n];this.inlineTokens(a.src,a.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],a=!1){var i,u,c;this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(Ot.tabCharGlobal," ").replace(Ot.spaceLine,""));let l=1/0;for(;t;){if(t.length<l)l=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let d;if((u=(i=this.options.extensions)==null?void 0:i.block)!=null&&u.some(p=>(d=p.call({lexer:this},t,n))?(t=t.substring(d.raw.length),n.push(d),!0):!1))continue;if(d=this.tokenizer.space(t)){t=t.substring(d.raw.length);let p=n.at(-1);d.raw.length===1&&p!==void 0?p.raw+="\n":n.push(d);continue}if(d=this.tokenizer.code(t)){t=t.substring(d.raw.length);let p=n.at(-1);(p==null?void 0:p.type)==="paragraph"||(p==null?void 0:p.type)==="text"?(p.raw+=(p.raw.endsWith("\n")?"":"\n")+d.raw,p.text+="\n"+d.text,this.inlineQueue.at(-1).src=p.text):n.push(d);continue}if(d=this.tokenizer.fences(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.heading(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.hr(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.blockquote(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.list(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.html(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.def(t)){t=t.substring(d.raw.length);let p=n.at(-1);(p==null?void 0:p.type)==="paragraph"||(p==null?void 0:p.type)==="text"?(p.raw+=(p.raw.endsWith("\n")?"":"\n")+d.raw,p.text+="\n"+d.raw,this.inlineQueue.at(-1).src=p.text):this.tokens.links[d.tag]||(this.tokens.links[d.tag]={href:d.href,title:d.title},n.push(d));continue}if(d=this.tokenizer.table(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.lheading(t)){t=t.substring(d.raw.length),n.push(d);continue}let m=t;if((c=this.options.extensions)!=null&&c.startBlock){let p=1/0,T=t.slice(1),y;this.options.extensions.startBlock.forEach(_=>{y=_.call({lexer:this},T),typeof y=="number"&&y>=0&&(p=Math.min(p,y))}),p<1/0&&p>=0&&(m=t.substring(0,p+1))}if(this.state.top&&(d=this.tokenizer.paragraph(m))){let p=n.at(-1);a&&(p==null?void 0:p.type)==="paragraph"?(p.raw+=(p.raw.endsWith("\n")?"":"\n")+d.raw,p.text+="\n"+d.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=p.text):n.push(d),a=m.length!==t.length,t=t.substring(d.raw.length);continue}if(d=this.tokenizer.text(t)){t=t.substring(d.raw.length);let p=n.at(-1);(p==null?void 0:p.type)==="text"?(p.raw+=(p.raw.endsWith("\n")?"":"\n")+d.raw,p.text+="\n"+d.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=p.text):n.push(d);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){var m,p,T,y,_,E;this.tokenizer.lexer=this;let a=t,l=null;if(this.tokens.links){let w=Object.keys(this.tokens.links);if(w.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(a))!==null;)w.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(a))!==null;)a=a.slice(0,l.index)+"++"+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(l=this.tokenizer.rules.inline.blockSkip.exec(a))!==null;)i=l[2]?l[2].length:0,a=a.slice(0,l.index+i)+"["+"a".repeat(l[0].length-i-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);a=(T=(p=(m=this.options.hooks)==null?void 0:m.emStrongMask)==null?void 0:p.call({lexer:this},a))!=null?T:a;let u=!1,c="",d=1/0;for(;t;){if(t.length<d)d=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}u||(c=""),u=!1;let w;if((_=(y=this.options.extensions)==null?void 0:y.inline)!=null&&_.some(g=>(w=g.call({lexer:this},t,n))?(t=t.substring(w.raw.length),n.push(w),!0):!1))continue;if(w=this.tokenizer.escape(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.tag(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.link(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(w.raw.length);let g=n.at(-1);w.type==="text"&&(g==null?void 0:g.type)==="text"?(g.raw+=w.raw,g.text+=w.text):n.push(w);continue}if(w=this.tokenizer.emStrong(t,a,c)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.codespan(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.br(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.del(t,a,c)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.autolink(t)){t=t.substring(w.raw.length),n.push(w);continue}if(!this.state.inLink&&(w=this.tokenizer.url(t))){t=t.substring(w.raw.length),n.push(w);continue}let R=t;if((E=this.options.extensions)!=null&&E.startInline){let g=1/0,b=t.slice(1),k;this.options.extensions.startInline.forEach(x=>{k=x.call({lexer:this},b),typeof k=="number"&&k>=0&&(g=Math.min(g,k))}),g<1/0&&g>=0&&(R=t.substring(0,g+1))}if(w=this.tokenizer.inlineText(R)){t=t.substring(w.raw.length),w.raw.slice(-1)!=="_"&&(c=w.raw.slice(-1)),u=!0;let g=n.at(-1);(g==null?void 0:g.type)==="text"?(g.raw+=w.raw,g.text+=w.text):n.push(w);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return n}infiniteLoopError(t){let n="Infinite loop on byte: "+t;if(this.options.silent)console.error(n);else throw new Error(n)}},Jc=class{constructor(e){K(this,"options");K(this,"parser");this.options=e||mi}space(e){return""}code({text:e,lang:t,escaped:n}){var i;let a=(i=(t||"").match(Ot.notSpaceStart))==null?void 0:i[0],l=e.replace(Ot.endingNewline,"")+"\n";return a?'<pre><code class="language-'+oa(a)+'">'+(n?l:oa(l,!0))+"</code></pre>\n":"<pre><code>"+(n?l:oa(l,!0))+"</code></pre>\n"}blockquote({tokens:e}){return"<blockquote>\n".concat(this.parser.parse(e),"</blockquote>\n")}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return"<h".concat(t,">").concat(this.parser.parseInline(e),"</h").concat(t,">\n")}hr(e){return"<hr>\n"}list(e){let t=e.ordered,n=e.start,a="";for(let u=0;u<e.items.length;u++){let c=e.items[u];a+=this.listitem(c)}let l=t?"ol":"ul",i=t&&n!==1?' start="'+n+'"':"";return"<"+l+i+">\n"+a+"</"+l+">\n"}listitem(e){return"<li>".concat(this.parser.parse(e.tokens),"</li>\n")}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return"<p>".concat(this.parser.parseInline(e),"</p>\n")}table(e){let t="",n="";for(let l=0;l<e.header.length;l++)n+=this.tablecell(e.header[l]);t+=this.tablerow({text:n});let a="";for(let l=0;l<e.rows.length;l++){let i=e.rows[l];n="";for(let u=0;u<i.length;u++)n+=this.tablecell(i[u]);a+=this.tablerow({text:n})}return a&&(a="<tbody>".concat(a,"</tbody>")),"<table>\n<thead>\n"+t+"</thead>\n"+a+"</table>\n"}tablerow({text:e}){return"<tr>\n".concat(e,"</tr>\n")}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?"<".concat(n,' align="').concat(e.align,'">'):"<".concat(n,">"))+t+"</".concat(n,">\n")}strong({tokens:e}){return"<strong>".concat(this.parser.parseInline(e),"</strong>")}em({tokens:e}){return"<em>".concat(this.parser.parseInline(e),"</em>")}codespan({text:e}){return"<code>".concat(oa(e,!0),"</code>")}br(e){return"<br>"}del({tokens:e}){return"<del>".concat(this.parser.parseInline(e),"</del>")}link({href:e,title:t,tokens:n}){let a=this.parser.parseInline(n),l=V1(e);if(l===null)return a;e=l;let i='<a href="'+e+'"';return t&&(i+=' title="'+oa(t)+'"'),i+=">"+a+"</a>",i}image({href:e,title:t,text:n,tokens:a}){a&&(n=this.parser.parseInline(a,this.parser.textRenderer));let l=V1(e);if(l===null)return oa(n);e=l;let i='<img src="'.concat(e,'" alt="').concat(oa(n),'"');return t&&(i+=' title="'.concat(oa(t),'"')),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:oa(e.text)}},Vm=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},Gn=class Cm{constructor(t){K(this,"options");K(this,"renderer");K(this,"textRenderer");this.options=t||mi,this.options.renderer=this.options.renderer||new Jc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Vm}static parse(t,n){return new Cm(n).parse(t)}static parseInline(t,n){return new Cm(n).parseInline(t)}parse(t){var a,l;this.renderer.parser=this;let n="";for(let i=0;i<t.length;i++){let u=t[i];if((l=(a=this.options.extensions)==null?void 0:a.renderers)!=null&&l[u.type]){let d=u,m=this.options.extensions.renderers[d.type].call({parser:this},d);if(m!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(d.type)){n+=m||"";continue}}let c=u;switch(c.type){case"space":{n+=this.renderer.space(c);break}case"hr":{n+=this.renderer.hr(c);break}case"heading":{n+=this.renderer.heading(c);break}case"code":{n+=this.renderer.code(c);break}case"table":{n+=this.renderer.table(c);break}case"blockquote":{n+=this.renderer.blockquote(c);break}case"list":{n+=this.renderer.list(c);break}case"checkbox":{n+=this.renderer.checkbox(c);break}case"html":{n+=this.renderer.html(c);break}case"def":{n+=this.renderer.def(c);break}case"paragraph":{n+=this.renderer.paragraph(c);break}case"text":{n+=this.renderer.text(c);break}default:{let d='Token with "'+c.type+'" type was not found.';if(this.options.silent)return console.error(d),"";throw new Error(d)}}}return n}parseInline(t,n=this.renderer){var l,i;this.renderer.parser=this;let a="";for(let u=0;u<t.length;u++){let c=t[u];if((i=(l=this.options.extensions)==null?void 0:l.renderers)!=null&&i[c.type]){let m=this.options.extensions.renderers[c.type].call({parser:this},c);if(m!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(c.type)){a+=m||"";continue}}let d=c;switch(d.type){case"escape":{a+=n.text(d);break}case"html":{a+=n.html(d);break}case"link":{a+=n.link(d);break}case"image":{a+=n.image(d);break}case"checkbox":{a+=n.checkbox(d);break}case"strong":{a+=n.strong(d);break}case"em":{a+=n.em(d);break}case"codespan":{a+=n.codespan(d);break}case"br":{a+=n.br(d);break}case"del":{a+=n.del(d);break}case"text":{a+=n.text(d);break}default:{let m='Token with "'+d.type+'" type was not found.';if(this.options.silent)return console.error(m),"";throw new Error(m)}}}return a}},Xc,bu=(Xc=class{constructor(e){K(this,"options");K(this,"block");this.options=e||mi}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?jn.lex:jn.lexInline}provideParser(e=this.block){return e?Gn.parse:Gn.parseInline}},K(Xc,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),K(Xc,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),Xc),A2=class{constructor(...e){K(this,"defaults",Um());K(this,"options",this.setOptions);K(this,"parse",this.parseMarkdown(!0));K(this,"parseInline",this.parseMarkdown(!1));K(this,"Parser",Gn);K(this,"Renderer",Jc);K(this,"TextRenderer",Vm);K(this,"Lexer",jn);K(this,"Tokenizer",Kc);K(this,"Hooks",bu);this.use(...e)}walkTokens(e,t){var a,l;let n=[];for(let i of e)switch(n=n.concat(t.call(this,i)),i.type){case"table":{let u=i;for(let c of u.header)n=n.concat(this.walkTokens(c.tokens,t));for(let c of u.rows)for(let d of c)n=n.concat(this.walkTokens(d.tokens,t));break}case"list":{let u=i;n=n.concat(this.walkTokens(u.items,t));break}default:{let u=i;(l=(a=this.defaults.extensions)==null?void 0:a.childTokens)!=null&&l[u.type]?this.defaults.extensions.childTokens[u.type].forEach(c=>{let d=u[c].flat(1/0);n=n.concat(this.walkTokens(d,t))}):u.tokens&&(n=n.concat(this.walkTokens(u.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let a=B({},n);if(a.async=this.defaults.async||a.async||!1,n.extensions&&(n.extensions.forEach(l=>{if(!l.name)throw new Error("extension name required");if("renderer"in l){let i=t.renderers[l.name];i?t.renderers[l.name]=function(...u){let c=l.renderer.apply(this,u);return c===!1&&(c=i.apply(this,u)),c}:t.renderers[l.name]=l.renderer}if("tokenizer"in l){if(!l.level||l.level!=="block"&&l.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[l.level];i?i.unshift(l.tokenizer):t[l.level]=[l.tokenizer],l.start&&(l.level==="block"?t.startBlock?t.startBlock.push(l.start):t.startBlock=[l.start]:l.level==="inline"&&(t.startInline?t.startInline.push(l.start):t.startInline=[l.start]))}"childTokens"in l&&l.childTokens&&(t.childTokens[l.name]=l.childTokens)}),a.extensions=t),n.renderer){let l=this.defaults.renderer||new Jc(this.defaults);for(let i in n.renderer){if(!(i in l))throw new Error("renderer '".concat(i,"' does not exist"));if(["options","parser"].includes(i))continue;let u=i,c=n.renderer[u],d=l[u];l[u]=(...m)=>{let p=c.apply(l,m);return p===!1&&(p=d.apply(l,m)),p||""}}a.renderer=l}if(n.tokenizer){let l=this.defaults.tokenizer||new Kc(this.defaults);for(let i in n.tokenizer){if(!(i in l))throw new Error("tokenizer '".concat(i,"' does not exist"));if(["options","rules","lexer"].includes(i))continue;let u=i,c=n.tokenizer[u],d=l[u];l[u]=(...m)=>{let p=c.apply(l,m);return p===!1&&(p=d.apply(l,m)),p}}a.tokenizer=l}if(n.hooks){let l=this.defaults.hooks||new bu;for(let i in n.hooks){if(!(i in l))throw new Error("hook '".concat(i,"' does not exist"));if(["options","block"].includes(i))continue;let u=i,c=n.hooks[u],d=l[u];bu.passThroughHooks.has(i)?l[u]=m=>{if(this.defaults.async&&bu.passThroughHooksRespectAsync.has(i))return(async()=>{let T=await c.call(l,m);return d.call(l,T)})();let p=c.call(l,m);return d.call(l,p)}:l[u]=(...m)=>{if(this.defaults.async)return(async()=>{let T=await c.apply(l,m);return T===!1&&(T=await d.apply(l,m)),T})();let p=c.apply(l,m);return p===!1&&(p=d.apply(l,m)),p}}a.hooks=l}if(n.walkTokens){let l=this.defaults.walkTokens,i=n.walkTokens;a.walkTokens=function(u){let c=[];return c.push(i.call(this,u)),l&&(c=c.concat(l.call(this,u))),c}}this.defaults=B(B({},this.defaults),a)}),this}setOptions(e){return this.defaults=B(B({},this.defaults),e),this}lexer(e,t){return jn.lex(e,t!=null?t:this.defaults)}parser(e,t){return Gn.parse(e,t!=null?t:this.defaults)}parseMarkdown(e){return(t,n)=>{let a=B({},n),l=B(B({},this.defaults),a),i=this.onError(!!l.silent,!!l.async);if(this.defaults.async===!0&&a.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(l.hooks&&(l.hooks.options=l,l.hooks.block=e),l.async)return(async()=>{let u=l.hooks?await l.hooks.preprocess(t):t,c=await(l.hooks?await l.hooks.provideLexer(e):e?jn.lex:jn.lexInline)(u,l),d=l.hooks?await l.hooks.processAllTokens(c):c;l.walkTokens&&await Promise.all(this.walkTokens(d,l.walkTokens));let m=await(l.hooks?await l.hooks.provideParser(e):e?Gn.parse:Gn.parseInline)(d,l);return l.hooks?await l.hooks.postprocess(m):m})().catch(i);try{l.hooks&&(t=l.hooks.preprocess(t));let u=(l.hooks?l.hooks.provideLexer(e):e?jn.lex:jn.lexInline)(t,l);l.hooks&&(u=l.hooks.processAllTokens(u)),l.walkTokens&&this.walkTokens(u,l.walkTokens);let c=(l.hooks?l.hooks.provideParser(e):e?Gn.parse:Gn.parseInline)(u,l);return l.hooks&&(c=l.hooks.postprocess(c)),c}catch(u){return i(u)}}}onError(e,t){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",e){let a="<p>An error occurred:</p><pre>"+oa(n.message+"",!0)+"</pre>";return t?Promise.resolve(a):a}if(t)return Promise.reject(n);throw n}}},hi=new A2;function we(e,t){return hi.parse(e,t)}we.options=we.setOptions=function(e){return hi.setOptions(e),we.defaults=hi.defaults,F1(we.defaults),we};we.getDefaults=Um;we.defaults=mi;we.use=function(...e){return hi.use(...e),we.defaults=hi.defaults,F1(we.defaults),we};we.walkTokens=function(e,t){return hi.walkTokens(e,t)};we.parseInline=hi.parseInline;we.Parser=Gn;we.parser=Gn.parse;we.Renderer=Jc;we.TextRenderer=Vm;we.Lexer=jn;we.lexer=jn.lex;we.Tokenizer=Kc;we.Hooks=bu;we.parse=we;var xO=we.options,EO=we.setOptions,wO=we.use,AO=we.walkTokens,MO=we.parseInline;var OO=Gn.parse,DO=jn.lex;var aS=ye(qt()),lS=ye(et());we.setOptions({pedantic:!1,gfm:!0});function Ic({text:e,className:t}){let n=aS.default.useMemo(()=>{if(!e)return"";let a=we.parse(e,{async:!1});return B1.sanitize(typeof a=="string"?a:"")},[e]);return(0,lS.jsx)("div",{className:t,dangerouslySetInnerHTML:{__html:n}})}var P=ye(et());function iS({initial:e,onNotifyRemove:t,onUpdated:n}){let a=Kt(),[l,i]=Al.default.useState(e),[u,c]=Al.default.useState(e),[d,m]=Al.default.useState(!1),[p,T]=Al.default.useState(!1),[y,_]=Al.default.useState(!1),[E,w]=Al.default.useState(!1),[R,g]=Al.default.useState(null),b="".concat(l.bid.toString(),"_tags"),k=X=>"".concat(qa(a.userR),"/b:").concat(X),x=X=>"".concat(qa(a.userR),"/t:").concat(Ur(X)),N=e1(l.time),z="".concat(l.time.slice(0,16),"Z"),Y=a.dat.suggestTags===!0,{tagInputRef:q,suggestionState:J,closeSuggestions:W,onTagsChange:be,onTagsKeyDown:Ye,onTagsSelect:Fe,onSuggestionHover:I,onSuggestionPick:ce}=qc({enabled:Y,tags:u.tags,onTagsUpdate:X=>{c(Ce=>$(B({},Ce),{tags:X}))}});async function _t(X){await t1(l.bid,X?"star":"unstar");let Ce=$(B({},l),{selected:X});i(Ce),c(ve=>$(B({},ve),{selected:X})),n(Ce)}async function Vn(){await Yc(l.bid),t()}async function pt(){await n1(l.bid);let X=$(B({},l),{toread:!1});i(X),n(X)}function Rn(X){c(l),T(X),g(null),w(!1),W(),X&&Uc(b)}async function Nn(){_(!0);try{let X=await Hc(u);X!=null&&c(Ce=>$(B({},Ce),{title:X}))}finally{_(!1)}}async function ja(){w(!0),await a1(l.bid)}let Zn=async X=>{X.preventDefault(),g(null);let Ce=$(B({},u),{tags:jc(u.tags)}),ve=await Lc(Ce);ve.ok&&ve.status>=200&&ve.status<300?(i(Ce),T(!1),n(Ce)):g(ve.bodyText)},Q=E||u.private||l.url!==u.url;return(0,P.jsxs)("div",{id:String(l.bid),className:"bookmark w-100 mw7 pa1 mb3".concat(l.private?" private":""),children:[a.dat.isowner?(0,P.jsx)("div",{className:"star fl pointer".concat(l.selected?" selected":""),children:(0,P.jsx)("button",{className:"thm-text-border",onClick:()=>{_t(!l.selected)},type:"button",children:"\u272D"})}):null,p?(0,P.jsxs)("div",{className:"edit_bookmark_form pa2 pt0 thm-bg-surface",children:[R?(0,P.jsx)("div",{className:"alert alert-err",children:R}):null,(0,P.jsxs)("form",{onSubmit:X=>{Zn(X)},children:[(0,P.jsx)("div",{children:"url"}),(0,P.jsx)("input",{type:"url",className:"url w-100 mb2 pt1 edit_form_input",required:!0,name:"url",value:u.url,onChange:X=>{c(Ce=>$(B({},Ce),{url:X.target.value}))}}),(0,P.jsx)("div",{children:"title"}),(0,P.jsxs)("div",{className:"flex",children:[(0,P.jsx)("input",{type:"text",className:"title w-100 mb2 pt1 edit_form_input",name:"title",value:u.title,onChange:X=>{c(Ce=>$(B({},Ce),{title:X.target.value}))}}),(0,P.jsx)("button",{disabled:y,type:"button",onClick:()=>{Nn()},className:"ml1 pa1 mb2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim f7".concat(y?" thm-bg-disabled":""),children:"fetch"})]}),(0,P.jsx)("div",{children:"description"}),(0,P.jsx)("textarea",{className:"description w-100 mb1 pt1 edit_form_input",name:"description",rows:5,value:u.description,onChange:X=>{c(Ce=>$(B({},Ce),{description:X.target.value}))}}),(0,P.jsxs)("div",{id:"tags_input_box",children:[(0,P.jsx)("div",{children:"tags"}),(0,P.jsxs)("div",{className:"relative",children:[(0,P.jsx)("input",{id:b,ref:q,type:"text",className:"tags w-100 mb1 pt1 edit_form_input",name:"tags",autoComplete:"off",autoCapitalize:"off",value:u.tags,onChange:be,onKeyDown:Ye,onClick:Fe,onSelect:Fe,onBlur:()=>{window.setTimeout(()=>{W()},0)}}),J!=null?(0,P.jsx)(Gc,{suggestionState:J,onHover:I,onPick:ce}):null]})]}),(0,P.jsxs)("div",{className:"edit_form_checkboxes mv3",children:[(0,P.jsx)("input",{type:"checkbox",className:"private pointer",id:"edit_private",name:"private",checked:u.private,onChange:X=>{c(Ce=>$(B({},Ce),{private:X.target.checked}))}})," ",(0,P.jsx)("label",{htmlFor:"edit_private",className:"mr2",children:"private"})," ",(0,P.jsx)("input",{type:"checkbox",className:"toread pointer",id:"edit_toread",name:"toread",checked:u.toread,onChange:X=>{c(Ce=>$(B({},Ce),{toread:X.target.checked}))}})," ",(0,P.jsx)("label",{htmlFor:"edit_toread",children:"to-read"})]}),(0,P.jsxs)("div",{className:"flex justify-between items-center",children:[(0,P.jsxs)("div",{children:[(0,P.jsx)("input",{type:"submit",className:"mr1 pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim",value:"save"})," ",(0,P.jsx)("input",{type:"reset",className:"pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim",value:"cancel",onClick:()=>{Rn(!1)}})]}),a.dat.archiveBackendEnabled?(0,P.jsx)("button",{type:"button",disabled:Q,onClick:()=>{ja()},className:"pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary".concat(E?" thm-bg-disabled":"").concat(Q?" not-allowed o-20":""),children:E?"archiving":"archive"}):null]})]})]}):(0,P.jsxs)("div",{className:"display",children:[(0,P.jsx)("a",{href:l.url,target:"_blank",rel:"noreferrer",className:"link f5 lh-title".concat(l.toread?" unread":""),children:l.title===""?"[no title]":l.title}),(0,P.jsx)("br",{}),(0,P.jsx)("a",{href:l.url,className:"link f7 thm-text-tertiary thm-hover-link-color",children:l.url}),l.archiveUrl?(0,P.jsx)("a",{href:l.archiveUrl,className:"link f7 thm-text-tertiary thm-hover-link-color ml2 thm-text-success",target:"_blank",rel:"noreferrer",title:"archive link",children:"\u2611"}):null,(0,P.jsx)("br",{}),(0,P.jsx)("div",{className:"description mt1 thm-text-secondary",children:(0,P.jsx)(Ic,{text:l.description})}),(0,P.jsx)("div",{className:"tags",children:l.tags!==""?l.tags.split(" ").map(X=>(0,P.jsx)("a",{className:"link tag mr1".concat(X.slice(0,1)==="."?" private":""),href:x(X),children:X},X)):null}),(0,P.jsx)("a",{className:"link f7 di mr5 thm-text-tertiary",href:k(l.slug),title:z,children:N}),a.dat.isowner?(0,P.jsxs)("div",{className:"edit_links di",children:[(0,P.jsx)("button",{type:"button",onClick:()=>{Rn(!0)},className:"edit thm-text-muted thm-hover-link-color",children:"edit\xA0\xA0"}),(0,P.jsxs)("div",{className:"delete_link di",children:[(0,P.jsx)("button",{type:"button",onClick:()=>{m(!0)},className:"delete thm-text-muted thm-hover-link-color".concat(d?" dn":""),children:"delete"}),(0,P.jsxs)("span",{className:"confirm thm-text-error".concat(d?"":" dn"),children:[(0,P.jsx)("button",{type:"button",onClick:()=>{m(!1)},children:"cancel\xA0/\xA0"}),(0,P.jsx)("button",{type:"button",onClick:()=>{Vn()},className:"thm-text-error",children:"destroy"})]})]})]}):null,a.dat.isowner&&l.toread?(0,P.jsxs)("div",{className:"read di",children:["\xA0\xA0",(0,P.jsx)("button",{onClick:()=>{pt()},className:"mark_read",type:"button",children:"mark as read"})]}):null]})]})}var Zm=ye(et());function sS({initial:e}){let t=hu(i=>i.bmarks),n=hu(i=>i.setAll),a=hu(i=>i.removeById),l=hu(i=>i.upsert);return rS.default.useEffect(()=>{n(e)},[e,n]),(0,Zm.jsx)("div",{children:t.map(i=>(0,Zm.jsx)(iS,{initial:i,onNotifyRemove:()=>{a(i.bid)},onUpdated:u=>{l(u)}},i.bid))})}var uS=ye(qt());var Wt=ye(et());function M2(e){let t=e.split("\n");return(0,Wt.jsxs)(Wt.Fragment,{children:[t[0],t.slice(1).map((n,a)=>(0,Wt.jsxs)(uS.default.Fragment,{children:[(0,Wt.jsx)("br",{}),n]},a))]})}function oS({initial:e}){let t=Kt(),n=a=>"".concat(qa(t.userR),"/notes/").concat(a);return(0,Wt.jsx)("div",{children:e.map(a=>{var i,u;let l=zr(a.created);return(0,Wt.jsx)("div",{id:String(a.id),className:"note w-100 mw7 pa1 mb2".concat(a.shared?"":" private"),children:(0,Wt.jsxs)("div",{className:"display",children:[(0,Wt.jsx)("a",{href:n(a.slug),className:"link f5 lh-title",children:a.title===""?"[no title]":a.title}),(0,Wt.jsx)("br",{}),(0,Wt.jsx)("div",{className:"description mt1 thm-text-secondary",children:M2(a.text.slice(0,200))}),(0,Wt.jsx)("a",{className:"link f7 dib thm-text-tertiary w4",title:(i=l==null?void 0:l[1])!=null?i:a.created,href:n(a.slug),children:(u=l==null?void 0:l[0])!=null?u:"\xA0"})]})},a.id)})})}var Ml=ye(qt());var ne=ye(et());function O2(e){let t=e.split("\n");return(0,ne.jsxs)(ne.Fragment,{children:[t[0],t.slice(1).map((n,a)=>(0,ne.jsxs)(Ml.default.Fragment,{children:[(0,ne.jsx)("br",{}),n]},a))]})}function cS({initial:e}){var k,x;let t=Kt(),[n,a]=Ml.default.useState(e),[l,i]=Ml.default.useState(e),[u,c]=Ml.default.useState(!1),[d,m]=Ml.default.useState(e.id<=0),[p,T]=Ml.default.useState(!1),[y,_]=Ml.default.useState(null),E="".concat(n.id.toString(),"_text"),w=zr(n.created);function R(N){i(n),m(N);let z=cu(),Y=fu(z,"next");!N&&Y==="closeWindow"?Cr(window):N&&Uc(E)}async function g(){await u1(n.id),T(!0)}let b=async N=>{N.preventDefault(),_(null);let z=await l1(l);if(z.ok&&z.status>=200&&z.status<300){let Y=cu(),q=fu(Y,"next"),J=document.referrer,W=window.location.origin;q==="closeWindow"?Cr(window):q==="back"?J.startsWith(W)?window.location.href=J:window.location.href=W:l.id===0?window.location.href=qa(t.noteR):(a(l),m(!1))}else _(z.bodyText),console.log(z.bodyText)};return p?(0,ne.jsx)("p",{className:"thm-text-error",children:"you killed this note"}):(0,ne.jsx)("div",{id:String(n.id),className:"note w-100 mw7 pa1 mb2",children:d?(0,ne.jsxs)("form",{onSubmit:N=>{b(N)},children:[y?(0,ne.jsx)("div",{className:"alert alert-err",children:y}):null,(0,ne.jsx)("p",{className:"mt2 mb1",children:"title:"}),(0,ne.jsx)("input",{type:"text",className:"title w-100 mb1 pt1 edit_form_input",name:"title",value:l.title,onChange:N=>{i(z=>$(B({},z),{title:N.target.value}))},autoFocus:l.title===""}),(0,ne.jsx)("br",{}),(0,ne.jsx)("p",{className:"mt2 mb1",children:"description:"}),(0,ne.jsx)("textarea",{id:E,className:"description w-100 mb1 pt1 edit_form_input",name:"text",rows:25,value:l.text,onChange:N=>{i(z=>$(B({},z),{text:N.target.value}))}}),(0,ne.jsxs)("div",{className:"edit_form_checkboxes mb3",children:[(0,ne.jsx)("input",{type:"checkbox",className:"is-markdown pointer",id:"edit_ismarkdown",name:"ismarkdown",checked:l.isMarkdown,onChange:N=>{i(z=>$(B({},z),{isMarkdown:N.target.checked}))}})," ",(0,ne.jsx)("label",{htmlFor:"edit_ismarkdown",className:"mr2",children:"use markdown?"}),(0,ne.jsx)("br",{})]}),(0,ne.jsxs)("div",{className:"edit_form_checkboxes mb3",children:[(0,ne.jsx)("input",{type:"checkbox",className:"is-markdown pointer",id:"edit_shared",name:"shared",checked:l.shared,onChange:N=>{i(z=>$(B({},z),{shared:N.target.checked}))}})," ",(0,ne.jsx)("label",{htmlFor:"edit_shared",className:"mr2",children:"public?"}),(0,ne.jsx)("br",{})]}),(0,ne.jsx)("input",{type:"submit",className:"mr1 pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim",value:"save"})," ",(0,ne.jsx)("input",{type:"reset",className:"pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim",value:"cancel",onClick:()=>{R(!1)}})]}):(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsxs)("div",{className:"display",children:[(0,ne.jsx)("div",{className:"link f5 lh-title",children:n.title===""?"[no title]":n.title}),(0,ne.jsx)("br",{}),n.isMarkdown?(0,ne.jsx)("div",{className:"description mt1",children:(0,ne.jsx)(Ic,{text:n.text})}):(0,ne.jsx)("div",{className:"description mt1 thm-text-secondary",children:O2(n.text)}),(0,ne.jsxs)("div",{className:"link f7 dib thm-text-tertiary w4",children:[(0,ne.jsx)("span",{title:(k=w==null?void 0:w[1])!=null?k:n.created,children:(x=w==null?void 0:w[0])!=null?x:"\xA0"})," - ",(0,ne.jsx)("span",{className:"thm-text-tertiary",children:n.shared?"public":"private"})]})]}),t.dat.isowner?(0,ne.jsxs)("div",{className:"edit_links db mt3",children:[(0,ne.jsx)("button",{type:"button",onClick:()=>{R(!0)},className:"edit thm-text-muted thm-hover-link-color",children:"edit\xA0\xA0"}),(0,ne.jsxs)("div",{className:"delete_link di",children:[(0,ne.jsx)("button",{type:"button",onClick:()=>{c(!0)},className:"delete thm-text-muted thm-hover-link-color".concat(u?" dn":""),children:"delete"}),(0,ne.jsxs)("span",{className:"confirm thm-text-error".concat(u?"":" dn"),children:[(0,ne.jsx)("button",{type:"button",onClick:()=>{c(!1)},children:"cancel\xA0/\xA0"}),(0,ne.jsx)("button",{type:"button",onClick:()=>{g()},className:"thm-text-error",children:"destroy"})]})]})]}):null]})})}var Pc=ye(qt());var Su=Vc(e=>({mode:{kind:"none"},tagcloud:{},setMode:t=>{e({mode:t})},setTagCloud:t=>{e({tagcloud:t})}}));function fS(e){switch(e.mode){case"top":{let t=typeof e.value=="number"?e.value:Number(e.value);return Number.isFinite(t)?{kind:"top",expanded:e.expanded,value:t}:{kind:"none"}}case"lowerBound":{let t=typeof e.value=="number"?e.value:Number(e.value);return Number.isFinite(t)?{kind:"lowerBound",expanded:e.expanded,value:t}:{kind:"none"}}case"related":{let t=typeof e.value=="string"?e.value:"",n=t?t.split(" "):[];return{kind:"related",expanded:e.expanded,value:n}}default:return{kind:"none"}}}function Qm(e){switch(e.kind){case"top":return{mode:"top",value:e.value,expanded:e.expanded};case"lowerBound":return{mode:"lowerBound",value:e.value,expanded:e.expanded};case"related":return{mode:"related",value:e.value.join(" "),expanded:e.expanded};case"none":return{mode:"none",value:"",expanded:!1}}}function Dn(e){return e.kind==="none"?!1:e.expanded}function dS(e){return e.kind==="related"}function Xm(e,t){return e.kind==="none"?e:$(B({},e),{expanded:t})}var tt=ye(et());function hS(e,t,n,a,l,i){let u=e(a-n);return(a-n<.01||u===0?1:e(t-n)/u)*(i-l)+l}function mS(e,t,n,a){let l=Kt(),i=e.map(m=>m.toLowerCase()),u=Object.entries(a).sort((m,p)=>m[0].toLowerCase().localeCompare(p[0].toLowerCase())),c=m=>"".concat(qa(l.userR)).concat(m===""?"":"/t:".concat(m)),d=[];for(let[m,p]of u){let T=m.toLowerCase(),y=hS(R=>R,p,t,n,100,150),_=hS(R=>Math.log(1+R),p,t,n,.6,1),E={fontSize:"".concat(y.toString(),"%"),opacity:_},w=i.length===0?null:i.includes(T)?(0,tt.jsx)("a",{href:c(i.filter(R=>R!==T).map(Ur).join("+")),className:"link mr2 tag-exclude",children:"\u2296"}):(0,tt.jsx)("a",{href:c(i.concat([T]).map(Ur).join("+")),className:"link mr2 tag-include",children:"\u2295"});d.push((0,tt.jsx)("a",{href:c(Ur(m)),className:"link tag mr1",style:E,children:m},"".concat(m,"-tag"))),w&&d.push((0,tt.jsx)(Pc.default.Fragment,{children:w},"".concat(m,"-ie")))}return d}function pS({initialMode:e}){let t=Su(R=>R.mode),n=Su(R=>R.tagcloud),a=Su(R=>R.setMode),l=Su(R=>R.setTagCloud);if(Pc.default.useEffect(()=>{a(e)},[e]),Pc.default.useEffect(()=>{async function R(g){if(g.kind==="none")return;let b=await i1(Qm(g));l(b!=null?b:{})}R(t)},[t,l]),t.kind==="none")return(0,tt.jsx)("div",{className:"tag_cloud"});let i={kind:"top",expanded:Dn(t),value:200},u={kind:"lowerBound",expanded:Dn(t),value:1},c={kind:"lowerBound",expanded:Dn(t),value:2},d={kind:"lowerBound",expanded:Dn(t),value:5},m={kind:"lowerBound",expanded:Dn(t),value:10},p={kind:"lowerBound",expanded:Dn(t),value:20},T=Object.values(n),y=T.length?Math.min(...T):1,_=T.length?Math.max(...T):1;async function E(R){let g=Xm(t,R);a(g),await r1(Qm(g))}async function w(R){JSON.stringify(t)===JSON.stringify(R)?await E(!Dn(t)):a(Xm(R,!0))}return(0,tt.jsxs)("div",{className:"tag_cloud mv3",children:[(0,tt.jsxs)("div",{className:"tag_cloud_header mb2",children:[dS(t)?(0,tt.jsx)("button",{type:"button",className:"pa1 f7 link thm-hover-link-color mr1 b",onClick:()=>{E(!Dn(t))},children:"Related Tags"}):(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)("button",{type:"button",className:"pa1 f7 link thm-hover-link-color mr1".concat(JSON.stringify(t)===JSON.stringify(i)?" b":""),title:"show a cloud of your most-used tags",onClick:()=>{w(i)},children:"Top Tags"}),(0,tt.jsx)("button",{type:"button",className:"pa1 f7 link thm-hover-link-color ml2 ".concat(JSON.stringify(t)===JSON.stringify(u)?" b":""),title:"show all tags",onClick:()=>{w(u)},children:"all"}),"\u2027",(0,tt.jsx)("button",{type:"button",className:"pa1 f7 link thm-hover-link-color".concat(JSON.stringify(t)===JSON.stringify(c)?" b":""),title:"show tags with at least 2 bookmarks",onClick:()=>{w(c)},children:"2"}),"\u2027",(0,tt.jsx)("button",{type:"button",className:"pa1 f7 link thm-hover-link-color".concat(JSON.stringify(t)===JSON.stringify(d)?" b":""),title:"show tags with at least 5 bookmarks",onClick:()=>{w(d)},children:"5"}),"\u2027",(0,tt.jsx)("button",{type:"button",className:"pa1 f7 link thm-hover-link-color".concat(JSON.stringify(t)===JSON.stringify(m)?" b":""),title:"show tags with at least 10 bookmarks",onClick:()=>{w(m)},children:"10"}),"\u2027",(0,tt.jsx)("button",{type:"button",className:"pa1 f7 link thm-hover-link-color".concat(JSON.stringify(t)===JSON.stringify(p)?" b":""),title:"show tags with at least 20 bookmarks",onClick:()=>{w(p)},children:"20"})]}),(0,tt.jsx)("button",{type:"button",className:"pa1 ml2 f7 link thm-text-faded thm-hover-link-color",onClick:()=>{E(!Dn(t))},children:Dn(t)?"hide":"show"})]}),Dn(t)?(0,tt.jsx)("div",{className:"tag_cloud_body",children:t.kind==="related"?mS(t.value,y,_,n):mS([],y,_,n)}):null]})}var gi=ye(et());function Gr(e){return document.querySelector(e)}function Tu(){let e=document.querySelector("#content");e&&e.setAttribute("view-rendered","")}var ED=e=>()=>{e.preventDefault(),c1()},wD=e=>t=>()=>{let n=Gr(e);n&&((0,pi.createRoot)(n).render((0,gi.jsx)(sS,{initial:t})),Tu())},AD=e=>t=>()=>{let n=Gr(e);n&&(0,pi.createRoot)(n).render((0,gi.jsx)(pS,{initialMode:fS(t)}))},MD=e=>t=>()=>{let n=Gr(e);n&&((0,pi.createRoot)(n).render((0,gi.jsx)(v1,{initial:t})),Tu())},OD=e=>t=>()=>{let n=Gr(e);n&&((0,pi.createRoot)(n).render((0,gi.jsx)(oS,{initial:t})),Tu())},DD=e=>t=>()=>{let n=Gr(e);n&&((0,pi.createRoot)(n).render((0,gi.jsx)(cS,{initial:t})),Tu())},RD=e=>t=>()=>{let n=Gr(e);n&&((0,pi.createRoot)(n).render((0,gi.jsx)(p1,{initial:t})),Tu())};function ND(){function e(u){return u==="light"||u==="dark"}function t(){let u=document.documentElement.dataset.colorScheme;return u==="light"||u==="dark"?u:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function n(u){document.documentElement.dataset.colorScheme=u}let a="espial-color-scheme",l=window.localStorage.getItem(a);e(l)&&n(l);let i=document.querySelector("#color-scheme-toggle");i&&i.addEventListener("click",u=>{u.preventDefault();let c=t()==="dark"?"light":"dark";n(c),window.localStorage.setItem(a,c)})}export{ND as initColorSchemeToggle,ED as logoutE,RD as renderAccountSettings,MD as renderAddForm,wD as renderBookmarks,DD as renderNote,OD as renderNotes,AD as renderTagCloud};+/*! Bundled license information:++scheduler/cjs/scheduler.production.js:+ (**+ * @license React+ * scheduler.production.js+ *+ * Copyright (c) Meta Platforms, Inc. and affiliates.+ *+ * This source code is licensed under the MIT license found in the+ * LICENSE file in the root directory of this source tree.+ *)++react/cjs/react.production.js:+ (**+ * @license React+ * react.production.js+ *+ * Copyright (c) Meta Platforms, Inc. and affiliates.+ *+ * This source code is licensed under the MIT license found in the+ * LICENSE file in the root directory of this source tree.+ *)++react-dom/cjs/react-dom.production.js:+ (**+ * @license React+ * react-dom.production.js+ *+ * Copyright (c) Meta Platforms, Inc. and affiliates.+ *+ * This source code is licensed under the MIT license found in the+ * LICENSE file in the root directory of this source tree.+ *)++react-dom/cjs/react-dom-client.production.js:+ (**+ * @license React+ * react-dom-client.production.js+ *+ * Copyright (c) Meta Platforms, Inc. and affiliates.+ *+ * This source code is licensed under the MIT license found in the+ * LICENSE file in the root directory of this source tree.+ *)++moment/moment.js:+ (*! moment.js *)+ (*! version : 2.30.1 *)+ (*! authors : Tim Wood, Iskren Chernev, Moment.js contributors *)+ (*! license : MIT *)+ (*! momentjs.com *)++react/cjs/react-jsx-runtime.production.js:+ (**+ * @license React+ * react-jsx-runtime.production.js+ *+ * Copyright (c) Meta Platforms, Inc. and affiliates.+ *+ * This source code is licensed under the MIT license found in the+ * LICENSE file in the root directory of this source tree.+ *)++ky/distribution/index.js:+ (*! MIT License © Sindre Sorhus *)++dompurify/dist/purify.es.mjs:+ (*! @license DOMPurify 3.4.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.7/LICENSE *)+*/+//# sourceMappingURL=app-F6AR6563.min.js.map
+ static/js/app-F6AR6563.min.js.gz view
binary file changed (absent → 121631 bytes)
+ static/js/app-F6AR6563.min.js.map view
@@ -0,0 +1,7 @@+{+ "version": 3,+ "sources": ["../node_modules/scheduler/cjs/scheduler.production.js", "../node_modules/scheduler/index.js", "../node_modules/react/cjs/react.production.js", "../node_modules/react/index.js", "../node_modules/react-dom/cjs/react-dom.production.js", "../node_modules/react-dom/index.js", "../node_modules/react-dom/cjs/react-dom-client.production.js", "../node_modules/react-dom/client.js", "../node_modules/moment/moment.js", "../node_modules/react/cjs/react-jsx-runtime.production.js", "../node_modules/react/jsx-runtime.js", "../src/index.tsx", "../node_modules/ky/source/errors/KyError.ts", "../node_modules/ky/source/errors/HTTPError.ts", "../node_modules/ky/source/errors/NetworkError.ts", "../node_modules/ky/source/errors/NonError.ts", "../node_modules/ky/source/errors/ForceRetryError.ts", "../node_modules/ky/source/errors/SchemaValidationError.ts", "../node_modules/ky/source/errors/TimeoutError.ts", "../node_modules/ky/source/core/constants.ts", "../node_modules/ky/source/utils/body.ts", "../node_modules/ky/source/utils/is.ts", "../node_modules/ky/source/utils/merge.ts", "../node_modules/ky/source/utils/normalize.ts", "../node_modules/ky/source/utils/timeout.ts", "../node_modules/ky/source/utils/delay.ts", "../node_modules/ky/source/utils/options.ts", "../node_modules/ky/source/utils/is-network-error.ts", "../node_modules/ky/source/utils/type-guards.ts", "../node_modules/ky/source/core/Ky.ts", "../node_modules/ky/source/index.ts", "../src/globals.ts", "../src/api.ts", "../src/components/AccountSettings.tsx", "../src/components/AddForm.tsx", "../src/hooks/useTagSuggestions.ts", "../src/util.ts", "../src/components/TagSuggestionsDropdown.tsx", "../src/components/BList.tsx", "../node_modules/zustand/esm/vanilla.mjs", "../node_modules/zustand/esm/react.mjs", "../src/stores/bookmarksStore.ts", "../src/components/BMark.tsx", "../node_modules/dompurify/src/utils.ts", "../node_modules/dompurify/src/tags.ts", "../node_modules/dompurify/src/attrs.ts", "../node_modules/dompurify/src/regexp.ts", "../node_modules/dompurify/src/purify.ts", "../node_modules/marked/src/defaults.ts", "../node_modules/marked/src/rules.ts", "../node_modules/marked/src/helpers.ts", "../node_modules/marked/src/Tokenizer.ts", "../node_modules/marked/src/Lexer.ts", "../node_modules/marked/src/Renderer.ts", "../node_modules/marked/src/TextRenderer.ts", "../node_modules/marked/src/Parser.ts", "../node_modules/marked/src/Hooks.ts", "../node_modules/marked/src/Instance.ts", "../node_modules/marked/src/marked.ts", "../src/components/Markdown.tsx", "../src/components/NList.tsx", "../src/components/NNote.tsx", "../src/components/TagCloud.tsx", "../src/stores/tagCloudStore.ts", "../src/types.ts"],+ "sourcesContent": ["/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.6\";\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n", "/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.6\";\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n", "/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.6\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.6\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.6\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.6\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.6\";\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n", "//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n", "/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "import { createRoot } from 'react-dom/client';\n\nimport { logout } from './api';\nimport { AccountSettingsView } from './components/AccountSettings';\nimport { AddForm } from './components/AddForm';\nimport { BList } from './components/BList';\nimport { NList } from './components/NList';\nimport { NNote } from './components/NNote';\nimport { TagCloud } from './components/TagCloud';\nimport type { AccountSettings, Bookmark, ColorSchemePreference, Note, TagCloudMode } from './types';\nimport { tagCloudModeToF } from './types';\n\nfunction selectEl(selector: string): Element | null {\n return document.querySelector(selector);\n}\n\nfunction viewRendered(): void {\n const el = document.querySelector('#content');\n if (el) el.setAttribute('view-rendered', '');\n}\n\nexport const logoutE = (e: Event) => () => {\n e.preventDefault();\n void logout();\n};\n\nexport const renderBookmarks = (renderElSelector: string) => (bmarks: Bookmark[]) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<BList initial={bmarks} />);\n viewRendered();\n};\n\nexport const renderTagCloud = (renderElSelector: string) => (tagCloudMode: TagCloudMode) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<TagCloud initialMode={tagCloudModeToF(tagCloudMode)} />);\n};\n\nexport const renderAddForm = (renderElSelector: string) => (bmark: Bookmark) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<AddForm initial={bmark} />);\n viewRendered();\n};\n\nexport const renderNotes = (renderElSelector: string) => (notes: Note[]) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<NList initial={notes} />);\n viewRendered();\n};\n\nexport const renderNote = (renderElSelector: string) => (note: Note) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<NNote initial={note} />);\n viewRendered();\n};\n\nexport const renderAccountSettings =\n (renderElSelector: string) => (accountSettings: AccountSettings) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<AccountSettingsView initial={accountSettings} />);\n viewRendered();\n };\n\nexport function initColorSchemeToggle(): void {\n function isColorSchemePreference(value: string | null): value is ColorSchemePreference {\n return value === 'light' || value === 'dark';\n }\n function getEffectiveColorScheme(): ColorSchemePreference {\n const explicit = document.documentElement.dataset.colorScheme;\n if (explicit === 'light' || explicit === 'dark') return explicit;\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n\n function applyColorSchemePreference(preference: ColorSchemePreference): void {\n document.documentElement.dataset.colorScheme = preference;\n }\n\n const colorSchemeStorageKey = 'espial-color-scheme';\n const stored = window.localStorage.getItem(colorSchemeStorageKey);\n if (isColorSchemePreference(stored)) {\n applyColorSchemePreference(stored);\n }\n\n const toggleEl = document.querySelector<HTMLAnchorElement>('#color-scheme-toggle');\n if (!toggleEl) return;\n\n toggleEl.addEventListener('click', (e) => {\n e.preventDefault();\n const next: ColorSchemePreference = getEffectiveColorScheme() === 'dark' ? 'light' : 'dark';\n applyColorSchemePreference(next);\n window.localStorage.setItem(colorSchemeStorageKey, next);\n });\n}\n", "/**\nBase class for all Ky-specific errors. `HTTPError`, `NetworkError`, `TimeoutError`, and `ForceRetryError` extend this class.\n\nYou can use `instanceof KyError` to check if an error originated from Ky, or use the `isKyError()` type guard for cross-realm compatibility and TypeScript type narrowing.\n\nNote: `SchemaValidationError` is intentionally not considered a Ky error. `KyError` covers failures in Ky's HTTP lifecycle (bad status, timeout, retry), while schema validation errors originate from the user-provided schema, not from Ky itself.\n*/\nexport class KyError extends Error {\n\toverride name = 'KyError';\n\n\tget isKyError(): true {\n\t\treturn true;\n\t}\n}\n", "import type {NormalizedOptions} from '../types/options.js';\nimport type {KyRequest} from '../types/request.js';\nimport type {KyResponse} from '../types/response.js';\nimport {KyError} from './KyError.js';\n\n/**\nError thrown when the response has a non-2xx status code and `throwHttpErrors` is enabled.\n\nThe error has a `response` property with the `Response` object, a `request` property with the `Request` object, an `options` property with the normalized options (either passed to `ky` when creating an instance with `ky.create()` or directly when performing the request), and a `data` property with the pre-parsed response body. For JSON responses (based on `Content-Type`), the body is parsed using the `parseJson` option if set, or `JSON.parse` by default. For other content types, it is set as plain text. If the body is empty or parsing fails, `data` will be `undefined`. To avoid hanging or excessive buffering, `error.data` population is bounded by the request timeout and a 10 MiB response body size limit. The `data` property is populated before `beforeError` hooks run, so hooks can access it.\n\nThe response body is automatically consumed when populating `error.data`, so `error.response.json()` and other body methods will not work. Use `error.data` instead. The `error.response` object is still available for headers, status, etc.\n\nBe aware that some types of errors, such as network errors, inherently mean that a response was not received. In that case, the error will be an instance of `NetworkError` instead of `HTTPError` and will not contain a `response` property.\n*/\nexport class HTTPError<T = unknown> extends KyError {\n\toverride name = 'HTTPError' as const;\n\tresponse: KyResponse<T>;\n\trequest: KyRequest;\n\toptions: NormalizedOptions;\n\tdata: T | string | undefined;\n\n\tconstructor(response: Response, request: Request, options: NormalizedOptions) {\n\t\tconst code = (response.status || response.status === 0) ? response.status : '';\n\t\tconst title = response.statusText ?? '';\n\t\tconst status = `${code} ${title}`.trim();\n\t\tconst reason = status ? `status code ${status}` : 'an unknown error';\n\n\t\tsuper(`Request failed with ${reason}: ${request.method} ${request.url}`);\n\n\t\tthis.response = response;\n\t\tthis.request = request;\n\t\tthis.options = options;\n\t}\n}\n", "import type {KyRequest} from '../types/request.js';\nimport {KyError} from './KyError.js';\n\n/**\nError thrown when a network error occurs during the request (e.g., DNS failure, connection refused, offline). It has a `request` property with the `Request` object. The original error is available via the standard `cause` property.\n\nNetwork errors are automatically retried (for retriable methods).\n\nNote: Network errors are detected using runtime-specific heuristics. Unrecognized runtimes may produce errors that are not wrapped in `NetworkError`. Use the `shouldRetry` option to handle such cases.\n*/\nexport class NetworkError extends KyError {\n\toverride name = 'NetworkError' as const;\n\trequest: KyRequest;\n\n\tconstructor(request: Request, options?: {cause?: Error}) {\n\t\tsuper(`Request failed due to a network error: ${request.method} ${request.url}`, options);\n\t\tthis.request = request;\n\t}\n}\n", "/**\nWrapper for non-Error values that were thrown.\n\nIn JavaScript, any value can be thrown (not just Error instances). This class wraps such values to ensure consistent error handling.\n*/\nexport class NonError extends Error {\n\toverride name = 'NonError';\n\treadonly value: unknown;\n\n\tconstructor(value: unknown) {\n\t\tlet message = 'Non-error value was thrown';\n\n\t\t// Intentionally minimal as this error is just an edge-case.\n\t\ttry {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tmessage = value;\n\t\t\t} else if (value && typeof value === 'object' && 'message' in value && typeof value.message === 'string') {\n\t\t\t\tmessage = value.message;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Use default message if accessing properties throws\n\t\t}\n\n\t\tsuper(message);\n\n\t\tthis.value = value;\n\t}\n}\n", "import type {ForceRetryOptions} from '../core/constants.js';\nimport {KyError} from './KyError.js';\nimport {NonError} from './NonError.js';\n\n/**\nError used to signal a forced retry from `afterResponse` hooks.\n\nThis is thrown when `ky.retry()` is returned from an `afterResponse` hook. It is observable in `beforeRetry` and `beforeError` hooks via the `isForceRetryError()` type guard.\n*/\nexport class ForceRetryError extends KyError {\n\toverride name = 'ForceRetryError' as const;\n\tcustomDelay: number | undefined;\n\tcode: string | undefined;\n\tcustomRequest: Request | undefined;\n\n\tconstructor(options?: ForceRetryOptions) {\n\t\t// Runtime protection: wrap non-Error causes in NonError\n\t\t// TypeScript type is Error for guidance, but JS users can pass anything\n\t\tconst cause = options?.cause\n\t\t\t? (options.cause instanceof Error ? options.cause : new NonError(options.cause))\n\t\t\t: undefined;\n\n\t\tsuper(\n\t\t\toptions?.code ? `Forced retry: ${options.code}` : 'Forced retry',\n\t\t\tcause ? {cause} : undefined,\n\t\t);\n\n\t\tthis.customDelay = options?.delay;\n\t\tthis.code = options?.code;\n\t\tthis.customRequest = options?.request;\n\t}\n}\n", "import type {StandardSchemaV1Issue} from '../types/standard-schema.js';\n\n/**\nThe error thrown when [Standard Schema](https://github.com/standard-schema/standard-schema) validation fails in `.json(schema)`. It has an `issues` property with the validation issues from the schema.\n\nThis error intentionally does not extend `KyError` because it does not represent a failure in Ky's HTTP lifecycle. The request succeeded; the user's schema rejected the data. As such, it is not matched by `isKyError()`.\n\n@example\n```\nimport ky, {SchemaValidationError} from 'ky';\nimport {z} from 'zod';\n\nconst userSchema = z.object({name: z.string()});\n\ntry {\n\tconst user = await ky('/api/user').json(userSchema);\n\tconsole.log(user.name);\n} catch (error) {\n\tif (error instanceof SchemaValidationError) {\n\t\tconsole.error(error.issues);\n\t}\n}\n```\n*/\nexport class SchemaValidationError extends Error {\n\toverride name = 'SchemaValidationError' as const;\n\treadonly issues: readonly StandardSchemaV1Issue[];\n\n\tconstructor(issues: readonly StandardSchemaV1Issue[]) {\n\t\tsuper('Response schema validation failed');\n\t\tthis.issues = issues;\n\t}\n}\n", "import type {KyRequest} from '../types/request.js';\nimport {KyError} from './KyError.js';\n\n/**\nError thrown when the request times out. It has a `request` property with the `Request` object.\n*/\nexport class TimeoutError extends KyError {\n\toverride name = 'TimeoutError' as const;\n\trequest: KyRequest;\n\n\tconstructor(request: Request) {\n\t\tsuper(`Request timed out: ${request.method} ${request.url}`);\n\t\tthis.request = request;\n\t}\n}\n", "import type {Expect, Equal} from '@type-challenges/utils';\nimport {type KyOptionsRegistry, type RequestHttpMethod} from '../types/options.js';\n\nexport const supportsRequestStreams = (() => {\n\tlet duplexAccessed = false;\n\tlet hasContentType = false;\n\tconst supportsReadableStream = typeof globalThis.ReadableStream === 'function';\n\tconst supportsRequest = typeof globalThis.Request === 'function';\n\n\tif (supportsReadableStream && supportsRequest) {\n\t\ttry {\n\t\t\thasContentType = new globalThis.Request('https://empty.invalid', {\n\t\t\t\tbody: new globalThis.ReadableStream(),\n\t\t\t\tmethod: 'POST',\n\t\t\t\t// @ts-expect-error - Types are outdated.\n\t\t\t\tget duplex() {\n\t\t\t\t\tduplexAccessed = true;\n\t\t\t\t\treturn 'half';\n\t\t\t\t},\n\t\t\t}).headers.has('Content-Type');\n\t\t} catch (error) {\n\t\t\t// QQBrowser on iOS throws \"unsupported BodyInit type\" error (see issue #581)\n\t\t\tif (error instanceof Error && error.message === 'unsupported BodyInit type') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\treturn duplexAccessed && !hasContentType;\n})();\n\nexport const supportsAbortController = typeof globalThis.AbortController === 'function';\nexport const supportsAbortSignal = typeof globalThis.AbortSignal === 'function' && typeof globalThis.AbortSignal.any === 'function';\nexport const supportsResponseStreams = typeof globalThis.ReadableStream === 'function';\nexport const supportsFormData = typeof globalThis.FormData === 'function';\n\nexport const requestMethods = ['get', 'post', 'put', 'patch', 'head', 'delete'] as const;\n\nconst validate = <T extends Array<true>>() => undefined as unknown as T;\nvalidate<[\n\tExpect<Equal<typeof requestMethods[number], RequestHttpMethod>>,\n]>();\n\nexport const responseTypes = {\n\tjson: 'application/json',\n\ttext: 'text/*',\n\tformData: 'multipart/form-data',\n\tarrayBuffer: '*/*',\n\tblob: '*/*',\n\t// Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).\n\t// We still feature-check at runtime before exposing the shortcut.\n\tbytes: '*/*',\n} as const;\n\n// The maximum value of a 32bit int (see issue #117)\nexport const maxSafeTimeout = 2_147_483_647;\n\n// Size in bytes of a typical form boundary (e.g., '------WebKitFormBoundaryaxpyiPgbbPti10Rw'), used to help estimate upload size\nexport const usualFormBoundarySize = 40;\n\n/**\nSymbol that can be returned by a `beforeRetry` hook to stop retrying without throwing an error.\n*/\nexport const stop = Symbol('stop');\n\n/**\nOptions for forcing a retry via `ky.retry()`.\n*/\nexport type ForceRetryOptions = {\n\t/**\n\tCustom delay in milliseconds before retrying.\n\n\tIf not provided, uses the default retry delay calculation based on `retry.delay` configuration.\n\n\t**Note:** Custom delays bypass jitter and `backoffLimit`. This is intentional, as custom delays often come from server responses (e.g., `Retry-After` headers) and should be respected exactly as specified.\n\t*/\n\tdelay?: number;\n\n\t/**\n\tError code for the retry.\n\n\tThis machine-readable identifier will be included in the error message passed to `beforeRetry` hooks, allowing you to distinguish between different types of forced retries.\n\n\t@example\n\t```\n\treturn ky.retry({code: 'RATE_LIMIT'});\n\t// Resulting error message: 'Forced retry: RATE_LIMIT'\n\t```\n\t*/\n\tcode?: string;\n\n\t/**\n\tOriginal error that caused the retry.\n\n\tThis allows you to preserve the error chain when forcing a retry based on caught exceptions. The error will be set as the `cause` of the `ForceRetryError`, enabling proper error chain traversal.\n\n\t@example\n\t```\n\ttry {\n\t\tconst data = await response.json();\n\t\tvalidateBusinessLogic(data);\n\t} catch (error) {\n\t\treturn ky.retry({\n\t\t\tcode: 'VALIDATION_FAILED',\n\t\t\tcause: error // Preserves original error in chain\n\t\t});\n\t}\n\t```\n\t*/\n\tcause?: Error;\n\n\t/**\n\tCustom request to use for the retry.\n\n\tThis allows you to modify or completely replace the request during a forced retry. The custom request becomes the starting point for the retry - `beforeRetry` hooks can still further modify it if needed.\n\n\t**Note:** The custom request's `signal` will be replaced with Ky's managed signal to handle timeouts and user-provided abort signals correctly. If the original request body has been consumed, you must provide a new body or clone the request before consuming.\n\n\t**Warning:** Custom retry requests are not sanitized. If you reuse headers across origins, remove any credentials you do not want forwarded.\n\n\t@example\n\t```\n\t// Fallback to a different endpoint\n\treturn ky.retry({\n\t\trequest: new Request('https://backup-api.com/endpoint', {\n\t\t\tmethod: request.method,\n\t\t\theaders: request.headers,\n\t\t}),\n\t\tcode: 'BACKUP_ENDPOINT'\n\t});\n\n\t// Retry with refreshed authentication token\n\tconst data = await response.json();\n\treturn ky.retry({\n\t\trequest: new Request(request, {\n\t\t\theaders: {\n\t\t\t\t...Object.fromEntries(request.headers),\n\t\t\t\t'Authorization': `Bearer ${data.newToken}`\n\t\t\t}\n\t\t}),\n\t\tcode: 'TOKEN_REFRESHED'\n\t});\n\t```\n\t*/\n\trequest?: Request;\n};\n\n/**\nMarker returned by `ky.retry()` to signal a forced retry from `afterResponse` hooks.\n*/\nexport class RetryMarker {\n\toptions: ForceRetryOptions | undefined;\n\n\tconstructor(options?: ForceRetryOptions) {\n\t\tthis.options = options;\n\t}\n}\n\n/**\nForce a retry from an `afterResponse` hook.\n\nThis allows you to retry a request based on the response content, even if the response has a successful status code. The retry will respect the `retry.limit` option and skip the `shouldRetry` check. The forced retry is observable in `beforeRetry` hooks, where the error will be a `ForceRetryError`.\n\n@param options - Optional configuration for the retry.\n\n@example\n```\nimport ky, {isForceRetryError} from 'ky';\n\nconst api = ky.extend({\n\thooks: {\n\t\tafterResponse: [\n\t\t\tasync ({request, response}) => {\n\t\t\t\t// Retry based on response body content\n\t\t\t\tif (response.status === 200) {\n\t\t\t\t\tconst data = await response.json();\n\n\t\t\t\t\t// Simple retry with default delay\n\t\t\t\t\tif (data.error?.code === 'TEMPORARY_ERROR') {\n\t\t\t\t\t\treturn ky.retry();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with custom delay from API response\n\t\t\t\t\tif (data.error?.code === 'RATE_LIMIT') {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\tdelay: data.error.retryAfter * 1000,\n\t\t\t\t\t\t\tcode: 'RATE_LIMIT'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with a modified request (e.g., fallback endpoint)\n\t\t\t\t\tif (data.error?.code === 'FALLBACK_TO_BACKUP') {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\trequest: new Request('https://backup-api.com/endpoint', {\n\t\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcode: 'BACKUP_ENDPOINT'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with refreshed authentication\n\t\t\t\t\tif (data.error?.code === 'TOKEN_REFRESH' && data.newToken) {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\trequest: new Request(request, {\n\t\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\t...Object.fromEntries(request.headers),\n\t\t\t\t\t\t\t\t\t'Authorization': `Bearer ${data.newToken}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcode: 'TOKEN_REFRESHED'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with cause to preserve error chain\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvalidateResponse(data);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\tcode: 'VALIDATION_FAILED',\n\t\t\t\t\t\t\tcause: error\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\tbeforeRetry: [\n\t\t\t({error, retryCount}) => {\n\t\t\t\t// Observable in beforeRetry hooks\n\t\t\t\tif (isForceRetryError(error)) {\n\t\t\t\t\tconsole.log(`Forced retry #${retryCount}: ${error.message}`);\n\t\t\t\t\t// Example output: \"Forced retry #1: Forced retry: RATE_LIMIT\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n});\n\nconst response = await api.get('https://example.com/api');\n```\n*/\nexport const retry = (options?: ForceRetryOptions) => new RetryMarker(options);\n\nexport const kyOptionKeys: KyOptionsRegistry = {\n\tjson: true,\n\tparseJson: true,\n\tstringifyJson: true,\n\tsearchParams: true,\n\tbaseUrl: true,\n\tprefix: true,\n\tretry: true,\n\ttimeout: true,\n\ttotalTimeout: true,\n\thooks: true,\n\tthrowHttpErrors: true,\n\tonDownloadProgress: true,\n\tonUploadProgress: true,\n\tfetch: true,\n\tcontext: true,\n};\n\n// Standard RequestInit options that should NOT be passed separately to fetch()\n// because they're already applied to the Request object.\n// Note: `dispatcher` and `priority` are NOT included here - they're fetch-only\n// options that the Request constructor doesn't accept, so they need to be passed\n// separately to fetch().\nexport const requestOptionsRegistry = {\n\tmethod: true,\n\theaders: true,\n\tbody: true,\n\tmode: true,\n\tcredentials: true,\n\tcache: true,\n\tredirect: true,\n\treferrer: true,\n\treferrerPolicy: true,\n\tintegrity: true,\n\tkeepalive: true,\n\tsignal: true,\n\twindow: true,\n\tduplex: true,\n} as const;\n", "import type {Options} from '../types/options.js';\nimport {usualFormBoundarySize} from '../core/constants.js';\n\nconst encoder = new TextEncoder();\n\n// eslint-disable-next-line @typescript-eslint/no-restricted-types\nexport const getBodySize = (body?: BodyInit | null): number => {\n\tif (!body) {\n\t\treturn 0;\n\t}\n\n\tif (body instanceof FormData) {\n\t\t// This is an approximation, as FormData size calculation is not straightforward\n\t\tlet size = 0;\n\n\t\tfor (const [key, value] of body) {\n\t\t\tsize += usualFormBoundarySize;\n\t\t\tsize += encoder.encode(`Content-Disposition: form-data; name=\"${key}\"`).byteLength;\n\t\t\tsize += typeof value === 'string'\n\t\t\t\t? encoder.encode(value).byteLength\n\t\t\t\t: value.size;\n\t\t}\n\n\t\treturn size;\n\t}\n\n\tif (body instanceof Blob) {\n\t\treturn body.size;\n\t}\n\n\tif (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {\n\t\treturn body.byteLength;\n\t}\n\n\tif (typeof body === 'string') {\n\t\treturn encoder.encode(body).byteLength;\n\t}\n\n\tif (body instanceof URLSearchParams) {\n\t\treturn encoder.encode(body.toString()).byteLength;\n\t}\n\n\treturn 0;\n};\n\nconst withProgress = (stream: ReadableStream<Uint8Array>, totalBytes: number, onProgress: Options['onDownloadProgress'] | Options['onUploadProgress']): ReadableStream<Uint8Array> => {\n\tlet previousChunk: Uint8Array | undefined;\n\tlet transferredBytes = 0;\n\n\treturn stream.pipeThrough(new TransformStream<Uint8Array, Uint8Array>({\n\t\ttransform(currentChunk, controller) {\n\t\t\tcontroller.enqueue(currentChunk);\n\n\t\t\tif (previousChunk) {\n\t\t\t\ttransferredBytes += previousChunk.byteLength;\n\n\t\t\t\tlet percent = totalBytes === 0 ? 0 : transferredBytes / totalBytes;\n\t\t\t\t// Avoid reporting 100% progress before the stream is actually finished (in case totalBytes is inaccurate)\n\t\t\t\tif (percent >= 1) {\n\t\t\t\t\t// Epsilon is used here to get as close as possible to 100% without reaching it.\n\t\t\t\t\t// If we were to use 0.99 here, percent could potentially go backwards.\n\t\t\t\t\tpercent = 1 - Number.EPSILON;\n\t\t\t\t}\n\n\t\t\t\tonProgress?.({percent, totalBytes: Math.max(totalBytes, transferredBytes), transferredBytes}, previousChunk);\n\t\t\t}\n\n\t\t\tpreviousChunk = currentChunk;\n\t\t},\n\t\tflush() {\n\t\t\tif (previousChunk) {\n\t\t\t\ttransferredBytes += previousChunk.byteLength;\n\t\t\t\tonProgress?.({percent: 1, totalBytes: Math.max(totalBytes, transferredBytes), transferredBytes}, previousChunk);\n\t\t\t}\n\t\t},\n\t}));\n};\n\nexport const streamResponse = (response: Response, onDownloadProgress: Options['onDownloadProgress']) => {\n\tif (!response.body) {\n\t\treturn response;\n\t}\n\n\tconst responseInit = {\n\t\tstatus: response.status,\n\t\tstatusText: response.statusText,\n\t\theaders: response.headers,\n\t};\n\n\tif (response.status === 204) {\n\t\treturn new Response(null, responseInit);\n\t}\n\n\tconst totalBytes = Math.max(0, Number(response.headers.get('content-length')) || 0);\n\treturn new Response(withProgress(response.body, totalBytes, onDownloadProgress), responseInit);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-restricted-types\nexport const streamRequest = (request: Request, onUploadProgress: Options['onUploadProgress'], originalBody?: BodyInit | null) => {\n\tif (!request.body) {\n\t\treturn request;\n\t}\n\n\t// Use original body for size calculation since request.body is already a stream\n\tconst totalBytes = getBodySize(originalBody ?? request.body);\n\n\treturn new Request(request, {\n\t\t// @ts-expect-error - Types are outdated.\n\t\tduplex: 'half',\n\t\tbody: withProgress(request.body, totalBytes, onUploadProgress),\n\t});\n};\n", "// eslint-disable-next-line @typescript-eslint/no-restricted-types\nexport const isObject = (value: unknown): value is object => value !== null && typeof value === 'object';\n", "import type {KyHeadersInit, Options} from '../types/options.js';\nimport type {Hooks} from '../types/hooks.js';\nimport {supportsAbortSignal} from '../core/constants.js';\nimport {isObject} from './is.js';\n\nconst replaceSymbol: unique symbol = Symbol('replaceOption');\n\ntype ReplaceMarked<T> = {\n\t[replaceSymbol]: true;\n\tvalue: T;\n};\n\ntype ReplaceState<T> = {\n\tisReplace: boolean;\n\tvalue: T;\n};\n\nconst getReplaceState = <T>(value: T): ReplaceState<T> =>\n\tisObject(value) && (value as any)[replaceSymbol] === true\n\t\t? {\n\t\t\tisReplace: true,\n\t\t\tvalue: (value as unknown as ReplaceMarked<T>).value,\n\t\t}\n\t\t: {\n\t\t\tisReplace: false,\n\t\t\tvalue,\n\t\t};\n\n/**\nWraps a value so that `ky.extend()` will replace the parent value instead of merging with it. Works with hooks, headers, search parameters, context, and any other deep-merged option.\n\nBy default, `.extend()` deep-merges options with the parent instance: hooks get appended, headers get merged, and search parameters get accumulated. Use `replaceOption` when you want to fully replace a merged property instead.\n\n@example\n```\nimport ky, {replaceOption} from 'ky';\n\nconst base = ky.create({\n\thooks: {beforeRequest: [addAuth, addTracking]},\n});\n\n// Replaces instead of appending\nconst extended = base.extend({\n\thooks: replaceOption({beforeRequest: [onlyThis]}),\n});\n// hooks.beforeRequest is now [onlyThis], not [addAuth, addTracking, onlyThis]\n```\n*/\nexport const replaceOption = <T>(value: T): T => {\n\tconst markedValue: ReplaceMarked<T> = {[replaceSymbol]: true, value};\n\treturn markedValue as unknown as T;\n};\n\nexport const validateAndMerge = (...sources: Array<Partial<Options> | undefined>): Partial<Options> => {\n\tfor (const source of sources) {\n\t\tif ((!isObject(source) || Array.isArray(source)) && source !== undefined) {\n\t\t\tthrow new TypeError('The `options` argument must be an object');\n\t\t}\n\t}\n\n\treturn deepMerge({}, ...sources);\n};\n\nexport const mergeHeaders = (source1: KyHeadersInit = {}, source2: KyHeadersInit = {}) => {\n\tconst result = new globalThis.Headers(source1 as RequestInit['headers']);\n\tconst isHeadersInstance = source2 instanceof globalThis.Headers;\n\tconst source = new globalThis.Headers(source2 as RequestInit['headers']);\n\n\tfor (const [key, value] of source.entries()) {\n\t\tif ((isHeadersInstance && value === 'undefined') || value === undefined) {\n\t\t\tresult.delete(key);\n\t\t} else {\n\t\t\tresult.set(key, value);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n\tif (!isObject(value) || Array.isArray(value)) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n};\n\nexport const cloneShallow = <T>(value: T): T => {\n\tif (value instanceof URLSearchParams) {\n\t\tconst copy = new URLSearchParams(value) as URLSearchParams & {[deletedParametersSymbol]?: Set<string>};\n\t\tconst deleted = (value as URLSearchParams & {[deletedParametersSymbol]?: Set<string>})[deletedParametersSymbol];\n\t\tif (deleted) {\n\t\t\t// Preserve internal deletion markers so init-hook cloning does not resurrect params removed during option merging.\n\t\t\tcopy[deletedParametersSymbol] = new Set(deleted);\n\t\t}\n\n\t\treturn copy as T;\n\t}\n\n\tif (value instanceof globalThis.Headers) {\n\t\treturn new globalThis.Headers(value) as T;\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn [...value] as T;\n\t}\n\n\tif (isPlainObject(value)) {\n\t\tconst copy = {...value};\n\t\treturn copy as T;\n\t}\n\n\treturn value;\n};\n\nconst normalizeHeaderObject = (headers: Record<string, string | undefined>): Record<string, string> =>\n\tObject.fromEntries(\n\t\tObject.entries(headers).filter((entry): entry is [string, string] => entry[1] !== undefined),\n\t);\n\nconst mergeHeaderContainers = (source1: KyHeadersInit, source2: KyHeadersInit): KyHeadersInit => {\n\tif (isPlainObject(source1) && isPlainObject(source2)) {\n\t\treturn normalizeHeaderObject({...source1, ...source2});\n\t}\n\n\treturn mergeHeaders(source1, source2);\n};\n\nfunction newHookValue<K extends keyof Hooks>(original: Hooks, incoming: Hooks, property: K): Required<Hooks>[K] {\n\treturn (Object.hasOwn(incoming, property) && incoming[property] === undefined)\n\t\t? []\n\t\t: deepMerge<Required<Hooks>[K]>(original[property] ?? [], incoming[property] ?? []);\n}\n\nexport const mergeHooks = (original: Hooks = {}, incoming: Hooks = {}): Required<Hooks> => (\n\t{\n\t\tinit: newHookValue(original, incoming, 'init'),\n\t\tbeforeRequest: newHookValue(original, incoming, 'beforeRequest'),\n\t\tbeforeRetry: newHookValue(original, incoming, 'beforeRetry'),\n\t\tbeforeError: newHookValue(original, incoming, 'beforeError'),\n\t\tafterResponse: newHookValue(original, incoming, 'afterResponse'),\n\t}\n);\n\nexport const deletedParametersSymbol = Symbol('deletedParameters');\n\nconst appendSearchParameters = (target: any, source: any): URLSearchParams => {\n\tconst result = new URLSearchParams() as URLSearchParams & {[deletedParametersSymbol]?: Set<string>};\n\tconst deleted = new Set<string>();\n\n\tfor (const input of [target, source]) {\n\t\tif (input === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (input instanceof URLSearchParams) {\n\t\t\tfor (const [key, value] of input.entries()) {\n\t\t\t\tresult.append(key, value);\n\t\t\t\tdeleted.delete(key);\n\t\t\t}\n\n\t\t\tconst inputDeleted = (input as any)[deletedParametersSymbol] as Set<string> | undefined;\n\t\t\tif (inputDeleted) {\n\t\t\t\tfor (const key of inputDeleted) {\n\t\t\t\t\tresult.delete(key);\n\t\t\t\t\tdeleted.add(key);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (Array.isArray(input)) {\n\t\t\tfor (const pair of input) {\n\t\t\t\tif (!Array.isArray(pair) || pair.length !== 2) {\n\t\t\t\t\tthrow new TypeError('Array search parameters must be provided in [[key, value], ...] format');\n\t\t\t\t}\n\n\t\t\t\tresult.append(String(pair[0]), String(pair[1]));\n\t\t\t\tdeleted.delete(String(pair[0]));\n\t\t\t}\n\t\t} else if (isObject(input)) {\n\t\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\tresult.delete(key);\n\t\t\t\t\tdeleted.add(key);\n\t\t\t\t} else {\n\t\t\t\t\tresult.append(key, String(value));\n\t\t\t\t\tdeleted.delete(key);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// String\n\t\t\tconst parameters = new URLSearchParams(input);\n\t\t\tfor (const [key, value] of parameters.entries()) {\n\t\t\t\tresult.append(key, value);\n\t\t\t\tdeleted.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (deleted.size > 0) {\n\t\tresult[deletedParametersSymbol] = deleted;\n\t}\n\n\treturn result;\n};\n\n// TODO: Make this strongly-typed (no `any`).\nexport const deepMerge = <T>(...sources: Array<Partial<T> | undefined>): T => {\n\tlet returnValue: any = {};\n\tlet headers: KyHeadersInit = {};\n\tlet hooks = {};\n\tlet searchParameters: any;\n\tconst signals: AbortSignal[] = [];\n\n\tfor (const source of sources) {\n\t\tif (Array.isArray(source)) {\n\t\t\tif (!Array.isArray(returnValue)) {\n\t\t\t\treturnValue = [];\n\t\t\t}\n\n\t\t\treturnValue = [...returnValue, ...source];\n\t\t} else if (isObject(source)) {\n\t\t\tfor (let [key, value] of Object.entries(source)) {\n\t\t\t\t// Special handling for AbortSignal instances\n\t\t\t\tif (key === 'signal' && value instanceof globalThis.AbortSignal) {\n\t\t\t\t\tsignals.push(value);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst replaceState = getReplaceState(value);\n\t\t\t\tconst {isReplace} = replaceState;\n\t\t\t\tvalue = replaceState.value;\n\n\t\t\t\t// Special handling for context - shallow merge only\n\t\t\t\tif (key === 'context') {\n\t\t\t\t\tif (value !== undefined && value !== null && (!isObject(value) || Array.isArray(value))) {\n\t\t\t\t\t\tthrow new TypeError('The `context` option must be an object');\n\t\t\t\t\t}\n\n\t\t\t\t\t// Shallow merge: always create a new object to prevent mutation bugs\n\t\t\t\t\treturnValue = {\n\t\t\t\t\t\t...returnValue,\n\t\t\t\t\t\tcontext: (value === undefined || value === null)\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: (isReplace\n\t\t\t\t\t\t\t\t? {...value}\n\t\t\t\t\t\t\t\t: {...returnValue.context, ...value}),\n\t\t\t\t\t};\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Special handling for searchParams\n\t\t\t\tif (key === 'searchParams') {\n\t\t\t\t\tif (value === undefined || value === null) {\n\t\t\t\t\t\t// Explicit undefined or null removes searchParams\n\t\t\t\t\t\tsearchParameters = undefined;\n\t\t\t\t\t} else if (isReplace) {\n\t\t\t\t\t\tsearchParameters = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// First source: keep as-is to preserve type (string/object/URLSearchParams)\n\t\t\t\t\t\t// Subsequent sources: merge and convert to URLSearchParams\n\t\t\t\t\t\tsearchParameters = searchParameters === undefined ? value : appendSearchParameters(searchParameters, value);\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (isObject(value) && !isReplace && key in returnValue) {\n\t\t\t\t\tvalue = deepMerge(returnValue[key], value);\n\t\t\t\t}\n\n\t\t\t\treturnValue = {...returnValue, [key]: value};\n\t\t\t}\n\n\t\t\tif (isObject((source as any).hooks)) {\n\t\t\t\tconst {value: hookValue, isReplace} = getReplaceState((source as any).hooks);\n\t\t\t\thooks = isReplace\n\t\t\t\t\t? mergeHooks({}, hookValue)\n\t\t\t\t\t: mergeHooks(hooks, hookValue);\n\n\t\t\t\treturnValue.hooks = hooks;\n\t\t\t}\n\n\t\t\tif (isObject((source as any).headers)) {\n\t\t\t\tconst {value: headerValue, isReplace} = getReplaceState((source as any).headers);\n\t\t\t\theaders = isReplace\n\t\t\t\t\t? cloneShallow(headerValue as KyHeadersInit)\n\t\t\t\t\t: mergeHeaderContainers(headers, headerValue as KyHeadersInit);\n\n\t\t\t\treturnValue.headers = headers;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (searchParameters !== undefined) {\n\t\treturnValue.searchParams = searchParameters;\n\t}\n\n\tif (signals.length > 0) {\n\t\tif (signals.length === 1) {\n\t\t\treturnValue.signal = signals[0];\n\t\t} else if (supportsAbortSignal) {\n\t\t\treturnValue.signal = AbortSignal.any(signals);\n\t\t} else {\n\t\t\t// When AbortSignal.any is not available, use the last signal\n\t\t\t// This maintains the previous behavior before signal merging was added\n\t\t\t// This can be remove when the `supportsAbortSignal` check is removed.`\n\t\t\treturnValue.signal = signals.at(-1);\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n", "import {requestMethods} from '../core/constants.js';\nimport type {RetryOptions} from '../types/retry.js';\nimport type {HttpMethod, RequestHttpMethod} from '../types/options.js';\n\nexport const normalizeRequestMethod = (input: string): string =>\n\trequestMethods.includes(input as RequestHttpMethod) ? input.toUpperCase() : input;\n\nconst retryMethods: HttpMethod[] = ['get', 'put', 'head', 'delete', 'options', 'trace'];\n\nconst retryStatusCodes = [408, 413, 429, 500, 502, 503, 504];\n\nconst retryAfterStatusCodes = [413, 429, 503];\n\ntype InternalRetryOptions = Required<Omit<RetryOptions, 'shouldRetry'>> & Pick<RetryOptions, 'shouldRetry'>;\n\nconst defaultRetryOptions: InternalRetryOptions = {\n\tlimit: 2,\n\tmethods: retryMethods,\n\tstatusCodes: retryStatusCodes,\n\tafterStatusCodes: retryAfterStatusCodes,\n\tmaxRetryAfter: Number.POSITIVE_INFINITY,\n\tbackoffLimit: Number.POSITIVE_INFINITY,\n\tdelay: attemptCount => 0.3 * (2 ** (attemptCount - 1)) * 1000,\n\tjitter: undefined,\n\tretryOnTimeout: false,\n};\n\nexport const normalizeRetryOptions = (retry: number | RetryOptions = {}): InternalRetryOptions => {\n\tif (typeof retry === 'number') {\n\t\treturn {\n\t\t\t...defaultRetryOptions,\n\t\t\tlimit: retry,\n\t\t};\n\t}\n\n\tif (retry.methods && !Array.isArray(retry.methods)) {\n\t\tthrow new Error('retry.methods must be an array');\n\t}\n\n\tif (retry.statusCodes && !Array.isArray(retry.statusCodes)) {\n\t\tthrow new Error('retry.statusCodes must be an array');\n\t}\n\n\tconst normalizedRetry = Object.fromEntries(Object.entries({\n\t\t...retry,\n\t\tmethods: retry.methods?.map(method => method.toLowerCase()),\n\t}).filter(([, value]) => value !== undefined)) as RetryOptions;\n\n\treturn {\n\t\t...defaultRetryOptions,\n\t\t...normalizedRetry,\n\t};\n};\n", "import {TimeoutError} from '../errors/TimeoutError.js';\n\nexport type TimeoutOptions = {\n\ttimeout: number;\n\tfetch: typeof fetch;\n};\n\n// `Promise.race()` workaround (#91)\nexport default async function timeout(\n\trequest: Request,\n\tinit: RequestInit,\n\tabortController: AbortController | undefined,\n\toptions: TimeoutOptions,\n): Promise<Response> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tif (abortController) {\n\t\t\t\tabortController.abort();\n\t\t\t}\n\n\t\t\treject(new TimeoutError(request));\n\t\t}, options.timeout);\n\n\t\tvoid options\n\t\t\t.fetch(request, init)\n\t\t\t.then(resolve)\n\t\t\t.catch(reject)\n\t\t\t.then(() => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t});\n\t});\n}\n", "// https://github.com/sindresorhus/delay/tree/ab98ae8dfcb38e1593286c94d934e70d14a4e111\n\nimport {type InternalOptions} from '../types/options.js';\n\nexport type DelayOptions = {\n\tsignal?: InternalOptions['signal'];\n};\n\nexport default async function delay(\n\tms: number,\n\t{signal}: DelayOptions,\n): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tif (signal) {\n\t\t\tsignal.throwIfAborted();\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tfunction abortHandler() {\n\t\t\tclearTimeout(timeoutId);\n\t\t\treject(signal!.reason as Error);\n\t\t}\n\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tsignal?.removeEventListener('abort', abortHandler);\n\t\t\tresolve();\n\t\t}, ms);\n\t});\n}\n", "import {kyOptionKeys, requestOptionsRegistry} from '../core/constants.js';\nimport type {SearchParamsOption} from '../types/options.js';\nimport {deletedParametersSymbol} from './merge.js';\n\nexport const findUnknownOptions = (\n\toptions: Record<string, unknown>,\n): Record<string, unknown> => {\n\tconst unknownOptions: Record<string, unknown> = {};\n\n\tfor (const key in options) {\n\t\t// Skip inherited properties\n\t\tif (!Object.hasOwn(options, key)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Forward every non-standard, non-Ky option to fetch().\n\t\t// We intentionally do not check whether the key also exists on `Request`, because some runtimes\n\t\t// patch `Request.prototype` with fetch-only extensions. For example, Next.js adds `next`, and the\n\t\t// old `key in request` heuristic dropped it unless Ky kept a special-case allowlist.\n\t\t// Passing all non-standard keys makes that allowlist unnecessary and preserves future fetch extensions too.\n\t\tif (!(key in requestOptionsRegistry) && !(key in kyOptionKeys)) {\n\t\t\tunknownOptions[key] = options[key];\n\t\t}\n\t}\n\n\treturn unknownOptions;\n};\n\nexport const hasSearchParameters = (search: SearchParamsOption): boolean => {\n\tif (search === undefined) {\n\t\treturn false;\n\t}\n\n\t// The `typeof array` still gives \"object\", so we need different checking for array.\n\tif (Array.isArray(search)) {\n\t\treturn search.length > 0;\n\t}\n\n\tif (search instanceof URLSearchParams) {\n\t\treturn search.size > 0 || Boolean((search as any)[deletedParametersSymbol]?.size);\n\t}\n\n\t// Record\n\tif (typeof search === 'object') {\n\t\treturn Object.keys(search).length > 0;\n\t}\n\n\tif (typeof search === 'string') {\n\t\treturn search.trim().length > 0;\n\t}\n\n\treturn Boolean(search);\n};\n", "// Inlined from https://github.com/sindresorhus/is-network-error v1.3.1\n\nconst objectToString = Object.prototype.toString;\n\nconst isError = (value: unknown): value is Error => objectToString.call(value) === '[object Error]';\n\nconst errorMessages = new Set([\n\t'network error', // Chrome\n\t'NetworkError when attempting to fetch resource.', // Firefox\n\t'The Internet connection appears to be offline.', // Safari 16\n\t'Network request failed', // `cross-fetch`\n\t'fetch failed', // Undici (Node.js)\n\t'terminated', // Undici (Node.js)\n\t' A network error occurred.', // Bun (WebKit) - leading space is intentional\n\t'Network connection lost', // Cloudflare Workers (fetch)\n]);\n\nexport default function isRawNetworkError(error: unknown): error is TypeError {\n\tconst isValid = error\n\t\t&& isError(error)\n\t\t&& error.name === 'TypeError'\n\t\t&& typeof error.message === 'string';\n\n\tif (!isValid) {\n\t\treturn false;\n\t}\n\n\tconst {message, stack} = error;\n\n\t// Safari 17+ has generic message but no stack for network errors\n\tif (message === 'Load failed') {\n\t\treturn stack === undefined\n\t\t\t// Sentry adds its own stack trace to the fetch error, so also check for that\n\t\t\t|| '__sentry_captured__' in error;\n\t}\n\n\t// Deno network errors start with specific text\n\tif (message.startsWith('error sending request for url')) {\n\t\treturn true;\n\t}\n\n\t// Chrome: exact \"Failed to fetch\" or with hostname: \"Failed to fetch (example.com)\"\n\tif (message === 'Failed to fetch' || (message.startsWith('Failed to fetch (') && message.endsWith(')'))) {\n\t\treturn true;\n\t}\n\n\t// Standard network error messages\n\treturn errorMessages.has(message);\n}\n", "import type {KyError} from '../errors/KyError.js';\nimport {HTTPError} from '../errors/HTTPError.js';\nimport {NetworkError} from '../errors/NetworkError.js';\nimport {TimeoutError} from '../errors/TimeoutError.js';\nimport {ForceRetryError} from '../errors/ForceRetryError.js';\n\n// Handles cross-realm cases (e.g., iframes, different JS contexts) where `instanceof` fails.\nconst isErrorType = (error: unknown, cls: {name: string}): boolean =>\n\terror instanceof (cls as any) || (error as any)?.name === cls.name;\n\n/**\nType guard to check if an error is a `KyError`.\n\nNote: `SchemaValidationError` is intentionally not considered a Ky error. `KyError` covers failures in Ky's HTTP lifecycle (bad status, timeout, retry), while schema validation errors originate from the user-provided schema, not from Ky itself.\n\n@param error - The error to check\n@returns `true` if the error is a Ky error, `false` otherwise\n\n@example\n```\nimport ky, {isKyError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data');\n} catch (error) {\n\tif (isKyError(error)) {\n\t\t// Handle Ky-specific errors\n\t\tconsole.log('Ky error occurred:', error.message);\n\t} else {\n\t\t// Handle other errors\n\t\tconsole.log('Unknown error:', error);\n\t}\n}\n```\n*/\nexport function isKyError(error: unknown): error is KyError {\n\treturn (error as any)?.isKyError === true || isHTTPError(error) || isNetworkError(error) || isTimeoutError(error) || isForceRetryError(error);\n}\n\n/**\nType guard to check if an error is an `HTTPError`.\n\n@param error - The error to check\n@returns `true` if the error is an `HTTPError`, `false` otherwise\n\n@example\n```\nimport ky, {isHTTPError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data');\n} catch (error) {\n\tif (isHTTPError(error)) {\n\t\tconsole.log('HTTP error status:', error.response.status);\n\t}\n}\n```\n*/\nexport function isHTTPError<T = unknown>(error: unknown): error is HTTPError<T> {\n\treturn isErrorType(error, HTTPError);\n}\n\n/**\nType guard to check if an error is a `NetworkError`.\n\n@param error - The error to check\n@returns `true` if the error is a `NetworkError`, `false` otherwise\n\n@example\n```\nimport ky, {isNetworkError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data');\n} catch (error) {\n\tif (isNetworkError(error)) {\n\t\tconsole.log('Network error:', error.request.url);\n\t}\n}\n```\n*/\nexport function isNetworkError(error: unknown): error is NetworkError {\n\treturn isErrorType(error, NetworkError);\n}\n\n/**\nType guard to check if an error is a `TimeoutError`.\n\n@param error - The error to check\n@returns `true` if the error is a `TimeoutError`, `false` otherwise\n\n@example\n```\nimport ky, {isTimeoutError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data', { timeout: 1000 });\n} catch (error) {\n\tif (isTimeoutError(error)) {\n\t\tconsole.log('Request timed out:', error.request.url);\n\t}\n}\n```\n*/\nexport function isTimeoutError(error: unknown): error is TimeoutError {\n\treturn isErrorType(error, TimeoutError);\n}\n\n/**\nType guard to check if an error is a `ForceRetryError`.\n\n@param error - The error to check\n@returns `true` if the error is a `ForceRetryError`, `false` otherwise\n\n@example\n```\nimport ky, {isForceRetryError} from 'ky';\n\nconst api = ky.extend({\n\thooks: {\n\t\tbeforeRetry: [\n\t\t\t({error, retryCount}) => {\n\t\t\t\tif (isForceRetryError(error)) {\n\t\t\t\t\tconsole.log(`Forced retry #${retryCount}: ${error.code}`);\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n});\n```\n*/\nexport function isForceRetryError(error: unknown): error is ForceRetryError {\n\treturn isErrorType(error, ForceRetryError);\n}\n", "import {HTTPError} from '../errors/HTTPError.js';\nimport {NetworkError} from '../errors/NetworkError.js';\nimport {NonError} from '../errors/NonError.js';\nimport {ForceRetryError} from '../errors/ForceRetryError.js';\nimport {SchemaValidationError} from '../errors/SchemaValidationError.js';\nimport {TimeoutError} from '../errors/TimeoutError.js';\nimport type {\n\tInput,\n\tInternalOptions,\n\tNormalizedOptions,\n\tOptions,\n\tSearchParamsInit,\n\tSearchParamsOption,\n} from '../types/options.js';\nimport {type ResponsePromise} from '../types/ResponsePromise.js';\nimport type {StandardSchemaV1} from '../types/standard-schema.js';\nimport {streamRequest, streamResponse} from '../utils/body.js';\nimport {\n\tcloneShallow,\n\tmergeHeaders,\n\tmergeHooks,\n\tdeletedParametersSymbol,\n} from '../utils/merge.js';\nimport type {RetryOptions} from '../types/retry.js';\nimport {normalizeRequestMethod, normalizeRetryOptions} from '../utils/normalize.js';\nimport timeout from '../utils/timeout.js';\nimport delay from '../utils/delay.js';\nimport {type ObjectEntries} from '../utils/types.js';\nimport {findUnknownOptions, hasSearchParameters} from '../utils/options.js';\nimport isRawNetworkError from '../utils/is-network-error.js';\nimport {isHTTPError, isNetworkError, isTimeoutError} from '../utils/type-guards.js';\nimport {\n\tmaxSafeTimeout,\n\tresponseTypes,\n\tstop,\n\tRetryMarker,\n\tsupportsAbortController,\n\tsupportsAbortSignal,\n\tsupportsFormData,\n\tsupportsResponseStreams,\n\tsupportsRequestStreams,\n} from './constants.js';\n\nconst maxErrorResponseBodySize = 10 * 1024 * 1024;\nconst prefixUrlRenamedErrorMessage = 'The `prefixUrl` option has been renamed `prefix` in v2 and enhanced to allow slashes in input. See also the new `baseUrl` option for improved flexibility with standard URL resolution: https://github.com/sindresorhus/ky#baseurl';\nconst timedOutResponseData = Symbol('timedOutResponseData');\n\nconst createTextDecoder = (contentType: string): TextDecoder => {\n\tconst match = /;\\s*charset\\s*=\\s*(?:\"([^\"]+)\"|([^;,\\s]+))/i.exec(contentType);\n\tconst charset = match?.[1] ?? match?.[2];\n\tif (charset) {\n\t\ttry {\n\t\t\treturn new TextDecoder(charset);\n\t\t} catch {}\n\t}\n\n\treturn new TextDecoder();\n};\n\nconst invalidSchemaMessage = 'The `schema` argument must follow the Standard Schema specification';\n\nconst cloneRetryOptions = (retry: RetryOptions | number): RetryOptions | number => {\n\tif (typeof retry !== 'object') {\n\t\treturn retry;\n\t}\n\n\t// Clone nested arrays too so init hooks can mutate retry config without leaking state across requests.\n\treturn {\n\t\t...retry,\n\t\t...(retry.methods && {methods: [...retry.methods]}),\n\t\t...(retry.statusCodes && {statusCodes: [...retry.statusCodes]}),\n\t\t...(retry.afterStatusCodes && {afterStatusCodes: [...retry.afterStatusCodes]}),\n\t};\n};\n\nconst objectToString = Object.prototype.toString;\n\nconst isRequestInstance = (value: unknown): value is Request =>\n\tvalue instanceof globalThis.Request || objectToString.call(value) === '[object Request]';\n\n// Accepted custom responses are treated as full Responses throughout Ky.\n// If a custom fetch returns one, it must behave like a Response for cloning,\n// body consumption, `json()` decoration, and any enabled stream features.\nconst isResponseInstance = (value: unknown): value is Response =>\n\tvalue instanceof globalThis.Response || objectToString.call(value) === '[object Response]';\n\nconst cloneSearchParametersForInitHook = (searchParameters: SearchParamsOption | undefined): SearchParamsOption | undefined => {\n\tif (Array.isArray(searchParameters)) {\n\t\treturn searchParameters.map(parameter => [...parameter]) as SearchParamsOption;\n\t}\n\n\treturn cloneShallow(searchParameters) as SearchParamsOption | undefined;\n};\n\n// Shallow-clone mutable option properties so init hook mutations don't leak across requests.\nfunction cloneInitHookOptions(options: Options): Options {\n\tconst clonedOptions: Options = {\n\t\t...options,\n\t\tjson: cloneShallow(options.json),\n\t\tcontext: cloneShallow(options.context)!,\n\t\theaders: cloneShallow(options.headers)!,\n\t\tsearchParams: cloneSearchParametersForInitHook(options.searchParams),\n\t};\n\n\tif (options.retry !== undefined) {\n\t\tclonedOptions.retry = cloneRetryOptions(options.retry);\n\t}\n\n\treturn clonedOptions;\n}\n\nconst validateJsonWithSchema = async (jsonValue: unknown, schema: StandardSchemaV1): Promise<unknown> => {\n\tif (\n\t\t(\n\t\t\ttypeof schema !== 'object'\n\t\t\t&& typeof schema !== 'function'\n\t\t)\n\t\t|| schema === null\n\t) {\n\t\tthrow new TypeError(invalidSchemaMessage);\n\t}\n\n\tconst standardSchema = schema['~standard'];\n\n\tif (\n\t\ttypeof standardSchema !== 'object'\n\t\t|| standardSchema === null\n\t\t|| typeof standardSchema.validate !== 'function'\n\t) {\n\t\tthrow new TypeError(invalidSchemaMessage);\n\t}\n\n\tconst validationResult = await standardSchema.validate(jsonValue);\n\n\tif (validationResult.issues) {\n\t\tthrow new SchemaValidationError(validationResult.issues);\n\t}\n\n\treturn validationResult.value;\n};\n\nexport class Ky {\n\tstatic create(input: Input, options: Options): ResponsePromise {\n\t\tconst initHooks = options.hooks?.init ?? [];\n\t\tconst initHookOptions = initHooks.length > 0 ? cloneInitHookOptions(options) : options;\n\n\t\tfor (const hook of initHooks) {\n\t\t\thook(initHookOptions);\n\t\t}\n\n\t\tconst ky = new Ky(input, initHookOptions);\n\n\t\tconst function_ = async (): Promise<Response | void> => {\n\t\t\tif (typeof ky.#options.timeout === 'number' && ky.#options.timeout > maxSafeTimeout) {\n\t\t\t\tthrow new RangeError(`The \\`timeout\\` option cannot be greater than ${maxSafeTimeout}`);\n\t\t\t}\n\n\t\t\tif (typeof ky.#options.totalTimeout === 'number' && ky.#options.totalTimeout > maxSafeTimeout) {\n\t\t\t\tthrow new RangeError(`The \\`totalTimeout\\` option cannot be greater than ${maxSafeTimeout}`);\n\t\t\t}\n\n\t\t\t// Delay the fetch so that body method shortcuts can set the Accept header\n\t\t\tawait Promise.resolve();\n\t\t\tconst beforeRequestResponse = await ky.#runBeforeRequestHooks();\n\t\t\tlet response = beforeRequestResponse ?? await ky.#retry(async () => ky.#fetch());\n\t\t\tlet responseFromHook = beforeRequestResponse !== undefined\n\t\t\t\t|| ky.#consumeReturnedResponseFromBeforeRetryHook();\n\n\t\t\tfor (;;) {\n\t\t\t\t// `undefined` means a hook stopped the flow without providing a response.\n\t\t\t\t// Non-native Responses still continue through Ky if they pass `isResponseInstance()`.\n\t\t\t\tif (response === undefined) {\n\t\t\t\t\treturn response;\n\t\t\t\t}\n\n\t\t\t\tif (isResponseInstance(response)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\t\tresponse = await ky.#runAfterResponseHooks(response);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (!(error instanceof ForceRetryError)) {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\t\tconst retriedResponse: Response | void = await ky.#retryFromError(error, async () => ky.#fetch());\n\t\t\t\t\t\tif (retriedResponse === undefined) {\n\t\t\t\t\t\t\treturn retriedResponse;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresponse = retriedResponse;\n\t\t\t\t\t\tresponseFromHook = ky.#consumeReturnedResponseFromBeforeRetryHook();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst currentResponse: Response = response;\n\n\t\t\t\t// Opaque responses (`response.type === 'opaque'`) from `no-cors` requests always have `status: 0` and `ok: false`, but this is not a failure - the actual status is hidden by the browser.\n\t\t\t\tif (!currentResponse.ok && currentResponse.type !== 'opaque' && (\n\t\t\t\t\ttypeof ky.#options.throwHttpErrors === 'function'\n\t\t\t\t\t\t? ky.#options.throwHttpErrors(currentResponse.status)\n\t\t\t\t\t\t: ky.#options.throwHttpErrors\n\t\t\t\t)) {\n\t\t\t\t\t// `request` must reflect the request that actually failed, but `options` stays as Ky's\n\t\t\t\t\t// normalized options snapshot. Replacement `Request` instances do not preserve the\n\t\t\t\t\t// original `BodyInit`, so trying to make `options` mirror arbitrary requests would be lossy.\n\t\t\t\t\tconst httpError: HTTPError = new HTTPError(currentResponse, ky.#getResponseRequest(currentResponse), ky.#getNormalizedOptions());\n\t\t\t\t\tconst errorToThrow: Error = httpError;\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\thttpError.data = await ky.#getResponseData(currentResponse);\n\n\t\t\t\t\tif (responseFromHook) {\n\t\t\t\t\t\tthrow errorToThrow;\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tconst retriedResponse: Response | void = await ky.#retryFromError(httpError, async () => ky.#fetch());\n\t\t\t\t\tif (retriedResponse === undefined) {\n\t\t\t\t\t\treturn retriedResponse;\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = retriedResponse;\n\t\t\t\t\tresponseFromHook = ky.#consumeReturnedResponseFromBeforeRetryHook();\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (!isResponseInstance(response)) {\n\t\t\t\treturn response;\n\t\t\t}\n\n\t\t\tky.#decorateResponse(response);\n\n\t\t\t// If `onDownloadProgress` is passed, it uses the stream API internally\n\t\t\tif (ky.#options.onDownloadProgress) {\n\t\t\t\tif (typeof ky.#options.onDownloadProgress !== 'function') {\n\t\t\t\t\tthrow new TypeError('The `onDownloadProgress` option must be a function');\n\t\t\t\t}\n\n\t\t\t\tif (!supportsResponseStreams) {\n\t\t\t\t\tthrow new Error('Streams are not supported in your environment. `ReadableStream` is missing.');\n\t\t\t\t}\n\n\t\t\t\tconst progressResponse = response.clone();\n\t\t\t\tky.#cancelResponseBody(response);\n\t\t\t\treturn streamResponse(progressResponse, ky.#options.onDownloadProgress);\n\t\t\t}\n\n\t\t\treturn response;\n\t\t};\n\n\t\tconst result = (async () => {\n\t\t\ttry {\n\t\t\t\treturn await function_();\n\t\t\t} catch (error: unknown) {\n\t\t\t\t// Non-Error throws (e.g., thrown strings) pass through unchanged\n\t\t\t\tif (!(error instanceof Error)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\t// Errors thrown by beforeRetry hooks must propagate unchanged.\n\t\t\t\tif (ky.#beforeRetryHookErrors.has(error)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tlet processedError: Error = error;\n\t\t\t\tfor (const hook of ky.#options.hooks.beforeError) {\n\t\t\t\t\t// `request` is the current failing request. `options` intentionally remains the\n\t\t\t\t\t// stable normalized Ky options snapshot for the same reason as `HTTPError` above.\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tconst hookResult: unknown = await hook({\n\t\t\t\t\t\trequest: ky.request,\n\t\t\t\t\t\toptions: ky.#getNormalizedOptions(),\n\t\t\t\t\t\terror: processedError,\n\t\t\t\t\t\tretryCount: ky.#retryCount,\n\t\t\t\t\t});\n\n\t\t\t\t\t// Only overwrite if the hook returns a valid Error instance.\n\t\t\t\t\tif (hookResult instanceof Error) {\n\t\t\t\t\t\tprocessedError = hookResult;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow processedError;\n\t\t\t} finally {\n\t\t\t\tconst originalRequest = ky.#originalRequest;\n\n\t\t\t\t// Ignore cancellation errors from already-locked or already-consumed streams.\n\t\t\t\tky.#cancelBody(originalRequest?.body ?? undefined);\n\t\t\t\t// Only cancel the current request body if it's distinct from the original (i.e. it was cloned for retries).\n\t\t\t\tif (ky.request !== originalRequest) {\n\t\t\t\t\tky.#cancelBody(ky.request.body ?? undefined);\n\t\t\t\t}\n\t\t\t}\n\t\t})() as ResponsePromise;\n\n\t\tfor (const [type, mimeType] of Object.entries(responseTypes) as ObjectEntries<typeof responseTypes>) {\n\t\t\t// Only expose `.bytes()` when the environment implements it.\n\t\t\tif (\n\t\t\t\ttype === 'bytes'\n\t\t\t\t&& typeof (globalThis.Response?.prototype as unknown as {bytes?: unknown})?.bytes !== 'function'\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tresult[type] = async (schema?: StandardSchemaV1) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n\t\t\t\tky.request.headers.set('accept', ky.request.headers.get('accept') || mimeType);\n\n\t\t\t\tconst response = await result;\n\n\t\t\t\tif (type !== 'json') {\n\t\t\t\t\treturn response[type]();\n\t\t\t\t}\n\n\t\t\t\tconst text = await response.text();\n\t\t\t\tif (text === '') {\n\t\t\t\t\tif (schema !== undefined) {\n\t\t\t\t\t\treturn validateJsonWithSchema(undefined, schema);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn JSON.parse(text);\n\t\t\t\t}\n\n\t\t\t\tconst jsonValue = initHookOptions.parseJson\n\t\t\t\t\t? await initHookOptions.parseJson(text, {request: ky.#getResponseRequest(response), response})\n\t\t\t\t\t: JSON.parse(text);\n\n\t\t\t\treturn schema === undefined ? jsonValue : validateJsonWithSchema(jsonValue, schema);\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// eslint-disable-next-line unicorn/prevent-abbreviations\n\tstatic #normalizeSearchParams(searchParams: SearchParamsOption): SearchParamsOption {\n\t\t// Filter out undefined values from plain objects\n\t\tif (searchParams && typeof searchParams === 'object' && !Array.isArray(searchParams) && !(searchParams instanceof URLSearchParams)) {\n\t\t\treturn Object.fromEntries(Object.entries(searchParams).filter(([, value]) => value !== undefined));\n\t\t}\n\n\t\treturn searchParams;\n\t}\n\n\tpublic request: Request;\n\t#abortController?: AbortController;\n\t#retryCount = 0;\n\t// eslint-disable-next-line @typescript-eslint/prefer-readonly -- False positive: #input is reassigned on line 202\n\t#input: Input;\n\treadonly #options: InternalOptions;\n\t#originalRequest?: Request;\n\treadonly #userProvidedAbortSignal?: AbortSignal;\n\treadonly #beforeRetryHookErrors = new WeakSet<Error>();\n\t#cachedNormalizedOptions: NormalizedOptions | undefined;\n\treadonly #startTime: number | undefined;\n\t#returnedResponseFromBeforeRetryHook = false;\n\treadonly #responseRequests = new WeakMap<Response, Request>();\n\n\t// eslint-disable-next-line complexity\n\tconstructor(input: Input, options: Options = {}) {\n\t\tthis.#input = input;\n\t\tif (Object.hasOwn(options, 'prefixUrl')) {\n\t\t\tthrow new Error(prefixUrlRenamedErrorMessage);\n\t\t}\n\n\t\tthis.#options = {\n\t\t\t...options,\n\t\t\theaders: mergeHeaders((this.#input as Request).headers, options.headers),\n\t\t\thooks: mergeHooks({}, options.hooks),\n\t\t\tmethod: normalizeRequestMethod(options.method ?? (this.#input as Request).method ?? 'GET'),\n\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n\t\t\tprefix: String(options.prefix || ''),\n\t\t\tretry: normalizeRetryOptions(options.retry),\n\t\t\tthrowHttpErrors: options.throwHttpErrors ?? true,\n\t\t\ttimeout: options.timeout ?? 10_000,\n\t\t\ttotalTimeout: options.totalTimeout ?? false,\n\t\t\tfetch: options.fetch ?? globalThis.fetch.bind(globalThis),\n\t\t\tcontext: options.context ?? {},\n\t\t};\n\n\t\tif (typeof this.#input !== 'string' && !(this.#input instanceof URL || this.#input instanceof globalThis.Request)) {\n\t\t\tthrow new TypeError('`input` must be a string, URL, or Request');\n\t\t}\n\n\t\tif (typeof this.#input === 'string') {\n\t\t\tif (this.#options.prefix) {\n\t\t\t\tconst normalizedPrefix = this.#options.prefix.replace(/\\/+$/, '');\n\t\t\t\tconst normalizedInput = this.#input.replace(/^\\/+/, '');\n\t\t\t\tthis.#input = `${normalizedPrefix}/${normalizedInput}`;\n\t\t\t}\n\n\t\t\tif (this.#options.baseUrl) {\n\t\t\t\tlet absoluteInput: URL | undefined;\n\t\t\t\ttry {\n\t\t\t\t\tabsoluteInput = new URL(this.#input);\n\t\t\t\t} catch {}\n\n\t\t\t\tif (!absoluteInput) {\n\t\t\t\t\tthis.#input = new URL(this.#input, (new Request(this.#options.baseUrl)).url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (supportsAbortController && supportsAbortSignal) {\n\t\t\tthis.#userProvidedAbortSignal = this.#options.signal ?? (this.#input as Request).signal;\n\t\t\tthis.#abortController = new globalThis.AbortController();\n\t\t\tthis.#options.signal = this.#createManagedSignal();\n\t\t}\n\n\t\tif (supportsRequestStreams) {\n\t\t\t// @ts-expect-error - Types are outdated.\n\t\t\tthis.#options.duplex = 'half';\n\t\t}\n\n\t\tif (this.#options.json !== undefined) {\n\t\t\tthis.#options.body = this.#options.stringifyJson?.(this.#options.json) ?? JSON.stringify(this.#options.json);\n\t\t\tthis.#options.headers.set('content-type', this.#options.headers.get('content-type') ?? 'application/json');\n\t\t}\n\n\t\t// To provide correct form boundary, Content-Type header should be deleted when creating Request from another Request with FormData/URLSearchParams body\n\t\t// Only delete if user didn't explicitly provide a custom content-type\n\t\tconst userProvidedContentType = options.headers && new globalThis.Headers(options.headers as HeadersInit).has('content-type');\n\t\tif (\n\t\t\tthis.#input instanceof globalThis.Request\n\t\t\t&& ((supportsFormData && this.#options.body instanceof globalThis.FormData) || this.#options.body instanceof URLSearchParams)\n\t\t\t&& !userProvidedContentType\n\t\t) {\n\t\t\tthis.#options.headers.delete('content-type');\n\t\t}\n\n\t\tthis.request = new globalThis.Request(this.#input, this.#options);\n\n\t\tif (hasSearchParameters(this.#options.searchParams)) {\n\t\t\tconst url = new URL(this.request.url);\n\t\t\tconst deleted = (this.#options.searchParams as any)?.[deletedParametersSymbol] as Set<string> | undefined;\n\n\t\t\tif (deleted) {\n\t\t\t\t// Remove keys from the input URL first so later searchParams entries can intentionally re-add them.\n\t\t\t\tfor (const key of deleted) {\n\t\t\t\t\turl.searchParams.delete(key);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof this.#options.searchParams === 'string') {\n\t\t\t\tconst stringSearchParameters = this.#options.searchParams.replace(/^\\?/, '');\n\t\t\t\tif (stringSearchParameters !== '') {\n\t\t\t\t\turl.search = url.search ? `${url.search}&${stringSearchParameters}` : `?${stringSearchParameters}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst optionsSearchParameters = new URLSearchParams(Ky.#normalizeSearchParams(this.#options.searchParams) as unknown as SearchParamsInit);\n\n\t\t\t\tfor (const [key, value] of optionsSearchParameters.entries()) {\n\t\t\t\t\turl.searchParams.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.#options.searchParams\n\t\t\t\t&& typeof this.#options.searchParams === 'object'\n\t\t\t\t&& !Array.isArray(this.#options.searchParams)\n\t\t\t\t&& !(this.#options.searchParams instanceof URLSearchParams)\n\t\t\t) {\n\t\t\t\tfor (const [key, value] of Object.entries(this.#options.searchParams)) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\turl.searchParams.delete(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Recreate request with the updated URL. We already have all options in this.#options, including duplex.\n\t\t\tthis.request = new globalThis.Request(url, this.#options as RequestInit);\n\t\t}\n\n\t\tif (this.#options.onUploadProgress && typeof this.#options.onUploadProgress !== 'function') {\n\t\t\tthrow new TypeError('The `onUploadProgress` option must be a function');\n\t\t}\n\n\t\t// `totalTimeout` starts when the request pipeline is created, so it also includes\n\t\t// Ky's internal scheduling and user hook time before the first fetch attempt.\n\t\tthis.#startTime = typeof this.#options.totalTimeout === 'number' ? this.#getCurrentTime() : undefined;\n\t}\n\n\t#calculateDelay(): number {\n\t\tconst retryDelay = this.#options.retry.delay(this.#retryCount + 1);\n\n\t\tlet jitteredDelay = retryDelay;\n\t\tif (this.#options.retry.jitter === true) {\n\t\t\tjitteredDelay = Math.random() * retryDelay;\n\t\t} else if (typeof this.#options.retry.jitter === 'function') {\n\t\t\tjitteredDelay = this.#options.retry.jitter(retryDelay);\n\n\t\t\tif (!Number.isFinite(jitteredDelay) || jitteredDelay < 0) {\n\t\t\t\tjitteredDelay = retryDelay;\n\t\t\t}\n\t\t}\n\n\t\treturn Math.min(this.#options.retry.backoffLimit, jitteredDelay);\n\t}\n\n\tasync #calculateRetryDelay(error: unknown) {\n\t\tif (this.#retryCount >= this.#options.retry.limit) {\n\t\t\tthrow error;\n\t\t}\n\n\t\t// Wrap non-Error throws to ensure consistent error handling\n\t\tconst errorObject = error instanceof Error ? error : new NonError(error);\n\n\t\t// Handle forced retry from afterResponse hook - skip method check and shouldRetry\n\t\tif (errorObject instanceof ForceRetryError) {\n\t\t\treturn errorObject.customDelay ?? this.#calculateDelay();\n\t\t}\n\n\t\t// Check if method is retriable for non-forced retries\n\t\tif (!this.#options.retry.methods.includes(this.request.method.toLowerCase())) {\n\t\t\tthrow error;\n\t\t}\n\n\t\t// User-provided shouldRetry function takes precedence over default checks (retryOnTimeout, status codes, etc.)\n\t\tif (this.#options.retry.shouldRetry !== undefined) {\n\t\t\tconst result = await this.#options.retry.shouldRetry({error: errorObject, retryCount: this.#retryCount + 1});\n\n\t\t\t// Strict boolean checking - only exact true/false are handled specially\n\t\t\tif (result === false) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (result === true) {\n\t\t\t\t// Force retry - skip all other validation and return delay\n\t\t\t\treturn this.#calculateDelay();\n\t\t\t}\n\n\t\t\t// If undefined or any other value, fall through to default behavior\n\t\t}\n\n\t\t// Default timeout behavior\n\t\tif (isTimeoutError(error)) {\n\t\t\tif (!this.#options.retry.retryOnTimeout) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn this.#calculateDelay();\n\t\t}\n\n\t\tif (isHTTPError(error)) {\n\t\t\tif (!this.#options.retry.statusCodes.includes(error.response.status)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tconst retryAfter = error.response.headers.get('Retry-After')\n\t\t\t\t?? error.response.headers.get('RateLimit-Reset')\n\t\t\t\t?? error.response.headers.get('X-RateLimit-Retry-After') // Symfony-based services\n\t\t\t\t?? error.response.headers.get('X-RateLimit-Reset') // GitHub\n\t\t\t\t?? error.response.headers.get('X-Rate-Limit-Reset'); // Twitter\n\t\t\tif (retryAfter && this.#options.retry.afterStatusCodes.includes(error.response.status)) {\n\t\t\t\tlet after = Number(retryAfter) * 1000;\n\t\t\t\tif (Number.isNaN(after)) {\n\t\t\t\t\tafter = Date.parse(retryAfter) - Date.now();\n\t\t\t\t} else if (after >= Date.parse('2024-01-01')) {\n\t\t\t\t\t// A large number is treated as a timestamp (fixed threshold protects against clock skew)\n\t\t\t\t\tafter -= Date.now();\n\t\t\t\t}\n\n\t\t\t\tif (!Number.isFinite(after)) {\n\t\t\t\t\treturn Math.min(this.#options.retry.maxRetryAfter, this.#calculateDelay());\n\t\t\t\t}\n\n\t\t\t\tafter = Math.max(0, after);\n\n\t\t\t\t// Don't apply jitter when server provides explicit retry timing\n\t\t\t\treturn Math.min(this.#options.retry.maxRetryAfter, after);\n\t\t\t}\n\n\t\t\tif (error.response.status === 413) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn this.#calculateDelay();\n\t\t}\n\n\t\t// Only retry known retriable error types. Unknown errors (e.g., programming bugs) are not retried.\n\t\tif (!isNetworkError(error)) {\n\t\t\tthrow error;\n\t\t}\n\n\t\treturn this.#calculateDelay();\n\t}\n\n\t#decorateResponse(response: Response): Response {\n\t\tconst request = this.#getResponseRequest(response);\n\n\t\tif (this.#options.parseJson) {\n\t\t\tresponse.json = async () => {\n\t\t\t\tconst text = await response.text();\n\t\t\t\tif (text === '') {\n\t\t\t\t\treturn JSON.parse(text);\n\t\t\t\t}\n\n\t\t\t\treturn this.#options.parseJson!(text, {request, response});\n\t\t\t};\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tasync #getResponseData(response: Response): Promise<unknown> {\n\t\t// Even with request timeouts disabled, bound error-body reads so retries and error propagation\n\t\t// cannot be stalled indefinitely by never-ending response streams.\n\t\tconst text = await this.#readResponseText(response, this.#getErrorDataTimeout());\n\t\tif (text === timedOutResponseData) {\n\t\t\tthis.#throwIfTotalTimeoutExhausted();\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (!text) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (!this.#isJsonContentType(response.headers.get('content-type') ?? '')) {\n\t\t\treturn text;\n\t\t}\n\n\t\tconst data = await this.#parseJson(text, response, this.#getErrorDataTimeout(), this.#getResponseRequest(response));\n\t\tif (data === timedOutResponseData) {\n\t\t\tthis.#throwIfTotalTimeoutExhausted();\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t#getErrorDataTimeout(): number {\n\t\tconst errorDataTimeout = this.#options.timeout === false ? 10_000 : this.#options.timeout;\n\t\tconst remainingTotal = this.#getRemainingTotalTimeout();\n\t\tif (remainingTotal === undefined) {\n\t\t\treturn errorDataTimeout;\n\t\t}\n\n\t\tif (remainingTotal <= 0) {\n\t\t\tthrow new TimeoutError(this.request);\n\t\t}\n\n\t\treturn Math.min(errorDataTimeout, remainingTotal);\n\t}\n\n\t#isJsonContentType(contentType: string): boolean {\n\t\t// Match JSON subtypes like `json`, `problem+json`, and `vnd.api+json`.\n\t\tconst mimeType = (contentType.split(';', 1)[0] ?? '').trim().toLowerCase();\n\t\treturn /\\/(?:.*[.+-])?json$/.test(mimeType);\n\t}\n\n\tasync #readResponseText(response: Response, timeoutMs: number): Promise<string | typeof timedOutResponseData | undefined> {\n\t\tconst {body} = response;\n\t\tif (!body) {\n\t\t\ttry {\n\t\t\t\treturn await response.text();\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tlet reader: ReadableStreamDefaultReader<Uint8Array>;\n\t\ttry {\n\t\t\treader = body.getReader();\n\t\t} catch {\n\t\t\t// Another consumer already locked the stream.\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst decoder = createTextDecoder(response.headers.get('content-type') ?? '');\n\t\tconst chunks: string[] = [];\n\t\tlet totalBytes = 0;\n\n\t\tconst readAll = (async (): Promise<string | undefined> => {\n\t\t\ttry {\n\t\t\t\tfor (;;) {\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tconst {done, value} = await reader.read();\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\ttotalBytes += value.byteLength;\n\t\t\t\t\tif (totalBytes > maxErrorResponseBodySize) {\n\t\t\t\t\t\tvoid reader.cancel().catch(() => undefined);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tchunks.push(decoder.decode(value, {stream: true}));\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tchunks.push(decoder.decode());\n\t\t\treturn chunks.join('');\n\t\t})();\n\n\t\tconst timeoutPromise = new Promise<typeof timedOutResponseData>(resolve => {\n\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\tresolve(timedOutResponseData);\n\t\t\t}, timeoutMs);\n\t\t\tvoid readAll.finally(() => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t});\n\t\t});\n\n\t\tconst result = await Promise.race([readAll, timeoutPromise]);\n\t\tif (result === timedOutResponseData) {\n\t\t\tvoid reader.cancel().catch(() => undefined);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync #parseJson(text: string, response: Response, timeoutMs: number, request: Request): Promise<unknown> {\n\t\tlet timeoutId: ReturnType<typeof setTimeout> | undefined;\n\t\ttry {\n\t\t\treturn await Promise.race([\n\t\t\t\tPromise.resolve().then(() => this.#options.parseJson\n\t\t\t\t\t? this.#options.parseJson(text, {request, response})\n\t\t\t\t\t: JSON.parse(text),\n\t\t\t\t),\n\t\t\t\tnew Promise<typeof timedOutResponseData>(resolve => {\n\t\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\t\tresolve(timedOutResponseData);\n\t\t\t\t\t}, timeoutMs);\n\t\t\t\t}),\n\t\t\t]);\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t} finally {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t}\n\n\t#cancelBody(body: ReadableStream | undefined): void {\n\t\tif (!body) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ignore cancellation failures from already-locked or already-consumed streams.\n\t\tvoid body.cancel().catch(() => undefined);\n\t}\n\n\t#cancelResponseBody(response: Response): void {\n\t\t// Ignore cancellation failures from already-locked or already-consumed streams.\n\t\tthis.#cancelBody(response.body ?? undefined);\n\t}\n\n\t#createManagedSignal(): AbortSignal {\n\t\treturn this.#userProvidedAbortSignal\n\t\t\t? AbortSignal.any([this.#userProvidedAbortSignal, this.#abortController!.signal])\n\t\t\t: this.#abortController!.signal;\n\t}\n\n\t#throwIfTotalTimeoutExhausted(): void {\n\t\tconst remaining = this.#getRemainingTotalTimeout();\n\t\tif (remaining !== undefined && remaining <= 0) {\n\t\t\tthrow new TimeoutError(this.request);\n\t\t}\n\t}\n\n\tasync #runBeforeRequestHooks(): Promise<Response | undefined> {\n\t\tfor (const hook of this.#options.hooks.beforeRequest) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tconst result = await hook({\n\t\t\t\trequest: this.request,\n\t\t\t\toptions: this.#getNormalizedOptions(),\n\t\t\t\tretryCount: 0,\n\t\t\t});\n\n\t\t\tif (isRequestInstance(result)) {\n\t\t\t\tthis.#assignRequest(result);\n\t\t\t} else if (isResponseInstance(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tasync #runAfterResponseHooks(response: Response): Promise<Response> {\n\t\tconst responseRequest = this.#getResponseRequest(response);\n\n\t\tfor (const hook of this.#options.hooks.afterResponse) {\n\t\t\tconst hookResponse = this.#setResponseRequest(response.clone(), responseRequest);\n\t\t\tthis.#decorateResponse(hookResponse);\n\n\t\t\tlet modifiedResponse;\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tmodifiedResponse = await hook({\n\t\t\t\t\trequest: this.request,\n\t\t\t\t\toptions: this.#getNormalizedOptions(),\n\t\t\t\t\tresponse: hookResponse,\n\t\t\t\t\tretryCount: this.#retryCount,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\t// Cancel both responses to prevent memory leaks when hook throws\n\t\t\t\tif (hookResponse !== response) {\n\t\t\t\t\tthis.#cancelResponseBody(hookResponse);\n\t\t\t\t}\n\n\t\t\t\tthis.#cancelResponseBody(response);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (modifiedResponse instanceof RetryMarker) {\n\t\t\t\t// Cancel both the cloned response passed to the hook and the current response to prevent resource leaks (especially important in Deno/Bun).\n\t\t\t\t// Do not await cancellation since hooks can clone the response, leaving extra tee branches that keep cancel promises pending per the Streams spec.\n\t\t\t\tif (hookResponse !== response) {\n\t\t\t\t\tthis.#cancelResponseBody(hookResponse);\n\t\t\t\t}\n\n\t\t\t\tthis.#cancelResponseBody(response);\n\t\t\t\tthrow new ForceRetryError(modifiedResponse.options);\n\t\t\t}\n\n\t\t\tconst nextResponse = isResponseInstance(modifiedResponse)\n\t\t\t\t? this.#setResponseRequest(modifiedResponse, responseRequest)\n\t\t\t\t: response;\n\n\t\t\t// Cancel any response bodies we won't use to prevent memory leaks.\n\t\t\t// Uses fire-and-forget since hooks may have cloned the response, creating tee branches that block cancellation.\n\t\t\t// If the hook wrapped an existing body into a new Response, both Response objects can still point at the same stream.\n\t\t\tif (hookResponse !== response && hookResponse !== nextResponse && hookResponse.body !== nextResponse.body) {\n\t\t\t\tthis.#cancelResponseBody(hookResponse);\n\t\t\t}\n\n\t\t\tif (response !== nextResponse && response.body !== nextResponse.body) {\n\t\t\t\tthis.#cancelResponseBody(response);\n\t\t\t}\n\n\t\t\tresponse = nextResponse;\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tasync #retry<T extends (...arguments_: any) => Promise<any>>(function_: T): Promise<ReturnType<T> | Response | void> {\n\t\ttry {\n\t\t\treturn await function_();\n\t\t} catch (error) {\n\t\t\treturn this.#retryFromError(error, function_);\n\t\t}\n\t}\n\n\tasync #retryFromError<T extends (...arguments_: any) => Promise<any>>(error: unknown, function_: T): Promise<ReturnType<T> | Response | void> {\n\t\tthis.#returnedResponseFromBeforeRetryHook = false;\n\n\t\tconst retryDelay = Math.min(await this.#calculateRetryDelay(error), maxSafeTimeout);\n\t\tconst delayOptions = {signal: this.#userProvidedAbortSignal};\n\n\t\tconst remainingTimeout = this.#getRemainingTotalTimeout();\n\t\tif (remainingTimeout !== undefined) {\n\t\t\tif (remainingTimeout <= 0) {\n\t\t\t\tthrow new TimeoutError(this.request);\n\t\t\t}\n\n\t\t\t// If waiting would consume all remaining budget, time out without starting another request.\n\t\t\tif (retryDelay >= remainingTimeout) {\n\t\t\t\tawait delay(remainingTimeout, delayOptions);\n\t\t\t\tthrow new TimeoutError(this.request);\n\t\t\t}\n\t\t}\n\n\t\t// Only use user-provided signal for delay, not our internal abortController\n\t\tawait delay(retryDelay, delayOptions);\n\n\t\tthis.#throwIfTotalTimeoutExhausted();\n\n\t\t// Apply custom request from forced retry before beforeRetry hooks\n\t\t// Ensure the custom request has the correct managed signal for timeouts and user aborts\n\t\tif (error instanceof ForceRetryError && error.customRequest) {\n\t\t\tconst customRequest = new globalThis.Request(error.customRequest, this.#options.signal ? {signal: this.#options.signal} : undefined);\n\t\t\t// Replacement Requests are authoritative by design. Do not rewrite headers here,\n\t\t\t// even for cross-origin retries. Callers using `ky.retry({request})` explicitly\n\t\t\t// opted into the exact Request they constructed.\n\t\t\tthis.#assignRequest(customRequest);\n\t\t}\n\n\t\tfor (const hook of this.#options.hooks.beforeRetry) {\n\t\t\tlet hookResult: Awaited<ReturnType<typeof hook>>;\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\thookResult = await hook({\n\t\t\t\t\trequest: this.request,\n\t\t\t\t\toptions: this.#getNormalizedOptions(),\n\t\t\t\t\terror: error as Error,\n\t\t\t\t\tretryCount: this.#retryCount + 1,\n\t\t\t\t});\n\t\t\t} catch (hookError) {\n\t\t\t\t// Preserve the original request error path (`throw error`) so beforeError hooks can still run.\n\t\t\t\tif (hookError instanceof Error && hookError !== error) {\n\t\t\t\t\tthis.#beforeRetryHookErrors.add(hookError);\n\t\t\t\t}\n\n\t\t\t\tthrow hookError;\n\t\t\t}\n\n\t\t\tif (isRequestInstance(hookResult)) {\n\t\t\t\t// Same contract as `ky.retry({request})`: a Request returned from `beforeRetry`\n\t\t\t\t// is used as-is rather than being sanitized or otherwise rewritten by Ky.\n\t\t\t\tthis.#assignRequest(hookResult);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (isResponseInstance(hookResult)) {\n\t\t\t\tthis.#returnedResponseFromBeforeRetryHook = true;\n\t\t\t\tthis.#retryCount++;\n\t\t\t\treturn hookResult;\n\t\t\t}\n\n\t\t\t// If `stop` is returned from the hook, the retry process is stopped\n\t\t\tif (hookResult === stop) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis.#throwIfTotalTimeoutExhausted();\n\n\t\tthis.#retryCount++;\n\t\treturn this.#retry(function_);\n\t}\n\n\t#consumeReturnedResponseFromBeforeRetryHook(): boolean {\n\t\tconst value = this.#returnedResponseFromBeforeRetryHook;\n\t\tthis.#returnedResponseFromBeforeRetryHook = false;\n\t\treturn value;\n\t}\n\n\tasync #fetch(): Promise<Response> {\n\t\t// Reset abortController if it was aborted (happens on timeout retry)\n\t\tif (this.#abortController?.signal.aborted) {\n\t\t\tthis.#abortController = new globalThis.AbortController();\n\t\t\tthis.#options.signal = this.#createManagedSignal();\n\t\t\t// Recreate request with new signal\n\t\t\tthis.request = new globalThis.Request(this.request, {signal: this.#options.signal});\n\t\t}\n\n\t\tconst nonRequestOptions = findUnknownOptions(this.#options);\n\t\tconst retryRequest = this.#options.retry.limit > 0 ? this.request.clone() : undefined;\n\t\tconst request = this.#wrapRequestWithUploadProgress(this.request, this.#options.body ?? undefined);\n\n\t\t// Cloning is done here to prepare in advance for retries.\n\t\t// Skip cloning when retries are disabled - cloning a streaming body calls ReadableStream#tee()\n\t\t// which buffers the entire stream in memory, causing excessive memory usage for large uploads.\n\t\tthis.#originalRequest = request;\n\t\tif (retryRequest) {\n\t\t\tthis.request = retryRequest;\n\t\t}\n\n\t\ttry {\n\t\t\tconst remainingTotal = this.#getRemainingTotalTimeout();\n\t\t\tif (remainingTotal !== undefined && remainingTotal <= 0) {\n\t\t\t\tthrow new TimeoutError(this.request);\n\t\t\t}\n\n\t\t\tconst effectiveTimeout: number | undefined = this.#options.timeout === false\n\t\t\t\t? remainingTotal\n\t\t\t\t: (remainingTotal === undefined\n\t\t\t\t\t? this.#options.timeout\n\t\t\t\t\t: Math.min(this.#options.timeout, remainingTotal));\n\n\t\t\tconst response = effectiveTimeout === undefined\n\t\t\t\t? await this.#options.fetch(request, nonRequestOptions)\n\t\t\t\t: await timeout(request, nonRequestOptions, this.#abortController, {\n\t\t\t\t\ttimeout: effectiveTimeout,\n\t\t\t\t\tfetch: this.#options.fetch,\n\t\t\t\t});\n\n\t\t\treturn this.#setResponseRequest(response, request);\n\t\t} catch (error) {\n\t\t\tif (isRawNetworkError(error)) {\n\t\t\t\tthrow new NetworkError(this.request, {cause: error as Error});\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t#getRemainingTotalTimeout(): number | undefined {\n\t\tif (this.#startTime === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst elapsed = this.#getCurrentTime() - this.#startTime;\n\t\treturn Math.max(0, (this.#options.totalTimeout as number) - elapsed);\n\t}\n\n\t#getCurrentTime(): number {\n\t\treturn globalThis.performance?.now() ?? Date.now();\n\t}\n\n\t#getNormalizedOptions(): NormalizedOptions {\n\t\tif (!this.#cachedNormalizedOptions) {\n\t\t\t// Exclude Ky-specific options that are not part of `RequestInit`.\n\t\t\tconst {\n\t\t\t\thooks,\n\t\t\t\tjson,\n\t\t\t\tparseJson,\n\t\t\t\tstringifyJson,\n\t\t\t\tsearchParams,\n\t\t\t\ttimeout,\n\t\t\t\ttotalTimeout,\n\t\t\t\tthrowHttpErrors,\n\t\t\t\tfetch,\n\t\t\t\t...normalizedOptions\n\t\t\t} = this.#options;\n\n\t\t\tthis.#cachedNormalizedOptions = Object.freeze(normalizedOptions) as NormalizedOptions;\n\t\t}\n\n\t\treturn this.#cachedNormalizedOptions;\n\t}\n\n\t#assignRequest(request: Request): void {\n\t\tthis.#cachedNormalizedOptions = undefined;\n\t\tthis.request = request;\n\t}\n\n\t#getResponseRequest(response: Response): Request {\n\t\treturn this.#responseRequests.get(response) ?? this.request;\n\t}\n\n\t#setResponseRequest(response: Response, request: Request): Response {\n\t\tthis.#responseRequests.set(response, request);\n\t\treturn response;\n\t}\n\n\t#wrapRequestWithUploadProgress(request: Request, originalBody?: BodyInit): Request {\n\t\tif (!this.#options.onUploadProgress || !request.body || !supportsRequestStreams) {\n\t\t\treturn request;\n\t\t}\n\n\t\treturn streamRequest(request, this.#options.onUploadProgress, originalBody ?? this.#options.body ?? undefined);\n\t}\n}\n", "/*! MIT License © Sindre Sorhus */\n\nimport {Ky} from './core/Ky.js';\nimport {requestMethods, stop, retry} from './core/constants.js';\nimport type {KyInstance} from './types/ky.js';\nimport type {Input, Options} from './types/options.js';\nimport {validateAndMerge} from './utils/merge.js';\nimport {type Mutable} from './utils/types.js';\n\nconst createInstance = (defaults?: Partial<Options>): KyInstance => {\n\t// eslint-disable-next-line @typescript-eslint/promise-function-async\n\tconst ky: Partial<Mutable<KyInstance>> = (input: Input, options?: Options) => Ky.create(input, validateAndMerge(defaults, options));\n\n\tfor (const method of requestMethods) {\n\t\t// eslint-disable-next-line @typescript-eslint/promise-function-async\n\t\tky[method] = (input: Input, options?: Options) => Ky.create(input, validateAndMerge(defaults, options, {method}));\n\t}\n\n\tky.create = (newDefaults?: Partial<Options>) => createInstance(validateAndMerge(newDefaults));\n\tky.extend = (newDefaults?: Partial<Options> | ((parentDefaults: Partial<Options>) => Partial<Options>)) => {\n\t\tif (typeof newDefaults === 'function') {\n\t\t\tnewDefaults = newDefaults(defaults ?? {});\n\t\t}\n\n\t\treturn createInstance(validateAndMerge(defaults, newDefaults));\n\t};\n\n\tky.stop = stop;\n\tky.retry = retry;\n\n\treturn ky as KyInstance;\n};\n\nconst ky = createInstance();\n\nexport default ky;\n\nexport type {KyInstance} from './types/ky.js';\n\nexport type {\n\tInput,\n\tOptions,\n\tNormalizedOptions,\n\tRetryOptions,\n\tShouldRetryState,\n\tSearchParamsOption,\n\tProgress,\n} from './types/options.js';\n\nexport type {\n\tHooks,\n\tInitHook,\n\tBeforeRequestHook,\n\tBeforeRequestState,\n\tBeforeRetryHook,\n\tBeforeRetryState,\n\tBeforeErrorHook,\n\tBeforeErrorState,\n\tAfterResponseHook,\n\tAfterResponseState,\n} from './types/hooks.js';\n\nexport type {ResponsePromise} from './types/ResponsePromise.js';\nexport type {\n\tStandardSchemaV1,\n\tStandardSchemaV1InferOutput,\n\tStandardSchemaV1Issue,\n} from './types/standard-schema.js';\nexport type {KyRequest} from './types/request.js';\nexport type {KyResponse} from './types/response.js';\nexport {KyError} from './errors/KyError.js';\nexport {HTTPError} from './errors/HTTPError.js';\nexport {SchemaValidationError} from './errors/SchemaValidationError.js';\nexport {NetworkError} from './errors/NetworkError.js';\nexport {TimeoutError} from './errors/TimeoutError.js';\nexport {ForceRetryError} from './errors/ForceRetryError.js';\nexport {\n\tisKyError,\n\tisHTTPError,\n\tisNetworkError,\n\tisTimeoutError,\n\tisForceRetryError,\n} from './utils/type-guards.js';\nexport {replaceOption} from './utils/merge.js';\n\n// Intentionally not exporting this for now as it's just an implementation detail and we don't want to commit to a certain API yet at least.\n// export {NonError} from './errors/NonError.js';\n", "import moment from 'moment';\n\nimport type { Bookmark } from './types';\n\n/** Server-rendered page data. */\nexport type AppData = {\n /** The list of bookmarks for the current page. */\n bmarks: Bookmark[];\n /** A single bookmark, used when viewing or editing one entry. */\n bmark: Bookmark;\n /** Whether the current user owns the displayed profile. */\n isowner: boolean;\n /** Whether tag suggestions are enabled. */\n suggestTags?: boolean;\n /** Whether the archive backend is enabled. */\n archiveBackendEnabled?: boolean;\n};\n\n/** Server-rendered global data. */\nexport type App = {\n /** The HTTP header name used to send the CSRF token. */\n csrfHeaderName: string;\n /** The cookie name that holds the CSRF token. */\n csrfCookieName: string;\n /** The form parameter name used to submit the CSRF token. */\n csrfParamName: string;\n /** The current CSRF token value. */\n csrfToken: string;\n /** URL for the home route. */\n homeR: string;\n /** URL for the logout route. */\n authRlogoutR: string;\n /** URL for the current user's profile, or null if not logged in. */\n userR: string | null;\n /** URL for the current note, or null if not viewing a note. */\n noteR: string | null;\n /** Server-rendered page data. */\n dat: AppData;\n};\n\ndeclare global {\n // Provided by the server in a <script> tag.\n\n var app: App;\n}\n\nexport function app(): App {\n return globalThis.app;\n}\n\nexport function moment8601(s: string): [string, string] {\n const m = moment(s, moment.ISO_8601);\n const s1 = m.fromNow();\n const s2 = `${m.format('MMMM D YYYY, h:mm a')} (${m.format()}) `;\n return [s1, s2];\n}\n\nexport function mmoment8601(s: string): [string, string] | null {\n try {\n return moment8601(s);\n } catch {\n return null;\n }\n}\n\nexport function closeWindow(win: Window): void {\n win.close();\n}\n\nexport type RawHTML = string;\n\nexport function setFocus(elemId: string): void {\n document.getElementById(elemId)?.focus();\n}\n\nexport function toLocaleDateString(dateString: string): string {\n return new Date(dateString).toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n}\n", "import ky from 'ky';\n\nimport { app } from './globals';\nimport type {\n AccountSettings,\n Bookmark,\n Note,\n TagCloud,\n TagCloudMode,\n TagSuggestionRequest,\n TagSuggestionResponse,\n} from './types';\n\nexport type StarAction = 'star' | 'unstar';\n\nfunction withCsrf(headers?: HeadersInit): HeadersInit {\n const a = app();\n const h = new Headers(headers);\n h.set(a.csrfHeaderName, a.csrfToken);\n return h;\n}\n\nfunction urlFor(path: string): string {\n // Preserve PureScript semantics: simple string concatenation.\n return `${app().homeR}${path}`;\n}\n\nfunction toRelativePath(urlOrPath: string): string {\n try {\n const u = new URL(urlOrPath, window.location.origin);\n const rel = `${u.pathname}${u.search}${u.hash}`;\n return rel.startsWith('/') ? rel.slice(1) : rel;\n } catch {\n return urlOrPath.replace(/^\\/+/, '');\n }\n}\n\nasync function request(\n method: string,\n path: string,\n opts: { headers?: HeadersInit; body?: BodyInit | null } = {},\n) {\n const res = await ky(urlFor(path), {\n method,\n headers: withCsrf(opts.headers),\n body: opts.body ?? undefined,\n throwHttpErrors: false,\n });\n return res;\n}\n\nexport async function toggleStar(bid: number, action: StarAction): Promise<void> {\n await request('POST', `bm/${bid.toString()}/${action}`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function destroy(bid: number): Promise<void> {\n await request('DELETE', `bm/${bid.toString()}`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function markRead(bid: number): Promise<void> {\n await request('POST', `bm/${bid.toString()}/read`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function archiveBookmark(bid: number): Promise<void> {\n await request('POST', `bm/${bid.toString()}/archive`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function editBookmark(\n bm: Bookmark,\n): Promise<{ ok: boolean; status: number; bodyText: string }> {\n const res = await request('POST', 'api/add', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(bm),\n });\n return { ok: res.ok, status: res.status, bodyText: await res.text() };\n}\n\nexport async function editNote(\n note: Note,\n): Promise<{ ok: boolean; status: number; bodyText: string }> {\n const res = await request('POST', 'api/note/add', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(note),\n });\n return { ok: res.ok, status: res.status, bodyText: await res.text() };\n}\n\nexport async function lookupTitle(bm: Bookmark): Promise<string | null> {\n const res = await request('POST', 'api/lookuptitle', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(bm),\n });\n if (res.status === 200) return await res.text();\n return null;\n}\n\nexport async function getTagCloud(mode: TagCloudMode): Promise<TagCloud | null> {\n const res = await request('POST', 'api/tagcloud', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(mode),\n });\n if (!res.ok) return null;\n try {\n return await res.json();\n } catch {\n return null;\n }\n}\n\nexport async function updateTagCloudMode(mode: TagCloudMode): Promise<void> {\n await request('POST', 'api/tagcloudmode', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(mode),\n });\n}\n\nexport async function fetchTagSuggestions(\n data: TagSuggestionRequest,\n): Promise<TagSuggestionResponse | null> {\n const res = await request('POST', 'api/tagSuggestions', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(data),\n });\n if (!res.ok) return null;\n try {\n return await res.json<TagSuggestionResponse>();\n } catch {\n return null;\n }\n}\n\nexport async function destroyNote(nid: number): Promise<void> {\n await request('DELETE', `api/note/${nid.toString()}`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function editAccountSettings(us: AccountSettings): Promise<void> {\n await request('POST', 'api/accountSettings', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(us),\n });\n}\n\nexport async function logout(): Promise<void> {\n const a = app();\n await request('POST', toRelativePath(a.authRlogoutR));\n window.location.reload();\n}\n", "import React from 'react';\n\nimport { editAccountSettings } from '../api';\nimport type { AccountSettings } from '../types';\n\n/** Displays and edits the current user's account settings. */\nexport function AccountSettingsView({ initial }: { initial: AccountSettings }) {\n const [us, setUs] = React.useState<AccountSettings>(initial);\n const archiveDisabled = !us.archiveBackendEnabled;\n const archiveDisabledTitle = archiveDisabled ? 'Archiving Disabled' : undefined;\n\n async function update(next: AccountSettings) {\n setUs(next);\n await editAccountSettings(next);\n }\n\n return (\n <div className=\"settings-form\">\n <div className=\"fw7 mb2\">Account Settings</div>\n\n <div\n className={`flex items-center mb2${archiveDisabled ? ' o-50' : ''}`}\n title={archiveDisabledTitle}\n >\n <input\n type=\"checkbox\"\n className={`mr2${archiveDisabled ? '' : ' pointer'}`}\n id=\"archiveDefault\"\n name=\"archiveDefault\"\n checked={us.archiveDefault}\n disabled={archiveDisabled}\n title={archiveDisabledTitle}\n onChange={(e) => void update({ ...us, archiveDefault: e.target.checked })}\n />\n <label\n htmlFor=\"archiveDefault\"\n className={`lh-copy${archiveDisabled ? ' thm-text-tertiary' : ''}`}\n title={archiveDisabledTitle}\n >\n Archive new non-Private bookmarks by default\n </label>\n </div>\n\n <div className=\"flex items-center mb2\">\n <input\n type=\"checkbox\"\n className=\"pointer mr2\"\n id=\"privateDefault\"\n name=\"privateDefault\"\n checked={us.privateDefault}\n onChange={(e) => void update({ ...us, privateDefault: e.target.checked })}\n />\n <label htmlFor=\"privateDefault\" className=\"lh-copy\">\n Default new bookmarks to Private\n </label>\n </div>\n\n <div className=\"flex items-center mb2\">\n <input\n type=\"checkbox\"\n className=\"pointer mr2\"\n id=\"suggestTags\"\n name=\"suggestTags\"\n checked={us.suggestTags}\n onChange={(e) => void update({ ...us, suggestTags: e.target.checked })}\n />\n <label htmlFor=\"suggestTags\" className=\"lh-copy\">\n Enable tag suggestions\n </label>\n </div>\n\n <div className=\"flex items-center mb2\">\n <input\n type=\"checkbox\"\n className=\"pointer mr2\"\n id=\"privacyLock\"\n name=\"privacyLock\"\n checked={us.privacyLock}\n onChange={(e) => void update({ ...us, privacyLock: e.target.checked })}\n />\n <label htmlFor=\"privacyLock\" className=\"lh-copy\">\n Privacy Lock (Private Account)\n </label>\n </div>\n </div>\n );\n}\n", "import React from 'react';\n\nimport { destroy, editBookmark, lookupTitle } from '../api';\nimport { app, closeWindow, mmoment8601 } from '../globals';\nimport { useTagSuggestions } from '../hooks/useTagSuggestions';\nimport type { Bookmark } from '../types';\nimport { curQuerystring, lookupQueryStringValue, normalizeTags } from '../util';\nimport { TagSuggestionsDropdown } from './TagSuggestionsDropdown';\n\n/** Form for adding or editing a single bookmark, used in the popup window. */\nexport function AddForm({ initial }: { initial: Bookmark }) {\n const a = app();\n const [bm, setBm] = React.useState<Bookmark>(initial);\n const [editBm, setEditBm] = React.useState<Bookmark>(initial);\n const [deleteAsk, setDeleteAsk] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [destroyed, setDestroyed] = React.useState(false);\n const [apiError, setApiError] = React.useState<string | null>(null);\n const suggestEnabled = a.dat.suggestTags === true;\n\n const {\n tagInputRef,\n suggestionState,\n closeSuggestions,\n onTagsChange,\n onTagsKeyDown,\n onTagsSelect,\n onSuggestionHover,\n onSuggestionPick,\n } = useTagSuggestions({\n enabled: suggestEnabled,\n tags: editBm.tags,\n maxSuggestions: 4,\n onTagsUpdate: (tags) => {\n setEditBm((x) => ({ ...x, tags }));\n },\n });\n\n const mm = mmoment8601(bm.time);\n\n async function onFetchTitle() {\n setLoading(true);\n try {\n const title = await lookupTitle(editBm);\n if (title != null) setEditBm((x) => ({ ...x, title }));\n } finally {\n setLoading(false);\n }\n }\n\n async function onDestroy() {\n await destroy(bm.bid);\n setDestroyed(true);\n }\n\n const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {\n e.preventDefault();\n setApiError(null);\n const editBm2 = { ...editBm, tags: normalizeTags(editBm.tags) };\n\n const res = await editBookmark(editBm2);\n if (res.ok && res.status >= 200 && res.status < 300) {\n setBm(editBm2);\n\n const qs = curQuerystring();\n const next = lookupQueryStringValue(qs, 'next');\n const ref = document.referrer;\n const org = window.location.origin;\n\n if (next === 'closeWindow') closeWindow(window);\n else if (next === 'back') {\n if (ref.startsWith(org)) window.location.href = ref;\n else window.location.href = org;\n } else {\n closeWindow(window);\n }\n } else {\n setApiError(res.bodyText);\n }\n };\n\n if (destroyed) return <p className=\"thm-text-killed\">you killed this bookmark</p>;\n\n return (\n <form\n onSubmit={(e) => {\n void onSubmit(e);\n }}\n >\n <table className=\"w-100\">\n <tbody>\n <tr>\n <td className=\"w1\" />\n <td>\n {bm.bid > 0 ? (\n <div className=\"alert\">\n previously saved \n <span\n className=\"link f7 dib thm-text-tertiary thm-hover-link-color pr3\"\n title={mm?.[1] ?? bm.time}\n >\n {mm?.[0] ?? '\\u00a0'}\n </span>\n <div className=\"edit_links dib ml1\">\n <div className=\"delete_link di\">\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(true);\n }}\n className=\"delete\"\n hidden={deleteAsk}\n >\n delete\n </button>\n <span className=\"confirm thm-text-error\" hidden={!deleteAsk}>\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(false);\n }}\n >\n cancel / \n </button>\n <button\n type=\"button\"\n onClick={() => void onDestroy()}\n className=\"thm-text-error\"\n >\n destroy\n </button>\n </span>\n </div>\n </div>\n </div>\n ) : null}\n {apiError ? <div className=\"alert alert-err\">{apiError}</div> : null}\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"url\">URL</label>\n </td>\n <td>\n <input\n type=\"url\"\n id=\"url\"\n className=\"w-100 mv1\"\n required\n name=\"url\"\n autoFocus={bm.url === ''}\n value={editBm.url}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, url: e.target.value }));\n }}\n />\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"title\">title</label>\n </td>\n <td className=\"flex\">\n <input\n type=\"text\"\n id=\"title\"\n className=\"w-100 mv1 flex-auto\"\n name=\"title\"\n value={editBm.title}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, title: e.target.value }));\n }}\n />\n <button\n disabled={loading}\n type=\"button\"\n onClick={() => void onFetchTitle()}\n className={`ml2 input-reset ba thm-border-primary pointer f6 di dim pa1 ma1 mr0${loading ? ' thm-bg-disabled' : ''}`}\n >\n fetch\n </button>\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"description\">description</label>\n </td>\n <td>\n <textarea\n className=\"w-100 mt1 thm-text-secondary\"\n id=\"description\"\n name=\"description\"\n rows={4}\n value={editBm.description}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, description: e.target.value }));\n }}\n />\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"tags\">tags</label>\n </td>\n <td>\n <div className=\"relative\">\n <input\n ref={tagInputRef}\n type=\"text\"\n id=\"tags\"\n className=\"w-100 mv1\"\n name=\"tags\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoFocus={bm.url !== ''}\n value={editBm.tags}\n onChange={onTagsChange}\n onKeyDown={onTagsKeyDown}\n onClick={onTagsSelect}\n onSelect={onTagsSelect}\n onBlur={() => {\n window.setTimeout(() => {\n closeSuggestions();\n }, 0);\n }}\n />\n {suggestionState != null ? (\n <TagSuggestionsDropdown\n suggestionState={suggestionState}\n onHover={onSuggestionHover}\n onPick={onSuggestionPick}\n />\n ) : null}\n </div>\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"private\">private</label>\n </td>\n <td>\n <div className=\"mr4 dib\">\n <input\n type=\"checkbox\"\n id=\"private\"\n className=\"private pointer\"\n name=\"private\"\n checked={editBm.private}\n onChange={(e) => {\n setEditBm((x) => ({\n ...x,\n private: e.target.checked,\n ...(a.dat.archiveBackendEnabled && editBm.archiveRequested && e.target.checked\n ? { archiveRequested: false }\n : {}),\n }));\n }}\n />\n </div>\n {!(bm.bid > 0) && a.dat.archiveBackendEnabled ? (\n <div\n className={`dib ${editBm.private ? 'o-50' : ''}`}\n title={\n editBm.private ? 'archiving is unavailable for private bookmarks' : undefined\n }\n >\n <label className=\"mr2 di\" htmlFor=\"archiveRequested\">\n archive\n </label>\n <input\n type=\"checkbox\"\n id=\"archiveRequested\"\n className=\"archive pointer ml2\"\n name=\"archiveRequested\"\n disabled={editBm.private}\n checked={editBm.archiveRequested ?? false}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, archiveRequested: e.target.checked }));\n }}\n />\n </div>\n ) : null}\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"toread\">read later</label>\n </td>\n <td>\n <input\n type=\"checkbox\"\n id=\"toread\"\n className=\"toread pointer\"\n name=\"toread\"\n checked={editBm.toread}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, toread: e.target.checked }));\n }}\n />\n </td>\n </tr>\n\n <tr>\n <td />\n <td>\n <input\n type=\"submit\"\n className=\"ph3 pv2 input-reset thm-text-strong ba thm-border-primary bg-transparent pointer f6 dib mt1 dim\"\n value={bm.bid > 0 ? 'update bookmark' : 'add bookmark'}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </form>\n );\n}\n", "import React from 'react';\n\nimport { fetchTagSuggestions } from '../api';\nimport type { TagSuggestionRequest, TSuggestion } from '../types';\n\nexport type SuggestionState = {\n items: TSuggestion[];\n selectedIndex: number;\n tokenRange: TagTokenRange;\n anchorLeft: number;\n anchorTop: number;\n};\n\ntype TagTokenRange = {\n token: string;\n start: number;\n end: number;\n};\n\nconst TAG_SUGGESTION_DEBOUNCE_MS = 180;\n\nexport function useTagSuggestions({\n enabled,\n tags,\n onTagsUpdate,\n maxSuggestions = 10,\n}: {\n enabled: boolean;\n tags: string;\n onTagsUpdate: (next: string) => void;\n maxSuggestions?: number;\n}) {\n const [suggestionState, setSuggestionState] = React.useState<SuggestionState | null>(null);\n const tagSuggestionRequestId = React.useRef(0);\n const tagSuggestionDebounceRef = React.useRef<number | null>(null);\n const tagInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const cancelPendingSuggestions = React.useCallback(() => {\n if (tagSuggestionDebounceRef.current != null) {\n window.clearTimeout(tagSuggestionDebounceRef.current);\n tagSuggestionDebounceRef.current = null;\n }\n tagSuggestionRequestId.current += 1;\n }, []);\n\n const closeSuggestions = React.useCallback(() => {\n cancelPendingSuggestions();\n setSuggestionState(null);\n }, [cancelPendingSuggestions]);\n\n React.useEffect(() => {\n return () => {\n cancelPendingSuggestions();\n };\n }, [cancelPendingSuggestions]);\n\n React.useEffect(() => {\n if (!enabled) closeSuggestions();\n }, [enabled, closeSuggestions]);\n\n const onTagsChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const { value, selectionStart, selectionEnd } = e.target;\n\n onTagsUpdate(value);\n\n if (!enabled) {\n closeSuggestions();\n return;\n }\n\n if (selectionStart == null || selectionEnd == null || selectionStart !== selectionEnd) {\n closeSuggestions();\n return;\n }\n\n if (isWhitespaceOnlyEdit(tags, value)) {\n closeSuggestions();\n return;\n }\n\n const activeToken = getActiveTagToken(value, selectionStart);\n if (activeToken == null || activeToken.token.length < 2) {\n closeSuggestions();\n return;\n }\n\n const normalizedTagTerms = getNormalizedTagTerms(value);\n const activeTokenNormalized = activeToken.token.toLowerCase();\n const activeTokenOccurrences = normalizedTagTerms.filter(\n (tag) => tag === activeTokenNormalized,\n ).length;\n const shouldExcludeActiveToken = activeTokenOccurrences > 1;\n const payload: TagSuggestionRequest = {\n query: activeToken.token,\n currentTags: Array.from(\n new Set(\n normalizedTagTerms.filter(\n (tag) => shouldExcludeActiveToken || tag !== activeTokenNormalized,\n ),\n ),\n ),\n };\n\n cancelPendingSuggestions();\n tagSuggestionDebounceRef.current = window.setTimeout(() => {\n const requestId = tagSuggestionRequestId.current + 1;\n tagSuggestionRequestId.current = requestId;\n\n void (async () => {\n const response = await fetchTagSuggestions(payload);\n\n if (\n requestId !== tagSuggestionRequestId.current ||\n response == null ||\n tagInputRef.current == null\n ) {\n return;\n }\n\n const items = response.suggestions.slice(0, maxSuggestions);\n if (items.length === 0) {\n closeSuggestions();\n return;\n }\n\n const anchor = measureCaretPosition(tagInputRef.current, selectionStart);\n\n setSuggestionState({\n items,\n selectedIndex: 0,\n tokenRange: activeToken,\n anchorLeft: anchor.left,\n anchorTop: anchor.top,\n });\n })();\n }, TAG_SUGGESTION_DEBOUNCE_MS);\n },\n [cancelPendingSuggestions, closeSuggestions, enabled, maxSuggestions, onTagsUpdate],\n );\n\n const applySuggestion = React.useCallback(\n (term: string) => {\n const input = tagInputRef.current;\n if (input == null || suggestionState == null) return;\n\n const next = replaceTokenAtRange(tags, suggestionState.tokenRange, term);\n onTagsUpdate(next.value);\n closeSuggestions();\n\n requestAnimationFrame(() => {\n input.focus();\n input.setSelectionRange(next.caret, next.caret);\n });\n },\n [closeSuggestions, onTagsUpdate, suggestionState, tags],\n );\n\n const onTagsKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape') {\n if (suggestionState != null) {\n e.preventDefault();\n closeSuggestions();\n }\n return;\n }\n\n if (e.key === ' ') {\n closeSuggestions();\n return;\n }\n\n if (suggestionState == null) return;\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n setSuggestionState((current) => {\n if (current == null) return current;\n return {\n ...current,\n selectedIndex: (current.selectedIndex + 1) % current.items.length,\n };\n });\n return;\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n setSuggestionState((current) => {\n if (current == null) return current;\n return {\n ...current,\n selectedIndex:\n (current.selectedIndex - 1 + current.items.length) % current.items.length,\n };\n });\n return;\n }\n\n if (e.key === 'Enter' || e.key === 'Tab') {\n e.preventDefault();\n const selected = suggestionState.items[suggestionState.selectedIndex];\n applySuggestion(selected.term);\n }\n },\n [applySuggestion, closeSuggestions, suggestionState],\n );\n\n const onTagsSelect = React.useCallback(\n (e: React.SyntheticEvent<HTMLInputElement>) => {\n if (suggestionState == null) return;\n\n const input = e.currentTarget;\n const { selectionStart, selectionEnd, value } = input;\n if (selectionStart == null || selectionEnd == null || selectionStart !== selectionEnd) {\n closeSuggestions();\n return;\n }\n\n const activeToken = getActiveTagToken(value, selectionStart);\n if (activeToken == null) {\n closeSuggestions();\n return;\n }\n\n if (activeToken.start !== suggestionState.tokenRange.start) {\n closeSuggestions();\n }\n },\n [closeSuggestions, suggestionState],\n );\n\n const onSuggestionHover = React.useCallback((index: number) => {\n setSuggestionState((current) => {\n if (current == null) return current;\n return { ...current, selectedIndex: index };\n });\n }, []);\n\n return {\n tagInputRef,\n suggestionState,\n closeSuggestions,\n onTagsChange,\n onTagsKeyDown,\n onTagsSelect,\n onSuggestionHover,\n onSuggestionPick: applySuggestion,\n };\n}\n\nfunction getActiveTagToken(value: string, caret: number): TagTokenRange | null {\n const boundedCaret = Math.max(0, Math.min(caret, value.length));\n\n let start = boundedCaret;\n while (start > 0 && value[start - 1] !== ' ') {\n start -= 1;\n }\n\n let end = boundedCaret;\n while (end < value.length && value[end] !== ' ') {\n end += 1;\n }\n\n const token = value.slice(start, end).trim();\n return token === '' ? null : { token, start, end };\n}\n\nfunction measureCaretPosition(\n input: HTMLInputElement,\n caret: number,\n): { left: number; top: number } {\n const style = window.getComputedStyle(input);\n const mirror = document.createElement('div');\n mirror.style.position = 'absolute';\n mirror.style.visibility = 'hidden';\n mirror.style.whiteSpace = 'pre';\n mirror.style.top = '0';\n mirror.style.left = '0';\n mirror.style.font = style.font;\n mirror.style.fontKerning = style.fontKerning;\n mirror.style.fontFeatureSettings = style.fontFeatureSettings;\n mirror.style.fontVariantLigatures = style.fontVariantLigatures;\n mirror.style.letterSpacing = style.letterSpacing;\n mirror.style.textTransform = style.textTransform;\n mirror.style.textIndent = style.textIndent;\n mirror.style.boxSizing = style.boxSizing;\n mirror.style.padding = style.padding;\n mirror.style.border = style.border;\n mirror.style.width = `${String(input.clientWidth)}px`;\n\n const prefix = document.createElement('span');\n prefix.textContent = input.value.slice(0, caret);\n mirror.appendChild(prefix);\n\n const marker = document.createElement('span');\n marker.textContent = '\\u200b';\n mirror.appendChild(marker);\n\n document.body.appendChild(mirror);\n const left = marker.offsetLeft - input.scrollLeft + 1;\n const top = marker.offsetTop - input.scrollTop + input.offsetHeight + 4;\n document.body.removeChild(mirror);\n\n return { left, top };\n}\n\nfunction replaceTokenAtRange(\n value: string,\n range: TagTokenRange,\n replacement: string,\n): { value: string; caret: number } {\n const prefix = value.slice(0, range.start);\n // Consume any existing leading space from the suffix so we always own the\n // separator. This lets us unconditionally append a trailing space and place\n // the caret after it, whether the accepted tag is in the middle or at the end.\n const suffix = value.slice(range.end).replace(/^ /, '');\n const inserted = `${replacement} `;\n return {\n value: `${prefix}${inserted}${suffix}`,\n caret: prefix.length + inserted.length,\n };\n}\n\nfunction isWhitespaceOnlyEdit(previous: string, next: string): boolean {\n if (previous === next) return false;\n\n let start = 0;\n while (start < previous.length && start < next.length && previous[start] === next[start]) {\n start += 1;\n }\n\n let prevEnd = previous.length;\n let nextEnd = next.length;\n while (prevEnd > start && nextEnd > start && previous[prevEnd - 1] === next[nextEnd - 1]) {\n prevEnd -= 1;\n nextEnd -= 1;\n }\n\n const removed = previous.slice(start, prevEnd);\n const added = next.slice(start, nextEnd);\n if (removed === '' && added === '') return false;\n return isSpacesOnly(removed) && isSpacesOnly(added);\n}\n\nfunction isSpacesOnly(value: string): boolean {\n return value === '' || /^ *$/.test(value);\n}\n\nfunction getNormalizedTagTerms(value: string): string[] {\n return value\n .split(' ')\n .map((tag) => tag.trim().toLowerCase())\n .filter((tag) => tag !== '');\n}\n", "export type QueryStringArray = Array<[string, string | null]>;\n\nfunction unsafeDecode(str: string): string {\n return decodeURIComponent(str);\n}\n\nexport function parseQueryString(searchOrHash: string): QueryStringArray {\n const first = searchOrHash.slice(0, 1);\n const qs = first === '#' || first === '?' ? searchOrHash.slice(1) : searchOrHash;\n const parts = qs.split('&').filter((x) => x !== '');\n\n const decode = (s: string) => unsafeDecode(s.replace(/\\+/g, ' '));\n\n const out: QueryStringArray = [];\n for (const kv of parts) {\n const [k, ...rest] = kv.split('=');\n if (!k) continue;\n if (rest.length === 0) out.push([decode(k), null]);\n else if (rest.length === 1) out.push([decode(k), decode(rest[0] ?? '')]);\n }\n return out;\n}\n\nexport function curQuerystring(): QueryStringArray {\n return parseQueryString(window.location.search);\n}\n\nexport function lookupQueryStringValue(qs: QueryStringArray, k: string): string | null {\n for (const [key, val] of qs) {\n if (key === k) return val;\n }\n return null;\n}\n\nexport function encodeTag(tag: string): string {\n return encodeURIComponent(tag.replace(/\\+/g, '%2B'));\n}\n\nexport function fromNullableStr(s: string | null | undefined): string {\n return s ?? '';\n}\n\nexport function normalizeTags(tags: string | null): string {\n return tags?.replace(/,/g, ' ').replace(/\\s+/g, ' ').trim() ?? '';\n}\n", "import React from 'react';\n\nimport type { SuggestionState } from '../hooks/useTagSuggestions';\n\nconst MAX_SUGGESTION_TERM_RENDER_LENGTH = 80;\n\nexport function TagSuggestionsDropdown({\n suggestionState,\n onHover,\n onPick,\n}: {\n suggestionState: SuggestionState;\n onHover: (index: number) => void;\n onPick: (term: string) => void;\n}) {\n return (\n <div\n className=\"absolute z-5 thm-bg-secondary thm-text-primary ba thm-border-default br2 shadow-4 overflow-hidden f6\"\n style={{\n left: suggestionState.anchorLeft,\n top: suggestionState.anchorTop,\n width: 'max-content',\n maxWidth: '22rem',\n }}\n >\n {suggestionState.items.map((item, index) => {\n const selected = index === suggestionState.selectedIndex;\n const displayTerm = truncateSuggestionTerm(item.term);\n return (\n <button\n key={`${item.term}-${item.count.toString()}`}\n type=\"button\"\n className={`flex items-center justify-between w-100 bn bg-transparent tl ph2 pv1 pointer nowrap thm-text-primary thm-hover-link-color ${selected ? 'thm-bg-selected thm-text-selected' : ''}`}\n onMouseEnter={() => {\n onHover(index);\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n }}\n onClick={() => {\n onPick(item.term);\n }}\n title={item.term}\n >\n <span className=\"mr2\">\n {renderHighlightedSuggestion(displayTerm, suggestionState.tokenRange.token)}\n </span>\n <span className=\"thm-text-tertiary f6 tr\" style={{ minWidth: '3ch' }}>\n {item.count}\n </span>\n </button>\n );\n })}\n </div>\n );\n}\n\nfunction renderHighlightedSuggestion(term: string, query: string): React.ReactNode {\n const lowerTerm = term.toLocaleLowerCase();\n const lowerQuery = query.toLocaleLowerCase();\n const idx = lowerTerm.indexOf(lowerQuery);\n if (idx < 0) return term;\n\n const before = term.slice(0, idx);\n const match = term.slice(idx, idx + query.length);\n const after = term.slice(idx + query.length);\n\n return (\n <>\n {before}\n <strong>{match}</strong>\n {after}\n </>\n );\n}\n\nfunction truncateSuggestionTerm(term: string): string {\n if (term.length <= MAX_SUGGESTION_TERM_RENDER_LENGTH) return term;\n return `${term.slice(0, MAX_SUGGESTION_TERM_RENDER_LENGTH)}...`;\n}\n", "import React from 'react';\n\nimport { useBookmarksStore } from '../stores/bookmarksStore';\nimport type { Bookmark } from '../types';\nimport { BMark } from './BMark';\n\n/** Renders the full list of bookmarks, delegating each item to BMark. */\nexport function BList({ initial }: { initial: Bookmark[] }) {\n const bmarks = useBookmarksStore((s) => s.bmarks);\n const setAll = useBookmarksStore((s) => s.setAll);\n const removeById = useBookmarksStore((s) => s.removeById);\n const upsert = useBookmarksStore((s) => s.upsert);\n\n React.useEffect(() => {\n setAll(initial);\n }, [initial, setAll]);\n\n return (\n <div>\n {bmarks.map((b) => (\n <BMark\n key={b.bid}\n initial={b}\n onNotifyRemove={() => {\n removeById(b.bid);\n }}\n onUpdated={(bm) => {\n upsert(bm);\n }}\n />\n ))}\n </div>\n );\n}\n", "const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n", "import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n", "import { create } from 'zustand';\n\nimport type { Bookmark } from '../types';\n\nexport type BookmarksState = {\n bmarks: Bookmark[];\n setAll: (bmarks: Bookmark[]) => void;\n removeById: (bid: number) => void;\n upsert: (bm: Bookmark) => void;\n};\n\nexport const useBookmarksStore = create<BookmarksState>((set) => ({\n bmarks: [],\n setAll: (bmarks) => {\n set({ bmarks });\n },\n removeById: (bid) => {\n set((s) => ({ bmarks: s.bmarks.filter((b) => b.bid !== bid) }));\n },\n upsert: (bm) => {\n set((s) => ({ bmarks: s.bmarks.map((b) => (b.bid === bm.bid ? bm : b)) }));\n },\n}));\n", "import React from 'react';\n\nimport { archiveBookmark, destroy, editBookmark, lookupTitle, markRead, toggleStar } from '../api';\nimport { app, setFocus, toLocaleDateString } from '../globals';\nimport { useTagSuggestions } from '../hooks/useTagSuggestions';\nimport type { Bookmark } from '../types';\nimport { encodeTag, fromNullableStr, normalizeTags } from '../util';\nimport { Markdown } from './Markdown';\nimport { TagSuggestionsDropdown } from './TagSuggestionsDropdown';\n\n/** Displays a single bookmark with inline editing, starring, and deletion. */\nexport function BMark({\n initial,\n onNotifyRemove,\n onUpdated,\n}: {\n initial: Bookmark;\n onNotifyRemove: () => void;\n onUpdated: (bm: Bookmark) => void;\n}) {\n const a = app();\n const [bm, setBm] = React.useState<Bookmark>(initial);\n const [editBm, setEditBm] = React.useState<Bookmark>(initial);\n const [deleteAsk, setDeleteAsk] = React.useState(false);\n const [edit, setEdit] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [archiving, setArchiving] = React.useState(false);\n const [apiError, setApiError] = React.useState<string | null>(null);\n\n const tagInputId = `${bm.bid.toString()}_tags`;\n\n const linkToFilterSingle = (slug: string) => `${fromNullableStr(a.userR)}/b:${slug}`;\n const linkToFilterTag = (tag: string) => `${fromNullableStr(a.userR)}/t:${encodeTag(tag)}`;\n\n const shdate = toLocaleDateString(bm.time);\n const shdatetime = `${bm.time.slice(0, 16)}Z`;\n const suggestEnabled = a.dat.suggestTags === true;\n\n const {\n tagInputRef,\n suggestionState,\n closeSuggestions,\n onTagsChange,\n onTagsKeyDown,\n onTagsSelect,\n onSuggestionHover,\n onSuggestionPick,\n } = useTagSuggestions({\n enabled: suggestEnabled,\n tags: editBm.tags,\n onTagsUpdate: (tags) => {\n setEditBm((x) => ({ ...x, tags }));\n },\n });\n\n async function onStar(next: boolean) {\n await toggleStar(bm.bid, next ? 'star' : 'unstar');\n const updated = { ...bm, selected: next };\n setBm(updated);\n setEditBm((x) => ({ ...x, selected: next }));\n onUpdated(updated);\n }\n\n async function onDestroy() {\n await destroy(bm.bid);\n onNotifyRemove();\n }\n\n async function onMarkRead() {\n await markRead(bm.bid);\n const updated = { ...bm, toread: false };\n setBm(updated);\n onUpdated(updated);\n }\n\n function startEdit(next: boolean) {\n setEditBm(bm);\n setEdit(next);\n setApiError(null);\n setArchiving(false);\n closeSuggestions();\n if (next) setFocus(tagInputId);\n }\n\n async function onFetchTitle() {\n setLoading(true);\n try {\n const title = await lookupTitle(editBm);\n if (title != null) setEditBm((x) => ({ ...x, title }));\n } finally {\n setLoading(false);\n }\n }\n\n async function onArchive() {\n setArchiving(true);\n await archiveBookmark(bm.bid);\n }\n\n const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {\n e.preventDefault();\n setApiError(null);\n const editBm2 = { ...editBm, tags: normalizeTags(editBm.tags) };\n\n const res = await editBookmark(editBm2);\n if (res.ok && res.status >= 200 && res.status < 300) {\n setBm(editBm2);\n setEdit(false);\n onUpdated(editBm2);\n } else {\n setApiError(res.bodyText);\n }\n };\n\n const archivingDisabled = archiving || editBm.private || bm.url !== editBm.url;\n\n return (\n <div\n id={String(bm.bid)}\n className={`bookmark w-100 mw7 pa1 mb3${bm.private ? ' private' : ''}`}\n >\n {a.dat.isowner ? (\n <div className={`star fl pointer${bm.selected ? ' selected' : ''}`}>\n <button\n className=\"thm-text-border\"\n onClick={() => void onStar(!bm.selected)}\n type=\"button\"\n >\n \u272D\n </button>\n </div>\n ) : null}\n\n {!edit ? (\n <div className=\"display\">\n <a\n href={bm.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className={`link f5 lh-title${bm.toread ? ' unread' : ''}`}\n >\n {bm.title === '' ? '[no title]' : bm.title}\n </a>\n <br />\n <a href={bm.url} className=\"link f7 thm-text-tertiary thm-hover-link-color\">\n {bm.url}\n </a>\n {bm.archiveUrl ? (\n <a\n href={bm.archiveUrl}\n className=\"link f7 thm-text-tertiary thm-hover-link-color ml2 thm-text-success\"\n target=\"_blank\"\n rel=\"noreferrer\"\n title=\"archive link\"\n >\n \u2611\n </a>\n ) : null}\n <br />\n <div className=\"description mt1 thm-text-secondary\">\n <Markdown text={bm.description} />\n </div>\n <div className=\"tags\">\n {bm.tags !== ''\n ? bm.tags.split(' ').map((tag) => (\n <a\n key={tag}\n className={`link tag mr1${tag.slice(0, 1) === '.' ? ' private' : ''}`}\n href={linkToFilterTag(tag)}\n >\n {tag}\n </a>\n ))\n : null}\n </div>\n\n <a\n className=\"link f7 di mr5 thm-text-tertiary\"\n href={linkToFilterSingle(bm.slug)}\n title={shdatetime}\n >\n {shdate}\n </a>\n\n {a.dat.isowner ? (\n <div className=\"edit_links di\">\n <button\n type=\"button\"\n onClick={() => {\n startEdit(true);\n }}\n className=\"edit thm-text-muted thm-hover-link-color\"\n >\n edit \n </button>\n <div className=\"delete_link di\">\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(true);\n }}\n className={`delete thm-text-muted thm-hover-link-color${deleteAsk ? ' dn' : ''}`}\n >\n delete\n </button>\n <span className={`confirm thm-text-error${!deleteAsk ? ' dn' : ''}`}>\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(false);\n }}\n >\n cancel / \n </button>\n <button type=\"button\" onClick={() => void onDestroy()} className=\"thm-text-error\">\n destroy\n </button>\n </span>\n </div>\n </div>\n ) : null}\n\n {a.dat.isowner && bm.toread ? (\n <div className=\"read di\">\n \n <button onClick={() => void onMarkRead()} className=\"mark_read\" type=\"button\">\n mark as read\n </button>\n </div>\n ) : null}\n </div>\n ) : (\n <div className=\"edit_bookmark_form pa2 pt0 thm-bg-surface\">\n {apiError ? <div className=\"alert alert-err\">{apiError}</div> : null}\n <form onSubmit={(e) => void onSubmit(e)}>\n <div>url</div>\n <input\n type=\"url\"\n className=\"url w-100 mb2 pt1 edit_form_input\"\n required\n name=\"url\"\n value={editBm.url}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, url: e.target.value }));\n }}\n />\n <div>title</div>\n <div className=\"flex\">\n <input\n type=\"text\"\n className=\"title w-100 mb2 pt1 edit_form_input\"\n name=\"title\"\n value={editBm.title}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, title: e.target.value }));\n }}\n />\n <button\n disabled={loading}\n type=\"button\"\n onClick={() => void onFetchTitle()}\n className={`ml1 pa1 mb2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim f7${\n loading ? ' thm-bg-disabled' : ''\n }`}\n >\n fetch\n </button>\n </div>\n <div>description</div>\n <textarea\n className=\"description w-100 mb1 pt1 edit_form_input\"\n name=\"description\"\n rows={5}\n value={editBm.description}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, description: e.target.value }));\n }}\n />\n <div id=\"tags_input_box\">\n <div>tags</div>\n <div className=\"relative\">\n <input\n id={tagInputId}\n ref={tagInputRef}\n type=\"text\"\n className=\"tags w-100 mb1 pt1 edit_form_input\"\n name=\"tags\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n value={editBm.tags}\n onChange={onTagsChange}\n onKeyDown={onTagsKeyDown}\n onClick={onTagsSelect}\n onSelect={onTagsSelect}\n onBlur={() => {\n window.setTimeout(() => {\n closeSuggestions();\n }, 0);\n }}\n />\n {suggestionState != null ? (\n <TagSuggestionsDropdown\n suggestionState={suggestionState}\n onHover={onSuggestionHover}\n onPick={onSuggestionPick}\n />\n ) : null}\n </div>\n </div>\n <div className=\"edit_form_checkboxes mv3\">\n <input\n type=\"checkbox\"\n className=\"private pointer\"\n id=\"edit_private\"\n name=\"private\"\n checked={editBm.private}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, private: e.target.checked }));\n }}\n />{' '}\n <label htmlFor=\"edit_private\" className=\"mr2\">\n private\n </label>{' '}\n <input\n type=\"checkbox\"\n className=\"toread pointer\"\n id=\"edit_toread\"\n name=\"toread\"\n checked={editBm.toread}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, toread: e.target.checked }));\n }}\n />{' '}\n <label htmlFor=\"edit_toread\">to-read</label>\n </div>\n <div className=\"flex justify-between items-center\">\n <div>\n <input\n type=\"submit\"\n className=\"mr1 pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim\"\n value=\"save\"\n />{' '}\n <input\n type=\"reset\"\n className=\"pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim\"\n value=\"cancel\"\n onClick={() => {\n startEdit(false);\n }}\n />\n </div>\n {a.dat.archiveBackendEnabled ? (\n <button\n type=\"button\"\n disabled={archivingDisabled}\n onClick={() => void onArchive()}\n className={`pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary${archiving ? ' thm-bg-disabled' : ''}${archivingDisabled ? ' not-allowed o-20' : ''}`}\n >\n {archiving ? 'archiving' : 'archive'}\n </button>\n ) : null}\n </div>\n </form>\n </div>\n )}\n </div>\n );\n}\n", "const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!freeze) {\n freeze = function <T>(x: T): T {\n return x;\n };\n}\n\nif (!seal) {\n seal = function <T>(x: T): T {\n return x;\n };\n}\n\nif (!apply) {\n apply = function <T>(\n func: (thisArg: any, ...args: any[]) => T,\n thisArg: any,\n ...args: any[]\n ): T {\n return func.apply(thisArg, args);\n };\n}\n\nif (!construct) {\n construct = function <T>(Func: new (...args: any[]) => T, ...args: any[]): T {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\nconst arraySplice = unapply(Array.prototype.splice);\nconst arrayIsArray = Array.isArray;\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst numberToString = unapply(Number.prototype.toString);\nconst booleanToString = unapply(Boolean.prototype.toString);\nconst bigintToString =\n typeof BigInt === 'undefined' ? null : unapply(BigInt.prototype.toString);\nconst symbolToString =\n typeof Symbol === 'undefined' ? null : unapply(Symbol.prototype.toString);\n\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst objectToString = unapply(Object.prototype.toString);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply<T>(\n func: (thisArg: any, ...args: any[]) => T\n): (thisArg: any, ...args: any[]) => T {\n return (thisArg: any, ...args: any[]): T => {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n\n return apply(func, thisArg, args);\n };\n}\n\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct<T>(\n Func: new (...args: any[]) => T\n): (...args: any[]) => T {\n return (...args: any[]): T => construct(Func, args);\n}\n\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(\n set: Record<string, boolean>,\n array: readonly unknown[],\n transformCaseFunc: ReturnType<typeof unapply<string>> = stringToLowerCase\n): Record<string, boolean> {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n if (!arrayIsArray(array)) {\n return set;\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n (array as unknown[])[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element as string] = true;\n }\n\n return set;\n}\n\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray<T>(array: T[]): Array<T | null> {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n\n return array;\n}\n\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone<T extends Record<string, any>>(object: T): T {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n\n if (isPropertyExist) {\n if (arrayIsArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (\n value &&\n typeof value === 'object' &&\n value.constructor === Object\n ) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n\n return newObject;\n}\n\n/**\n * Convert non-node values into strings without depending on direct property access.\n *\n * @param value - The value to stringify.\n * @returns A string representation of the provided value.\n */\nfunction stringifyValue(value: unknown): string {\n switch (typeof value) {\n case 'string': {\n return value;\n }\n\n case 'number': {\n return numberToString(value);\n }\n\n case 'boolean': {\n return booleanToString(value);\n }\n\n case 'bigint': {\n return bigintToString ? bigintToString(value) : '0';\n }\n\n case 'symbol': {\n return symbolToString ? symbolToString(value) : 'Symbol()';\n }\n\n case 'undefined': {\n return objectToString(value);\n }\n\n case 'function':\n case 'object': {\n if (value === null) {\n return objectToString(value);\n }\n\n const valueAsRecord = value as Record<string, any>;\n const valueToString = lookupGetter(valueAsRecord, 'toString');\n\n if (typeof valueToString === 'function') {\n const stringified = valueToString(valueAsRecord);\n\n return typeof stringified === 'string'\n ? stringified\n : objectToString(stringified);\n }\n\n return objectToString(value);\n }\n\n default: {\n return objectToString(value);\n }\n }\n}\n\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter<T extends Record<string, any>>(\n object: T,\n prop: string\n): ReturnType<typeof unapply<any>> | (() => null) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(): null {\n return null;\n }\n\n return fallbackValue;\n}\n\nfunction isRegex(value: unknown): value is RegExp {\n try {\n regExpTest(value as RegExp, '');\n return true;\n } catch {\n return false;\n }\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayIsArray,\n arrayLastIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n arraySplice,\n // Object\n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\n setPrototypeOf,\n seal,\n clone,\n create,\n objectHasOwnProperty,\n objectToString,\n // RegExp\n regExpTest,\n isRegex,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Other conversion\n stringifyValue,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n addToSet,\n // Reflect\n unapply,\n unconstruct,\n};\n", "import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'search',\n 'section',\n 'select',\n 'shadow',\n 'slot',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n] as const);\n\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'enterkeyhint',\n 'exportparts',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'inputmode',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'part',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n] as const);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n] as const);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n] as const);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n 'mprescripts',\n] as const);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n] as const);\n\nexport const text = freeze(['#text'] as const);\n", "import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'command',\n 'commandfor',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'exportparts',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inert',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'part',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'popover',\n 'popovertarget',\n 'popovertargetaction',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'slot',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'wrap',\n 'xmlns',\n] as const);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'amplitude',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'exponent',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'intercept',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'mask-type',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'slope',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'tablevalues',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n] as const);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnalign',\n 'columnlines',\n 'columnspacing',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lquote',\n 'lspace',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n] as const);\n", "import { seal } from './utils.js';\n\nexport const MUSTACHE_EXPR = seal(/{{[\\w\\W]*|^[\\w\\W]*}}/g);\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|^[\\w\\W]*%>/g);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*/g);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\nexport const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n", "/* eslint-disable @typescript-eslint/indent */\n\nimport type {\n TrustedHTML,\n TrustedTypesWindow,\n} from 'trusted-types/lib/index.js';\nimport type { Config, UseProfilesConfig } from './config';\nimport * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayIsArray,\n arrayLastIndexOf,\n arrayPop,\n arrayPush,\n arraySplice,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n isRegex,\n typeErrorCreate,\n lookupGetter,\n create,\n objectHasOwnProperty,\n stringifyValue,\n} from './utils.js';\n\nexport type { Config } from './config';\n\ndeclare const VERSION: string;\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5, // Deprecated\n entityNode: 6, // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12, // Deprecated\n};\n\nconst getGlobal = function (): WindowLike {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function (\n trustedTypes: TrustedTypePolicyFactory,\n purifyHostElement: HTMLScriptElement\n) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nconst _createHooksMap = function (): HooksMap {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: [],\n };\n};\n\nfunction createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {\n const DOMPurify: DOMPurify = (root: WindowLike) => createDOMPurify(root);\n\n DOMPurify.version = VERSION;\n\n DOMPurify.removed = [];\n\n if (\n !window ||\n !window.document ||\n window.document.nodeType !== NODE_TYPE.document ||\n !window.Element\n ) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n let { document } = window;\n\n const originalDocument = document;\n const currentScript: HTMLScriptElement =\n originalDocument.currentScript as HTMLScriptElement;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || (window as any).MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n const getShadowRoot = lookupGetter(ElementPrototype, 'shadowRoot');\n const getAttributes = lookupGetter(ElementPrototype, 'attributes');\n const getNodeType =\n Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeType') : null;\n const getNodeName =\n Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeName') : null;\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = _createHooksMap();\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n implementation.createHTMLDocument !== undefined;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(\n create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n })\n );\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (\u00A77.3.3)\n * - DOM Tree Accessors (\u00A73.1.5)\n * - Form Element Parent-Child Relations (\u00A74.10.3)\n * - Iframe srcdoc / Nested WindowProxies (\u00A74.8.5)\n * - HTMLCollection (\u00A74.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES: UseProfilesConfig | false = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE: null | DOMParserSupportedType = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc: null | Parameters<typeof addToSet>[2] = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG: Config | null = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (\n testValue: unknown\n ): testValue is Function | RegExp {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg: Config = {}): void {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? DEFAULT_PARSER_MEDIA_TYPE\n : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS =\n objectHasOwnProperty(cfg, 'ALLOWED_TAGS') &&\n arrayIsArray(cfg.ALLOWED_TAGS)\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR =\n objectHasOwnProperty(cfg, 'ALLOWED_ATTR') &&\n arrayIsArray(cfg.ALLOWED_ATTR)\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES =\n objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') &&\n arrayIsArray(cfg.ALLOWED_NAMESPACES)\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES =\n objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') &&\n arrayIsArray(cfg.ADD_URI_SAFE_ATTR)\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n cfg.ADD_URI_SAFE_ATTR,\n transformCaseFunc\n )\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS =\n objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') &&\n arrayIsArray(cfg.ADD_DATA_URI_TAGS)\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS),\n cfg.ADD_DATA_URI_TAGS,\n transformCaseFunc\n )\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS =\n objectHasOwnProperty(cfg, 'FORBID_CONTENTS') &&\n arrayIsArray(cfg.FORBID_CONTENTS)\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS =\n objectHasOwnProperty(cfg, 'FORBID_TAGS') && arrayIsArray(cfg.FORBID_TAGS)\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : clone({});\n FORBID_ATTR =\n objectHasOwnProperty(cfg, 'FORBID_ATTR') && arrayIsArray(cfg.FORBID_ATTR)\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES')\n ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === 'object'\n ? clone(cfg.USE_PROFILES)\n : cfg.USE_PROFILES\n : false;\n\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = isRegex(cfg.ALLOWED_URI_REGEXP)\n ? cfg.ALLOWED_URI_REGEXP\n : EXPRESSIONS.IS_ALLOWED_URI; // Default regexp\n\n NAMESPACE =\n typeof cfg.NAMESPACE === 'string' ? cfg.NAMESPACE : HTML_NAMESPACE; // Default HTML namespace\n\n MATHML_TEXT_INTEGRATION_POINTS =\n objectHasOwnProperty(cfg, 'MATHML_TEXT_INTEGRATION_POINTS') &&\n cfg.MATHML_TEXT_INTEGRATION_POINTS &&\n typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === 'object'\n ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS)\n : addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']); // Default built-in map\n\n HTML_INTEGRATION_POINTS =\n objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') &&\n cfg.HTML_INTEGRATION_POINTS &&\n typeof cfg.HTML_INTEGRATION_POINTS === 'object'\n ? clone(cfg.HTML_INTEGRATION_POINTS)\n : addToSet({}, ['annotation-xml']); // Default built-in map\n\n const customElementHandling =\n objectHasOwnProperty(cfg, 'CUSTOM_ELEMENT_HANDLING') &&\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING === 'object'\n ? clone(cfg.CUSTOM_ELEMENT_HANDLING)\n : create(null);\n\n CUSTOM_ELEMENT_HANDLING = create(null);\n\n if (\n objectHasOwnProperty(customElementHandling, 'tagNameCheck') &&\n isRegexOrFunction(customElementHandling.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = customElementHandling.tagNameCheck; // Default undefined\n }\n\n if (\n objectHasOwnProperty(customElementHandling, 'attributeNameCheck') &&\n isRegexOrFunction(customElementHandling.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n customElementHandling.attributeNameCheck; // Default undefined\n }\n\n if (\n objectHasOwnProperty(\n customElementHandling,\n 'allowCustomizedBuiltInElements'\n ) &&\n typeof customElementHandling.allowCustomizedBuiltInElements === 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n customElementHandling.allowCustomizedBuiltInElements; // Default undefined\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, TAGS.text);\n ALLOWED_ATTR = create(null);\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Always reset function-based ADD_TAGS / ADD_ATTR checks to prevent\n * leaking across calls when switching from function to array config */\n EXTRA_ELEMENT_HANDLING.tagCheck = null;\n EXTRA_ELEMENT_HANDLING.attributeCheck = null;\n\n /* Merge configuration parameters */\n if (objectHasOwnProperty(cfg, 'ADD_TAGS')) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else if (arrayIsArray(cfg.ADD_TAGS)) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n\n if (objectHasOwnProperty(cfg, 'ADD_ATTR')) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else if (arrayIsArray(cfg.ADD_ATTR)) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n\n if (\n objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') &&\n arrayIsArray(cfg.ADD_URI_SAFE_ATTR)\n ) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (\n objectHasOwnProperty(cfg, 'FORBID_CONTENTS') &&\n arrayIsArray(cfg.FORBID_CONTENTS)\n ) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n if (\n objectHasOwnProperty(cfg, 'ADD_FORBID_CONTENTS') &&\n arrayIsArray(cfg.ADD_FORBID_CONTENTS)\n ) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.'\n );\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.'\n );\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n currentScript\n );\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n /*\n * Mirror the clone-before-mutate pattern already applied above for\n * cfg.ADD_TAGS / cfg.ADD_ATTR: if any uponSanitize* hook is\n * registered AND the set still points at the default constant,\n * clone it. The hook then mutates the clone (in-call widening\n * still works exactly as documented) and the next default-cfg\n * call rebinds to the untouched original via the reassignment at\n * the top of this function.\n */\n if (\n (hooks.uponSanitizeElement.length > 0 ||\n hooks.uponSanitizeAttribute.length > 0) &&\n ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS\n ) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n if (\n hooks.uponSanitizeAttribute.length > 0 &&\n ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR\n ) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.svgDisallowed,\n ]);\n const ALL_MATHML_TAGS = addToSet({}, [\n ...TAGS.mathMl,\n ...TAGS.mathMlDisallowed,\n ]);\n\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element: Element): boolean {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function (node: Node): void {\n arrayPush(DOMPurify.removed, { element: node });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function (name: string, element: Element): void {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element,\n });\n }\n\n element.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty: string): Document {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' +\n dirty +\n '</body></html>';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function (root: Node): NodeIterator {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT |\n NodeFilter.SHOW_COMMENT |\n NodeFilter.SHOW_TEXT |\n NodeFilter.SHOW_PROCESSING_INSTRUCTION |\n NodeFilter.SHOW_CDATA_SECTION,\n null\n );\n };\n\n /**\n * Strip template-engine expressions ({{...}}, ${...}, <%...%>) from the\n * character data of an element subtree. Used as the final safety net for\n * SAFE_FOR_TEMPLATES on every DOM-returning code path so that expressions\n * which only form after text-node normalization (e.g. fragments split across\n * stripped elements) cannot survive into a template-evaluating framework.\n *\n * Walks text/comment/CDATA/processing-instruction nodes and mutates `.data`\n * in place rather than round-tripping through innerHTML. This preserves\n * descendant node references (important for IN_PLACE callers), avoids a\n * serialize/reparse cycle, and reads literal character data \u2014 which means\n * `<%...%>` in text content matches the ERB regex against its real bytes\n * instead of the HTML-entity-escaped form innerHTML would produce.\n *\n * Attribute values are not visited here; SAFE_FOR_TEMPLATES handling for\n * attributes is performed during the per-node `_sanitizeAttributes` pass.\n *\n * @param node The root element whose character data should be scrubbed.\n */\n const _scrubTemplateExpressions = function (node: Element): void {\n node.normalize();\n const walker = createNodeIterator.call(\n node.ownerDocument || node,\n node,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_TEXT |\n NodeFilter.SHOW_COMMENT |\n NodeFilter.SHOW_CDATA_SECTION |\n NodeFilter.SHOW_PROCESSING_INSTRUCTION,\n null\n );\n\n let currentNode = walker.nextNode() as CharacterData | null;\n while (currentNode) {\n let data = currentNode.data;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr: RegExp) => {\n data = stringReplace(data, expr, ' ');\n });\n currentNode.data = data;\n currentNode = walker.nextNode() as CharacterData | null;\n }\n };\n\n /**\n * _isClobbered\n *\n * Detect DOM-clobbering on HTMLFormElement nodes. Form is the only HTML\n * interface with [LegacyOverrideBuiltIns]; a descendant element with a\n * `name` attribute matching a prototype property shadows that property\n * on direct reads. We use this check at the IN_PLACE entry-point and\n * during attribute sanitization to refuse clobbered forms.\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function (element: Element): boolean {\n // Realm-independent tag-name probe. If we can't determine the tag\n // name at all, we can't reason about clobbering \u2014 return false\n // (the caller's other defences still apply).\n const realTagName = getNodeName ? getNodeName(element) : null;\n if (typeof realTagName !== 'string') {\n return false;\n }\n\n if (transformCaseFunc(realTagName) !== 'form') {\n return false;\n }\n\n return (\n typeof element.nodeName !== 'string' ||\n typeof element.textContent !== 'string' ||\n typeof element.removeChild !== 'function' ||\n // Realm-safe NamedNodeMap detection: equality against the cached\n // prototype getter. Clobbered .attributes (e.g. <input name=\"attributes\">)\n // makes the direct read diverge from the cached read; a clean form\n // (same-realm OR foreign-realm) has both reads pointing at the same\n // canonical NamedNodeMap.\n element.attributes !== getAttributes(element) ||\n typeof element.removeAttribute !== 'function' ||\n typeof element.setAttribute !== 'function' ||\n typeof element.namespaceURI !== 'string' ||\n typeof element.insertBefore !== 'function' ||\n typeof element.hasChildNodes !== 'function' ||\n // NodeType clobbering probe. Cached Node.prototype.nodeType getter\n // returns the integer 1 for any Element regardless of realm; direct\n // read on a clobbered form (e.g. <input name=\"nodeType\">) returns\n // the named child element. Cheap addition \u2014 nodeType is read from\n // an internal slot, no serialization cost \u2014 and removes a residual\n // clobbering surface used by several mXSS / PI / comment branches\n // in _sanitizeElements that compare currentNode.nodeType directly.\n element.nodeType !== getNodeType(element) ||\n // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named\n // \"childNodes\" shadows the prototype getter. Direct reads of\n // form.childNodes from a clobbered form return the named child\n // instead of the real NodeList, so any walk that reads it directly\n // skips the form's real children. Compare the direct read to the\n // cached Node.prototype getter \u2014 when the form's named-property\n // getter intercepts the read, the two values differ and we flag\n // the form. This catches every clobbering child type (input,\n // select, etc.) regardless of whether the named child happens to\n // carry a numeric .length, which a typeof-based probe would miss\n // (e.g. HTMLSelectElement.length is a defined unsigned-long).\n element.childNodes !== getChildNodes(element)\n );\n };\n\n /**\n * Checks whether the given value is a DocumentFragment from any realm.\n *\n * The realm-independent replacement reads `nodeType` through the cached\n * Node.prototype getter and compares to the DOCUMENT_FRAGMENT_NODE\n * constant (11). nodeType is a numeric value resolved from the node's\n * internal slot, identical across realms for the same kind of node.\n *\n * @param value object to check\n * @return true if value is a DocumentFragment-shaped node from any realm\n */\n const _isDocumentFragment = function (value: unknown): boolean {\n if (!getNodeType || typeof value !== 'object' || value === null) {\n return false;\n }\n\n try {\n return getNodeType(value as Node) === NODE_TYPE.documentFragment;\n } catch (_) {\n return false;\n }\n };\n\n /**\n * Checks whether the given object is a DOM node, including nodes that\n * originate from a different window/realm (e.g. an iframe's\n * contentDocument). The previous `value instanceof Node` check was\n * realm-bound: nodes from a different window failed it, causing\n * sanitize() to silently stringify them and reset IN_PLACE to false,\n * returning the original node unsanitized. See GHSA-4w3q-35jp-p934.\n *\n * @param value object to check whether it's a DOM node\n * @return true if value is a DOM node from any realm\n */\n const _isNode = function (value: unknown): value is Node {\n if (!getNodeType || typeof value !== 'object' || value === null) {\n return false;\n }\n\n try {\n return typeof getNodeType(value) === 'number';\n } catch (_) {\n return false;\n }\n };\n\n function _executeHooks<T extends HookFunction>(\n hooks: HookFunction[],\n currentNode: Parameters<T>[0],\n data: Parameters<T>[1]\n ): void {\n arrayForEach(hooks, (hook: T) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode: any): boolean {\n let content = null;\n\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n SAFE_FOR_XML &&\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n regExpTest(/<[/\\w!]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w!]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove risky CSS construction leading to mXSS */\n if (\n SAFE_FOR_XML &&\n currentNode.namespaceURI === HTML_NAMESPACE &&\n tagName === 'style' &&\n _isNode(currentNode.firstElementChild)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (\n SAFE_FOR_XML &&\n currentNode.nodeType === NODE_TYPE.comment &&\n regExpTest(/<[/\\w]/g, currentNode.data)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (\n FORBID_TAGS[tagName] ||\n (!(\n EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function &&\n EXTRA_ELEMENT_HANDLING.tagCheck(tagName)\n ) &&\n !ALLOWED_TAGS[tagName])\n ) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n ) {\n return false;\n }\n\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n ) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements.\n Use the cached prototype getters exclusively \u2014 the previous code\n had `|| currentNode.parentNode` / `|| currentNode.childNodes`\n fallbacks, but the cached getters always return the canonical\n value (or null for a real parent-less node), so the fallback\n path was dead in safe cases and a clobbering surface in unsafe\n ones. Falsy cached results stay falsy; the `if (childNodes &&\n parentNode)` check already gates correctly. */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode);\n const childNodes = getChildNodes(currentNode);\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): use the cached Node.prototype\n nodeType getter rather than `instanceof Element`, which is realm-\n bound and short-circuits to false for any node minted in a different\n realm \u2014 letting a foreign-realm element with a forbidden namespace\n slip past the namespace check entirely. */\n const nt = getNodeType ? getNodeType(currentNode) : currentNode.nodeType;\n if (nt === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if (\n (tagName === 'noscript' ||\n tagName === 'noembed' ||\n tagName === 'noframes') &&\n regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr: RegExp) => {\n content = stringReplace(content, expr, ' ');\n });\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (\n lcTag: string,\n lcName: string,\n value: string\n ): boolean {\n /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */\n if (FORBID_ATTR[lcName]) {\n return false;\n }\n\n /* Make sure attribute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n const nameIsPermitted =\n ALLOWED_ATTR[lcName] ||\n (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function &&\n EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag));\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!nameIsPermitted || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_isBasicCustomElement(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n } else if (value) {\n return false;\n } else {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n }\n\n return true;\n };\n\n /* Names the HTML spec reserves from valid-custom-element-name; these must\n * never be treated as basic custom elements even when a permissive\n * CUSTOM_ELEMENT_HANDLING.tagNameCheck is configured. */\n const RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, [\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'missing-glyph',\n ]);\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function (tagName: string): boolean {\n return (\n !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] &&\n regExpTest(CUSTOM_ELEMENT, tagName)\n );\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode: Element): void {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined,\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const { name, namespaceURI, value: attrValue } = attr;\n const lcName = transformCaseFunc(name);\n\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (\n SANITIZE_NAMED_PROPS &&\n (lcName === 'id' || lcName === 'name') &&\n stringIndexOf(value, SANITIZE_NAMED_PROPS_PREFIX) !== 0\n ) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n // Else: already prefixed, leave the attribute alone \u2014 the prefix is\n // itself the clobbering protection, and re-applying it is incorrect.\n\n /* Work around a security issue with comments inside attributes */\n if (\n SAFE_FOR_XML &&\n regExpTest(\n /((--!?|])>)|<\\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,\n value\n )\n ) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr: RegExp) => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML': {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL': {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n\n default: {\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment: DocumentFragment): void {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n\n /* Deep shadow DOM detected.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): use nodeType against the\n DOCUMENT_FRAGMENT_NODE constant rather than instanceof, so we\n recurse into <template>.content from foreign realms too. */\n if (_isDocumentFragment(shadowNode.content)) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* An element iterated here may itself host an attached\n shadow root. The default NodeIterator does not enter shadow\n trees, so a shadow root nested inside template.content was\n previously reached by no walk at all (the pre-pass at\n _sanitizeAttachedShadowRoots descends via childNodes, which\n doesn't enter template.content; the template-content recursion\n above iterates the content but never inspected shadowRoot).\n Walk it explicitly. The nodeType guard avoids reading\n shadowRoot off text / comment / CDATA / PI nodes that the\n iterator also surfaces. */\n const shadowNodeType = getNodeType\n ? getNodeType(shadowNode)\n : (shadowNode as Node).nodeType;\n if (shadowNodeType === NODE_TYPE.element) {\n const innerSr = getShadowRoot\n ? getShadowRoot(shadowNode)\n : (shadowNode as Element).shadowRoot;\n if (_isDocumentFragment(innerSr)) {\n _sanitizeAttachedShadowRoots(innerSr);\n _sanitizeShadowDOM(innerSr);\n }\n }\n }\n\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n\n /**\n * _sanitizeAttachedShadowRoots\n *\n * Walks `root` and feeds every attached shadow root we encounter into\n * the existing _sanitizeShadowDOM pipeline. The default node iterator\n * does not descend into shadow trees, so nodes inside an attached\n * shadow root would otherwise be skipped entirely.\n *\n * Two real input paths put attached shadow roots in front of us:\n * 1. IN_PLACE on a DOM node that already has shadow roots attached.\n * 2. DOM-node input where importNode(dirty, true) deep-clones the\n * shadow root because it was created with `clonable: true`.\n *\n * This pass runs once, up front, so the main iteration loop (and the\n * existing _sanitizeShadowDOM template-content recursion) stay\n * untouched \u2014 string-input paths are not affected.\n *\n * @param root the subtree root to walk for attached shadow roots\n */\n const _sanitizeAttachedShadowRoots = function (root: Node): void {\n const nodeType = getNodeType ? getNodeType(root) : (root as any).nodeType;\n\n if (nodeType === NODE_TYPE.element) {\n const sr = getShadowRoot\n ? getShadowRoot(root)\n : (root as Element).shadowRoot;\n // Realm-safe check (GHSA-hpcv-96wg-7vj8): use nodeType-based\n // detection rather than `instanceof DocumentFragment`, which is\n // realm-bound and silently skipped shadow roots whose host element\n // belonged to a foreign realm (e.g. iframe.contentDocument\n // attachShadow). A foreign-realm ShadowRoot extends the foreign\n // realm's DocumentFragment, not ours, so the old instanceof check\n // returned false and the shadow subtree was never walked.\n if (_isDocumentFragment(sr)) {\n // Recurse first so that nested shadow roots are reached even if\n // _sanitizeShadowDOM removes hosts at this level.\n _sanitizeAttachedShadowRoots(sr);\n _sanitizeShadowDOM(sr);\n }\n }\n\n // Snapshot children before recursing. Sanitization of one subtree\n // (e.g. via an uponSanitizeShadowNode hook) may detach siblings,\n // and naive nextSibling traversal would silently skip the rest of\n // the list once a node is detached.\n const childNodes = getChildNodes\n ? getChildNodes(root)\n : (root as Element).childNodes;\n if (!childNodes) {\n return;\n }\n\n const snapshot: Node[] = [];\n arrayForEach(childNodes, (child) => {\n arrayPush(snapshot, child);\n });\n\n for (const child of snapshot) {\n _sanitizeAttachedShadowRoots(child);\n }\n\n /* When the root is a <template>, also descend into root.content */\n if (nodeType === NODE_TYPE.element) {\n const rootName = getNodeName ? getNodeName(root) : null;\n if (\n typeof rootName === 'string' &&\n transformCaseFunc(rootName) === 'template'\n ) {\n const content = (root as HTMLTemplateElement).content;\n if (_isDocumentFragment(content)) {\n _sanitizeAttachedShadowRoots(content);\n }\n }\n }\n };\n\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n dirty = stringifyValue(dirty);\n\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes.\n Read nodeName through the cached prototype getter \u2014 a clobbering\n child named \"nodeName\" on the form root would otherwise shadow\n the property and let this check skip the root-allowlist\n validation entirely. */\n const nn = getNodeName\n ? getNodeName(dirty as Node)\n : (dirty as Node).nodeName;\n if (typeof nn === 'string') {\n const tagName = transformCaseFunc(nn);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n\n /* Pre-flight the root through _isClobbered. The iterator-driven\n removal path can not detach a parent-less root: _forceRemove\n falls through to Element.prototype.remove(), which per spec\n is a no-op on a node with no parent. A clobbered root would\n then survive the main loop with its attributes uninspected,\n because _sanitizeAttributes early-returns on _isClobbered. The\n result would be an attacker-controlled form, complete with any\n event-handler attributes the caller passed in, handed back to\n the application unsanitized. Refuse to sanitize such a root\n the same way we refuse a forbidden tag. GHSA-r47g-fvhr-h676. */\n if (_isClobbered(dirty as Element)) {\n throw typeErrorCreate(\n 'root node is clobbered and cannot be sanitized in-place'\n );\n }\n\n /* Sanitize attached shadow roots before the main iterator runs.\n The iterator does not descend into shadow trees. */\n _sanitizeAttachedShadowRoots(dirty as Node);\n } else if (_isNode(dirty)) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (\n importedNode.nodeType === NODE_TYPE.element &&\n importedNode.nodeName === 'BODY'\n ) {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n\n /* Clonable shadow roots are deep-cloned by importNode(); sanitize\n them before the main iterator runs, since the iterator does not\n descend into shadow trees. The walk routes every read through a\n cached prototype getter so clobbering descendants on a form root\n cannot hide a shadow host from this pass. */\n _sanitizeAttachedShadowRoots(importedNode);\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n\n /* Shadow DOM detected, sanitize it.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection\n instead of instanceof, so foreign-realm <template>.content is\n walked correctly. */\n if (_isDocumentFragment(currentNode.content)) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n if (SAFE_FOR_TEMPLATES) {\n _scrubTemplateExpressions(dirty as Element);\n }\n\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (SAFE_FOR_TEMPLATES) {\n _scrubTemplateExpressions(body);\n }\n\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr: RegExp) => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n DOMPurify.setConfig = function (cfg = {}) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n DOMPurify.addHook = function (\n entryPoint: keyof HooksMap,\n hookFunction: HookFunction\n ) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n DOMPurify.removeHook = function (\n entryPoint: keyof HooksMap,\n hookFunction: HookFunction\n ) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n\n return index === -1\n ? undefined\n : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n\n return arrayPop(hooks[entryPoint]);\n };\n\n DOMPurify.removeHooks = function (entryPoint: keyof HooksMap) {\n hooks[entryPoint] = [];\n };\n\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n\nexport interface DOMPurify {\n /**\n * Creates a DOMPurify instance using the given window-like object. Defaults to `window`.\n */\n (root?: WindowLike): DOMPurify;\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n version: string;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n removed: Array<RemovedElement | RemovedAttribute>;\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n isSupported: boolean;\n\n /**\n * Set the configuration once.\n *\n * @param cfg configuration object\n */\n setConfig(cfg?: Config): void;\n\n /**\n * Removes the configuration.\n */\n clearConfig(): void;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty string or DOM node\n * @param cfg object\n * @returns Sanitized TrustedHTML.\n */\n sanitize(\n dirty: string | Node,\n cfg: Config & { RETURN_TRUSTED_TYPE: true }\n ): TrustedHTML;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty DOM node\n * @param cfg object\n * @returns Sanitized DOM node.\n */\n sanitize(dirty: Node, cfg: Config & { IN_PLACE: true }): Node;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty string or DOM node\n * @param cfg object\n * @returns Sanitized DOM node.\n */\n sanitize(dirty: string | Node, cfg: Config & { RETURN_DOM: true }): Node;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty string or DOM node\n * @param cfg object\n * @returns Sanitized document fragment.\n */\n sanitize(\n dirty: string | Node,\n cfg: Config & { RETURN_DOM_FRAGMENT: true }\n ): DocumentFragment;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty string or DOM node\n * @param cfg object\n * @returns Sanitized string.\n */\n sanitize(dirty: string | Node, cfg?: Config): string;\n\n /**\n * Checks if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n *\n * @param tag Tag name of containing element.\n * @param attr Attribute name.\n * @param value Attribute value.\n * @returns Returns true if `value` is valid. Otherwise, returns false.\n */\n isValidAttribute(tag: string, attr: string, value: string): boolean;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(entryPoint: BasicHookName, hookFunction: NodeHook): void;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(entryPoint: ElementHookName, hookFunction: ElementHook): void;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(\n entryPoint: DocumentFragmentHookName,\n hookFunction: DocumentFragmentHook\n ): void;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(\n entryPoint: 'uponSanitizeElement',\n hookFunction: UponSanitizeElementHook\n ): void;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(\n entryPoint: 'uponSanitizeAttribute',\n hookFunction: UponSanitizeAttributeHook\n ): void;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: BasicHookName,\n hookFunction?: NodeHook\n ): NodeHook | undefined;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: ElementHookName,\n hookFunction?: ElementHook\n ): ElementHook | undefined;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: DocumentFragmentHookName,\n hookFunction?: DocumentFragmentHook\n ): DocumentFragmentHook | undefined;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: 'uponSanitizeElement',\n hookFunction?: UponSanitizeElementHook\n ): UponSanitizeElementHook | undefined;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: 'uponSanitizeAttribute',\n hookFunction?: UponSanitizeAttributeHook\n ): UponSanitizeAttributeHook | undefined;\n\n /**\n * Removes all DOMPurify hooks at a given entryPoint\n *\n * @param entryPoint entry point for the hooks to remove\n */\n removeHooks(entryPoint: HookName): void;\n\n /**\n * Removes all DOMPurify hooks.\n */\n removeAllHooks(): void;\n}\n\n/**\n * An element removed by DOMPurify.\n */\nexport interface RemovedElement {\n /**\n * The element that was removed.\n */\n element: Node;\n}\n\n/**\n * An element removed by DOMPurify.\n */\nexport interface RemovedAttribute {\n /**\n * The attribute that was removed.\n */\n attribute: Attr | null;\n\n /**\n * The element that the attribute was removed.\n */\n from: Node;\n}\n\ntype BasicHookName =\n | 'beforeSanitizeElements'\n | 'afterSanitizeElements'\n | 'uponSanitizeShadowNode';\ntype ElementHookName = 'beforeSanitizeAttributes' | 'afterSanitizeAttributes';\ntype DocumentFragmentHookName =\n | 'beforeSanitizeShadowDOM'\n | 'afterSanitizeShadowDOM';\ntype UponSanitizeElementHookName = 'uponSanitizeElement';\ntype UponSanitizeAttributeHookName = 'uponSanitizeAttribute';\n\ninterface HooksMap {\n beforeSanitizeElements: NodeHook[];\n afterSanitizeElements: NodeHook[];\n beforeSanitizeShadowDOM: DocumentFragmentHook[];\n uponSanitizeShadowNode: NodeHook[];\n afterSanitizeShadowDOM: DocumentFragmentHook[];\n beforeSanitizeAttributes: ElementHook[];\n afterSanitizeAttributes: ElementHook[];\n uponSanitizeElement: UponSanitizeElementHook[];\n uponSanitizeAttribute: UponSanitizeAttributeHook[];\n}\n\ntype ArrayElement<T> = T extends Array<infer U> ? U : never;\n\ntype HookFunction = ArrayElement<HooksMap[keyof HooksMap]>;\n\nexport type HookName =\n | BasicHookName\n | ElementHookName\n | DocumentFragmentHookName\n | UponSanitizeElementHookName\n | UponSanitizeAttributeHookName;\n\nexport type NodeHook = (\n this: DOMPurify,\n currentNode: Node,\n hookEvent: null,\n config: Config\n) => void;\n\nexport type ElementHook = (\n this: DOMPurify,\n currentNode: Element,\n hookEvent: null,\n config: Config\n) => void;\n\nexport type DocumentFragmentHook = (\n this: DOMPurify,\n currentNode: DocumentFragment,\n hookEvent: null,\n config: Config\n) => void;\n\nexport type UponSanitizeElementHook = (\n this: DOMPurify,\n currentNode: Node,\n hookEvent: UponSanitizeElementHookEvent,\n config: Config\n) => void;\n\nexport type UponSanitizeAttributeHook = (\n this: DOMPurify,\n currentNode: Element,\n hookEvent: UponSanitizeAttributeHookEvent,\n config: Config\n) => void;\n\nexport interface UponSanitizeElementHookEvent {\n tagName: string;\n allowedTags: Record<string, boolean>;\n}\n\nexport interface UponSanitizeAttributeHookEvent {\n attrName: string;\n attrValue: string;\n keepAttr: boolean;\n allowedAttributes: Record<string, boolean>;\n forceKeepAttr: boolean | undefined;\n}\n\n/**\n * A `Window`-like object containing the properties and types that DOMPurify requires.\n */\nexport type WindowLike = Pick<\n typeof globalThis,\n | 'DocumentFragment'\n | 'HTMLTemplateElement'\n | 'Node'\n | 'Element'\n | 'NodeFilter'\n | 'NamedNodeMap'\n | 'HTMLFormElement'\n | 'DOMParser'\n> & {\n document?: Document;\n MozNamedAttrMap?: typeof window.NamedNodeMap;\n} & Pick<TrustedTypesWindow, 'trustedTypes'>;\n", "import type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Gets the original marked default options.\n */\nexport function _getDefaults<ParserOutput = string, RendererOutput = string>(): MarkedOptions<ParserOutput, RendererOutput> {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let _defaults: MarkedOptions<any, any> = _getDefaults();\n\nexport function changeDefaults<ParserOutput = string, RendererOutput = string>(newDefaults: MarkedOptions<ParserOutput, RendererOutput>) {\n _defaults = newDefaults;\n}\n", "const noopTest = { exec: () => null } as unknown as RegExp;\n\nfunction cachedIndentRegex(createRegex: (indent: number) => RegExp) {\n const cache: RegExp[] = [];\n return (indent: number) => {\n const cacheIndex = Math.max(0, Math.min(3, indent - 1));\n let regex = cache[cacheIndex];\n if (!regex) {\n regex = createRegex(cacheIndex);\n cache[cacheIndex] = regex;\n }\n return regex;\n };\n}\n\nfunction edit(regex: string | RegExp, opt = '') {\n let source = typeof regex === 'string' ? regex : regex.source;\n const obj = {\n replace: (name: string | RegExp, val: string | RegExp) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(other.caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n },\n };\n return obj;\n}\n\n// use a default variable to ensure the regex is evaluated on client an not removed by minifiers\nconst supportsLookbehind = ((a = '') => {\ntry {\n return !!new RegExp('(?<=1)(?<!1)' + a);\n} catch {\n // See browser support here:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Lookbehind_assertion\n return false;\n}\n})();\n\nexport const other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] +\\S/,\n listReplaceTask: /^\\[[ xX]\\] +/,\n listTaskCheckbox: /\\[[ xX]\\]/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^<a /i,\n endATag: /^<\\/a>/i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^</,\n endAngleBracket: />$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull: string) => new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`)),\n hrRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`)),\n fencesBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}(?:\\`\\`\\`|~~~)`)),\n headingBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}#`)),\n htmlBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}<(?:[a-z].*>|!--)`, 'i')),\n blockquoteBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}>`)),\n};\n\n/**\n * Block-Level Grammar\n */\n\nconst newline = /^(?:[ \\t]*(?:\\n|$))+/;\nconst blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = / {0,3}(?:[*+-]|\\d{1,9}[.)])/;\nconst lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nconst lheading = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/\\|table/g, '') // table not in commonmark\n .getRegex();\nconst lheadingGfm = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/) // table can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\n\nconst list = edit(/^(bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\n\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nconst html = edit(\n '^ {0,3}(?:' // optional indentation\n+ '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n+ '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n+ '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n+ '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n+ '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n+ '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (6)\n+ '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) open tag\n+ '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) closing tag\n+ ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText,\n};\n\ntype BlockKeys = keyof typeof blockNormal;\n\n/**\n * GFM Block Grammar\n */\n\nconst gfmTable = edit(\n '^ *([^\\\\n ].*)\\\\n' // Header\n+ ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n+ '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', '(?: {4}| {0,3}\\t)[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nconst blockGfm: Record<BlockKeys, RegExp> = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex(),\n};\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nconst blockPedantic: Record<BlockKeys, RegExp> = {\n ...blockNormal,\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex(),\n};\n\n/**\n * Inline-Level Grammar\n */\n\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\n\n// list of unicode punctuation marks, plus any missing characters from CommonMark spec\nconst _punctuation = /[\\p{P}\\p{S}]/u;\nconst _punctuationOrSpace = /[\\s\\p{P}\\p{S}]/u;\nconst _notPunctuationOrSpace = /[^\\s\\p{P}\\p{S}]/u;\nconst punctuation = edit(/^((?![*_])punctSpace)/, 'u')\n .replace(/punctSpace/g, _punctuationOrSpace).getRegex();\n\n// GFM allows ~ inside strong and em for strikethrough\nconst _punctuationGfmStrongEm = /(?!~)[\\p{P}\\p{S}]/u;\nconst _punctuationOrSpaceGfmStrongEm = /(?!~)[\\s\\p{P}\\p{S}]/u;\nconst _notPunctuationOrSpaceGfmStrongEm = /(?:[^\\s\\p{P}\\p{S}]|~)/u;\n\n// sequences em should skip over [title](link), `code`, <html>\nconst blockSkip = edit(/link|precode-code|html/, 'g')\n .replace('link', /\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/)\n .replace('precode-', supportsLookbehind ? '(?<!`)()' : '(^^|[^`])')\n .replace('code', /(?<b>`+)[^`]+\\k<b>(?!`)/)\n .replace('html', /<(?! )[^<>]*?>/)\n .getRegex();\n\nconst emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/;\n\nconst emStrongLDelim = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongLDelimGfm = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n\nconst emStrongRDelimAstCore =\n '^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n+ '|[^*]+(?=[^*])' // Consume to delim\n+ '|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)' // (2) a***#, a*** can only be a Right Delimiter\n+ '|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)' // (3) #***a, ***a can only be Left Delimiter\n+ '|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)' // (4) ***# can only be Left Delimiter\n+ '|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)' // (5) #***# can be either Left or Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?=notPunctSpace)'; // (6) a***a can be either Left or Right Delimiter\n\nconst emStrongRDelimAst = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm)\n .replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm)\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit(\n '^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n+ '|[^_]+(?=[^_])' // Consume to delim\n+ '|(?!_)punct(_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n+ '|notPunctSpace(_+)(?!_)(?=punctSpace|$)' // (2) a___#, a___ can only be a Right Delimiter\n+ '|(?!_)punctSpace(_+)(?=notPunctSpace)' // (3) #___a, ___a can only be Left Delimiter\n+ '|[\\\\s](_+)(?!_)(?=punct)' // (4) ___# can only be Left Delimiter\n+ '|(?!_)punct(_+)(?!_)(?=punct)', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Tilde left delimiter for strikethrough (similar to emStrongLDelim for asterisk)\nconst delLDelim = edit(/^~~?(?:((?!~)punct)|[^\\s~])/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Tilde delimiter patterns for strikethrough (similar to asterisk)\nconst delRDelimCore =\n '^[^~]+(?=[^~])' // Consume to delim\n+ '|(?!~)punct(~~?)(?=[\\\\s]|$)' // (1) #~~ can only be a Right Delimiter\n+ '|notPunctSpace(~~?)(?!~)(?=punctSpace|$)' // (2) a~~#, a~~ can only be a Right Delimiter\n+ '|(?!~)punctSpace(~~?)(?=notPunctSpace)' // (3) #~~a, ~~a can only be Left Delimiter\n+ '|[\\\\s](~~?)(?!~)(?=punct)' // (4) ~~# can only be Left Delimiter\n+ '|(?!~)punct(~~?)(?!~)(?=punct)' // (5) #~~# can be either Left or Right Delimiter\n+ '|notPunctSpace(~~?)(?=notPunctSpace)'; // (6) a~~a can be either Left or Right Delimiter\n\nconst delRDelim = edit(delRDelimCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst anyPunctuation = edit(/\\\\(punct)/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\n\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit(\n '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nconst _inlineLabel = /(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/;\n\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\n\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\n\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\n\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n\nconst _caseInsensitiveProtocol = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/;\n\n/**\n * Normal Inline Grammar\n */\n\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n delLDelim: noopTest,\n delRDelim: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest,\n};\n\ntype InlineKeys = keyof typeof inlineNormal;\n\n/**\n * Pedantic Inline Grammar\n */\n\nconst inlinePedantic: Record<InlineKeys, RegExp> = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex(),\n};\n\n/**\n * GFM Inline Grammar\n */\n\nconst inlineGfm: Record<InlineKeys, RegExp> = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n delLDelim,\n delRDelim,\n url: edit(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/)\n .replace('protocol', _caseInsensitiveProtocol)\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: edit(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/)\n .replace('protocol', _caseInsensitiveProtocol)\n .getRegex(),\n};\n\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\nconst inlineBreaks: Record<InlineKeys, RegExp> = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex(),\n};\n\n/**\n * exports\n */\n\nexport const block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic,\n};\n\nexport const inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic,\n};\n\nexport interface Rules {\n other: typeof other\n block: Record<BlockKeys, RegExp>\n inline: Record<InlineKeys, RegExp>\n}\n", "import { other } from './rules.ts';\n\n/**\n * Helpers\n */\nconst escapeReplacements: { [index: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n};\nconst getEscapeReplacement = (ch: string) => escapeReplacements[ch];\n\nexport function escapeHtmlEntities(html: string, encode?: boolean) {\n if (encode) {\n if (other.escapeTest.test(html)) {\n return html.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html)) {\n return html.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nexport function cleanUrl(href: string) {\n try {\n href = encodeURI(href).replace(other.percentDecode, '%');\n } catch {\n return null;\n }\n return href;\n}\n\nexport function splitCells(tableRow: string, count?: number) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(other.splitPipe);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(other.slashPipe, '|');\n }\n return cells;\n}\n\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nexport function rtrim(str: string, c: string, invert?: boolean) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.slice(0, l - suffLen);\n}\n\nexport function trimTrailingBlankLines(str: string) {\n const lines = str.split('\\n');\n let end = lines.length - 1;\n while (end >= 0 && other.blankLine.test(lines[end])) {\n end--;\n }\n if (lines.length - end <= 2) {\n // we want to keep single trailing blank lines\n return str;\n }\n\n return lines.slice(0, end + 1).join('\\n');\n}\n\nexport function findClosingBracket(str: string, b: string) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n\n return -1;\n}\n\nexport function expandTabs(line: string, indent = 0) {\n let col = indent;\n let expanded = '';\n for (const char of line) {\n if (char === '\\t') {\n const added = 4 - (col % 4);\n expanded += ' '.repeat(added);\n col += added;\n } else {\n expanded += char;\n col++;\n }\n }\n\n return expanded;\n}\n", "import { _defaults } from './defaults.ts';\nimport {\n rtrim,\n splitCells,\n findClosingBracket,\n expandTabs,\n trimTrailingBlankLines,\n} from './helpers.ts';\nimport type { Rules } from './rules.ts';\nimport type { _Lexer } from './Lexer.ts';\nimport type { Links, Tokens, Token } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\nfunction outputLink(cap: string[], link: Pick<Tokens.Link, 'href' | 'title'>, raw: string, lexer: _Lexer, rules: Rules): Tokens.Link | Tokens.Image {\n const href = link.href;\n const title = link.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, '$1');\n\n lexer.state.inLink = true;\n const token: Tokens.Link | Tokens.Image = {\n type: cap[0].charAt(0) === '!' ? 'image' : 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text),\n };\n lexer.state.inLink = false;\n return token;\n}\n\nfunction indentCodeCompensation(raw: string, text: string, rules: Rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nexport class _Tokenizer<ParserOutput = string, RendererOutput = string> {\n options: MarkedOptions<ParserOutput, RendererOutput>;\n rules!: Rules; // set by the lexer\n lexer!: _Lexer<ParserOutput, RendererOutput>; // set by the lexer\n\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n this.options = options || _defaults;\n }\n\n space(src: string): Tokens.Space | undefined {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0],\n };\n }\n }\n\n code(src: string): Tokens.Code | undefined {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const raw = this.options.pedantic\n ? cap[0]\n : trimTrailingBlankLines(cap[0]);\n const text = raw.replace(this.rules.other.codeRemoveIndent, '');\n return {\n type: 'code',\n raw,\n codeBlockStyle: 'indented',\n text,\n };\n }\n }\n\n fences(src: string): Tokens.Code | undefined {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '', this.rules);\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text,\n };\n }\n }\n\n heading(src: string): Tokens.Heading | undefined {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n return {\n type: 'heading',\n raw: rtrim(cap[0], '\\n'),\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n hr(src: string): Tokens.Hr | undefined {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: rtrim(cap[0], '\\n'),\n };\n }\n }\n\n blockquote(src: string): Tokens.Blockquote | undefined {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], '\\n').split('\\n');\n let raw = '';\n let text = '';\n const tokens: Token[] = [];\n\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n\n let i;\n for (i = 0; i < lines.length; i++) {\n // get lines up to a continuation\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n\n const currentRaw = currentLines.join('\\n');\n const currentText = currentRaw\n // precede setext continuation with 4 spaces so it isn't a setext\n .replace(this.rules.other.blockquoteSetextReplace, '\\n $1')\n .replace(this.rules.other.blockquoteSetextReplace2, '');\n raw = raw ? `${raw}\\n${currentRaw}` : currentRaw;\n text = text ? `${text}\\n${currentText}` : currentText;\n\n // parse blockquote lines as top level tokens\n // merge paragraphs if this is a continuation\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n\n // if there is no continuation then we are done\n if (lines.length === 0) {\n break;\n }\n\n const lastToken = tokens.at(-1);\n\n if (lastToken?.type === 'code') {\n // blockquote continuation cannot be preceded by a code block\n break;\n } else if (lastToken?.type === 'blockquote') {\n // include continuation in nested blockquote\n const oldToken = lastToken as Tokens.Blockquote;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.blockquote(newText)!;\n tokens[tokens.length - 1] = newToken;\n\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === 'list') {\n // include continuation in nested list\n const oldToken = lastToken as Tokens.List;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.list(newText)!;\n tokens[tokens.length - 1] = newToken;\n\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1)!.raw.length).split('\\n');\n continue;\n }\n }\n\n return {\n type: 'blockquote',\n raw,\n tokens,\n text,\n };\n }\n }\n\n list(src: string): Tokens.List | undefined {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list: Tokens.List = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: [],\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n let raw = '';\n let itemContents = '';\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n let line = expandTabs(cap[2].split('\\n', 1)[0], cap[1].length);\n let nextLine = src.split('\\n', 1)[0];\n let blankLine = !line.trim();\n\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = line.search(this.rules.other.nonSpaceChar); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n if (blankLine && this.rules.other.blankLine.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n const blockquoteBeginRegex = this.rules.other.blockquoteBeginRegex(indent);\n\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, ' ');\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, ' ');\n }\n\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of html block\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of blockquote\n if (blockquoteBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n\n // Horizontal rule found\n if (hrRegex.test(nextLine)) {\n break;\n }\n\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLineWithoutTabs.slice(indent);\n } else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n\n // paragraph continuation unless last line was a different block level element\n if (line.replace(this.rules.other.tabCharGlobal, ' ').search(this.rules.other.nonSpaceChar) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n\n itemContents += '\\n' + nextLine;\n }\n\n blankLine = !nextLine.trim();\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw,\n task: !!this.options.gfm && this.rules.other.listIsTask.test(itemContents),\n loose: false,\n text: itemContents,\n tokens: [],\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n const lastItem = list.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n // not a list since there were no items\n return;\n }\n list.raw = list.raw.trimEnd();\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (const item of list.items) {\n this.lexer.state.top = false;\n item.tokens = this.lexer.blockTokens(item.text, []);\n const itemToken = item.tokens[0];\n if (item.task && (itemToken?.type === 'text' || itemToken?.type === 'paragraph')) {\n // Remove checkbox markdown from item tokens\n item.text = item.text.replace(this.rules.other.listReplaceTask, '');\n itemToken.raw = itemToken.raw.replace(this.rules.other.listReplaceTask, '');\n itemToken.text = itemToken.text.replace(this.rules.other.listReplaceTask, '');\n for (let i = this.lexer.inlineQueue.length - 1; i >= 0; i--) {\n if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[i].src)) {\n this.lexer.inlineQueue[i].src = this.lexer.inlineQueue[i].src.replace(this.rules.other.listReplaceTask, '');\n break;\n }\n }\n\n const taskRaw = this.rules.other.listTaskCheckbox.exec(item.raw);\n if (taskRaw) {\n const checkboxToken: Tokens.Checkbox = {\n type: 'checkbox',\n raw: taskRaw[0] + ' ',\n checked: taskRaw[0] !== '[ ]',\n };\n item.checked = checkboxToken.checked;\n if (list.loose) {\n if (item.tokens[0] && ['paragraph', 'text'].includes(item.tokens[0].type) && 'tokens' in item.tokens[0] && item.tokens[0].tokens) {\n item.tokens[0].raw = checkboxToken.raw + item.tokens[0].raw;\n item.tokens[0].text = checkboxToken.raw + item.tokens[0].text;\n item.tokens[0].tokens.unshift(checkboxToken);\n } else {\n item.tokens.unshift({\n type: 'paragraph',\n raw: checkboxToken.raw,\n text: checkboxToken.raw,\n tokens: [checkboxToken],\n });\n }\n } else {\n item.tokens.unshift(checkboxToken);\n }\n }\n } else if (item.task) {\n item.task = false;\n }\n\n if (!list.loose) {\n // Check if list should be loose\n const spacers = item.tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => this.rules.other.anyLine.test(t.raw));\n\n list.loose = hasMultipleLineBreaks;\n }\n }\n\n // Set all items to loose if list is loose\n if (list.loose) {\n for (const item of list.items) {\n item.loose = true;\n for (const token of item.tokens) {\n if (token.type === 'text') {\n token.type = 'paragraph';\n }\n }\n }\n }\n\n return list;\n }\n }\n\n html(src: string): Tokens.HTML | undefined {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const raw = trimTrailingBlankLines(cap[0]);\n const token: Tokens.HTML = {\n type: 'html',\n block: true,\n raw,\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: raw,\n };\n return token;\n }\n }\n\n def(src: string): Tokens.Def | undefined {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, ' ');\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: rtrim(cap[0], '\\n'),\n href,\n title,\n };\n }\n }\n\n table(src: string): Tokens.Table | undefined {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, '').split('|');\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, '').split('\\n') : [];\n\n const item: Tokens.Table = {\n type: 'table',\n raw: rtrim(cap[0], '\\n'),\n header: [],\n align: [],\n rows: [],\n };\n\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push('right');\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push('center');\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push('left');\n } else {\n item.align.push(null);\n }\n }\n\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i],\n });\n }\n\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i],\n };\n }));\n }\n\n return item;\n }\n\n lheading(src: string): Tokens.Heading | undefined {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const text = cap[1].trim();\n return {\n type: 'heading',\n raw: rtrim(cap[0], '\\n'),\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n paragraph(src: string): Tokens.Paragraph | undefined {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n text(src: string): Tokens.Text | undefined {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0]),\n };\n }\n }\n\n escape(src: string): Tokens.Escape | undefined {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: cap[1],\n };\n }\n }\n\n tag(src: string): Tokens.Tag | undefined {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0],\n };\n }\n }\n\n link(src: string): Tokens.Link | Tokens.Image | undefined {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex === -2) {\n // more open parens than closed\n return;\n }\n\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = this.rules.other.pedanticHrefTitle.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title,\n }, cap[0], this.lexer, this.rules);\n }\n }\n\n reflink(src: string, links: Links): Tokens.Link | Tokens.Image | Tokens.Text | undefined {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text,\n };\n }\n return outputLink(cap, link, cap[0], this.lexer, this.rules);\n }\n }\n\n emStrong(src: string, maskedSrc: string, prevChar = ''): Tokens.Em | Tokens.Strong | undefined {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (!match[1] && !match[2] && !match[3] && !match[4]) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[4] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n\n const nextChar = match[1] || match[3] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) !== null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = [...rDelim].length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n\n codespan(src: string): Tokens.Codespan | undefined {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, ' ');\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: 'codespan',\n raw: cap[0],\n text,\n };\n }\n }\n\n br(src: string): Tokens.Br | undefined {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0],\n };\n }\n }\n\n del(src: string, maskedSrc: string, prevChar = ''): Tokens.Del | undefined {\n let match = this.rules.inline.delLDelim.exec(src);\n if (!match) return;\n\n const nextChar = match[1] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength;\n\n const endReg = this.rules.inline.delRDelim;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) !== null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue;\n\n rLength = [...rDelim].length;\n\n if (rLength !== lLength) continue;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters\n rLength = Math.min(rLength, rLength + delimTotal);\n // char length can be >1 for unicode characters\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n\n // Create del token - only single ~ or double ~~ supported\n const text = raw.slice(lLength, -lLength);\n return {\n type: 'del',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n\n autolink(src: string): Tokens.Link | undefined {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[1];\n href = 'mailto:' + text;\n } else {\n text = cap[1];\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n\n url(src: string): Tokens.Link | undefined {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[0];\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n\n inlineText(src: string): Tokens.Text | undefined {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n escaped,\n };\n }\n }\n}\n", "import { _Tokenizer } from './Tokenizer.ts';\nimport { _defaults } from './defaults.ts';\nimport { other, block, inline } from './rules.ts';\nimport type { Token, TokensList, Tokens } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Block Lexer\n */\nexport class _Lexer<ParserOutput = string, RendererOutput = string> {\n tokens: TokensList;\n options: MarkedOptions<ParserOutput, RendererOutput>;\n state: {\n inLink: boolean;\n inRawBlock: boolean;\n top: boolean;\n };\n\n public inlineQueue: { src: string, tokens: Token[] }[];\n\n private tokenizer: _Tokenizer<ParserOutput, RendererOutput>;\n\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n // TokenList cannot be created in one go\n this.tokens = [] as unknown as TokensList;\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer<ParserOutput, RendererOutput>();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true,\n };\n\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal,\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline,\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex<ParserOutput = string, RendererOutput = string>(src: string, options?: MarkedOptions<ParserOutput, RendererOutput>) {\n const lexer = new _Lexer<ParserOutput, RendererOutput>(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline<ParserOutput = string, RendererOutput = string>(src: string, options?: MarkedOptions<ParserOutput, RendererOutput>) {\n const lexer = new _Lexer<ParserOutput, RendererOutput>(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src: string) {\n src = src.replace(other.carriageReturn, '\\n');\n\n this.blockTokens(src, this.tokens);\n\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src: string, tokens?: Token[], lastParagraphClipped?: boolean): Token[];\n blockTokens(src: string, tokens?: TokensList, lastParagraphClipped?: boolean): TokensList;\n blockTokens(src: string, tokens: Token[] = [], lastParagraphClipped = false) {\n this.tokenizer.lexer = this;\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, ' ').replace(other.spaceLine, '');\n }\n\n let srcLength = Infinity;\n while (src) {\n if (src.length < srcLength) {\n srcLength = src.length;\n } else {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n\n let token: Tokens.Generic | undefined;\n\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== undefined) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n lastToken.raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title,\n };\n tokens.push(token);\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === 'paragraph') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src: string, tokens: Token[] = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src: string, tokens: Token[] = []): Token[] {\n this.tokenizer.lexer = this;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match: RegExpExecArray | null = null;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) !== null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index)\n + '[' + 'a'.repeat(match[0].length - 2) + ']'\n + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) !== null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n\n // Mask out other blocks\n let offset;\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) !== null) {\n offset = match[2] ? match[2].length : 0;\n maskedSrc = maskedSrc.slice(0, match.index + offset) + '[' + 'a'.repeat(match[0].length - offset - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out blocks from extensions\n maskedSrc = this.options.hooks?.emStrongMask?.call({ lexer: this }, maskedSrc) ?? maskedSrc;\n\n let keepPrevChar = false;\n let prevChar = '';\n let srcLength = Infinity;\n while (src) {\n if (src.length < srcLength) {\n srcLength = src.length;\n } else {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n let token: Tokens.Generic | undefined;\n\n // extensions\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === 'text' && lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n }\n\n return tokens;\n }\n\n private infiniteLoopError(byte: number) {\n const errMsg = 'Infinite loop on byte: ' + byte;\n if (this.options.silent) {\n console.error(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n}\n", "import { _defaults } from './defaults.ts';\nimport {\n cleanUrl,\n escapeHtmlEntities,\n} from './helpers.ts';\nimport { other } from './rules.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\nimport type { Tokens } from './Tokens.ts';\nimport type { _Parser } from './Parser.ts';\n\n/**\n * Renderer\n */\nexport class _Renderer<ParserOutput = string, RendererOutput = string> {\n options: MarkedOptions<ParserOutput, RendererOutput>;\n parser!: _Parser<ParserOutput, RendererOutput>; // set by the parser\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n this.options = options || _defaults;\n }\n\n space(token: Tokens.Space): RendererOutput {\n return '' as RendererOutput;\n }\n\n code({ text, lang, escaped }: Tokens.Code): RendererOutput {\n const langString = (lang || '').match(other.notSpaceStart)?.[0];\n\n const code = text.replace(other.endingNewline, '') + '\\n';\n\n if (!langString) {\n return '<pre><code>'\n + (escaped ? code : escapeHtmlEntities(code, true))\n + '</code></pre>\\n' as RendererOutput;\n }\n\n return '<pre><code class=\"language-'\n + escapeHtmlEntities(langString)\n + '\">'\n + (escaped ? code : escapeHtmlEntities(code, true))\n + '</code></pre>\\n' as RendererOutput;\n }\n\n blockquote({ tokens }: Tokens.Blockquote): RendererOutput {\n const body = this.parser.parse(tokens);\n return `<blockquote>\\n${body}</blockquote>\\n` as RendererOutput;\n }\n\n html({ text }: Tokens.HTML | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n def(token: Tokens.Def): RendererOutput {\n return '' as RendererOutput;\n }\n\n heading({ tokens, depth }: Tokens.Heading): RendererOutput {\n return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\\n` as RendererOutput;\n }\n\n hr(token: Tokens.Hr): RendererOutput {\n return '<hr>\\n' as RendererOutput;\n }\n\n list(token: Tokens.List): RendererOutput {\n const ordered = token.ordered;\n const start = token.start;\n\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n\n const type = ordered ? 'ol' : 'ul';\n const startAttr = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startAttr + '>\\n' + body + '</' + type + '>\\n' as RendererOutput;\n }\n\n listitem(item: Tokens.ListItem): RendererOutput {\n return `<li>${this.parser.parse(item.tokens)}</li>\\n` as RendererOutput;\n }\n\n checkbox({ checked }: Tokens.Checkbox): RendererOutput {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"> ' as RendererOutput;\n }\n\n paragraph({ tokens }: Tokens.Paragraph): RendererOutput {\n return `<p>${this.parser.parseInline(tokens)}</p>\\n` as RendererOutput;\n }\n\n table(token: Tokens.Table): RendererOutput {\n let header = '';\n\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell as ParserOutput });\n\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n\n body += this.tablerow({ text: cell as ParserOutput });\n }\n if (body) body = `<tbody>${body}</tbody>`;\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n' as RendererOutput;\n }\n\n tablerow({ text }: Tokens.TableRow<ParserOutput>): RendererOutput {\n return `<tr>\\n${text}</tr>\\n` as RendererOutput;\n }\n\n tablecell(token: Tokens.TableCell): RendererOutput {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? 'th' : 'td';\n const tag = token.align\n ? `<${type} align=\"${token.align}\">`\n : `<${type}>`;\n return tag + content + `</${type}>\\n` as RendererOutput;\n }\n\n /**\n * span level renderer\n */\n strong({ tokens }: Tokens.Strong): RendererOutput {\n return `<strong>${this.parser.parseInline(tokens)}</strong>` as RendererOutput;\n }\n\n em({ tokens }: Tokens.Em): RendererOutput {\n return `<em>${this.parser.parseInline(tokens)}</em>` as RendererOutput;\n }\n\n codespan({ text }: Tokens.Codespan): RendererOutput {\n return `<code>${escapeHtmlEntities(text, true)}</code>` as RendererOutput;\n }\n\n br(token: Tokens.Br): RendererOutput {\n return '<br>' as RendererOutput;\n }\n\n del({ tokens }: Tokens.Del): RendererOutput {\n return `<del>${this.parser.parseInline(tokens)}</del>` as RendererOutput;\n }\n\n link({ href, title, tokens }: Tokens.Link): RendererOutput {\n const text = this.parser.parseInline(tokens) as string;\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text as RendererOutput;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + (escapeHtmlEntities(title)) + '\"';\n }\n out += '>' + text + '</a>';\n return out as RendererOutput;\n }\n\n image({ href, title, text, tokens }: Tokens.Image): RendererOutput {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer) as string;\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escapeHtmlEntities(text) as RendererOutput;\n }\n href = cleanHref;\n\n let out = `<img src=\"${href}\" alt=\"${escapeHtmlEntities(text)}\"`;\n if (title) {\n out += ` title=\"${escapeHtmlEntities(title)}\"`;\n }\n out += '>';\n return out as RendererOutput;\n }\n\n text(token: Tokens.Text | Tokens.Escape): RendererOutput {\n return 'tokens' in token && token.tokens\n ? this.parser.parseInline(token.tokens) as unknown as RendererOutput\n : ('escaped' in token && token.escaped ? token.text as RendererOutput : escapeHtmlEntities(token.text) as RendererOutput);\n }\n}\n", "import type { Tokens } from './Tokens.ts';\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nexport class _TextRenderer<RendererOutput = string> {\n // no need for block level renderers\n strong({ text }: Tokens.Strong): RendererOutput {\n return text as RendererOutput;\n }\n\n em({ text }: Tokens.Em): RendererOutput {\n return text as RendererOutput;\n }\n\n codespan({ text }: Tokens.Codespan): RendererOutput {\n return text as RendererOutput;\n }\n\n del({ text }: Tokens.Del): RendererOutput {\n return text as RendererOutput;\n }\n\n html({ text }: Tokens.HTML | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n text({ text }: Tokens.Text | Tokens.Escape | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n link({ text }: Tokens.Link): RendererOutput {\n return '' + text as RendererOutput;\n }\n\n image({ text }: Tokens.Image): RendererOutput {\n return '' + text as RendererOutput;\n }\n\n br(): RendererOutput {\n return '' as RendererOutput;\n }\n\n checkbox({ raw }: Tokens.Checkbox): RendererOutput {\n return raw as RendererOutput;\n }\n}\n", "import { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _defaults } from './defaults.ts';\nimport type { MarkedToken, Token, Tokens } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Parsing & Compiling\n */\nexport class _Parser<ParserOutput = string, RendererOutput = string> {\n options: MarkedOptions<ParserOutput, RendererOutput>;\n renderer: _Renderer<ParserOutput, RendererOutput>;\n textRenderer: _TextRenderer<RendererOutput>;\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer<ParserOutput, RendererOutput>();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer<RendererOutput>();\n }\n\n /**\n * Static Parse Method\n */\n static parse<ParserOutput = string, RendererOutput = string>(tokens: Token[], options?: MarkedOptions<ParserOutput, RendererOutput>) {\n const parser = new _Parser<ParserOutput, RendererOutput>(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline<ParserOutput = string, RendererOutput = string>(tokens: Token[], options?: MarkedOptions<ParserOutput, RendererOutput>) {\n const parser = new _Parser<ParserOutput, RendererOutput>(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens: Token[]): ParserOutput {\n this.renderer.parser = this;\n let out = '';\n\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken as Tokens.Generic;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'def', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n\n const token = anyToken as MarkedToken;\n\n switch (token.type) {\n case 'space': {\n out += this.renderer.space(token);\n break;\n }\n case 'hr': {\n out += this.renderer.hr(token);\n break;\n }\n case 'heading': {\n out += this.renderer.heading(token);\n break;\n }\n case 'code': {\n out += this.renderer.code(token);\n break;\n }\n case 'table': {\n out += this.renderer.table(token);\n break;\n }\n case 'blockquote': {\n out += this.renderer.blockquote(token);\n break;\n }\n case 'list': {\n out += this.renderer.list(token);\n break;\n }\n case 'checkbox': {\n out += this.renderer.checkbox(token);\n break;\n }\n case 'html': {\n out += this.renderer.html(token);\n break;\n }\n case 'def': {\n out += this.renderer.def(token);\n break;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(token);\n break;\n }\n case 'text': {\n out += this.renderer.text(token);\n break;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '' as ParserOutput;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out as ParserOutput;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens: Token[], renderer: _Renderer<ParserOutput, RendererOutput> | _TextRenderer<RendererOutput> = this.renderer): ParserOutput {\n this.renderer.parser = this;\n let out = '';\n\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(anyToken.type)) {\n out += ret || '';\n continue;\n }\n }\n\n const token = anyToken as MarkedToken;\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token);\n break;\n }\n case 'html': {\n out += renderer.html(token);\n break;\n }\n case 'link': {\n out += renderer.link(token);\n break;\n }\n case 'image': {\n out += renderer.image(token);\n break;\n }\n case 'checkbox': {\n out += renderer.checkbox(token);\n break;\n }\n case 'strong': {\n out += renderer.strong(token);\n break;\n }\n case 'em': {\n out += renderer.em(token);\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token);\n break;\n }\n case 'br': {\n out += renderer.br(token);\n break;\n }\n case 'del': {\n out += renderer.del(token);\n break;\n }\n case 'text': {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '' as ParserOutput;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out as ParserOutput;\n }\n}\n", "import { _defaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, TokensList } from './Tokens.ts';\n\nexport class _Hooks<ParserOutput = string, RendererOutput = string> {\n options: MarkedOptions<ParserOutput, RendererOutput>;\n block?: boolean;\n\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n this.options = options || _defaults;\n }\n\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n 'emStrongMask',\n ]);\n\n static passThroughHooksRespectAsync = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n ]);\n\n /**\n * Process markdown before marked\n */\n preprocess(markdown: string) {\n return markdown;\n }\n\n /**\n * Process HTML after marked is finished\n */\n postprocess(html: ParserOutput) {\n return html;\n }\n\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens: Token[] | TokensList) {\n return tokens;\n }\n\n /**\n * Mask contents that should not be interpreted as em/strong delimiters\n */\n emStrongMask(src: string) {\n return src;\n }\n\n /**\n * Provide function to tokenize markdown\n */\n provideLexer(block = this.block) {\n return block ? _Lexer.lex : _Lexer.lexInline;\n }\n\n /**\n * Provide function to parse tokens\n */\n provideParser(block = this.block) {\n return block ? _Parser.parse<ParserOutput, RendererOutput> : _Parser.parseInline<ParserOutput, RendererOutput>;\n }\n}\n", "import { _getDefaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { escapeHtmlEntities } from './helpers.ts';\nimport type { MarkedExtension, MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, Tokens, TokensList } from './Tokens.ts';\n\nexport type MaybePromise = void | Promise<void>;\n\ntype UnknownFunction = (...args: unknown[]) => unknown;\ntype GenericRendererFunction = (...args: unknown[]) => string | false;\n\nexport class Marked<ParserOutput = string, RendererOutput = string> {\n defaults = _getDefaults<ParserOutput, RendererOutput>();\n options = this.setOptions;\n\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n\n Parser = _Parser<ParserOutput, RendererOutput>;\n Renderer = _Renderer<ParserOutput, RendererOutput>;\n TextRenderer = _TextRenderer<RendererOutput>;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer<ParserOutput, RendererOutput>;\n Hooks = _Hooks<ParserOutput, RendererOutput>;\n\n constructor(...args: MarkedExtension<ParserOutput, RendererOutput>[]) {\n this.use(...args);\n }\n\n /**\n * Run callback for every token\n */\n walkTokens(tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) {\n let values: MaybePromise[] = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token as Tokens.Table;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token as Tokens.List;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token as Tokens.Generic;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity) as Token[] | TokensList;\n values = values.concat(this.walkTokens(tokens, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n\n use(...args: MarkedExtension<ParserOutput, RendererOutput>[]) {\n const extensions: MarkedOptions<ParserOutput, RendererOutput>['extensions'] = this.defaults.extensions || { renderers: {}, childTokens: {} };\n\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack } as MarkedOptions<ParserOutput, RendererOutput>;\n\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer<ParserOutput, RendererOutput>(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (['options', 'parser'].includes(prop)) {\n // ignore options property\n continue;\n }\n const rendererProp = prop as Exclude<keyof _Renderer<ParserOutput, RendererOutput>, 'options' | 'parser'>;\n const rendererFunc = pack.renderer[rendererProp] as GenericRendererFunction;\n const prevRenderer = renderer[rendererProp] as GenericRendererFunction;\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args: unknown[]) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return (ret || '') as RendererOutput;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer<ParserOutput, RendererOutput>(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop as Exclude<keyof _Tokenizer<ParserOutput, RendererOutput>, 'options' | 'rules' | 'lexer'>;\n const tokenizerFunc = pack.tokenizer[tokenizerProp] as UnknownFunction;\n const prevTokenizer = tokenizer[tokenizerProp] as UnknownFunction;\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args: unknown[]) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks<ParserOutput, RendererOutput>();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (['options', 'block'].includes(prop)) {\n // ignore options and block properties\n continue;\n }\n const hooksProp = prop as Exclude<keyof _Hooks<ParserOutput, RendererOutput>, 'options' | 'block'>;\n const hooksFunc = pack.hooks[hooksProp] as UnknownFunction;\n const prevHook = hooks[hooksProp] as UnknownFunction;\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg: unknown) => {\n if (this.defaults.async && _Hooks.passThroughHooksRespectAsync.has(prop)) {\n return (async() => {\n const ret = await hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n })();\n }\n\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args: unknown[]) => {\n if (this.defaults.async) {\n return (async() => {\n let ret = await hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = await prevHook.apply(hooks, args);\n }\n return ret;\n })();\n }\n\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values: MaybePromise[] = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n\n this.defaults = { ...this.defaults, ...opts };\n });\n\n return this;\n }\n\n setOptions(opt: MarkedOptions<ParserOutput, RendererOutput>) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n\n lexer(src: string, options?: MarkedOptions<ParserOutput, RendererOutput>) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n\n parser(tokens: Token[], options?: MarkedOptions<ParserOutput, RendererOutput>) {\n return _Parser.parse<ParserOutput, RendererOutput>(tokens, options ?? this.defaults);\n }\n\n private parseMarkdown(blockType: boolean) {\n type overloadedParse = {\n (src: string, options: MarkedOptions<ParserOutput, RendererOutput> & { async: true }): Promise<ParserOutput>;\n (src: string, options: MarkedOptions<ParserOutput, RendererOutput> & { async: false }): ParserOutput;\n (src: string, options?: MarkedOptions<ParserOutput, RendererOutput> | null): ParserOutput | Promise<ParserOutput>;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parse: overloadedParse = (src: string, options?: MarkedOptions<ParserOutput, RendererOutput> | null): any => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n\n const throwError = this.onError(!!opt.silent, !!opt.async);\n\n // throw error if an extension set async to true but parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error('marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.'));\n }\n\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n\n if (opt.async) {\n return (async() => {\n const processedSrc = opt.hooks ? await opt.hooks.preprocess(src) : src;\n const lexer = opt.hooks ? await opt.hooks.provideLexer(blockType) : (blockType ? _Lexer.lex : _Lexer.lexInline);\n const tokens = await lexer(processedSrc, opt);\n const processedTokens = opt.hooks ? await opt.hooks.processAllTokens(tokens) : tokens;\n if (opt.walkTokens) {\n await Promise.all(this.walkTokens(processedTokens, opt.walkTokens));\n }\n const parser = opt.hooks ? await opt.hooks.provideParser(blockType) : (blockType ? _Parser.parse : _Parser.parseInline);\n const html = await parser(processedTokens, opt);\n return opt.hooks ? await opt.hooks.postprocess(html) : html;\n })().catch(throwError);\n }\n\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src) as string;\n }\n const lexer = opt.hooks ? opt.hooks.provideLexer(blockType) : (blockType ? _Lexer.lex : _Lexer.lexInline);\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n const parser = opt.hooks ? opt.hooks.provideParser(blockType) : (blockType ? _Parser.parse : _Parser.parseInline);\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n } catch(e) {\n return throwError(e as Error);\n }\n };\n\n return parse;\n }\n\n private onError(silent: boolean, async: boolean) {\n return (e: Error): string | Promise<string> => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (silent) {\n const msg = '<p>An error occurred:</p><pre>'\n + escapeHtmlEntities(e.message + '', true)\n + '</pre>';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n", "import { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { Marked } from './Instance.ts';\nimport {\n _getDefaults,\n changeDefaults,\n _defaults,\n} from './defaults.ts';\nimport type { MarkedExtension, MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, TokensList } from './Tokens.ts';\nimport type { MaybePromise } from './Instance.ts';\n\nconst markedInstance = new Marked();\n\n/**\n * Compiles markdown to HTML asynchronously.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options, having async: true\n * @return Promise of string of compiled HTML\n */\nexport function marked(src: string, options: MarkedOptions & { async: true }): Promise<string>;\n\n/**\n * Compiles markdown to HTML.\n *\n * @param src String of markdown source to be compiled\n * @param options Optional hash of options\n * @return String of compiled HTML. Will be a Promise of string if async is set to true by any extensions.\n */\nexport function marked(src: string, options: MarkedOptions & { async: false }): string;\nexport function marked(src: string, options: MarkedOptions & { async: true }): Promise<string>;\nexport function marked(src: string, options?: MarkedOptions | null): string | Promise<string>;\nexport function marked(src: string, opt?: MarkedOptions | null): string | Promise<string> {\n return markedInstance.parse(src, opt);\n}\n\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function(options: MarkedOptions) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\n\nmarked.defaults = _defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args: MarkedExtension[]) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) {\n return markedInstance.walkTokens(tokens, callback);\n};\n\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\n\nexport const options = marked.options;\nexport const setOptions = marked.setOptions;\nexport const use = marked.use;\nexport const walkTokens = marked.walkTokens;\nexport const parseInline = marked.parseInline;\nexport const parse = marked;\nexport const parser = _Parser.parse;\nexport const lexer = _Lexer.lex;\nexport { _defaults as defaults, _getDefaults as getDefaults } from './defaults.ts';\nexport { _Lexer as Lexer } from './Lexer.ts';\nexport { _Parser as Parser } from './Parser.ts';\nexport { _Tokenizer as Tokenizer } from './Tokenizer.ts';\nexport { _Renderer as Renderer } from './Renderer.ts';\nexport { _TextRenderer as TextRenderer } from './TextRenderer.ts';\nexport { _Hooks as Hooks } from './Hooks.ts';\nexport { Marked } from './Instance.ts';\nexport type * from './MarkedOptions.ts';\nexport type * from './Tokens.ts';\n", "import DOMPurify from 'dompurify';\nimport { marked } from 'marked';\nimport React from 'react';\n\nmarked.setOptions({\n pedantic: false,\n gfm: true,\n});\n\n/** Renders sanitized Markdown text as HTML. */\nexport function Markdown({ text, className }: { text: string; className?: string }) {\n const html = React.useMemo(() => {\n if (!text) return '';\n const parsed = marked.parse(text, { async: false });\n return DOMPurify.sanitize(typeof parsed === 'string' ? parsed : '');\n }, [text]);\n\n return <div className={className} dangerouslySetInnerHTML={{ __html: html }} />;\n}\n", "import React from 'react';\n\nimport { app, mmoment8601 } from '../globals';\nimport type { Note } from '../types';\nimport { fromNullableStr } from '../util';\n\nfunction toTextareaPreview(input: string) {\n const lines = input.split('\\n');\n return (\n <>\n {lines[0]}\n {lines.slice(1).map((x, idx) => (\n <React.Fragment key={idx}>\n <br />\n {x}\n </React.Fragment>\n ))}\n </>\n );\n}\n\n/** Renders a list of note summaries with links to individual notes. */\nexport function NList({ initial }: { initial: Note[] }) {\n const a = app();\n const linkToFilterSingle = (slug: string) => `${fromNullableStr(a.userR)}/notes/${slug}`;\n\n return (\n <div>\n {initial.map((note) => {\n const mm = mmoment8601(note.created);\n return (\n <div\n key={note.id}\n id={String(note.id)}\n className={`note w-100 mw7 pa1 mb2${note.shared ? '' : ' private'}`}\n >\n <div className=\"display\">\n <a href={linkToFilterSingle(note.slug)} className=\"link f5 lh-title\">\n {note.title === '' ? '[no title]' : note.title}\n </a>\n <br />\n <div className=\"description mt1 thm-text-secondary\">\n {toTextareaPreview(note.text.slice(0, 200))}\n </div>\n <a\n className=\"link f7 dib thm-text-tertiary w4\"\n title={mm?.[1] ?? note.created}\n href={linkToFilterSingle(note.slug)}\n >\n {mm?.[0] ?? '\\u00a0'}\n </a>\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n", "import React from 'react';\n\nimport { destroyNote, editNote } from '../api';\nimport { app, closeWindow, mmoment8601, setFocus } from '../globals';\nimport type { Note } from '../types';\nimport { curQuerystring, fromNullableStr, lookupQueryStringValue } from '../util';\nimport { Markdown } from './Markdown';\n\nfunction toTextarea(input: string) {\n const lines = input.split('\\n');\n return (\n <>\n {lines[0]}\n {lines.slice(1).map((x, idx) => (\n <React.Fragment key={idx}>\n <br />\n {x}\n </React.Fragment>\n ))}\n </>\n );\n}\n\n/** Displays a single note with inline editing and deletion, used in the popup window. */\nexport function NNote({ initial }: { initial: Note }) {\n const a = app();\n\n const [note, setNote] = React.useState<Note>(initial);\n const [editNoteState, setEditNoteState] = React.useState<Note>(initial);\n const [deleteAsk, setDeleteAsk] = React.useState(false);\n const [edit, setEdit] = React.useState(initial.id <= 0);\n const [destroyed, setDestroyed] = React.useState(false);\n const [apiError, setApiError] = React.useState<string | null>(null);\n\n const notetextid = `${note.id.toString()}_text`;\n const mm = mmoment8601(note.created);\n\n function startEdit(next: boolean) {\n setEditNoteState(note);\n setEdit(next);\n const qs = curQuerystring();\n const q = lookupQueryStringValue(qs, 'next');\n if (!next && q === 'closeWindow') closeWindow(window);\n else if (next) setFocus(notetextid);\n }\n\n async function onDestroy() {\n await destroyNote(note.id);\n setDestroyed(true);\n }\n\n const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {\n e.preventDefault();\n setApiError(null);\n\n const res = await editNote(editNoteState);\n if (res.ok && res.status >= 200 && res.status < 300) {\n const qs = curQuerystring();\n const next = lookupQueryStringValue(qs, 'next');\n const ref = document.referrer;\n const org = window.location.origin;\n\n if (next === 'closeWindow') closeWindow(window);\n else if (next === 'back') {\n if (ref.startsWith(org)) window.location.href = ref;\n else window.location.href = org;\n } else if (editNoteState.id === 0) {\n window.location.href = fromNullableStr(a.noteR);\n } else {\n setNote(editNoteState);\n setEdit(false);\n }\n } else {\n setApiError(res.bodyText);\n // eslint-disable-next-line no-console\n console.log(res.bodyText);\n }\n };\n\n if (destroyed) return <p className=\"thm-text-error\">you killed this note</p>;\n\n return (\n <div id={String(note.id)} className=\"note w-100 mw7 pa1 mb2\">\n {!edit ? (\n <>\n <div className=\"display\">\n <div className=\"link f5 lh-title\">{note.title === '' ? '[no title]' : note.title}</div>\n <br />\n {note.isMarkdown ? (\n <div className=\"description mt1\">\n <Markdown text={note.text} />\n </div>\n ) : (\n <div className=\"description mt1 thm-text-secondary\">{toTextarea(note.text)}</div>\n )}\n <div className=\"link f7 dib thm-text-tertiary w4\">\n <span title={mm?.[1] ?? note.created}>{mm?.[0] ?? '\\u00a0'}</span>\n {' - '}\n <span className=\"thm-text-tertiary\">{note.shared ? 'public' : 'private'}</span>\n </div>\n </div>\n\n {a.dat.isowner ? (\n <div className=\"edit_links db mt3\">\n <button\n type=\"button\"\n onClick={() => {\n startEdit(true);\n }}\n className=\"edit thm-text-muted thm-hover-link-color\"\n >\n edit \n </button>\n <div className=\"delete_link di\">\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(true);\n }}\n className={`delete thm-text-muted thm-hover-link-color${deleteAsk ? ' dn' : ''}`}\n >\n delete\n </button>\n <span className={`confirm thm-text-error${!deleteAsk ? ' dn' : ''}`}>\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(false);\n }}\n >\n cancel / \n </button>\n <button type=\"button\" onClick={() => void onDestroy()} className=\"thm-text-error\">\n destroy\n </button>\n </span>\n </div>\n </div>\n ) : null}\n </>\n ) : (\n <form\n onSubmit={(e) => {\n void onSubmit(e);\n }}\n >\n {apiError ? <div className=\"alert alert-err\">{apiError}</div> : null}\n <p className=\"mt2 mb1\">title:</p>\n <input\n type=\"text\"\n className=\"title w-100 mb1 pt1 edit_form_input\"\n name=\"title\"\n value={editNoteState.title}\n onChange={(e) => {\n setEditNoteState((x) => ({ ...x, title: e.target.value }));\n }}\n autoFocus={editNoteState.title === ''}\n />\n <br />\n <p className=\"mt2 mb1\">description:</p>\n <textarea\n id={notetextid}\n className=\"description w-100 mb1 pt1 edit_form_input\"\n name=\"text\"\n rows={25}\n value={editNoteState.text}\n onChange={(e) => {\n setEditNoteState((x) => ({ ...x, text: e.target.value }));\n }}\n />\n <div className=\"edit_form_checkboxes mb3\">\n <input\n type=\"checkbox\"\n className=\"is-markdown pointer\"\n id=\"edit_ismarkdown\"\n name=\"ismarkdown\"\n checked={editNoteState.isMarkdown}\n onChange={(e) => {\n setEditNoteState((x) => ({ ...x, isMarkdown: e.target.checked }));\n }}\n />{' '}\n <label htmlFor=\"edit_ismarkdown\" className=\"mr2\">\n use markdown?\n </label>\n <br />\n </div>\n <div className=\"edit_form_checkboxes mb3\">\n <input\n type=\"checkbox\"\n className=\"is-markdown pointer\"\n id=\"edit_shared\"\n name=\"shared\"\n checked={editNoteState.shared}\n onChange={(e) => {\n setEditNoteState((x) => ({ ...x, shared: e.target.checked }));\n }}\n />{' '}\n <label htmlFor=\"edit_shared\" className=\"mr2\">\n public?\n </label>\n <br />\n </div>\n <input\n type=\"submit\"\n className=\"mr1 pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim\"\n value=\"save\"\n />{' '}\n <input\n type=\"reset\"\n className=\"pv1 ph2 thm-text-primary ba thm-border-default thm-bg-secondary pointer rdim\"\n value=\"cancel\"\n onClick={() => {\n startEdit(false);\n }}\n />\n </form>\n )}\n </div>\n );\n}\n", "import React from 'react';\n\nimport { getTagCloud, updateTagCloudMode } from '../api';\nimport { app } from '../globals';\nimport { useTagCloudStore } from '../stores/tagCloudStore';\nimport {\n isExpanded,\n isRelated,\n setExpanded,\n type TagCloud as TagCloudT,\n type TagCloudModeF,\n tagCloudModeFromF,\n} from '../types';\nimport { encodeTag, fromNullableStr } from '../util';\n\nfunction rescale(\n f: (x: number) => number,\n v: number,\n n: number,\n m: number,\n l: number,\n h: number,\n): number {\n const denom = f(m - n);\n const ratio = m - n < 0.01 || denom === 0 ? 1.0 : f(v - n) / denom;\n return ratio * (h - l) + l;\n}\n\nfunction toArray(curtags: string[], n: number, m: number, tagcloud: TagCloudT) {\n const a = app();\n const cur = curtags.map((t) => t.toLowerCase());\n const entries: Array<[string, number]> = Object.entries(tagcloud).sort((x, y) =>\n x[0].toLowerCase().localeCompare(y[0].toLowerCase()),\n );\n\n const linkToFilterTag = (rest: string) =>\n `${fromNullableStr(a.userR)}${rest === '' ? '' : `/t:${rest}`}`;\n\n const out: Array<React.ReactNode> = [];\n for (const [k, v] of entries) {\n const kLower = k.toLowerCase();\n const fontsize = rescale((x) => x, v, n, m, 100.0, 150.0);\n const opacity = rescale((x) => Math.log(1.0 + x), v, n, m, 0.6, 1.0);\n const style: React.CSSProperties = { fontSize: `${fontsize.toString()}%`, opacity };\n\n const includeExclude =\n cur.length === 0 ? null : !cur.includes(kLower) ? (\n <a\n href={linkToFilterTag(cur.concat([kLower]).map(encodeTag).join('+'))}\n className=\"link mr2 tag-include\"\n >\n \u2295\n </a>\n ) : (\n <a\n href={linkToFilterTag(\n cur\n .filter((t) => t !== kLower)\n .map(encodeTag)\n .join('+'),\n )}\n className=\"link mr2 tag-exclude\"\n >\n \u2296\n </a>\n );\n\n out.push(\n <a\n key={`${k}-tag`}\n href={linkToFilterTag(encodeTag(k))}\n className=\"link tag mr1\"\n style={style}\n >\n {k}\n </a>,\n );\n if (includeExclude) out.push(<React.Fragment key={`${k}-ie`}>{includeExclude}</React.Fragment>);\n }\n return out;\n}\n\n/** Displays the tag cloud, with controls to filter by top tags, frequency, or related tags. */\nexport function TagCloud({ initialMode }: { initialMode: TagCloudModeF }) {\n const mode = useTagCloudStore((s) => s.mode);\n const tagcloud = useTagCloudStore((s) => s.tagcloud);\n const setMode = useTagCloudStore((s) => s.setMode);\n const setTagCloud = useTagCloudStore((s) => s.setTagCloud);\n\n React.useEffect(() => {\n setMode(initialMode);\n }, [initialMode]);\n\n React.useEffect(() => {\n async function fetchTagCloud(m: TagCloudModeF) {\n if (m.kind === 'none') return;\n const tc = await getTagCloud(tagCloudModeFromF(m));\n setTagCloud(tc ?? {});\n }\n void fetchTagCloud(mode);\n }, [mode, setTagCloud]);\n\n if (mode.kind === 'none') return <div className=\"tag_cloud\" />;\n\n const modetop: TagCloudModeF = { kind: 'top', expanded: isExpanded(mode), value: 200 };\n const modelb1: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 1 };\n const modelb2: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 2 };\n const modelb5: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 5 };\n const modelb10: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 10 };\n const modelb20: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 20 };\n\n const values = Object.values(tagcloud);\n const n = values.length ? Math.min(...values) : 1;\n const m = values.length ? Math.max(...values) : 1;\n\n async function onExpanded(expanded: boolean) {\n const next = setExpanded(mode, expanded);\n setMode(next);\n await updateTagCloudMode(tagCloudModeFromF(next));\n }\n\n async function onChangeMode(next: TagCloudModeF) {\n if (JSON.stringify(mode) === JSON.stringify(next)) {\n await onExpanded(!isExpanded(mode));\n } else {\n setMode(setExpanded(next, true));\n }\n }\n\n return (\n <div className=\"tag_cloud mv3\">\n <div className=\"tag_cloud_header mb2\">\n {isRelated(mode) ? (\n <button\n type=\"button\"\n className=\"pa1 f7 link thm-hover-link-color mr1 b\"\n onClick={() => void onExpanded(!isExpanded(mode))}\n >\n Related Tags\n </button>\n ) : (\n <>\n <button\n type=\"button\"\n className={`pa1 f7 link thm-hover-link-color mr1${JSON.stringify(mode) === JSON.stringify(modetop) ? ' b' : ''}`}\n title=\"show a cloud of your most-used tags\"\n onClick={() => void onChangeMode(modetop)}\n >\n Top Tags\n </button>\n <button\n type=\"button\"\n className={`pa1 f7 link thm-hover-link-color ml2 ${JSON.stringify(mode) === JSON.stringify(modelb1) ? ' b' : ''}`}\n title=\"show all tags\"\n onClick={() => void onChangeMode(modelb1)}\n >\n all\n </button>\n {'\u2027'}\n <button\n type=\"button\"\n className={`pa1 f7 link thm-hover-link-color${JSON.stringify(mode) === JSON.stringify(modelb2) ? ' b' : ''}`}\n title=\"show tags with at least 2 bookmarks\"\n onClick={() => void onChangeMode(modelb2)}\n >\n 2\n </button>\n {'\u2027'}\n <button\n type=\"button\"\n className={`pa1 f7 link thm-hover-link-color${JSON.stringify(mode) === JSON.stringify(modelb5) ? ' b' : ''}`}\n title=\"show tags with at least 5 bookmarks\"\n onClick={() => void onChangeMode(modelb5)}\n >\n 5\n </button>\n {'\u2027'}\n <button\n type=\"button\"\n className={`pa1 f7 link thm-hover-link-color${JSON.stringify(mode) === JSON.stringify(modelb10) ? ' b' : ''}`}\n title=\"show tags with at least 10 bookmarks\"\n onClick={() => void onChangeMode(modelb10)}\n >\n 10\n </button>\n {'\u2027'}\n <button\n type=\"button\"\n className={`pa1 f7 link thm-hover-link-color${JSON.stringify(mode) === JSON.stringify(modelb20) ? ' b' : ''}`}\n title=\"show tags with at least 20 bookmarks\"\n onClick={() => void onChangeMode(modelb20)}\n >\n 20\n </button>\n </>\n )}\n <button\n type=\"button\"\n className=\"pa1 ml2 f7 link thm-text-faded thm-hover-link-color\"\n onClick={() => void onExpanded(!isExpanded(mode))}\n >\n {isExpanded(mode) ? 'hide' : 'show'}\n </button>\n </div>\n\n {isExpanded(mode) ? (\n <div className=\"tag_cloud_body\">\n {mode.kind === 'related'\n ? toArray(mode.value, n, m, tagcloud)\n : toArray([], n, m, tagcloud)}\n </div>\n ) : null}\n </div>\n );\n}\n", "import { create } from 'zustand';\n\nimport type { TagCloud, TagCloudModeF } from '../types';\n\nexport type TagCloudState = {\n mode: TagCloudModeF;\n tagcloud: TagCloud;\n setMode: (mode: TagCloudModeF) => void;\n setTagCloud: (tagcloud: TagCloud) => void;\n};\n\nexport const useTagCloudStore = create<TagCloudState>((set) => ({\n mode: { kind: 'none' },\n tagcloud: {},\n setMode: (mode) => {\n set({ mode });\n },\n setTagCloud: (tagcloud) => {\n set({ tagcloud });\n },\n}));\n", "/** User's preferred color scheme. */\nexport type ColorSchemePreference = 'light' | 'dark';\n\n/** Unique identifier for a bookmark. */\nexport type BookmarkId = number;\n\nexport type Bookmark = {\n /** The bookmarked URL. */\n url: string;\n /** Display title of the bookmark. */\n title: string;\n /** Optional user-provided description. */\n description: string;\n /** Space-separated list of tags. */\n tags: string;\n /** Whether the bookmark is private (not visible to others). */\n private: boolean;\n /** Whether the bookmark is marked for later reading. */\n toread: boolean;\n /** Whether the bookmark should be archived (request). */\n archiveRequested?: boolean | null;\n /** Database ID of the bookmark. */\n bid: BookmarkId;\n /** URL-friendly slug for the bookmark. */\n slug: string;\n /** Whether the bookmark is starred. */\n selected: boolean;\n /** ISO 8601 creation timestamp. */\n time: string;\n /** URL of the archived copy, or null if not archived. */\n archiveUrl: string | null;\n};\n\n/** Unique identifier for a note. */\nexport type NoteId = number;\n/** URL-friendly slug for a note. */\nexport type NoteSlug = string;\n\nexport type Note = {\n /** Database ID of the note. */\n id: NoteId;\n /** URL-friendly slug for the note. */\n slug: NoteSlug;\n /** Display title of the note. */\n title: string;\n /** Raw text content of the note. */\n text: string;\n /** Character length of the note text. */\n length: number;\n /** Whether the note body should be rendered as Markdown. */\n isMarkdown: boolean;\n /** Whether the note is publicly visible. */\n shared: boolean;\n /** ISO 8601 creation timestamp. */\n created: string;\n /** ISO 8601 last-updated timestamp. */\n updated: string;\n};\n\nexport type AccountSettings = {\n /** Whether bookmarks are archived by default. */\n archiveDefault: boolean;\n /** Whether new bookmarks are private by default. */\n privateDefault: boolean;\n /** Whether tag suggestions are enabled. */\n suggestTags: boolean;\n /** Whether the account is locked to private-only mode. */\n privacyLock: boolean;\n /** Whether the archive backend is enabled. */\n archiveBackendEnabled: boolean;\n};\n\n/** Raw tag cloud mode as stored/sent by the server. */\nexport type TagCloudMode = {\n /** The mode name (e.g. 'top', 'lowerBound', 'related', 'none'). */\n mode: string;\n /** Mode-specific parameter value. */\n value: unknown;\n /** Whether the tag cloud panel is expanded. */\n expanded: boolean;\n};\n\n/** Map of tag name to usage count. */\nexport type TagCloud = Record<string, number>;\n\n/** A single tag suggestion with its usage count. */\nexport type TSuggestion = {\n term: string;\n count: number;\n};\n\n/** Request payload for fetching tag suggestions based on a query and current tags. */\nexport type TagSuggestionRequest = {\n query: string;\n currentTags: string[];\n};\n\n/** Response payload containing a list of tag suggestions. */\nexport type TagSuggestionResponse = {\n suggestions: TSuggestion[];\n};\n\n/** Discriminated union representing the tag cloud filter mode. */\nexport type TagCloudModeF =\n | { kind: 'top'; expanded: boolean; value: number }\n | { kind: 'lowerBound'; expanded: boolean; value: number }\n | { kind: 'related'; expanded: boolean; value: string[] }\n | { kind: 'none' };\n\nexport function tagCloudModeToF(mode: TagCloudMode): TagCloudModeF {\n switch (mode.mode) {\n case 'top': {\n const n = typeof mode.value === 'number' ? mode.value : Number(mode.value);\n return Number.isFinite(n)\n ? { kind: 'top', expanded: mode.expanded, value: n }\n : { kind: 'none' };\n }\n case 'lowerBound': {\n const n = typeof mode.value === 'number' ? mode.value : Number(mode.value);\n return Number.isFinite(n)\n ? { kind: 'lowerBound', expanded: mode.expanded, value: n }\n : { kind: 'none' };\n }\n case 'related': {\n const s = typeof mode.value === 'string' ? mode.value : '';\n const tags = s ? s.split(' ') : [];\n return { kind: 'related', expanded: mode.expanded, value: tags };\n }\n default:\n return { kind: 'none' };\n }\n}\n\nexport function tagCloudModeFromF(mode: TagCloudModeF): TagCloudMode {\n switch (mode.kind) {\n case 'top':\n return { mode: 'top', value: mode.value, expanded: mode.expanded };\n case 'lowerBound':\n return { mode: 'lowerBound', value: mode.value, expanded: mode.expanded };\n case 'related':\n return { mode: 'related', value: mode.value.join(' '), expanded: mode.expanded };\n case 'none':\n return { mode: 'none', value: '', expanded: false };\n }\n}\n\nexport function isExpanded(mode: TagCloudModeF): boolean {\n return mode.kind === 'none' ? false : mode.expanded;\n}\n\nexport function isRelated(mode: TagCloudModeF): boolean {\n return mode.kind === 'related';\n}\n\nexport function setExpanded(mode: TagCloudModeF, expanded: boolean): TagCloudModeF {\n return mode.kind === 'none' ? mode : { ...mode, expanded };\n}\n\nexport function showMode(mode: TagCloudModeF): string {\n switch (mode.kind) {\n case 'top':\n return 'top';\n case 'lowerBound':\n return 'lowerBound';\n case 'related':\n return 'related';\n case 'none':\n return '';\n }\n}\n"],+ "mappings": "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,EACA0G,EACAC,EACAP,CACF,EACAtG,GAA0B,EAAGE,CAAY,EACzC,MACF,IAAK,IACH,MACF,IAAK,IACH,IAAIjf,EAAWif,EAAa,UACnBA,EAAa,gBAAtB,KACIjf,EAAS,YAAc,EACrBkmB,GACEnE,EACA9C,EACA0G,EACAC,EACAP,CACF,EACAY,GACElE,EACA9C,CACF,GACAjf,EAAS,aAAe,EAC1BkmB,GACEnE,EACA9C,EACA0G,EACAC,EACAP,CACF,GACJA,GACErG,EAAQ,MACRuG,GACEtG,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHiH,GACEnE,EACA9C,EACA0G,EACAC,EACAP,CACF,EACAA,GACErG,EAAQ,MACRyG,GAA8BxG,EAAa,UAAWA,CAAY,EACpE,MACF,QACEiH,GACEnE,EACA9C,EACA0G,EACAC,EACAP,CACF,CACJ,CACAzB,EAAcA,EAAY,OAC5B,CACF,CACA,SAASqC,GACPb,EACAxB,EACA,CACA,GAAIA,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI7B,EAAeqD,EACjBnG,EAAe2E,EACf5E,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAK,CACxB,IAAK,IACHgH,GAAwClE,EAAc9C,CAAY,EAClED,EAAQ,MACNuG,GACEtG,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHgH,GAAwClE,EAAc9C,CAAY,EAClED,EAAQ,MACNyG,GAA8BxG,EAAa,UAAWA,CAAY,EACpE,MACF,QACEgH,GAAwClE,EAAc9C,CAAY,CACtE,CACA2E,EAAcA,EAAY,OAC5B,CACJ,CACA,IAAIyC,GAAsB,KAC1B,SAASC,GACP1C,EACA+B,EACAY,EACA,CACA,GAAI3C,EAAY,aAAeyC,GAC7B,IAAKzC,EAAcA,EAAY,MAAgBA,IAAT,MACpC4C,GACE5C,EACA+B,EACAY,CACF,EACG3C,EAAcA,EAAY,OACnC,CACA,SAAS4C,GACPtlC,EACAykC,EACAY,EACA,CACA,OAAQrlC,EAAM,IAAK,CACjB,IAAK,IACHolC,GACEplC,EACAykC,EAC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E,GAA+B,IAAMl9B,GAAI,EACxD,GAAKshC,GACL,CAOA,GANAL,GACEI,EACA//B,EACAwyB,GACA,CAACoM,EACH,EACU1+B,GAAa6/B,EAAiB,EAAG,EAAE,IAAzC,EAA4C,MAAMjnC,EACtDwmC,GAAsBt/B,EACtB+/B,EAAgB,cAAgBO,GAC9BC,GAAoB,KAClB,KACAR,EACAD,EACA5nB,GACAgnB,GACAD,GACAj/B,EACAwyB,GACAuM,GACAhK,GACA6J,GACAuB,EACA,YACA,GACA,CACF,EACAH,CACF,EACA,MAAMlnC,CACR,CACAynC,GACER,EACAD,EACA5nB,GACAgnB,GACAD,GACAj/B,EACAwyB,GACAuM,GACAhK,GACA6J,GACAuB,EACA,KACA,GACA,CACF,CACF,CACF,CACA,KACF,OAAS,IACTP,GAAsB9E,CAAa,CACrC,CACA,SAASyF,GACPpgC,EACAi2B,EACAoK,EACAC,EACAC,EACA1gC,EACAyB,EACAC,EACAC,EACAg/B,EACAX,EACAY,EACAC,EACAC,EACA,CAGA,GAFA3gC,EAAK,cAAgB,GACrBygC,EAAwBxK,EAAa,aAEnCwK,EAAwB,OACVA,EAAwB,YAAtC,SACA,CACAA,EAAwB,CACtB,YAAa,KACb,MAAO,EACP,SAAU,EACV,SAAU,EACV,gBAAiB,CAAC,EAClB,iBAAkB,GAClB,yBAA0B,GAC1B,UAAWh4B,EACb,EACA+0B,GACEvH,EACAp2B,EACA4gC,CACF,EACA,IAAIG,GACD/gC,EAAQ,YAAcA,EACnB47B,GAA+Bl9B,GAAI,GAClCsB,EAAQ,WAAaA,EACpBsb,GAAiC5c,GAAI,EACrC,EAKR,GAJAqiC,EAAgBC,GACdJ,EACAG,CACF,EACaA,IAAT,KAAwB,CAC1BzB,GAAsBt/B,EACtBG,EAAK,oBAAsB4gC,EACzBE,GAAW,KACT,KACA9gC,EACAi2B,EACAp2B,EACAwgC,EACAC,EACAC,EACAj/B,EACAC,EACAC,EACAq+B,EACAY,EACA,KACAC,EACAC,CACF,CACF,EACAnB,GAAkBx/B,EAAMH,EAAOyB,EAAa,CAACk/B,CAAwB,EACrE,MAC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B,EAAW,gBAAgBrqB,CAAG,EAClC,MACF,IAAK,UACL,IAAK,QACKvR,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACA,MAAMA,CAAK,EACP47B,EAAW,gBAAgBrqB,CAAG,EAC9BqqB,EAAW,aAAarqB,EAAKvR,CAAK,EACtC,MACF,IAAK,UACH2b,GAA0B,eAAgBigB,CAAU,EACpDjgB,GAA0B,SAAUigB,CAAU,EAC9ClyB,GAAqBkyB,EAAY,UAAW57B,CAAK,EACjD,MACF,IAAK,eACH6J,GACE+xB,EACA,+BACA,gBACA57B,CACF,EACA,MACF,IAAK,eACH6J,GACE+xB,EACA,+BACA,gBACA57B,CACF,EACA,MACF,IAAK,YACH6J,GACE+xB,EACA,+BACA,aACA57B,CACF,EACA,MACF,IAAK,YACH6J,GACE+xB,EACA,+BACA,aACA57B,CACF,EACA,MACF,IAAK,aACH6J,GACE+xB,EACA,+BACA,cACA57B,CACF,EACA,MACF,IAAK,YACH6J,GACE+xB,EACA,+BACA,aACA57B,CACF,EACA,MACF,IAAK,UACH6J,GACE+xB,EACA,uCACA,WACA57B,CACF,EACA,MACF,IAAK,UACH6J,GACE+xB,EACA,uCACA,WACA57B,CACF,EACA,MACF,IAAK,WACH6J,GACE+xB,EACA,uCACA,YACA57B,CACF,EACA,MACF,IAAK,KACH0J,GAAqBkyB,EAAY,KAAM57B,CAAK,EAC5C,MACF,IAAK,YACL,IAAK,cACH,MACF,SAEI,EAAE,EAAIuR,EAAI,SACDA,EAAI,CAAC,IAAb,KAA0BA,EAAI,CAAC,IAAb,KACVA,EAAI,CAAC,IAAb,KAA0BA,EAAI,CAAC,IAAb,OAElBA,EAAMvE,GAAQ,IAAIuE,CAAG,GAAKA,EACzB7H,GAAqBkyB,EAAYrqB,EAAKvR,CAAK,EACnD,CACF,CACA,SAAS+uC,GAAuBnT,EAAYh+B,EAAK2T,EAAKvR,EAAO4N,EAAO4iB,EAAW,CAC7E,OAAQjf,EAAK,CACX,IAAK,QACH9E,GAAkBmvB,EAAY57B,EAAOwwB,CAAS,EAC9C,MACF,IAAK,0BACH,GAAY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AU,KACZ,OAAO5B,GAAe4B,CAAK,EAG7B,IAAMG,EAAgBH,EAChBI,EAAgBC,GAAaF,EAAe,UAAU,EAE5D,GAAI,OAAOC,GAAkB,WAAY,CACvC,IAAME,EAAcF,EAAcD,CAAa,EAE/C,OAAO,OAAOG,GAAgB,SAC1BA,EACAlC,GAAekC,CAAW,CAChC,CAEA,OAAOlC,GAAe4B,CAAK,CAC7B,CAEA,QACE,OAAO5B,GAAe4B,CAAK,CAE/B,CACF,CASA,SAASK,GACPX,EACAa,EAAY,CAEZ,KAAOb,IAAW,MAAM,CACtB,IAAMc,EAAO7F,GAAyB+E,EAAQa,CAAI,EAElD,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAOzE,GAAQwE,EAAKC,GAAG,EAGzB,GAAI,OAAOD,EAAKR,OAAU,WACxB,OAAOhE,GAAQwE,EAAKR,KAAK,CAE7B,CAEAN,EAAShF,GAAegF,CAAM,CAChC,CAEA,SAASgB,GAAa,CACpB,OAAO,IACT,CAEA,OAAOA,CACT,CAEA,SAASC,GAAQX,EAAc,CAC7B,GAAI,CACF3B,OAAAA,GAAW2B,EAAiB,EAAE,EACvB,EACT,OAAEY,EAAM,CACN,MAAO,EACT,CACF,CCnSO,IAAMC,GAAOjG,GAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,KAAK,CACG,EAEGkG,GAAMlG,GAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,OAAO,CACC,EAEGmG,GAAanG,GAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,cAAc,CACN,EAMGoG,GAAgBpG,GAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,KAAK,CACG,EAEGqG,GAASrG,GAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,aAAa,CACL,EAIGsG,GAAmBtG,GAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,MAAM,CACE,EAEGuG,GAAOvG,GAAO,CAAC,OAAO,CAAU,EC1RhCiG,GAAOjG,GAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,UACA,aACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,OAAO,CACC,EAEGkG,GAAMlG,GAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,YACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,YAAY,CACJ,EAEGqG,GAASrG,GAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,cACA,cACA,gBACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,OAAO,CACR,EAEYwG,GAAMxG,GAAO,CACxB,aACA,SACA,cACA,YACA,aAAa,CACL,ECvXGyG,GAAgBxG,GAAK,uBAAuB,EAC5CyG,GAAWzG,GAAK,uBAAuB,EACvC0G,GAAc1G,GAAK,aAAa,EAChC2G,GAAY3G,GAAK,8BAA8B,EAC/C4G,GAAY5G,GAAK,gBAAgB,EACjC6G,GAAiB7G,GAC5B,oGAEW8G,GAAoB9G,GAAK,uBAAuB,EAChD+G,GAAkB/G,GAC7B,+DAEWgH,GAAehH,GAAK,SAAS,EAC7BiH,GAAiBjH,GAAK,0BAA0B,EC0BvDkH,GAAY,CAChB1C,QAAS,EACT2C,UAAW,EACXb,KAAM,EACNc,aAAc,EACdC,gBAAiB,EACjBC,WAAY,EACZC,uBAAwB,EACxBC,QAAS,EACTC,SAAU,EACVC,aAAc,GACdC,iBAAkB,GAClBC,SAAU,IAGNC,GAAY,UAAA,CAChB,OAAO,OAAOC,OAAW,IAAc,KAAOA,MAChD,EAUMC,GAA4B,SAChCC,EACAC,EAAoC,CAEpC,GACE,OAAOD,GAAiB,UACxB,OAAOA,EAAaE,cAAiB,WAErC,OAAO,KAMT,IAAIC,EAAS,KACPC,EAAY,wBACdH,GAAqBA,EA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",+ "names": ["require_scheduler_production", "__commonJSMin", "exports", "push", "heap", "node", "index", "a", "parentIndex", "parent", "compare", "peek", "pop", "first", "last", "length", "halfLength", "leftIndex", "left", "rightIndex", "right", "b", "diff", "localPerformance", "localDate", "initialTime", "taskQueue", "timerQueue", "taskIdCounter", "currentTask", "currentPriorityLevel", "isPerformingWork", "isHostCallbackScheduled", "isHostTimeoutScheduled", "needsPaint", "localSetTimeout", "localClearTimeout", "localSetImmediate", "advanceTimers", "currentTime", "timer", "handleTimeout", "isMessageLoopRunning", "schedulePerformWorkUntilDeadline", "firstTimer", "requestHostTimeout", "taskTimeoutID", "frameInterval", "startTime", "shouldYieldToHost", "performWorkUntilDeadline", "hasMoreWork", "previousPriorityLevel", "callback", "continuationCallback", "channel", "port", "ms", "task", "fps", "eventHandler", "priorityLevel", "options", "timeout", "parentPriorityLevel", "require_scheduler", "__commonJSMin", "exports", "module", "require_react_production", "__commonJSMin", "exports", "REACT_ELEMENT_TYPE", "REACT_PORTAL_TYPE", "REACT_FRAGMENT_TYPE", "REACT_STRICT_MODE_TYPE", "REACT_PROFILER_TYPE", "REACT_CONSUMER_TYPE", "REACT_CONTEXT_TYPE", "REACT_FORWARD_REF_TYPE", "REACT_SUSPENSE_TYPE", "REACT_MEMO_TYPE", "REACT_LAZY_TYPE", "REACT_ACTIVITY_TYPE", "MAYBE_ITERATOR_SYMBOL", "getIteratorFn", "maybeIterable", "ReactNoopUpdateQueue", "assign", "emptyObject", "Component", "props", "context", "updater", "partialState", "callback", "ComponentDummy", "PureComponent", "pureComponentPrototype", "isArrayImpl", "noop", "ReactSharedInternals", "hasOwnProperty", "ReactElement", "type", "key", "refProp", "cloneAndReplaceKey", "oldElement", "newKey", "isValidElement", "object", "escape", "escaperLookup", "match", "userProvidedKeyEscapeRegex", "getElementKey", "element", "index", "resolveThenable", "thenable", "fulfilledValue", "error", "mapIntoArray", "children", "array", "escapedPrefix", "nameSoFar", "invokeCallback", "c", "nextNamePrefix", "i", "mapChildren", "func", "result", "count", "child", "lazyInitializer", "payload", "ctor", "moduleObject", "reportGlobalError", "event", "Children", "forEachFunc", "forEachContext", "n", "size", "fn", "config", "propName", "childArray", "defaultValue", "childrenLength", "render", "compare", "scope", "prevTransition", "currentTransition", "returnValue", "onStartTransitionFinish", "usable", "action", "initialState", "permalink", "deps", "Context", "value", "initialValue", "create", "ref", "passthrough", "reducer", "initialArg", "init", "subscribe", "getSnapshot", "getServerSnapshot", "require_react", "__commonJSMin", "exports", "module", "require_react_dom_production", "__commonJSMin", "exports", "React", "formatProdErrorMessage", "code", "url", "i", "noop", "Internals", "REACT_PORTAL_TYPE", "createPortal$1", "children", "containerInfo", "implementation", "key", "ReactSharedInternals", "getCrossOriginStringAs", "as", "input", "container", "fn", "previousTransition", "previousUpdatePriority", "href", "options", "crossOrigin", "integrity", "fetchPriority", "form", "a", "action", "initialState", "permalink", "require_react_dom", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_react_dom_client_production", "__commonJSMin", "exports", "Scheduler", "React", "ReactDOM", "formatProdErrorMessage", "code", "url", "i", "isValidContainer", "node", "getNearestMountedFiber", "fiber", "nearestMounted", "getSuspenseInstanceFromFiber", "suspenseState", "getActivityInstanceFromFiber", "activityState", "assertIsMounted", "findCurrentFiberUsingSlowPath", "alternate", "a", "b", "parentA", "parentB", "didFindChild", "child$0", "findCurrentHostFiberImpl", "tag", "assign", "REACT_LEGACY_ELEMENT_TYPE", "REACT_ELEMENT_TYPE", "REACT_PORTAL_TYPE", "REACT_FRAGMENT_TYPE", "REACT_STRICT_MODE_TYPE", "REACT_PROFILER_TYPE", "REACT_CONSUMER_TYPE", "REACT_CONTEXT_TYPE", "REACT_FORWARD_REF_TYPE", "REACT_SUSPENSE_TYPE", "REACT_SUSPENSE_LIST_TYPE", "REACT_MEMO_TYPE", "REACT_LAZY_TYPE", "REACT_ACTIVITY_TYPE", "REACT_MEMO_CACHE_SENTINEL", "MAYBE_ITERATOR_SYMBOL", "getIteratorFn", "maybeIterable", "REACT_CLIENT_REFERENCE", "getComponentNameFromType", "type", "innerType", "x", "isArrayImpl", "ReactSharedInternals", "ReactDOMSharedInternals", "sharedNotPendingObject", "valueStack", "index", "createCursor", "defaultValue", "pop", "cursor", "push", "value", "contextStackCursor", "contextFiberStackCursor", "rootInstanceStackCursor", "hostTransitionProviderCursor", "pushHostContainer", "nextRootInstance", "getOwnHostContext", "getChildHostContextProd", "popHostContainer", "pushHostContext", "context", "JSCompiler_inline_result", "popHostContext", "HostTransitionContext", "prefix", "suffix", "describeBuiltInComponentFrame", "name", "match", "reentry", "describeNativeComponentFrame", "fn", "construct", "previousPrepareStackTrace", "RunInRootFrame", "Fake", "control", "x$1", "x$2", "sample", "namePropDescriptor", "_RunInRootFrame$Deter", "sampleStack", "controlStack", "sampleLines", "controlLines", "frame", "describeFiber", "childFiber", "getStackByFiberInDevAndProd", "workInProgress", "info", "previous", "hasOwnProperty", "scheduleCallback$3", "cancelCallback$1", "shouldYield", "requestPaint", "now", "getCurrentPriorityLevel", "ImmediatePriority", "UserBlockingPriority", "NormalPriority$1", "LowPriority", "IdlePriority", "log$1", "unstable_setDisableYieldValue", "rendererID", "injectedHook", "setIsStrictModeForDevtools", "newIsStrictMode", "err", "clz32", "clz32Fallback", "log", "LN2", "nextTransitionUpdateLane", "nextTransitionDeferredLane", "nextRetryLane", "getHighestPriorityLanes", "lanes", "pendingSyncLanes", "getNextLanes", "root", "wipLanes", "rootHasPendingCommit", "pendingLanes", "nextLanes", "suspendedLanes", "pingedLanes", "nonIdlePendingLanes", "checkIfRootIsPrerendering", "renderLanes", "computeExpirationTime", "lane", "currentTime", "claimNextRetryLane", "createLaneMap", "initial", "laneMap", "markRootUpdated$1", "updateLane", "markRootFinished", "finishedLanes", "remainingLanes", "spawnedLane", "updatedLanes", "suspendedRetryLanes", "previouslyPendingLanes", "entanglements", "expirationTimes", "hiddenUpdates", "index$7", "hiddenUpdatesForLane", "update", "markSpawnedDeferredLane", "entangledLanes", "spawnedLaneIndex", "markRootEntangled", "rootEntangledLanes", "index$8", "getBumpedLaneForHydration", "renderLane", "getBumpedLaneForHydrationByLane", "lanesToEventPriority", "resolveUpdatePriority", "updatePriority", "getEventPriority", "runWithPriority", "priority", "previousPriority", "randomKey", "internalInstanceKey", "internalPropsKey", "internalContainerInstanceKey", "internalEventHandlersKey", "internalEventHandlerListenersKey", "internalEventHandlesSetKey", "internalRootNodeResourcesKey", "internalHoistableMarker", "detachDeletedInstance", "getClosestInstanceFromNode", "targetNode", "targetInst", "parentNode", "getParentHydrationBoundary", "getInstanceFromNode", "getNodeFromInstance", "inst", "getResourcesFromRoot", "resources", "markNodeAsHoistable", "allNativeEvents", "registrationNameDependencies", "registerTwoPhaseEvent", "registrationName", "dependencies", "registerDirectEvent", "VALID_ATTRIBUTE_NAME_REGEX", "illegalAttributeNameCache", "validatedAttributeNameCache", "isAttributeNameSafe", "attributeName", "setValueForAttribute", "prefix$10", "setValueForKnownAttribute", "setValueForNamespacedAttribute", "namespace", "getToStringValue", "isCheckable", "elem", "trackValueOnNode", "valueField", "currentValue", "descriptor", "get", "set", "track", "updateValueIfChanged", "tracker", "lastValue", "getActiveElement", "doc", "e", "escapeSelectorAttributeValueInsideDoubleQuotesRegex", "escapeSelectorAttributeValueInsideDoubleQuotes", "ch", "updateInput", "element", "lastDefaultValue", "checked", "defaultChecked", "setDefaultValue", "initInput", "isHydrating", "updateOptions", "multiple", "propValue", "setDefaultSelected", "updateTextarea", "initTextarea", "children", "setTextContent", "text", "firstChild", "unitlessNumbers", "setValueForStyle", "style", "styleName", "isCustomProperty", "setValueForStyles", "styles", "prevStyles", "styleName$16", "styleName$17", "isCustomElement", "tagName", "aliases", "isJavaScriptProtocol", "sanitizeURL", "noop$1", "currentReplayingEvent", "getEventTarget", "nativeEvent", "restoreTarget", "restoreQueue", "restoreStateOfTarget", "target", "internalInstance", "props", "otherNode", "otherProps", "isInsideEventHandler", "batchedUpdates$1", "flushSyncWork$1", "getListener", "stateNode", "canUseDOM", "passiveBrowserEventsSupported", "options", "startText", "fallbackText", "getData", "start", "startValue", "startLength", "end", "endValue", "endLength", "minEnd", "getEventCharCode", "keyCode", "functionThatReturnsTrue", "functionThatReturnsFalse", "createSyntheticEvent", "Interface", "SyntheticBaseEvent", "reactName", "reactEventType", "nativeEventTarget", "propName", "event", "EventInterface", "SyntheticEvent", "UIEventInterface", "SyntheticUIEvent", "lastMovementX", "lastMovementY", "lastMouseEvent", "MouseEventInterface", "getEventModifierState", "SyntheticMouseEvent", "DragEventInterface", "SyntheticDragEvent", "FocusEventInterface", "SyntheticFocusEvent", "AnimationEventInterface", "SyntheticAnimationEvent", "ClipboardEventInterface", "SyntheticClipboardEvent", "CompositionEventInterface", "SyntheticCompositionEvent", "normalizeKey", "translateToKey", "modifierKeyToProp", "modifierStateGetter", "keyArg", "KeyboardEventInterface", "key", "SyntheticKeyboardEvent", "PointerEventInterface", "SyntheticPointerEvent", "TouchEventInterface", "SyntheticTouchEvent", "TransitionEventInterface", "SyntheticTransitionEvent", "WheelEventInterface", "SyntheticWheelEvent", "ToggleEventInterface", "SyntheticToggleEvent", "END_KEYCODES", "canUseCompositionEvent", "documentMode", "canUseTextInputEvent", "useFallbackCompositionData", "SPACEBAR_CHAR", "hasSpaceKeypress", "isFallbackCompositionEnd", "domEventName", "getDataFromCustomEvent", "isComposing", "getNativeBeforeInputChars", "getFallbackBeforeInputChars", "supportedInputTypes", "isTextInputElement", "nodeName", "createAndAccumulateChangeEvent", "dispatchQueue", "accumulateTwoPhaseListeners", "activeElement$1", "activeElementInst$1", "runEventInBatch", "processDispatchQueue", "getInstIfValueChanged", "getTargetInstForChangeEvent", "isInputEventSupported", "isSupported$jscomp$inline_427", "element$jscomp$inline_428", "JSCompiler_inline_result$jscomp$286", "stopWatchingForValueChange", "handlePropertyChange", "handleEventsForInputEventPolyfill", "getTargetInstForInputEventPolyfill", "getTargetInstForClickEvent", "getTargetInstForInputOrChangeEvent", "is", "y", "objectIs", "shallowEqual", "objA", "objB", "keysA", "keysB", "currentKey", "getLeafNode", "getNodeForCharacterOffset", "offset", "nodeEnd", "containsNode", "outerNode", "innerNode", "getActiveElementDeep", "containerInfo", "hasSelectionCapabilities", "skipSelectionChangeEvent", "activeElement", "activeElementInst", "lastSelection", "mouseDown", "constructSelectEvent", "makePrefixMap", "styleProp", "eventName", "prefixes", "vendorPrefixes", "prefixedEventNames", "getVendorPrefixedEventName", "prefixMap", "ANIMATION_END", "ANIMATION_ITERATION", "ANIMATION_START", "TRANSITION_RUN", "TRANSITION_START", "TRANSITION_CANCEL", "TRANSITION_END", "topLevelEventsToReactNames", "simpleEventPluginEvents", "registerSimpleEvent", "reportGlobalError", "error", "concurrentQueues", "concurrentQueuesIndex", "concurrentlyUpdatedLanes", "finishQueueingConcurrentUpdates", "endIndex", "queue", "pending", "markUpdateLaneFromFiberToRoot", "enqueueUpdate$1", "enqueueConcurrentHookUpdate", "getRootForUpdatedFiber", "enqueueConcurrentRenderForLane", "sourceFiber", "isHidden", "parent", "nestedUpdateCount", "rootWithNestedUpdates", "emptyContextObject", "FiberNode", "pendingProps", "mode", "createFiberImplClass", "shouldConstruct", "Component", "createWorkInProgress", "current", "resetWorkInProgress", "createFiberFromTypeAndProps", "owner", "fiberTag", "isHostHoistableType", "createFiberFromFragment", "elements", "createFiberFromText", "content", "createFiberFromDehydratedFragment", "dehydratedNode", "createFiberFromPortal", "portal", "CapturedStacks", "createCapturedValueAtFiber", "source", "existing", "forkStack", "forkStackIndex", "treeForkProvider", "treeForkCount", "idStack", "idStackIndex", "treeContextProvider", "treeContextId", "treeContextOverflow", "pushTreeFork", "totalChildren", "pushTreeId", "baseIdWithLeadingBit", "baseLength", "length", "numberOfOverflowBits", "pushMaterializedTreeId", "popTreeContext", "restoreSuspendedTreeContext", "suspendedContext", "hydrationParentFiber", "nextHydratableInstance", "hydrationErrors", "rootOrSingletonContext", "HydrationMismatchException", "throwOnHydrationMismatch", "queueHydrationError", "prepareToHydrateHostInstance", "instance", "listenToNonDelegatedEvent", "mediaEventTypes", "checkForUnmatchedText", "popToNextHostParent", "popHydrationState", "JSCompiler_temp", "shouldSetTextContent", "getNextHydratableInstanceAfterHydrationBoundary", "isSingletonScope", "previousHydratableOnEnteringScopedSingleton", "getNextHydratable", "resetHydrationState", "upgradeHydrationErrorsToRecoverable", "queuedErrors", "workInProgressRootRecoverableErrors", "valueCursor", "currentlyRenderingFiber$1", "lastContextDependency", "pushProvider", "providerFiber", "nextValue", "popProvider", "scheduleContextWorkOnParentPath", "propagationRoot", "propagateContextChanges", "contexts", "forcePropagateEntireTree", "list", "nextFiber", "dependency", "propagateParentContextChanges", "isInsidePropagationBailout", "currentParent", "checkIfContextChanged", "currentDependencies", "prepareToReadContext", "readContext", "readContextForConsumer", "readContextDuringReconciliation", "consumer", "AbortControllerLocal", "listeners", "signal", "listener", "scheduleCallback$2", "NormalPriority", "CacheContext", "createCache", "releaseCache", "cache", "currentEntangledListeners", "currentEntangledPendingCount", "currentEntangledLane", "currentEntangledActionThenable", "entangleAsyncAction", "transition", "thenable", "entangledListeners", "requestTransitionLane", "resolve", "pingEngtangledActionScope", "chainThenableValue", "result", "thenableWithOverride", "prevOnStartTransitionFinish", "returnValue", "globalMostRecentTransitionTime", "resumedCache", "peekCacheFromPool", "cacheResumedFromPreviousRender", "workInProgressRoot", "pushTransition", "offscreenWorkInProgress", "prevCachePool", "getSuspendedCache", "cacheFromPool", "SuspenseException", "SuspenseyCommitException", "SuspenseActionException", "noopSuspenseyCommitThenable", "isThenableResolved", "trackUsedThenable", "thenableState", "checkIfUseWrappedInAsyncCatch", "fulfilledValue", "fulfilledThenable", "rejectedThenable", "suspendedThenable", "resolveLazy", "lazyType", "init", "getSuspendedThenable", "rejectedReason", "thenableState$1", "thenableIndexCounter$1", "unwrapThenable", "coerceRef", "throwOnInvalidObjectTypeImpl", "returnFiber", "newChild", "createChildReconciler", "shouldTrackSideEffects", "deleteChild", "childToDelete", "deletions", "deleteRemainingChildren", "currentFirstChild", "mapRemainingChildren", "existingChildren", "useFiber", "placeChild", "newFiber", "lastPlacedIndex", "newIndex", "placeSingleChild", "updateTextNode", "textContent", "updateElement", "elementType", "updateFragment", "updatePortal", "fragment", "createChild", "updateSlot", "oldFiber", "updateFromMap", "newIdx", "reconcileChildrenArray", "newChildren", "resultingFirstChild", "previousNewFiber", "nextOldFiber", "child", "reconcileChildrenIterator", "step", "reconcileChildFibersImpl", "firstChildFiber", "reconcileChildFibers", "mountChildFibers", "hasForceUpdate", "initializeUpdateQueue", "cloneUpdateQueue", "createUpdate", "enqueueUpdate", "updateQueue", "executionContext", "entangleTransitions", "queueLanes", "enqueueCapturedUpdate", "capturedUpdate", "newFirst", "newLast", "clone", "didReadFromEntangledAsyncAction", "suspendIfUpdateReadFromEntangledAsyncAction", "entangledActionThenable", "processUpdateQueue", "workInProgress$jscomp$0", "instance$jscomp$0", "firstBaseUpdate", "lastBaseUpdate", "pendingQueue", "lastPendingUpdate", "firstPendingUpdate", "newState", "isHiddenUpdate", "workInProgressRootRenderLanes", "workInProgressRootSkippedLanes", "callCallback", "callback", "commitCallbacks", "callbacks", "currentTreeHiddenStackCursor", "prevEntangledRenderLanesCursor", "pushHiddenContext", "entangledRenderLanes", "reuseHiddenContextOnStack", "popHiddenContext", "suspenseHandlerStackCursor", "shellBoundary", "pushPrimaryTreeSuspenseHandler", "handler", "suspenseStackCursor", "pushDehydratedActivitySuspenseHandler", "pushOffscreenSuspenseHandler", "reuseSuspenseHandlerOnStack", "popSuspenseHandler", "findFirstSuspended", "row", "state", "isSuspenseInstancePending", "isSuspenseInstanceFallback", "currentlyRenderingFiber", "currentHook", "workInProgressHook", "didScheduleRenderPhaseUpdate", "didScheduleRenderPhaseUpdateDuringThisPass", "shouldDoubleInvokeUserFnsInHooksDEV", "localIdCounter", "thenableIndexCounter", "globalClientIdCounter", "throwInvalidHookError", "areHookInputsEqual", "nextDeps", "prevDeps", "renderWithHooks", "secondArg", "nextRenderLanes", "HooksDispatcherOnMount", "HooksDispatcherOnUpdate", "renderWithHooksAgain", "finishRenderingHooks", "ContextOnlyDispatcher", "didRenderTooFewHooks", "didReceiveUpdate", "numberOfReRenders", "HooksDispatcherOnRerender", "TransitionAwareHostComponent", "dispatcher", "maybeThenable", "useThenable", "checkDidRenderIdHook", "didRenderIdHook", "bailoutHooks", "resetHooksOnUnwind", "mountWorkInProgressHook", "hook", "updateWorkInProgressHook", "nextCurrentHook", "nextWorkInProgressHook", "createFunctionComponentUpdateQueue", "use", "usable", "useMemoCache", "size", "memoCache", "array", "basicStateReducer", "action", "updateReducer", "reducer", "updateReducerImpl", "baseQueue", "baseFirst", "newBaseQueueFirst", "newBaseQueueLast", "didReadFromEntangledAsyncAction$60", "revertLane", "rerenderReducer", "dispatch", "lastRenderPhaseUpdate", "updateSyncExternalStore", "subscribe", "getSnapshot", "getServerSnapshot", "isHydrating$jscomp$0", "snapshotChanged", "updateEffect", "subscribeToStore", "pushSimpleEffect", "updateStoreInstance", "pushStoreConsistencyCheck", "renderedSnapshot", "nextSnapshot", "checkIfSnapshotChanged", "forceStoreRerender", "latestGetSnapshot", "scheduleUpdateOnFiber", "mountStateImpl", "initialState", "initialStateInitializer", "updateOptimisticImpl", "passthrough", "dispatchActionState", "actionQueue", "setPendingState", "setState", "payload", "isRenderPhaseUpdate", "actionNode", "runActionStateAction", "prevState", "prevTransition", "currentTransition", "onStartTransitionFinish", "handleActionReturnValue", "onActionError", "error$66", "nextState", "onActionSuccess", "notifyActionListeners", "last", "actionStateReducer", "oldState", "mountActionState", "initialStateProp", "ssrFormState", "JSCompiler_inline_result$jscomp$0", "inRootOrSingleton", "dispatchSetState", "dispatchOptimisticSetState", "updateActionState", "stateHook", "updateActionStateImpl", "currentStateHook", "actionStateActionEffect", "rerenderActionState", "create", "deps", "updateRef", "mountEffectImpl", "fiberFlags", "hookFlags", "updateEffectImpl", "mountEffect", "useEffectEventImpl", "componentUpdateQueue", "events", "updateEvent", "ref", "updateInsertionEffect", "updateLayoutEffect", "imperativeHandleEffect", "refCleanup", "updateImperativeHandle", "mountDebugValue", "updateCallback", "updateMemo", "nextCreate", "mountDeferredValueImpl", "initialValue", "requestDeferredLane", "updateDeferredValueImpl", "prevValue", "startTransition", "pendingState", "finishedState", "thenableForFinishedState", "dispatchSetStateInternal", "requestUpdateLane", "noop", "startHostTransition", "formFiber", "formData", "ensureFormComponentIsStateful", "requestFormReset$1", "existingStateHook", "initialResetState", "useHostTransitionStatus", "updateId", "updateRefresh", "refreshCache", "provider", "root$69", "dispatchReducerAction", "enqueueRenderPhaseUpdate", "entangleTransitionUpdate", "currentState", "eagerState", "throwIfDuringRender", "initialArg", "identifierPrefix", "idWithLeadingBit", "booleanOrThenable", "applyDerivedStateFromProps", "ctor", "getDerivedStateFromProps", "nextProps", "classComponentUpdater", "checkShouldComponentUpdate", "oldProps", "newProps", "nextContext", "callComponentWillReceiveProps", "resolveClassComponentProps", "baseProps", "propName$73", "defaultOnUncaughtError", "defaultOnCaughtError", "defaultOnRecoverableError", "logUncaughtError", "errorInfo", "onUncaughtError", "e$74", "logCaughtError", "boundary", "onCaughtError", "e$75", "createRootErrorUpdate", "createClassErrorUpdate", "initializeClassErrorUpdate", "getDerivedStateFromError", "legacyErrorBoundariesThatAlreadyFailed", "stack", "throwException", "rootRenderLanes", "renderDidSuspendDelayIfPossible", "workInProgressRootExitStatus", "attachPingListener", "wrapperError", "workInProgressRootConcurrentErrors", "SelectiveHydrationException", "reconcileChildren", "nextChildren", "updateForwardRef", "propsWithoutRef", "bailoutOnAlreadyFinishedWork", "updateMemoComponent", "updateSimpleMemoComponent", "checkScheduledUpdateOrContext", "prevProps", "updateFunctionComponent", "updateOffscreenComponent", "deferHiddenOffscreenComponent", "bailoutOffscreenComponent", "nextBaseLanes", "remainingChildLanes", "mountActivityChildren", "mountWorkInProgressOffscreenFiber", "retryActivityComponentWithoutHydrating", "updateActivityComponent", "didSuspend", "canHydrateHydrationBoundary", "dehydrated", "markRef", "replayFunctionComponent", "updateClassComponent", "contextType", "unresolvedOldProps", "oldContext", "contextType$jscomp$0", "mountHostRootWithoutHydrating", "SUSPENDED_MARKER", "mountSuspenseOffscreenState", "getRemainingWorkInPrimaryTree", "primaryTreeDidDefer", "workInProgressDeferredLane", "updateSuspenseComponent", "showFallback", "nextPrimaryChildren", "mountSuspensePrimaryChildren", "retrySuspenseComponentWithoutHydrating", "digest", "primaryChildren", "offscreenProps", "scheduleSuspenseWorkOnFiber", "initSuspenseListRenderState", "isBackwards", "tail", "lastContentRow", "tailMode", "renderState", "updateSuspenseListComponent", "revealOrder", "suspenseContext", "shouldForceFallback", "attemptEarlyBailoutIfNoScheduledUpdate", "state$102", "didSuspendBefore", "beginWork", "$$typeof", "getResource", "getOwnerDocumentFromRootContainer", "setInitialProperties", "resolveSingletonInstance", "canHydrateInstance", "canHydrateTextInstance", "markUpdate", "preloadInstanceAndSuspendIfNeeded", "shouldRemainOnPreviousScreen", "preloadResourceAndSuspendIfNeeded", "resource", "preloadResource", "scheduleRetryEffect", "retryQueue", "workInProgressSuspendedRetryLanes", "cutOffTailIfNeeded", "hasRenderedATailFallback", "lastTailNode", "lastTailNode$106", "bubbleProperties", "completedWork", "didBailout", "newChildLanes", "subtreeFlags", "child$107", "completeWork", "nextResource", "ownerDocument", "listenToAllSupportedEvents", "workInProgressRootRenderTargetTime", "unwindWork", "unwindInterruptedWork", "interruptedWork", "commitHookEffectListMount", "flags", "finishedWork", "lastEffect", "firstEffect", "captureCommitPhaseError", "commitHookEffectListUnmount", "nearestMountedAncestor$jscomp$0", "destroy", "nearestMountedAncestor", "destroy_", "commitClassCallbacks", "safelyCallComponentWillUnmount", "safelyAttachRef", "instanceToUse", "safelyDetachRef", "error$140", "commitHostMount", "commitHostUpdate", "domElement", "updateProperties", "isHostParent", "getHostSibling", "insertOrAppendPlacementNodeIntoContainer", "before", "insertOrAppendPlacementNode", "commitHostSingletonAcquisition", "singleton", "attributes", "offscreenSubtreeIsHidden", "offscreenSubtreeWasHidden", "needsFormReset", "PossiblyWeakSet", "nextEffect", "commitBeforeMutationEffects", "eventsEnabled", "_enabled", "selection", "anchorOffset", "focusNode", "e$20", "indexWithinAnchor", "indexWithinFocus", "next", "selectionInformation", "resolvedPrevProps", "clearContainerSparingly", "commitLayoutEffectOnFiber", "finishedRoot", "recursivelyTraverseLayoutEffects", "error$139", "commitActivityHydrationCallbacks", "commitSuspenseHydrationCallbacks", "retryDehydratedSuspenseBoundary", "registerSuspenseInstanceRetry", "prevOffscreenSubtreeWasHidden", "recursivelyTraverseReappearLayoutEffects", "detachFiberAfterEffects", "hostParent", "hostParentIsContainer", "recursivelyTraverseDeletionEffects", "commitDeletionEffectsOnFiber", "deletedFiber", "prevHostParent", "prevHostParentIsContainer", "releaseSingletonInstance", "clearHydrationBoundary", "retryIfBlockedOn", "getRetryCache", "retryCache", "attachSuspenseRetryListeners", "wakeables", "wakeable", "retry", "resolveRetryWakeable", "recursivelyTraverseMutationEffects", "root$jscomp$0", "parentFiber", "commitMutationEffectsOnFiber", "currentHoistableRoot", "commitReconciliationEffects", "hoistableRoot", "currentResource", "maybeNodes", "getHydratableHoistableCache", "mountHoistable", "acquireResource", "tagCaches", "getHoistableRoot", "recursivelyResetForms", "globalMostRecentFallbackTime", "wasHidden", "prevOffscreenSubtreeIsHidden", "recursivelyTraverseDisappearLayoutEffects", "display", "hideOrUnhideDehydratedBoundary", "hostParentFiber", "parent$141", "before$142", "parent$143", "before$144", "finishedRoot$jscomp$0", "includeWorkInProgressEffects", "hiddenCallbacks", "commitOffscreenPassiveMountEffects", "previousCache", "commitCachePassiveMountEffect", "recursivelyTraversePassiveMountEffects", "committedLanes", "committedTransitions", "commitPassiveMountOnFiber", "_finishedWork$memoize2", "id", "onPostCommit", "recursivelyTraverseAtomicPassiveEffects", "recursivelyTraverseReconnectPassiveEffects", "committedLanes$jscomp$0", "committedTransitions$jscomp$0", "suspenseyCommitFlag", "recursivelyAccumulateSuspenseyCommit", "suspendedState", "accumulateSuspenseyCommitOnFiber", "suspendResource", "previousHoistableRoot", "detachAlternateSiblings", "previousFiber", "recursivelyTraversePassiveUnmountEffects", "commitPassiveUnmountEffectsInsideOfDeletedTree_begin", "commitPassiveUnmountOnFiber", "recursivelyTraverseDisconnectPassiveEffects", "deletedSubtreeRoot", "sibling", "DefaultAsyncDispatcher", "resourceType", "cacheForType", "PossiblyWeakMap", "workInProgressSuspendedReason", "workInProgressThrownValue", "workInProgressRootDidSkipSuspendedSiblings", "workInProgressRootIsPrerendering", "workInProgressRootDidAttachPingListener", "workInProgressRootInterleavedUpdatedLanes", "workInProgressRootPingedLanes", "workInProgressRootDidIncludeRecursiveRenderUpdate", "workInProgressTransitions", "pendingEffectsStatus", "pendingEffectsRoot", "pendingFinishedWork", "pendingEffectsLanes", "pendingEffectsRemainingLanes", "pendingPassiveTransitions", "pendingRecoverableErrors", "prepareFreshStack", "markRootSuspended", "ensureRootIsScheduled", "performWorkOnRoot", "forceSync", "shouldTimeSlice", "exitStatus", "renderRootConcurrent", "renderRootSync", "renderWasConcurrent", "isRenderConsistentWithExternalStores", "wasRootDehydrated", "scheduleTimeout", "commitRootWhenReady", "recoverableErrors", "transitions", "didIncludeRenderPhaseUpdate", "didSkipSuspendedSiblings", "suspendedCommitReason", "completedRenderStartTime", "completedRenderEndTime", "timeoutOffset", "waitForCommitToBeReady", "commitRoot", "check", "didAttemptEntireTree", "index$6", "flushSyncWorkAcrossRoots_impl", "resetWorkInProgressStack", "timeoutHandle", "cancelTimeout", "allEntangledLanes", "index$4", "handleThrow", "thrownValue", "pushDispatcher", "prevDispatcher", "pushAsyncDispatcher", "prevAsyncDispatcher", "shouldYieldForPrerendering", "prevExecutionContext", "unitOfWork", "reason", "throwAndUnwindWorkLoop", "workLoopSync", "thrownValue$165", "performUnitOfWork", "replaySuspendedUnitOfWork", "hostFiber", "completeUnitOfWork", "workLoopConcurrentByScheduler", "thrownValue$167", "suspendedReason", "unwindUnitOfWork", "skipSiblings", "flushPendingEffects", "scheduleCallback$1", "flushPassiveEffects", "flushMutationEffects", "flushLayoutEffects", "flushSpawnedWork", "rootMutationHasEffect", "priorSelectionInformation", "curFocusedElem", "priorFocusedElem", "priorSelectionRange", "win", "start$jscomp$0", "end$jscomp$0", "startMarker", "endMarker", "range", "rootHasLayoutEffect", "releaseRootPooledCache", "onRecoverableError", "recoverableError", "renderPriority", "captureCommitPhaseErrorOnRoot", "rootFiber", "pingCache", "threadIDs", "pingSuspendedRoot", "retryTimedOutBoundary", "boundaryFiber", "retryLane", "priorityLevel", "firstScheduledRoot", "lastScheduledRoot", "didScheduleMicrotask", "mightHavePendingSyncWork", "isFlushingWork", "currentEventTransitionLane", "scheduleImmediateRootScheduleTask", "syncTransitionLanes", "onlyLegacy", "didPerformSomeWork", "root$170", "performSyncWorkOnRoot", "processRootScheduleInImmediateTask", "processRootScheduleInMicrotask", "shouldAttemptEagerTransition", "prev", "scheduleTaskForRootDuringMicrotask", "index$5", "expirationTime", "performWorkOnRootViaSchedulerTask", "didTimeout", "originalCallbackNode", "workInProgressRootRenderLanes$jscomp$0", "scheduleMicrotask", "actionScopeLane", "coerceFormActionProp", "actionProp", "createFormDataWithSubmitter", "form", "submitter", "temp", "extractEvents$1", "maybeTargetInst", "i$jscomp$inline_1577", "eventName$jscomp$inline_1578", "domEventName$jscomp$inline_1579", "capitalizedEvent$jscomp$inline_1580", "nonDelegatedEvents", "eventSystemFlags", "_dispatchQueue$i", "previousInstance", "i$jscomp$0", "_dispatchListeners$i", "currentTarget", "targetElement", "listenerSetKey", "addTrappedEventListener", "listenToNativeEvent", "isCapturePhaseListener", "listeningMarker", "rootContainerElement", "targetContainer", "listenerWrapper", "dispatchDiscreteEvent", "dispatchContinuousEvent", "dispatchEvent", "dispatchEventForPluginEventSystem", "targetInst$jscomp$0", "ancestorInst", "nodeTag", "container", "grandTag", "SyntheticEventCtor", "inCapturePhase", "accumulateTargetOnly", "reactEventName", "lastHostComponent", "_instance", "createDispatchListener", "getParent", "tempB", "accumulateEnterLeaveListenersForEvent", "getTargetInstFunc", "handleEventFunc", "fallbackData", "eventType", "targetFiber", "captureName", "_instance2", "common", "_instance3", "NORMALIZE_NEWLINES_REGEX", "NORMALIZE_NULL_AND_REPLACEMENT_REGEX", "normalizeMarkupForTextOrAttribute", "markup", "serverText", "clientText", "setProp", "setPropOnCustomElement", "hasSrc", "hasSrcSet", "propKey", "propValue$184", "lastProps", "lastProp", "propKey$201", "propKey$217", "propKey$222", "propKey$227", "propKey$232", "isLikelyStaticResource", "initiatorType", "estimateBandwidth", "count", "bits", "resourceEntries", "entry", "transferSize", "duration", "overlapEntry", "overlapStartTime", "overlapTransferSize", "overlapInitiatorType", "namespaceURI", "parentNamespace", "currentPopstateTransitionEvent", "localPromise", "handleErrorInNextTick", "parentInstance", "hydrationInstance", "depth", "nextNode", "node$jscomp$0", "nextNode$jscomp$0", "suspenseInstance", "anyProps", "nodeType", "data", "targetInstance", "rootContainerInstance", "preloadPropsMap", "preconnectsSet", "previousDispatcher", "flushSyncWork", "requestFormReset", "prefetchDNS", "preconnect", "preload", "preloadModule", "preinitScript", "preinitStyle", "preinitModuleScript", "previousWasRendering", "wasRendering", "formInst", "globalDocument", "preconnectAs", "rel", "href", "crossOrigin", "limitedEscapedHref", "as", "preloadSelector", "getStyleKey", "getScriptKey", "getStylesheetSelectorFromKey", "getScriptSelectorFromKey", "precedence", "adoptPreloadPropsForStylesheet", "link", "reject", "insertStylesheet", "src", "scripts", "adoptPreloadPropsForScript", "currentProps", "styles$243", "resource$244", "preloadStylesheet", "stylesheetPropsFromRawProps", "rawProps", "preloadProps", "styleProps", "instance$249", "linkInstance", "nodes", "prior", "stylesheetProps", "scriptProps", "keyAttribute", "caches", "nodeKey", "hostContext", "onUnsuspend", "estimatedBytesWithinLimit", "insertSuspendedStylesheets", "commit", "stylesheetTimer", "unsuspend", "imgTimer", "precedencesByRoot", "insertStylesheetIntoRoot", "precedences", "FiberRootNode", "hydrate", "onDefaultTransitionIndicator", "formState", "createFiberRoot", "initialChildren", "hydrationCallbacks", "isStrictMode", "getContextForSubtree", "parentComponent", "updateContainerImpl", "markRetryLaneImpl", "markRetryLaneIfNotHydrated", "attemptContinuousHydration", "attemptHydrationAtCurrentPriority", "blockedOn", "findInstanceBlockingEvent", "return_targetInst", "clearIfContinuousEvent", "queueIfContinuousEvent", "discreteReplayableEvents", "findInstanceBlockingTarget", "hasScheduledReplayAttempt", "queuedFocus", "queuedDrag", "queuedMouse", "queuedPointers", "queuedPointerCaptures", "queuedExplicitHydrationTargets", "accumulateOrCreateContinuousQueuedReplayableEvent", "existingQueuedEvent", "pointerId", "attemptExplicitHydrationTarget", "queuedTarget", "attemptReplayContinuousQueuedEvent", "queuedEvent", "targetContainers", "nextBlockedOn", "nativeEventClone", "attemptReplayContinuousQueuedEventInMap", "map", "replayUnblockedEvents", "scheduleCallbackIfUnblocked", "unblocked", "lastScheduledReplayQueue", "scheduleReplayQueueIfNeeded", "formReplayingQueue", "submitterOrAction", "unblock", "formProps", "defaultOnDefaultTransitionIndicator", "handleNavigate", "pendingResolve", "handleNavigateComplete", "isCancelled", "startFakeNavigation", "currentEntry", "ReactDOMRoot", "internalRoot", "ReactDOMHydrationRoot", "isomorphicReactPackageVersion$jscomp$inline_1840", "componentOrElement", "internals$jscomp$inline_2347", "hook$jscomp$inline_2348", "require_client", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_moment", "__commonJSMin", "exports", "module", "global", "factory", "hookCallback", "hooks", "setHookCallback", "callback", "isArray", "input", "isObject", "hasOwnProp", "a", "b", "isObjectEmpty", "obj", "k", "isUndefined", "isNumber", "isDate", "map", "arr", "fn", "res", "i", "arrLen", "extend", "createUTC", "format", "locale", "strict", "createLocalOrUTC", "defaultParsingFlags", "getParsingFlags", "m", "some", "fun", "t", "len", "isValid", "flags", "parsedParts", "isNowValid", "createInvalid", "momentProperties", "updateInProgress", "copyConfig", "to", "from", "prop", "val", "momentPropertiesLen", "Moment", "config", "isMoment", "warn", "msg", "deprecate", "firstTime", "args", "arg", "key", "argLen", "deprecations", "deprecateSimple", "name", "isFunction", "set", "mergeConfigs", "parentConfig", "childConfig", "Locale", "keys", "defaultCalendar", "calendar", "mom", "now", "output", "zeroFill", "number", "targetLength", "forceSign", "absNumber", "zerosToFill", "sign", "formattingTokens", "localFormattingTokens", "formatFunctions", "formatTokenFunctions", "addFormatToken", "token", "padded", "ordinal", "func", "removeFormattingTokens", "makeFormatFunction", "array", "length", "formatMoment", "expandFormat", "replaceLongDateFormatTokens", "defaultLongDateFormat", "longDateFormat", "formatUpper", "tok", "defaultInvalidDate", "invalidDate", "defaultOrdinal", "defaultDayOfMonthOrdinalParse", "defaultRelativeTime", "relativeTime", "withoutSuffix", "string", "isFuture", "pastFuture", "diff", "aliases", "normalizeUnits", "units", "normalizeObjectUnits", "inputObject", "normalizedInput", "normalizedProp", "priorities", "getPrioritizedUnits", "unitsObj", "u", "match1", "match2", "match3", "match4", "match6", "match1to2", "match3to4", "match5to6", "match1to3", "match1to4", "match1to6", "matchUnsigned", "matchSigned", "matchOffset", "matchShortOffset", "matchTimestamp", "matchWord", "match1to2NoLeadingZero", "match1to2HasZero", "regexes", "addRegexToken", "regex", "strictRegex", "isStrict", "localeData", "getParseRegexForToken", "unescapeFormat", "s", "regexEscape", "matched", "p1", "p2", "p3", "p4", "absFloor", "toInt", "argumentForCoercion", "coercedNumber", "value", "tokens", "addParseToken", "tokenLen", "addWeekParseToken", "addTimeToArrayFromToken", "isLeapYear", "year", "YEAR", "MONTH", "DATE", "HOUR", "MINUTE", "SECOND", "MILLISECOND", "WEEK", "WEEKDAY", "y", "daysInYear", "getSetYear", "makeGetSet", "getIsLeapYear", "unit", "keepTime", "set$1", "get", "d", "isUTC", "month", "date", "stringGet", "stringSet", "prioritized", "prioritizedLen", "mod", "n", "x", "indexOf", "o", "daysInMonth", "modMonth", "defaultLocaleMonths", "defaultLocaleMonthsShort", "MONTHS_IN_FORMAT", "defaultMonthsShortRegex", "defaultMonthsRegex", "localeMonths", "localeMonthsShort", "handleStrictParse", "monthName", "ii", "llc", "localeMonthsParse", "setMonth", "getSetMonth", "getDaysInMonth", "monthsShortRegex", "computeMonthsParse", "monthsRegex", "cmpLenRev", "shortPieces", "longPieces", "mixedPieces", "shortP", "longP", "createDate", "h", "M", "ms", "createUTCDate", "firstWeekOffset", "dow", "doy", "fwd", "fwdlw", "dayOfYearFromWeeks", "week", "weekday", "localWeekday", "weekOffset", "dayOfYear", "resYear", "resDayOfYear", "weekOfYear", "resWeek", "weeksInYear", "weekOffsetNext", "localeWeek", "defaultLocaleWeek", "localeFirstDayOfWeek", "localeFirstDayOfYear", "getSetWeek", "getSetISOWeek", "parseWeekday", "parseIsoWeekday", "shiftWeekdays", "ws", "defaultLocaleWeekdays", "defaultLocaleWeekdaysShort", "defaultLocaleWeekdaysMin", "defaultWeekdaysRegex", "defaultWeekdaysShortRegex", "defaultWeekdaysMinRegex", "localeWeekdays", "weekdays", "localeWeekdaysShort", "localeWeekdaysMin", "handleStrictParse$1", "weekdayName", "localeWeekdaysParse", "getSetDayOfWeek", "day", "getSetLocaleDayOfWeek", "getSetISODayOfWeek", "weekdaysRegex", "computeWeekdaysParse", "weekdaysShortRegex", "weekdaysMinRegex", "minPieces", "minp", "shortp", "longp", "hFormat", "kFormat", "meridiem", "lowercase", "matchMeridiem", "kInput", "pos", "pos1", "pos2", "localeIsPM", "defaultLocaleMeridiemParse", "getSetHour", "localeMeridiem", "hours", "minutes", "isLower", "baseConfig", "locales", "localeFamilies", "globalLocale", "commonPrefix", "arr1", "arr2", "minl", "normalizeLocale", "chooseLocale", "names", "j", "next", "split", "loadLocale", "isLocaleNameSane", "oldLocale", "aliasedRequire", "__require", "getSetGlobalLocale", "e", "values", "data", "getLocale", "defineLocale", "updateLocale", "tmpLocale", "listLocales", "checkOverflow", "overflow", "extendedIsoRegex", "basicIsoRegex", "tzRegex", "isoDates", "isoTimes", "aspNetJsonRegex", "rfc2822", "obsOffsets", "configFromISO", "l", "match", "allowTime", "dateFormat", "timeFormat", "tzFormat", "isoDatesLen", "isoTimesLen", "configFromStringAndFormat", "extractFromRFC2822Strings", "yearStr", "monthStr", "dayStr", "hourStr", "minuteStr", "secondStr", "result", "untruncateYear", "preprocessRFC2822", "checkWeekday", "weekdayStr", "parsedInput", "weekdayProvided", "weekdayActual", "calculateOffset", "obsOffset", "militaryOffset", "numOffset", "hm", "configFromRFC2822", "parsedArray", "configFromString", "defaults", "c", "currentDateArray", "nowValue", "configFromArray", "currentDate", "expectedWeekday", "yearToUse", "dayOfYearFromWeekInfo", "w", "weekYear", "temp", "weekdayOverflow", "curWeek", "createLocal", "skipped", "stringLength", "totalParsedInputLength", "era", "meridiemFixWrap", "hour", "isPm", "configFromStringAndArray", "tempConfig", "bestMoment", "scoreToBeat", "currentScore", "validFormatFound", "bestFormatIsValid", "configfLen", "configFromObject", "dayOrDate", "createFromConfig", "prepareConfig", "configFromInput", "prototypeMin", "other", "prototypeMax", "pickBy", "moments", "min", "max", "ordering", "isDurationValid", "unitHasDecimal", "orderLen", "isValid$1", "createInvalid$1", "createDuration", "Duration", "duration", "years", "quarters", "months", "weeks", "days", "seconds", "milliseconds", "isDuration", "absRound", "compareArrays", "array1", "array2", "dontConvert", "lengthDiff", "diffs", "offset", "separator", "offsetFromString", "chunkOffset", "matcher", "matches", "chunk", "parts", "cloneWithOffset", "model", "getDateOffset", "getSetOffset", "keepLocalTime", "keepMinutes", "localAdjust", "addSubtract", "getSetZone", "setOffsetToUTC", "setOffsetToLocal", "setOffsetToParsedOffset", "tZone", "hasAlignedHourOffset", "isDaylightSavingTime", "isDaylightSavingTimeShifted", "isLocal", "isUtcOffset", "isUtc", "aspNetRegex", "isoRegex", "ret", "diffRes", "parseIso", "momentsDifference", "inp", "positiveMomentsDifference", "base", "createAdder", "direction", "period", "dur", "tmp", "isAdding", "updateOffset", "add", "subtract", "isString", "isMomentInput", "isNumberOrStringArray", "isMomentInputObject", "objectTest", "propertyTest", "properties", "property", "propertyLen", "arrayTest", "dataTypeTest", "item", "isCalendarSpec", "getCalendarFormat", "myMoment", "calendar$1", "time", "formats", "sod", "clone", "isAfter", "localInput", "isBefore", "isBetween", "inclusivity", "localFrom", "localTo", "isSame", "inputMs", "isSameOrAfter", "isSameOrBefore", "asFloat", "that", "zoneDelta", "monthDiff", "wholeMonthDiff", "anchor", "anchor2", "adjust", "toString", "toISOString", "keepOffset", "utc", "inspect", "zone", "prefix", "datetime", "suffix", "inputString", "fromNow", "toNow", "newLocaleData", "lang", "MS_PER_SECOND", "MS_PER_MINUTE", "MS_PER_HOUR", "MS_PER_400_YEARS", "mod$1", "dividend", "divisor", "localStartOfDate", "utcStartOfDate", "startOf", "startOfDate", "endOf", "valueOf", "unix", "toDate", "toArray", "toObject", "toJSON", "isValid$2", "parsingFlags", "invalidAt", "creationData", "matchEraAbbr", "matchEraName", "matchEraNarrow", "matchEraYearOrdinal", "localeEras", "eras", "localeErasParse", "eraName", "abbr", "narrow", "localeErasConvertYear", "dir", "getEraName", "getEraNarrow", "getEraAbbr", "getEraYear", "erasNameRegex", "computeErasParse", "erasAbbrRegex", "erasNarrowRegex", "abbrPieces", "namePieces", "narrowPieces", "erasName", "erasAbbr", "erasNarrow", "addWeekYearFormatToken", "getter", "getSetWeekYear", "getSetWeekYearHelper", "getSetISOWeekYear", "getISOWeeksInYear", "getISOWeeksInISOWeekYear", "getWeeksInYear", "weekInfo", "getWeeksInWeekYear", "weeksTarget", "setWeekAll", "dayOfYearData", "getSetQuarter", "getSetDayOfMonth", "getSetDayOfYear", "getSetMinute", "getSetSecond", "getSetMillisecond", "parseMs", "getZoneAbbr", "getZoneName", "proto", "createUnix", "createInZone", "preParsePostFormat", "proto$1", "get$1", "index", "field", "setter", "listMonthsImpl", "out", "listWeekdaysImpl", "localeSorted", "shift", "listMonths", "listMonthsShort", "listWeekdays", "listWeekdaysShort", "listWeekdaysMin", "mathAbs", "abs", "addSubtract$1", "add$1", "subtract$1", "absCeil", "bubble", "monthsFromDays", "monthsToDays", "daysToMonths", "as", "makeAs", "alias", "asMilliseconds", "asSeconds", "asMinutes", "asHours", "asDays", "asWeeks", "asMonths", "asQuarters", "asYears", "valueOf$1", "clone$1", "get$2", "makeGetter", "round", "thresholds", "substituteTimeAgo", "relativeTime$1", "posNegDuration", "getSetRelativeTimeRounding", "roundingFunction", "getSetRelativeTimeThreshold", "threshold", "limit", "humanize", "argWithSuffix", "argThresholds", "withSuffix", "th", "abs$1", "toISOString$1", "total", "totalSign", "ymSign", "daysSign", "hmsSign", "proto$2", "require_react_jsx_runtime_production", "__commonJSMin", "exports", "REACT_ELEMENT_TYPE", "REACT_FRAGMENT_TYPE", "jsxProd", "type", "config", "maybeKey", "key", "propName", "require_jsx_runtime", "__commonJSMin", "exports", "module", "import_client", "KyError", "__publicField", "HTTPError", "KyError", "response", "request", "options", "_a", "code", "title", "status", "reason", "__publicField", "NetworkError", "KyError", "request", "options", "__publicField", "NonError", "value", "message", "e", "__publicField", "ForceRetryError", "KyError", "options", "cause", "NonError", "__publicField", "SchemaValidationError", "issues", "__publicField", "TimeoutError", "KyError", "request", "__publicField", "supportsRequestStreams", "duplexAccessed", "hasContentType", "supportsReadableStream", "supportsRequest", "error", "supportsAbortController", "supportsAbortSignal", "supportsResponseStreams", "supportsFormData", "requestMethods", "validate", "responseTypes", "maxSafeTimeout", "usualFormBoundarySize", "stop", "RetryMarker", "options", "__publicField", "retry", "kyOptionKeys", "requestOptionsRegistry", "encoder", "getBodySize", "body", "size", "key", "value", "usualFormBoundarySize", "withProgress", "stream", "totalBytes", "onProgress", "previousChunk", "transferredBytes", "currentChunk", "controller", "percent", "streamResponse", "response", "onDownloadProgress", "responseInit", "streamRequest", "request", "onUploadProgress", "originalBody", "isObject", "value", "replaceSymbol", "getReplaceState", "value", "isObject", "validateAndMerge", "sources", "source", "isObject", "deepMerge", "mergeHeaders", "source1", "source2", "result", "isHeadersInstance", "key", "value", "isPlainObject", "prototype", "cloneShallow", "copy", "deleted", "deletedParametersSymbol", "__spreadValues", "normalizeHeaderObject", "headers", "entry", "mergeHeaderContainers", "newHookValue", "original", "incoming", "property", "_a", "_b", "mergeHooks", "appendSearchParameters", "target", "input", "inputDeleted", "pair", "parameters", "returnValue", "hooks", "searchParameters", "signals", "replaceState", "getReplaceState", "isReplace", "__spreadProps", "hookValue", "headerValue", "supportsAbortSignal", "normalizeRequestMethod", "input", "requestMethods", "retryMethods", "retryStatusCodes", "retryAfterStatusCodes", "defaultRetryOptions", "attemptCount", "normalizeRetryOptions", "retry", "_a", "__spreadProps", "__spreadValues", "normalizedRetry", "method", "value", "timeout", "request", "init", "abortController", "options", "resolve", "reject", "timeoutId", "TimeoutError", "delay", "ms", "signal", "resolve", "reject", "abortHandler", "timeoutId", "findUnknownOptions", "options", "unknownOptions", "key", "requestOptionsRegistry", "kyOptionKeys", "hasSearchParameters", "search", "_a", "deletedParametersSymbol", "objectToString", "isError", "value", "errorMessages", "isRawNetworkError", "error", "message", "stack", "isErrorType", "error", "cls", "isHTTPError", "error", "isErrorType", "HTTPError", "isNetworkError", "NetworkError", "isTimeoutError", "TimeoutError", "maxErrorResponseBodySize", "prefixUrlRenamedErrorMessage", "timedOutResponseData", "createTextDecoder", "contentType", "_a", "match", "charset", "e", "invalidSchemaMessage", "cloneRetryOptions", "retry", "__spreadValues", "objectToString", "isRequestInstance", "value", "isResponseInstance", "cloneSearchParametersForInitHook", "searchParameters", "parameter", "cloneShallow", "cloneInitHookOptions", "options", "clonedOptions", "__spreadProps", "validateJsonWithSchema", "jsonValue", "schema", "standardSchema", "validationResult", "SchemaValidationError", "_Ky_static", "normalizeSearchParams_fn", "_abortController", "_retryCount", "_input", "_options", "_originalRequest", "_userProvidedAbortSignal", "_beforeRetryHookErrors", "_cachedNormalizedOptions", "_startTime", "_returnedResponseFromBeforeRetryHook", "_responseRequests", "_Ky_instances", "calculateDelay_fn", "calculateRetryDelay_fn", "decorateResponse_fn", "getResponseData_fn", "getErrorDataTimeout_fn", "isJsonContentType_fn", "readResponseText_fn", "parseJson_fn", "cancelBody_fn", "cancelResponseBody_fn", "createManagedSignal_fn", "throwIfTotalTimeoutExhausted_fn", "runBeforeRequestHooks_fn", "runAfterResponseHooks_fn", "retry_fn", "retryFromError_fn", "consumeReturnedResponseFromBeforeRetryHook_fn", "fetch_fn", "getRemainingTotalTimeout_fn", "getCurrentTime_fn", "getNormalizedOptions_fn", "assignRequest_fn", "getResponseRequest_fn", "setResponseRequest_fn", "wrapRequestWithUploadProgress_fn", "_Ky", "input", "__privateAdd", "__publicField", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "_j", "_k", "_l", "_m", "_n", "__privateSet", "mergeHeaders", "__privateGet", "mergeHooks", "normalizeRequestMethod", "normalizeRetryOptions", "normalizedPrefix", "normalizedInput", "absoluteInput", "supportsAbortController", "supportsAbortSignal", "__privateMethod", "supportsRequestStreams", "userProvidedContentType", "supportsFormData", "hasSearchParameters", "url", "deleted", "deletedParametersSymbol", "key", "stringSearchParameters", "optionsSearchParameters", "initHooks", "initHookOptions", "hook", "ky", "function_", "maxSafeTimeout", "beforeRequestResponse", "response", "responseFromHook", "error", "ForceRetryError", "retriedResponse", "currentResponse", "httpError", "HTTPError", "errorToThrow", "supportsResponseStreams", "progressResponse", "streamResponse", "result", "processedError", "hookResult", "originalRequest", "type", "mimeType", "responseTypes", "text", "searchParams", "retryDelay", "jitteredDelay", "errorObject", "NonError", "isTimeoutError", "isHTTPError", "retryAfter", "after", "isNetworkError", "request", "data", "errorDataTimeout", "remainingTotal", "TimeoutError", "timeoutMs", "body", "reader", "decoder", "chunks", "totalBytes", "readAll", "done", "timeoutPromise", "resolve", "timeoutId", "remaining", "responseRequest", "hookResponse", "modifiedResponse", "RetryMarker", "nextResponse", "delayOptions", "remainingTimeout", "delay", "customRequest", "hookError", "__privateWrapper", "stop", "nonRequestOptions", "findUnknownOptions", "retryRequest", "effectiveTimeout", "timeout", "isRawNetworkError", "NetworkError", "elapsed", "hooks", "json", "parseJson", "stringifyJson", "totalTimeout", "throwHttpErrors", "fetch", "normalizedOptions", "__objRest", "originalBody", "streamRequest", "Ky", "createInstance", "defaults", "ky", "input", "options", "Ky", "validateAndMerge", "method", "requestMethods", "newDefaults", "stop", "retry", "distribution_default", "import_moment", "app", "moment8601", "s", "m", "moment", "s1", "s2", "mmoment8601", "e", "closeWindow", "win", "setFocus", "elemId", "_a", "toLocaleDateString", "dateString", "withCsrf", "headers", "a", "app", "h", "urlFor", "path", "toRelativePath", "urlOrPath", "u", "rel", "e", "request", "method", "opts", "_a", "distribution_default", "toggleStar", "bid", "action", "destroy", "markRead", "archiveBookmark", "editBookmark", "bm", "res", "editNote", "note", "lookupTitle", "getTagCloud", "mode", "updateTagCloudMode", "fetchTagSuggestions", "data", "destroyNote", "nid", "editAccountSettings", "us", "logout", "import_react", "import_jsx_runtime", "AccountSettingsView", "initial", "us", "setUs", "React", "archiveDisabled", "archiveDisabledTitle", "update", "next", "editAccountSettings", "e", "__spreadProps", "__spreadValues", "import_react", "import_react", "TAG_SUGGESTION_DEBOUNCE_MS", "useTagSuggestions", "enabled", "tags", "onTagsUpdate", "maxSuggestions", "suggestionState", "setSuggestionState", "React", "tagSuggestionRequestId", "tagSuggestionDebounceRef", "tagInputRef", "cancelPendingSuggestions", "closeSuggestions", "onTagsChange", "e", "value", "selectionStart", "selectionEnd", "isWhitespaceOnlyEdit", "activeToken", "getActiveTagToken", "normalizedTagTerms", "getNormalizedTagTerms", "activeTokenNormalized", "shouldExcludeActiveToken", "tag", "payload", "requestId", "response", "fetchTagSuggestions", "items", "anchor", "measureCaretPosition", "applySuggestion", "term", "input", "next", "replaceTokenAtRange", "onTagsKeyDown", "current", "__spreadProps", "__spreadValues", "selected", "onTagsSelect", "onSuggestionHover", "index", "caret", "boundedCaret", "start", "end", "token", "style", "mirror", "prefix", "marker", "left", "top", "range", "replacement", "suffix", "inserted", "previous", "prevEnd", "nextEnd", "removed", "added", "isSpacesOnly", "unsafeDecode", "str", "parseQueryString", "searchOrHash", "_a", "first", "parts", "x", "decode", "s", "out", "kv", "k", "rest", "curQuerystring", "lookupQueryStringValue", "qs", "key", "val", "encodeTag", "tag", "fromNullableStr", "normalizeTags", "tags", "import_react", "import_jsx_runtime", "MAX_SUGGESTION_TERM_RENDER_LENGTH", "TagSuggestionsDropdown", "suggestionState", "onHover", "onPick", "item", "index", "selected", "displayTerm", "truncateSuggestionTerm", "e", "renderHighlightedSuggestion", "term", "query", "lowerTerm", "lowerQuery", "idx", "before", "match", "after", "import_jsx_runtime", "AddForm", "initial", "_a", "_b", "_c", "a", "app", "bm", "setBm", "React", "editBm", "setEditBm", "deleteAsk", "setDeleteAsk", "loading", "setLoading", "destroyed", "setDestroyed", "apiError", "setApiError", "suggestEnabled", "tagInputRef", "suggestionState", "closeSuggestions", "onTagsChange", "onTagsKeyDown", "onTagsSelect", "onSuggestionHover", "onSuggestionPick", "useTagSuggestions", "tags", "x", "__spreadProps", "__spreadValues", "mm", "mmoment8601", "onFetchTitle", "title", "lookupTitle", "onDestroy", "destroy", "onSubmit", "e", "editBm2", "normalizeTags", "res", "editBookmark", "qs", "curQuerystring", "next", "lookupQueryStringValue", "ref", "org", "closeWindow", "TagSuggestionsDropdown", "import_react", "createStoreImpl", "createState", "state", "listeners", "setState", "partial", "replace", "nextState", "previousState", "listener", "getState", "api", "initialState", "createStore", "import_react", "identity", "arg", "useStore", "api", "selector", "slice", "React", "createImpl", "createState", "createStore", "useBoundStore", "create", "useBookmarksStore", "create", "set", "bmarks", "bid", "s", "b", "bm", "import_react", "entries", "Object", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "freeze", "seal", "create", "_ref", "Reflect", "apply", "construct", "x", "func", "thisArg", "_len", "arguments", "length", "args", "Array", "_key", "Func", "_len2", "_key2", "arrayForEach", "unapply", "prototype", "forEach", "arrayLastIndexOf", "lastIndexOf", "arrayPop", "pop", "arrayPush", "push", "arraySplice", "splice", "arrayIsArray", "isArray", "stringToLowerCase", "String", "toLowerCase", "stringToString", "toString", "stringMatch", "match", "stringReplace", "replace", "stringIndexOf", "indexOf", "stringTrim", "trim", "numberToString", "Number", "booleanToString", "Boolean", "bigintToString", "BigInt", "symbolToString", "Symbol", "objectHasOwnProperty", "hasOwnProperty", "objectToString", "regExpTest", "RegExp", "test", "typeErrorCreate", "unconstruct", "TypeError", "lastIndex", "_len3", "_key3", "_len4", "_key4", "addToSet", "set", "array", "transformCaseFunc", "l", "element", "lcElement", "cleanArray", "index", "clone", "object", "newObject", "_ref2", "_ref3", "_slicedToArray", "property", "value", "constructor", "stringifyValue", "valueAsRecord", "valueToString", "lookupGetter", "stringified", "prop", "desc", "get", "fallbackValue", "isRegex", "_unused", "html", "svg", "svgFilters", "svgDisallowed", "mathMl", "mathMlDisallowed", "text", "xml", "MUSTACHE_EXPR", "ERB_EXPR", "TMPLIT_EXPR", "DATA_ATTR", "ARIA_ATTR", "IS_ALLOWED_URI", "IS_SCRIPT_OR_DATA", "ATTR_WHITESPACE", "DOCTYPE_NAME", "CUSTOM_ELEMENT", "NODE_TYPE", "attribute", "cdataSection", "entityReference", "entityNode", "progressingInstruction", "comment", "document", "documentType", "documentFragment", "notation", "getGlobal", "window", "_createTrustedTypesPolicy", "trustedTypes", "purifyHostElement", "createPolicy", "suffix", "ATTR_NAME", "hasAttribute", "getAttribute", "policyName", "createHTML", "createScriptURL", "scriptUrl", "_", "console", "warn", "_createHooksMap", "afterSanitizeAttributes", "afterSanitizeElements", "afterSanitizeShadowDOM", "beforeSanitizeAttributes", "beforeSanitizeElements", "beforeSanitizeShadowDOM", "uponSanitizeAttribute", "uponSanitizeElement", "uponSanitizeShadowNode", "createDOMPurify", "undefined", "DOMPurify", "root", "version", "VERSION", "removed", "nodeType", "Element", "isSupported", "originalDocument", "currentScript", "DocumentFragment", "HTMLTemplateElement", "Node", "NodeFilter", "_window$NamedNodeMap", "NamedNodeMap", "MozNamedAttrMap", "HTMLFormElement", "DOMParser", "ElementPrototype", "cloneNode", "remove", "getNextSibling", "getChildNodes", "getParentNode", "getShadowRoot", "getAttributes", "getNodeType", "getNodeName", "template", "createElement", "content", "ownerDocument", "trustedTypesPolicy", "emptyHTML", "_document", "implementation", "createNodeIterator", "createDocumentFragment", "getElementsByTagName", "importNode", "hooks", "createHTMLDocument", "EXPRESSIONS", "ALLOWED_TAGS", "DEFAULT_ALLOWED_TAGS", "TAGS", "ALLOWED_ATTR", "DEFAULT_ALLOWED_ATTR", "ATTRS", "CUSTOM_ELEMENT_HANDLING", "tagNameCheck", "writable", "configurable", "enumerable", "attributeNameCheck", "allowCustomizedBuiltInElements", "FORBID_TAGS", "FORBID_ATTR", "EXTRA_ELEMENT_HANDLING", "tagCheck", "attributeCheck", "ALLOW_ARIA_ATTR", "ALLOW_DATA_ATTR", "ALLOW_UNKNOWN_PROTOCOLS", "ALLOW_SELF_CLOSE_IN_ATTR", "SAFE_FOR_TEMPLATES", "SAFE_FOR_XML", "WHOLE_DOCUMENT", "SET_CONFIG", "FORCE_BODY", "RETURN_DOM", "RETURN_DOM_FRAGMENT", "RETURN_TRUSTED_TYPE", "SANITIZE_DOM", "SANITIZE_NAMED_PROPS", "SANITIZE_NAMED_PROPS_PREFIX", "KEEP_CONTENT", "IN_PLACE", "USE_PROFILES", "FORBID_CONTENTS", "DEFAULT_FORBID_CONTENTS", "DATA_URI_TAGS", "DEFAULT_DATA_URI_TAGS", "URI_SAFE_ATTRIBUTES", "DEFAULT_URI_SAFE_ATTRIBUTES", "MATHML_NAMESPACE", "SVG_NAMESPACE", "HTML_NAMESPACE", "NAMESPACE", "IS_EMPTY_INPUT", "ALLOWED_NAMESPACES", "DEFAULT_ALLOWED_NAMESPACES", "MATHML_TEXT_INTEGRATION_POINTS", "HTML_INTEGRATION_POINTS", "COMMON_SVG_AND_HTML_ELEMENTS", "PARSER_MEDIA_TYPE", "SUPPORTED_PARSER_MEDIA_TYPES", "DEFAULT_PARSER_MEDIA_TYPE", "CONFIG", "formElement", "isRegexOrFunction", "testValue", "Function", "_parseConfig", "cfg", "ADD_URI_SAFE_ATTR", "ADD_DATA_URI_TAGS", "ALLOWED_URI_REGEXP", "customElementHandling", "ADD_TAGS", "ADD_ATTR", "ADD_FORBID_CONTENTS", "table", "tbody", "TRUSTED_TYPES_POLICY", "ALL_SVG_TAGS", "ALL_MATHML_TAGS", "_checkValidNamespace", "parent", "tagName", "namespaceURI", "parentTagName", "_forceRemove", "node", "removeChild", "_removeAttribute", "name", "getAttributeNode", "from", "removeAttribute", "setAttribute", "_initDocument", "dirty", "doc", "leadingWhitespace", "matches", "dirtyPayload", "parseFromString", "documentElement", "createDocument", "innerHTML", "body", "insertBefore", "createTextNode", "childNodes", "call", "_createNodeIterator", "SHOW_ELEMENT", "SHOW_COMMENT", "SHOW_TEXT", "SHOW_PROCESSING_INSTRUCTION", "SHOW_CDATA_SECTION", "_scrubTemplateExpressions", "normalize", "walker", "currentNode", "nextNode", "data", "expr", "_isClobbered", "realTagName", "nodeName", "textContent", "attributes", "hasChildNodes", "_isDocumentFragment", "_isNode", "_executeHooks", "hook", "_sanitizeElements", "allowedTags", "firstElementChild", "_isBasicCustomElement", "parentNode", "childCount", "i", "childClone", "_isValidAttribute", "lcTag", "lcName", "nameIsPermitted", "RESERVED_CUSTOM_ELEMENT_NAMES", "_sanitizeAttributes", "hookEvent", "attrName", "attrValue", "keepAttr", "allowedAttributes", "forceKeepAttr", "attr", "initValue", "getAttributeType", "setAttributeNS", "_sanitizeShadowDOM", "fragment", "shadowNode", "shadowIterator", "innerSr", "shadowRoot", "_sanitizeAttachedShadowRoots", "sr", "snapshot", "child", "rootName", "sanitize", "importedNode", "returnNode", "nn", "appendChild", "firstChild", "nodeIterator", "shadowroot", "shadowrootmode", "serializedHTML", "outerHTML", "doctype", "setConfig", "clearConfig", "isValidAttribute", "tag", "addHook", "entryPoint", "hookFunction", "removeHook", "removeHooks", "removeAllHooks", "purify", "_getDefaults", "_defaults", "changeDefaults", "newDefaults", "noopTest", "cachedIndentRegex", "createRegex", "cache", "indent", "cacheIndex", "regex", "edit", "opt", "source", "obj", "name", "val", "valSource", "other", "supportsLookbehind", "a", "e", "bull", "newline", "blockCode", "fences", "hr", "heading", "bullet", "lheadingCore", "lheading", "lheadingGfm", "_paragraph", "blockText", "_blockLabel", "def", "list", "_tag", "_comment", "html", "paragraph", "blockquote", "blockNormal", "gfmTable", "blockGfm", "__spreadProps", "__spreadValues", "blockPedantic", "escape", "inlineCode", "br", "inlineText", "_punctuation", "_punctuationOrSpace", "_notPunctuationOrSpace", "punctuation", "_punctuationGfmStrongEm", "_punctuationOrSpaceGfmStrongEm", "_notPunctuationOrSpaceGfmStrongEm", "blockSkip", "emStrongLDelimCore", "emStrongLDelim", "emStrongLDelimGfm", "emStrongRDelimAstCore", "emStrongRDelimAst", "emStrongRDelimAstGfm", "emStrongRDelimUnd", "delLDelim", "delRDelimCore", "delRDelim", "anyPunctuation", "autolink", "_inlineComment", "tag", "_inlineLabel", "link", "reflink", "nolink", "reflinkSearch", "_caseInsensitiveProtocol", "inlineNormal", "inlinePedantic", "inlineGfm", "inlineBreaks", "block", "inline", "escapeReplacements", "getEscapeReplacement", "ch", "escapeHtmlEntities", "encode", "cleanUrl", "href", "splitCells", "tableRow", "count", "row", "match", "offset", "str", "escaped", "curr", "cells", "i", "rtrim", "c", "invert", "l", "suffLen", "currChar", "trimTrailingBlankLines", "lines", "end", "findClosingBracket", "b", "level", "expandTabs", "line", "col", "expanded", "char", "added", "outputLink", "cap", "raw", "lexer", "rules", "title", "text", "token", "indentCodeCompensation", "matchIndentToCode", "indentToCode", "node", "matchIndentInNode", "indentInNode", "_Tokenizer", "options", "__publicField", "src", "trimmed", "tokens", "inBlockquote", "currentLines", "currentRaw", "currentText", "top", "lastToken", "oldToken", "newText", "newToken", "isordered", "itemRegex", "endsWithBlankLine", "endEarly", "itemContents", "nextLine", "blankLine", "nextBulletRegex", "hrRegex", "fencesBeginRegex", "headingBeginRegex", "htmlBeginRegex", "blockquoteBeginRegex", "rawLine", "nextLineWithoutTabs", "lastItem", "item", "itemToken", "taskRaw", "checkboxToken", "spacers", "t", "hasMultipleLineBreaks", "headers", "aligns", "rows", "align", "cell", "trimmedUrl", "rtrimSlash", "lastParenIndex", "linkLen", "links", "linkString", "maskedSrc", "prevChar", "lLength", "rDelim", "rLength", "delimTotal", "midDelimTotal", "endReg", "lastCharLength", "hasNonSpaceChars", "hasSpaceCharsOnBothEnds", "prevCapZero", "_b", "_a", "_Lexer", "__Lexer", "next", "lastParagraphClipped", "srcLength", "extTokenizer", "cutSrc", "_c", "startIndex", "tempSrc", "tempStart", "getStartIndex", "keepPrevChar", "_e", "_d", "_f", "byte", "errMsg", "_Renderer", "lang", "langString", "code", "depth", "ordered", "start", "body", "j", "type", "startAttr", "checked", "header", "k", "content", "cleanHref", "out", "_TextRenderer", "_Parser", "__Parser", "anyToken", "genericToken", "ret", "renderer", "_Hooks", "markdown", "Marked", "args", "callback", "values", "tableToken", "listToken", "childTokens", "extensions", "pack", "opts", "ext", "prevRenderer", "extLevel", "prop", "rendererProp", "rendererFunc", "tokenizer", "tokenizerProp", "tokenizerFunc", "prevTokenizer", "hooks", "hooksProp", "hooksFunc", "prevHook", "arg", "walkTokens", "packWalktokens", "blockType", "origOpt", "throwError", "processedSrc", "processedTokens", "silent", "async", "msg", "markedInstance", "marked", "setOptions", "use", "parseInline", "parser", "_Parser", "lexer", "_Lexer", "import_react", "import_jsx_runtime", "g", "Markdown", "text", "className", "html", "React", "parsed", "purify", "import_jsx_runtime", "BMark", "initial", "onNotifyRemove", "onUpdated", "app", "bm", "setBm", "React", "editBm", "setEditBm", "deleteAsk", "setDeleteAsk", "edit", "setEdit", "loading", "setLoading", "archiving", "setArchiving", "apiError", "setApiError", "tagInputId", "linkToFilterSingle", "slug", "fromNullableStr", "linkToFilterTag", "tag", "encodeTag", "shdate", "toLocaleDateString", "shdatetime", "suggestEnabled", "tagInputRef", "suggestionState", "closeSuggestions", "onTagsChange", "onTagsKeyDown", "onTagsSelect", "onSuggestionHover", "onSuggestionPick", "useTagSuggestions", "tags", "x", "__spreadProps", "__spreadValues", "onStar", "next", "toggleStar", "updated", "onDestroy", "destroy", "onMarkRead", "markRead", "startEdit", "setFocus", "onFetchTitle", "title", "lookupTitle", "onArchive", "archiveBookmark", "onSubmit", "e", "editBm2", "normalizeTags", "res", "editBookmark", "archivingDisabled", "TagSuggestionsDropdown", "Markdown", "import_jsx_runtime", "BList", "initial", "bmarks", "useBookmarksStore", "s", "setAll", "removeById", "upsert", "React", "b", "BMark", "bm", "import_react", "import_jsx_runtime", "toTextareaPreview", "input", "lines", "x", "idx", "React", "NList", "initial", "a", "app", "linkToFilterSingle", "slug", "fromNullableStr", "note", "_a", "_b", "mm", "mmoment8601", "import_react", "import_jsx_runtime", "toTextarea", "input", "lines", "x", "idx", "React", "NNote", "initial", "_a", "_b", "a", "app", "note", "setNote", "editNoteState", "setEditNoteState", "deleteAsk", "setDeleteAsk", "edit", "setEdit", "destroyed", "setDestroyed", "apiError", "setApiError", "notetextid", "mm", "mmoment8601", "startEdit", "next", "qs", "curQuerystring", "q", "lookupQueryStringValue", "closeWindow", "setFocus", "onDestroy", "destroyNote", "onSubmit", "e", "res", "editNote", "ref", "org", "fromNullableStr", "__spreadProps", "__spreadValues", "Markdown", "import_react", "useTagCloudStore", "create", "set", "mode", "tagcloud", "tagCloudModeToF", "mode", "n", "s", "tags", "tagCloudModeFromF", "isExpanded", "isRelated", "setExpanded", "expanded", "__spreadProps", "__spreadValues", "import_jsx_runtime", "rescale", "f", "v", "m", "h", "denom", "toArray", "curtags", "n", "tagcloud", "a", "app", "cur", "t", "entries", "x", "y", "linkToFilterTag", "rest", "fromNullableStr", "out", "k", "kLower", "fontsize", "opacity", "style", "includeExclude", "encodeTag", "React", "TagCloud", "initialMode", "mode", "useTagCloudStore", "s", "setMode", "setTagCloud", "fetchTagCloud", "tc", "getTagCloud", "tagCloudModeFromF", "modetop", "isExpanded", "modelb1", "modelb2", "modelb5", "modelb10", "modelb20", "values", "onExpanded", "expanded", "next", "setExpanded", "updateTagCloudMode", "onChangeMode", "isRelated", "import_jsx_runtime", "selectEl", "selector", "viewRendered", "el", "logoutE", "logout", "renderBookmarks", "renderElSelector", "bmarks", "BList", "renderTagCloud", "tagCloudMode", "TagCloud", "tagCloudModeToF", "renderAddForm", "bmark", "AddForm", "renderNotes", "notes", "NList", "renderNote", "note", "NNote", "renderAccountSettings", "accountSettings", "AccountSettingsView", "initColorSchemeToggle", "isColorSchemePreference", "value", "getEffectiveColorScheme", "explicit", "applyColorSchemePreference", "preference", "colorSchemeStorageKey", "stored", "toggleEl", "e", "next"]+}
+ static/js/app-F6AR6563.min.js.map.gz view
binary file changed (absent → 404313 bytes)
− static/js/app-OTQLPXA7.min.js
@@ -1,72 +0,0 @@-var Ok=Object.create;var df=Object.defineProperty,Dk=Object.defineProperties,Rk=Object.getOwnPropertyDescriptor,Nk=Object.getOwnPropertyDescriptors,zk=Object.getOwnPropertyNames,Cr=Object.getOwnPropertySymbols,Ck=Object.getPrototypeOf,hf=Object.prototype.hasOwnProperty,Sp=Object.prototype.propertyIsEnumerable;var Tp=e=>{throw TypeError(e)};var ff=(e,t,n)=>t in e?df(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t)=>{for(var n in t||(t={}))hf.call(t,n)&&ff(e,n,t[n]);if(Cr)for(var n of Cr(t))Sp.call(t,n)&&ff(e,n,t[n]);return e},$=(e,t)=>Dk(e,Nk(t));var _p=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var kp=(e,t)=>{var n={};for(var a in e)hf.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&Cr)for(var a of Cr(e))t.indexOf(a)<0&&Sp.call(e,a)&&(n[a]=e[a]);return n};var Dn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Uk=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of zk(t))!hf.call(e,l)&&l!==n&&df(e,l,{get:()=>t[l],enumerable:!(a=Rk(t,l))||a.enumerable});return e};var ye=(e,t,n)=>(n=e!=null?Ok(Ck(e)):{},Uk(t||!e||!e.__esModule?df(n,"default",{value:e,enumerable:!0}):n,e));var F=(e,t,n)=>ff(e,typeof t!="symbol"?t+"":t,n),mf=(e,t,n)=>t.has(e)||Tp("Cannot "+n);var M=(e,t,n)=>(mf(e,t,"read from private field"),n?n.call(e):t.get(e)),qt=(e,t,n)=>t.has(e)?Tp("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),xt=(e,t,n,a)=>(mf(e,t,"write to private field"),a?a.call(e,n):t.set(e,n),n),j=(e,t,n)=>(mf(e,t,"access private method"),n);var pf=(e,t,n,a)=>({set _(l){xt(e,t,l,n)},get _(){return M(e,t,a)}});var zp=Dn(je=>{"use strict";function vf(e,t){var n=e.length;e.push(t);e:for(;0<n;){var a=n-1>>>1,l=e[a];if(0<Ur(l,t))e[a]=t,e[n]=l,n=a;else break e}}function jn(e){return e.length===0?null:e[0]}function Lr(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var a=0,l=e.length,i=l>>>1;a<i;){var r=2*(a+1)-1,c=e[r],d=r+1,m=e[d];if(0>Ur(c,n))d<l&&0>Ur(m,c)?(e[a]=m,e[d]=n,a=d):(e[a]=c,e[r]=n,a=r);else if(d<l&&0>Ur(m,n))e[a]=m,e[d]=n,a=d;else break e}}return t}function Ur(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}je.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Ep=performance,je.unstable_now=function(){return Ep.now()}):(gf=Date,xp=gf.now(),je.unstable_now=function(){return gf.now()-xp});var Ep,gf,xp,fa=[],ja=[],Yk=1,dn=null,wt=3,Sf=!1,Hu=!1,Bu=!1,Tf=!1,Mp=typeof setTimeout=="function"?setTimeout:null,Op=typeof clearTimeout=="function"?clearTimeout:null,wp=typeof setImmediate<"u"?setImmediate:null;function Yr(e){for(var t=jn(ja);t!==null;){if(t.callback===null)Lr(ja);else if(t.startTime<=e)Lr(ja),t.sortIndex=t.expirationTime,vf(fa,t);else break;t=jn(ja)}}function _f(e){if(Bu=!1,Yr(e),!Hu)if(jn(fa)!==null)Hu=!0,gi||(gi=!0,pi());else{var t=jn(ja);t!==null&&kf(_f,t.startTime-e)}}var gi=!1,qu=-1,Dp=5,Rp=-1;function Np(){return Tf?!0:!(je.unstable_now()-Rp<Dp)}function yf(){if(Tf=!1,gi){var e=je.unstable_now();Rp=e;var t=!0;try{e:{Hu=!1,Bu&&(Bu=!1,Op(qu),qu=-1),Sf=!0;var n=wt;try{t:{for(Yr(e),dn=jn(fa);dn!==null&&!(dn.expirationTime>e&&Np());){var a=dn.callback;if(typeof a=="function"){dn.callback=null,wt=dn.priorityLevel;var l=a(dn.expirationTime<=e);if(e=je.unstable_now(),typeof l=="function"){dn.callback=l,Yr(e),t=!0;break t}dn===jn(fa)&&Lr(fa),Yr(e)}else Lr(fa);dn=jn(fa)}if(dn!==null)t=!0;else{var i=jn(ja);i!==null&&kf(_f,i.startTime-e),t=!1}}break e}finally{dn=null,wt=n,Sf=!1}t=void 0}}finally{t?pi():gi=!1}}}var pi;typeof wp=="function"?pi=function(){wp(yf)}:typeof MessageChannel<"u"?(bf=new MessageChannel,Ap=bf.port2,bf.port1.onmessage=yf,pi=function(){Ap.postMessage(null)}):pi=function(){Mp(yf,0)};var bf,Ap;function kf(e,t){qu=Mp(function(){e(je.unstable_now())},t)}je.unstable_IdlePriority=5;je.unstable_ImmediatePriority=1;je.unstable_LowPriority=4;je.unstable_NormalPriority=3;je.unstable_Profiling=null;je.unstable_UserBlockingPriority=2;je.unstable_cancelCallback=function(e){e.callback=null};je.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Dp=0<e?Math.floor(1e3/e):5};je.unstable_getCurrentPriorityLevel=function(){return wt};je.unstable_next=function(e){switch(wt){case 1:case 2:case 3:var t=3;break;default:t=wt}var n=wt;wt=t;try{return e()}finally{wt=n}};je.unstable_requestPaint=function(){Tf=!0};je.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=wt;wt=e;try{return t()}finally{wt=n}};je.unstable_scheduleCallback=function(e,t,n){var a=je.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?a+n:a):n=a,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return l=n+l,e={id:Yk++,callback:t,priorityLevel:e,startTime:n,expirationTime:l,sortIndex:-1},n>a?(e.sortIndex=n,vf(ja,e),jn(fa)===null&&e===jn(ja)&&(Bu?(Op(qu),qu=-1):Bu=!0,kf(_f,n-a))):(e.sortIndex=l,vf(fa,e),Hu||Sf||(Hu=!0,gi||(gi=!0,pi()))),e};je.unstable_shouldYield=Np;je.unstable_wrapCallback=function(e){var t=wt;return function(){var n=wt;wt=t;try{return e.apply(this,arguments)}finally{wt=n}}}});var Up=Dn((E2,Cp)=>{"use strict";Cp.exports=zp()});var Xp=Dn(ae=>{"use strict";var wf=Symbol.for("react.transitional.element"),Lk=Symbol.for("react.portal"),Hk=Symbol.for("react.fragment"),Bk=Symbol.for("react.strict_mode"),qk=Symbol.for("react.profiler"),Gk=Symbol.for("react.consumer"),jk=Symbol.for("react.context"),Vk=Symbol.for("react.forward_ref"),Zk=Symbol.for("react.suspense"),Qk=Symbol.for("react.memo"),qp=Symbol.for("react.lazy"),Xk=Symbol.for("react.activity"),Yp=Symbol.iterator;function Fk(e){return e===null||typeof e!="object"?null:(e=Yp&&e[Yp]||e["@@iterator"],typeof e=="function"?e:null)}var Gp={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jp=Object.assign,Vp={};function bi(e,t,n){this.props=e,this.context=t,this.refs=Vp,this.updater=n||Gp}bi.prototype.isReactComponent={};bi.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};bi.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Zp(){}Zp.prototype=bi.prototype;function Af(e,t,n){this.props=e,this.context=t,this.refs=Vp,this.updater=n||Gp}var Mf=Af.prototype=new Zp;Mf.constructor=Af;jp(Mf,bi.prototype);Mf.isPureReactComponent=!0;var Lp=Array.isArray;function xf(){}var Ye={H:null,A:null,T:null,S:null},Qp=Object.prototype.hasOwnProperty;function Of(e,t,n){var a=n.ref;return{$$typeof:wf,type:e,key:t,ref:a!==void 0?a:null,props:n}}function Kk(e,t){return Of(e.type,t,e.props)}function Df(e){return typeof e=="object"&&e!==null&&e.$$typeof===wf}function Jk(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var Hp=/\/+/g;function Ef(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Jk(""+e.key):t.toString(36)}function Wk(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(xf,xf):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function yi(e,t,n,a,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var r=!1;if(e===null)r=!0;else switch(i){case"bigint":case"string":case"number":r=!0;break;case"object":switch(e.$$typeof){case wf:case Lk:r=!0;break;case qp:return r=e._init,yi(r(e._payload),t,n,a,l)}}if(r)return l=l(e),r=a===""?"."+Ef(e,0):a,Lp(l)?(n="",r!=null&&(n=r.replace(Hp,"$&/")+"/"),yi(l,t,n,"",function(m){return m})):l!=null&&(Df(l)&&(l=Kk(l,n+(l.key==null||e&&e.key===l.key?"":(""+l.key).replace(Hp,"$&/")+"/")+r)),t.push(l)),1;r=0;var c=a===""?".":a+":";if(Lp(e))for(var d=0;d<e.length;d++)a=e[d],i=c+Ef(a,d),r+=yi(a,t,n,i,l);else if(d=Fk(e),typeof d=="function")for(e=d.call(e),d=0;!(a=e.next()).done;)a=a.value,i=c+Ef(a,d++),r+=yi(a,t,n,i,l);else if(i==="object"){if(typeof e.then=="function")return yi(Wk(e),t,n,a,l);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return r}function Hr(e,t,n){if(e==null)return e;var a=[],l=0;return yi(e,a,"","",function(i){return t.call(n,i,l++)}),a}function $k(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Bp=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Ik={map:Hr,forEach:function(e,t,n){Hr(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Hr(e,function(){t++}),t},toArray:function(e){return Hr(e,function(t){return t})||[]},only:function(e){if(!Df(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ae.Activity=Xk;ae.Children=Ik;ae.Component=bi;ae.Fragment=Hk;ae.Profiler=qk;ae.PureComponent=Af;ae.StrictMode=Bk;ae.Suspense=Zk;ae.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Ye;ae.__COMPILER_RUNTIME={__proto__:null,c:function(e){return Ye.H.useMemoCache(e)}};ae.cache=function(e){return function(){return e.apply(null,arguments)}};ae.cacheSignal=function(){return null};ae.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var a=jp({},e.props),l=e.key;if(t!=null)for(i in t.key!==void 0&&(l=""+t.key),t)!Qp.call(t,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&t.ref===void 0||(a[i]=t[i]);var i=arguments.length-2;if(i===1)a.children=n;else if(1<i){for(var r=Array(i),c=0;c<i;c++)r[c]=arguments[c+2];a.children=r}return Of(e.type,l,a)};ae.createContext=function(e){return e={$$typeof:jk,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:Gk,_context:e},e};ae.createElement=function(e,t,n){var a,l={},i=null;if(t!=null)for(a in t.key!==void 0&&(i=""+t.key),t)Qp.call(t,a)&&a!=="key"&&a!=="__self"&&a!=="__source"&&(l[a]=t[a]);var r=arguments.length-2;if(r===1)l.children=n;else if(1<r){for(var c=Array(r),d=0;d<r;d++)c[d]=arguments[d+2];l.children=c}if(e&&e.defaultProps)for(a in r=e.defaultProps,r)l[a]===void 0&&(l[a]=r[a]);return Of(e,i,l)};ae.createRef=function(){return{current:null}};ae.forwardRef=function(e){return{$$typeof:Vk,render:e}};ae.isValidElement=Df;ae.lazy=function(e){return{$$typeof:qp,_payload:{_status:-1,_result:e},_init:$k}};ae.memo=function(e,t){return{$$typeof:Qk,type:e,compare:t===void 0?null:t}};ae.startTransition=function(e){var t=Ye.T,n={};Ye.T=n;try{var a=e(),l=Ye.S;l!==null&&l(n,a),typeof a=="object"&&a!==null&&typeof a.then=="function"&&a.then(xf,Bp)}catch(i){Bp(i)}finally{t!==null&&n.types!==null&&(t.types=n.types),Ye.T=t}};ae.unstable_useCacheRefresh=function(){return Ye.H.useCacheRefresh()};ae.use=function(e){return Ye.H.use(e)};ae.useActionState=function(e,t,n){return Ye.H.useActionState(e,t,n)};ae.useCallback=function(e,t){return Ye.H.useCallback(e,t)};ae.useContext=function(e){return Ye.H.useContext(e)};ae.useDebugValue=function(){};ae.useDeferredValue=function(e,t){return Ye.H.useDeferredValue(e,t)};ae.useEffect=function(e,t){return Ye.H.useEffect(e,t)};ae.useEffectEvent=function(e){return Ye.H.useEffectEvent(e)};ae.useId=function(){return Ye.H.useId()};ae.useImperativeHandle=function(e,t,n){return Ye.H.useImperativeHandle(e,t,n)};ae.useInsertionEffect=function(e,t){return Ye.H.useInsertionEffect(e,t)};ae.useLayoutEffect=function(e,t){return Ye.H.useLayoutEffect(e,t)};ae.useMemo=function(e,t){return Ye.H.useMemo(e,t)};ae.useOptimistic=function(e,t){return Ye.H.useOptimistic(e,t)};ae.useReducer=function(e,t,n){return Ye.H.useReducer(e,t,n)};ae.useRef=function(e){return Ye.H.useRef(e)};ae.useState=function(e){return Ye.H.useState(e)};ae.useSyncExternalStore=function(e,t,n){return Ye.H.useSyncExternalStore(e,t,n)};ae.useTransition=function(){return Ye.H.useTransition()};ae.version="19.2.5"});var Gt=Dn((w2,Fp)=>{"use strict";Fp.exports=Xp()});var Jp=Dn(Ut=>{"use strict";var Pk=Gt();function Kp(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Va(){}var Ct={d:{f:Va,r:function(){throw Error(Kp(522))},D:Va,C:Va,L:Va,m:Va,X:Va,S:Va,M:Va},p:0,findDOMNode:null},eE=Symbol.for("react.portal");function tE(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:eE,key:a==null?null:""+a,children:e,containerInfo:t,implementation:n}}var Gu=Pk.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function Br(e,t){if(e==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}Ut.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Ct;Ut.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(Kp(299));return tE(e,t,null,n)};Ut.flushSync=function(e){var t=Gu.T,n=Ct.p;try{if(Gu.T=null,Ct.p=2,e)return e()}finally{Gu.T=t,Ct.p=n,Ct.d.f()}};Ut.preconnect=function(e,t){typeof e=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,Ct.d.C(e,t))};Ut.prefetchDNS=function(e){typeof e=="string"&&Ct.d.D(e)};Ut.preinit=function(e,t){if(typeof e=="string"&&t&&typeof t.as=="string"){var n=t.as,a=Br(n,t.crossOrigin),l=typeof t.integrity=="string"?t.integrity:void 0,i=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;n==="style"?Ct.d.S(e,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:a,integrity:l,fetchPriority:i}):n==="script"&&Ct.d.X(e,{crossOrigin:a,integrity:l,fetchPriority:i,nonce:typeof t.nonce=="string"?t.nonce:void 0})}};Ut.preinitModule=function(e,t){if(typeof e=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var n=Br(t.as,t.crossOrigin);Ct.d.M(e,{crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&Ct.d.M(e)};Ut.preload=function(e,t){if(typeof e=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var n=t.as,a=Br(n,t.crossOrigin);Ct.d.L(e,n,{crossOrigin:a,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}};Ut.preloadModule=function(e,t){if(typeof e=="string")if(t){var n=Br(t.as,t.crossOrigin);Ct.d.m(e,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else Ct.d.m(e)};Ut.requestFormReset=function(e){Ct.d.r(e)};Ut.unstable_batchedUpdates=function(e,t){return e(t)};Ut.useFormState=function(e,t,n){return Gu.H.useFormState(e,t,n)};Ut.useFormStatus=function(){return Gu.H.useHostTransitionStatus()};Ut.version="19.2.5"});var Ip=Dn((M2,$p)=>{"use strict";function Wp(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Wp)}catch(e){console.error(e)}}Wp(),$p.exports=Jp()});var cv=Dn(fc=>{"use strict";var st=Up(),Ey=Gt(),nE=Ip();function D(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function xy(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function As(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function wy(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Ay(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Pp(e){if(As(e)!==e)throw Error(D(188))}function aE(e){var t=e.alternate;if(!t){if(t=As(e),t===null)throw Error(D(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return Pp(l),e;if(i===a)return Pp(l),t;i=i.sibling}throw Error(D(188))}if(n.return!==a.return)n=l,a=i;else{for(var r=!1,c=l.child;c;){if(c===n){r=!0,n=l,a=i;break}if(c===a){r=!0,a=l,n=i;break}c=c.sibling}if(!r){for(c=i.child;c;){if(c===n){r=!0,n=i,a=l;break}if(c===a){r=!0,a=i,n=l;break}c=c.sibling}if(!r)throw Error(D(189))}}if(n.alternate!==a)throw Error(D(190))}if(n.tag!==3)throw Error(D(188));return n.stateNode.current===n?e:t}function My(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=My(e),t!==null)return t;e=e.sibling}return null}var Be=Object.assign,lE=Symbol.for("react.element"),qr=Symbol.for("react.transitional.element"),Ju=Symbol.for("react.portal"),Ei=Symbol.for("react.fragment"),Oy=Symbol.for("react.strict_mode"),cd=Symbol.for("react.profiler"),Dy=Symbol.for("react.consumer"),va=Symbol.for("react.context"),ih=Symbol.for("react.forward_ref"),fd=Symbol.for("react.suspense"),dd=Symbol.for("react.suspense_list"),uh=Symbol.for("react.memo"),Za=Symbol.for("react.lazy"),hd=Symbol.for("react.activity"),iE=Symbol.for("react.memo_cache_sentinel"),eg=Symbol.iterator;function ju(e){return e===null||typeof e!="object"?null:(e=eg&&e[eg]||e["@@iterator"],typeof e=="function"?e:null)}var uE=Symbol.for("react.client.reference");function md(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===uE?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ei:return"Fragment";case cd:return"Profiler";case Oy:return"StrictMode";case fd:return"Suspense";case dd:return"SuspenseList";case hd:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case Ju:return"Portal";case va:return e.displayName||"Context";case Dy:return(e._context.displayName||"Context")+".Consumer";case ih:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case uh:return t=e.displayName||null,t!==null?t:md(e.type)||"Memo";case Za:t=e._payload,e=e._init;try{return md(e(t))}catch(n){}}return null}var Wu=Array.isArray,I=Ey.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Te=nE.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,zl={pending:!1,data:null,method:null,action:null},pd=[],xi=-1;function Fn(e){return{current:e}}function ft(e){0>xi||(e.current=pd[xi],pd[xi]=null,xi--)}function Ce(e,t){xi++,pd[xi]=e.current,e.current=t}var Xn=Fn(null),hs=Fn(null),tl=Fn(null),So=Fn(null);function To(e,t){switch(Ce(tl,t),Ce(hs,e),Ce(Xn,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?sy(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=sy(t),e=Wb(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}ft(Xn),Ce(Xn,e)}function Vi(){ft(Xn),ft(hs),ft(tl)}function gd(e){e.memoizedState!==null&&Ce(So,e);var t=Xn.current,n=Wb(t,e.type);t!==n&&(Ce(hs,e),Ce(Xn,n))}function _o(e){hs.current===e&&(ft(Xn),ft(hs)),So.current===e&&(ft(So),Es._currentValue=zl)}var Rf,tg;function Ol(e){if(Rf===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Rf=t&&t[1]||"",tg=-1<n.stack.indexOf("\n at")?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+Rf+e+tg}var Nf=!1;function zf(e,t){if(!e||Nf)return"";Nf=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var _=function(){throw Error()};if(Object.defineProperty(_.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(_,[])}catch(S){var y=S}Reflect.construct(e,[],_)}else{try{_.call()}catch(S){y=S}e.call(_.prototype)}}else{try{throw Error()}catch(S){y=S}(_=e())&&typeof _.catch=="function"&&_.catch(function(){})}}catch(S){if(S&&y&&typeof S.stack=="string")return[S.stack,y.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var i=a.DetermineComponentFrameRoot(),r=i[0],c=i[1];if(r&&c){var d=r.split("\n"),m=c.split("\n");for(l=a=0;a<d.length&&!d[a].includes("DetermineComponentFrameRoot");)a++;for(;l<m.length&&!m[l].includes("DetermineComponentFrameRoot");)l++;if(a===d.length||l===m.length)for(a=d.length-1,l=m.length-1;1<=a&&0<=l&&d[a]!==m[l];)l--;for(;1<=a&&0<=l;a--,l--)if(d[a]!==m[l]){if(a!==1||l!==1)do if(a--,l--,0>l||d[a]!==m[l]){var p="\n"+d[a].replace(" at new "," at ");return e.displayName&&p.includes("<anonymous>")&&(p=p.replace("<anonymous>",e.displayName)),p}while(1<=a&&0<=l);break}}}finally{Nf=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Ol(n):""}function sE(e,t){switch(e.tag){case 26:case 27:case 5:return Ol(e.type);case 16:return Ol("Lazy");case 13:return e.child!==t&&t!==null?Ol("Suspense Fallback"):Ol("Suspense");case 19:return Ol("SuspenseList");case 0:case 15:return zf(e.type,!1);case 11:return zf(e.type.render,!1);case 1:return zf(e.type,!0);case 31:return Ol("Activity");default:return""}}function ng(e){try{var t="",n=null;do t+=sE(e,n),n=e,e=e.return;while(e);return t}catch(a){return"\nError generating stack: "+a.message+"\n"+a.stack}}var yd=Object.prototype.hasOwnProperty,sh=st.unstable_scheduleCallback,Cf=st.unstable_cancelCallback,rE=st.unstable_shouldYield,oE=st.unstable_requestPaint,un=st.unstable_now,cE=st.unstable_getCurrentPriorityLevel,Ry=st.unstable_ImmediatePriority,Ny=st.unstable_UserBlockingPriority,ko=st.unstable_NormalPriority,fE=st.unstable_LowPriority,zy=st.unstable_IdlePriority,dE=st.log,hE=st.unstable_setDisableYieldValue,Ms=null,sn=null;function Wa(e){if(typeof dE=="function"&&hE(e),sn&&typeof sn.setStrictMode=="function")try{sn.setStrictMode(Ms,e)}catch(t){}}var rn=Math.clz32?Math.clz32:gE,mE=Math.log,pE=Math.LN2;function gE(e){return e>>>=0,e===0?32:31-(mE(e)/pE|0)|0}var Gr=256,jr=262144,Vr=4194304;function Dl(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Jo(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,i=e.suspendedLanes,r=e.pingedLanes;e=e.warmLanes;var c=a&134217727;return c!==0?(a=c&~i,a!==0?l=Dl(a):(r&=c,r!==0?l=Dl(r):n||(n=c&~e,n!==0&&(l=Dl(n))))):(c=a&~i,c!==0?l=Dl(c):r!==0?l=Dl(r):n||(n=a&~e,n!==0&&(l=Dl(n)))),l===0?0:t!==0&&t!==l&&(t&i)===0&&(i=l&-l,n=t&-t,i>=n||i===32&&(n&4194048)!==0)?t:l}function Os(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function yE(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Cy(){var e=Vr;return Vr<<=1,(Vr&62914560)===0&&(Vr=4194304),e}function Uf(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ds(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function bE(e,t,n,a,l,i){var r=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var c=e.entanglements,d=e.expirationTimes,m=e.hiddenUpdates;for(n=r&~n;0<n;){var p=31-rn(n),_=1<<p;c[p]=0,d[p]=-1;var y=m[p];if(y!==null)for(m[p]=null,p=0;p<y.length;p++){var S=y[p];S!==null&&(S.lane&=-536870913)}n&=~_}a!==0&&Uy(e,a,0),i!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=i&~(r&~t))}function Uy(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-rn(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function Yy(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-rn(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function Ly(e,t){var n=t&-t;return n=(n&42)!==0?1:rh(n),(n&(e.suspendedLanes|t))!==0?0:n}function rh(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function oh(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Hy(){var e=Te.p;return e!==0?e:(e=window.event,e===void 0?32:sv(e.type))}function ag(e,t){var n=Te.p;try{return Te.p=e,t()}finally{Te.p=n}}var ml=Math.random().toString(36).slice(2),bt="__reactFiber$"+ml,Ft="__reactProps$"+ml,eu="__reactContainer$"+ml,bd="__reactEvents$"+ml,vE="__reactListeners$"+ml,SE="__reactHandles$"+ml,lg="__reactResources$"+ml,Rs="__reactMarker$"+ml;function ch(e){delete e[bt],delete e[Ft],delete e[bd],delete e[vE],delete e[SE]}function wi(e){var t=e[bt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[eu]||n[bt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=dy(e);e!==null;){if(n=e[bt])return n;e=dy(e)}return t}e=n,n=e.parentNode}return null}function tu(e){if(e=e[bt]||e[eu]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function $u(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(D(33))}function Yi(e){var t=e[lg];return t||(t=e[lg]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function ct(e){e[Rs]=!0}var By=new Set,qy={};function Vl(e,t){Zi(e,t),Zi(e+"Capture",t)}function Zi(e,t){for(qy[e]=t,e=0;e<t.length;e++)By.add(t[e])}var TE=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),ig={},ug={};function _E(e){return yd.call(ug,e)?!0:yd.call(ig,e)?!1:TE.test(e)?ug[e]=!0:(ig[e]=!0,!1)}function lo(e,t,n){if(_E(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function Zr(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function da(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function mn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Gy(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function kE(e,t,n){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var l=a.get,i=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(r){n=""+r,i.call(this,r)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(r){n=""+r},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function vd(e){if(!e._valueTracker){var t=Gy(e)?"checked":"value";e._valueTracker=kE(e,t,""+e[t])}}function jy(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Gy(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function Eo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch(t){return e.body}}var EE=/[\n"\\]/g;function yn(e){return e.replace(EE,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Sd(e,t,n,a,l,i,r,c){e.name="",r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"?e.type=r:e.removeAttribute("type"),t!=null?r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+mn(t)):e.value!==""+mn(t)&&(e.value=""+mn(t)):r!=="submit"&&r!=="reset"||e.removeAttribute("value"),t!=null?Td(e,r,mn(t)):n!=null?Td(e,r,mn(n)):a!=null&&e.removeAttribute("value"),l==null&&i!=null&&(e.defaultChecked=!!i),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?e.name=""+mn(c):e.removeAttribute("name")}function Vy(e,t,n,a,l,i,r,c){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||n!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){vd(e);return}n=n!=null?""+mn(n):"",t=t!=null?""+mn(t):n,c||t===e.value||(e.value=t),e.defaultValue=t}a=a!=null?a:l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=c?e.checked:!!a,e.defaultChecked=!!a,r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(e.name=r),vd(e)}function Td(e,t,n){t==="number"&&Eo(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Li(e,t,n,a){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&a&&(e[n].defaultSelected=!0)}else{for(n=""+mn(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,a&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function Zy(e,t,n){if(t!=null&&(t=""+mn(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+mn(n):""}function Qy(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(D(92));if(Wu(a)){if(1<a.length)throw Error(D(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=mn(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),vd(e)}function Qi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var xE=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function sg(e,t,n){var a=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,n):typeof n!="number"||n===0||xE.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Xy(e,t,n){if(t!=null&&typeof t!="object")throw Error(D(62));if(e=e.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var l in t)a=t[l],t.hasOwnProperty(l)&&n[l]!==a&&sg(e,l,a)}else for(var i in t)t.hasOwnProperty(i)&&sg(e,i,t[i])}function fh(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wE=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),AE=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function io(e){return AE.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Sa(){}var _d=null;function dh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ai=null,Hi=null;function rg(e){var t=tu(e);if(t&&(e=t.stateNode)){var n=e[Ft]||null;e:switch(e=t.stateNode,t.type){case"input":if(Sd(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+yn(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[Ft]||null;if(!l)throw Error(D(90));Sd(a,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(t=0;t<n.length;t++)a=n[t],a.form===e.form&&jy(a)}break e;case"textarea":Zy(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Li(e,!!n.multiple,t,!1)}}}var Yf=!1;function Fy(e,t,n){if(Yf)return e(t,n);Yf=!0;try{var a=e(t);return a}finally{if(Yf=!1,(Ai!==null||Hi!==null)&&(sc(),Ai&&(t=Ai,e=Hi,Hi=Ai=null,rg(t),e)))for(t=0;t<e.length;t++)rg(e[t])}}function ms(e,t){var n=e.stateNode;if(n===null)return null;var a=n[Ft]||null;if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(D(231,t,typeof n));return n}var xa=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),kd=!1;if(xa)try{vi={},Object.defineProperty(vi,"passive",{get:function(){kd=!0}}),window.addEventListener("test",vi,vi),window.removeEventListener("test",vi,vi)}catch(e){kd=!1}var vi,$a=null,hh=null,uo=null;function Ky(){if(uo)return uo;var e,t=hh,n=t.length,a,l="value"in $a?$a.value:$a.textContent,i=l.length;for(e=0;e<n&&t[e]===l[e];e++);var r=n-e;for(a=1;a<=r&&t[n-a]===l[i-a];a++);return uo=l.slice(e,1<a?1-a:void 0)}function so(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Qr(){return!0}function og(){return!1}function Kt(e){function t(n,a,l,i,r){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=i,this.target=r,this.currentTarget=null;for(var c in e)e.hasOwnProperty(c)&&(n=e[c],this[c]=n?n(i):i[c]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?Qr:og,this.isPropagationStopped=og,this}return Be(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Qr)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Qr)},persist:function(){},isPersistent:Qr}),t}var Zl={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Wo=Kt(Zl),Ns=Be({},Zl,{view:0,detail:0}),ME=Kt(Ns),Lf,Hf,Vu,$o=Be({},Ns,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:mh,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Vu&&(Vu&&e.type==="mousemove"?(Lf=e.screenX-Vu.screenX,Hf=e.screenY-Vu.screenY):Hf=Lf=0,Vu=e),Lf)},movementY:function(e){return"movementY"in e?e.movementY:Hf}}),cg=Kt($o),OE=Be({},$o,{dataTransfer:0}),DE=Kt(OE),RE=Be({},Ns,{relatedTarget:0}),Bf=Kt(RE),NE=Be({},Zl,{animationName:0,elapsedTime:0,pseudoElement:0}),zE=Kt(NE),CE=Be({},Zl,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),UE=Kt(CE),YE=Be({},Zl,{data:0}),fg=Kt(YE),LE={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},HE={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},BE={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function qE(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=BE[e])?!!t[e]:!1}function mh(){return qE}var GE=Be({},Ns,{key:function(e){if(e.key){var t=LE[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=so(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?HE[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:mh,charCode:function(e){return e.type==="keypress"?so(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?so(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),jE=Kt(GE),VE=Be({},$o,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),dg=Kt(VE),ZE=Be({},Ns,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:mh}),QE=Kt(ZE),XE=Be({},Zl,{propertyName:0,elapsedTime:0,pseudoElement:0}),FE=Kt(XE),KE=Be({},$o,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),JE=Kt(KE),WE=Be({},Zl,{newState:0,oldState:0}),$E=Kt(WE),IE=[9,13,27,32],ph=xa&&"CompositionEvent"in window,es=null;xa&&"documentMode"in document&&(es=document.documentMode);var PE=xa&&"TextEvent"in window&&!es,Jy=xa&&(!ph||es&&8<es&&11>=es),hg=" ",mg=!1;function Wy(e,t){switch(e){case"keyup":return IE.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $y(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Mi=!1;function ex(e,t){switch(e){case"compositionend":return $y(t);case"keypress":return t.which!==32?null:(mg=!0,hg);case"textInput":return e=t.data,e===hg&&mg?null:e;default:return null}}function tx(e,t){if(Mi)return e==="compositionend"||!ph&&Wy(e,t)?(e=Ky(),uo=hh=$a=null,Mi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Jy&&t.locale!=="ko"?null:t.data;default:return null}}var nx={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function pg(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!nx[e.type]:t==="textarea"}function Iy(e,t,n,a){Ai?Hi?Hi.push(a):Hi=[a]:Ai=a,t=jo(t,"onChange"),0<t.length&&(n=new Wo("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var ts=null,ps=null;function ax(e){Fb(e,0)}function Io(e){var t=$u(e);if(jy(t))return e}function gg(e,t){if(e==="change")return t}var Py=!1;xa&&(xa?(Fr="oninput"in document,Fr||(qf=document.createElement("div"),qf.setAttribute("oninput","return;"),Fr=typeof qf.oninput=="function"),Xr=Fr):Xr=!1,Py=Xr&&(!document.documentMode||9<document.documentMode));var Xr,Fr,qf;function yg(){ts&&(ts.detachEvent("onpropertychange",e0),ps=ts=null)}function e0(e){if(e.propertyName==="value"&&Io(ps)){var t=[];Iy(t,ps,e,dh(e)),Fy(ax,t)}}function lx(e,t,n){e==="focusin"?(yg(),ts=t,ps=n,ts.attachEvent("onpropertychange",e0)):e==="focusout"&&yg()}function ix(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Io(ps)}function ux(e,t){if(e==="click")return Io(t)}function sx(e,t){if(e==="input"||e==="change")return Io(t)}function rx(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var cn=typeof Object.is=="function"?Object.is:rx;function gs(e,t){if(cn(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var l=n[a];if(!yd.call(t,l)||!cn(e[l],t[l]))return!1}return!0}function bg(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function vg(e,t){var n=bg(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=bg(n)}}function t0(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?t0(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function n0(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Eo(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch(a){n=!1}if(n)e=t.contentWindow;else break;t=Eo(e.document)}return t}function gh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var ox=xa&&"documentMode"in document&&11>=document.documentMode,Oi=null,Ed=null,ns=null,xd=!1;function Sg(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;xd||Oi==null||Oi!==Eo(a)||(a=Oi,"selectionStart"in a&&gh(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),ns&&gs(ns,a)||(ns=a,a=jo(Ed,"onSelect"),0<a.length&&(t=new Wo("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Oi)))}function Ml(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Di={animationend:Ml("Animation","AnimationEnd"),animationiteration:Ml("Animation","AnimationIteration"),animationstart:Ml("Animation","AnimationStart"),transitionrun:Ml("Transition","TransitionRun"),transitionstart:Ml("Transition","TransitionStart"),transitioncancel:Ml("Transition","TransitionCancel"),transitionend:Ml("Transition","TransitionEnd")},Gf={},a0={};xa&&(a0=document.createElement("div").style,"AnimationEvent"in window||(delete Di.animationend.animation,delete Di.animationiteration.animation,delete Di.animationstart.animation),"TransitionEvent"in window||delete Di.transitionend.transition);function Ql(e){if(Gf[e])return Gf[e];if(!Di[e])return e;var t=Di[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in a0)return Gf[e]=t[n];return e}var l0=Ql("animationend"),i0=Ql("animationiteration"),u0=Ql("animationstart"),cx=Ql("transitionrun"),fx=Ql("transitionstart"),dx=Ql("transitioncancel"),s0=Ql("transitionend"),r0=new Map,wd="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");wd.push("scrollEnd");function zn(e,t){r0.set(e,t),Vl(t,[e])}var xo=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},hn=[],Ri=0,yh=0;function Po(){for(var e=Ri,t=yh=Ri=0;t<e;){var n=hn[t];hn[t++]=null;var a=hn[t];hn[t++]=null;var l=hn[t];hn[t++]=null;var i=hn[t];if(hn[t++]=null,a!==null&&l!==null){var r=a.pending;r===null?l.next=l:(l.next=r.next,r.next=l),a.pending=l}i!==0&&o0(n,l,i)}}function ec(e,t,n,a){hn[Ri++]=e,hn[Ri++]=t,hn[Ri++]=n,hn[Ri++]=a,yh|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function bh(e,t,n,a){return ec(e,t,n,a),wo(e)}function Xl(e,t){return ec(e,null,null,t),wo(e)}function o0(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,i=e.return;i!==null;)i.childLanes|=n,a=i.alternate,a!==null&&(a.childLanes|=n),i.tag===22&&(e=i.stateNode,e===null||e._visibility&1||(l=!0)),e=i,i=i.return;return e.tag===3?(i=e.stateNode,l&&t!==null&&(l=31-rn(n),e=i.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),i):null}function wo(e){if(50<fs)throw fs=0,Fd=null,Error(D(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Ni={};function hx(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function an(e,t,n,a){return new hx(e,t,n,a)}function vh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function _a(e,t){var n=e.alternate;return n===null?(n=an(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function c0(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ro(e,t,n,a,l,i){var r=0;if(a=e,typeof e=="function")vh(e)&&(r=1);else if(typeof e=="string")r=gw(e,n,Xn.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case hd:return e=an(31,n,t,l),e.elementType=hd,e.lanes=i,e;case Ei:return Cl(n.children,l,i,t);case Oy:r=8,l|=24;break;case cd:return e=an(12,n,t,l|2),e.elementType=cd,e.lanes=i,e;case fd:return e=an(13,n,t,l),e.elementType=fd,e.lanes=i,e;case dd:return e=an(19,n,t,l),e.elementType=dd,e.lanes=i,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case va:r=10;break e;case Dy:r=9;break e;case ih:r=11;break e;case uh:r=14;break e;case Za:r=16,a=null;break e}r=29,n=Error(D(130,e===null?"null":typeof e,"")),a=null}return t=an(r,n,t,l),t.elementType=e,t.type=a,t.lanes=i,t}function Cl(e,t,n,a){return e=an(7,e,a,t),e.lanes=n,e}function jf(e,t,n){return e=an(6,e,null,t),e.lanes=n,e}function f0(e){var t=an(18,null,null,0);return t.stateNode=e,t}function Vf(e,t,n){return t=an(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Tg=new WeakMap;function bn(e,t){if(typeof e=="object"&&e!==null){var n=Tg.get(e);return n!==void 0?n:(t={value:e,source:t,stack:ng(t)},Tg.set(e,t),t)}return{value:e,source:t,stack:ng(t)}}var zi=[],Ci=0,Ao=null,ys=0,pn=[],gn=0,cl=null,Vn=1,Zn="";function ya(e,t){zi[Ci++]=ys,zi[Ci++]=Ao,Ao=e,ys=t}function d0(e,t,n){pn[gn++]=Vn,pn[gn++]=Zn,pn[gn++]=cl,cl=e;var a=Vn;e=Zn;var l=32-rn(a)-1;a&=~(1<<l),n+=1;var i=32-rn(t)+l;if(30<i){var r=l-l%5;i=(a&(1<<r)-1).toString(32),a>>=r,l-=r,Vn=1<<32-rn(t)+l|n<<l|a,Zn=i+e}else Vn=1<<i|n<<l|a,Zn=e}function Sh(e){e.return!==null&&(ya(e,1),d0(e,1,0))}function Th(e){for(;e===Ao;)Ao=zi[--Ci],zi[Ci]=null,ys=zi[--Ci],zi[Ci]=null;for(;e===cl;)cl=pn[--gn],pn[gn]=null,Zn=pn[--gn],pn[gn]=null,Vn=pn[--gn],pn[gn]=null}function h0(e,t){pn[gn++]=Vn,pn[gn++]=Zn,pn[gn++]=cl,Vn=t.id,Zn=t.overflow,cl=e}var vt=null,He=null,me=!1,nl=null,vn=!1,Ad=Error(D(519));function fl(e){var t=Error(D(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw bs(bn(t,e)),Ad}function _g(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[bt]=e,t[Ft]=a,n){case"dialog":oe("cancel",t),oe("close",t);break;case"iframe":case"object":case"embed":oe("load",t);break;case"video":case"audio":for(n=0;n<_s.length;n++)oe(_s[n],t);break;case"source":oe("error",t);break;case"img":case"image":case"link":oe("error",t),oe("load",t);break;case"details":oe("toggle",t);break;case"input":oe("invalid",t),Vy(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":oe("invalid",t);break;case"textarea":oe("invalid",t),Qy(t,a.value,a.defaultValue,a.children)}n=a.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||a.suppressHydrationWarning===!0||Jb(t.textContent,n)?(a.popover!=null&&(oe("beforetoggle",t),oe("toggle",t)),a.onScroll!=null&&oe("scroll",t),a.onScrollEnd!=null&&oe("scrollend",t),a.onClick!=null&&(t.onclick=Sa),t=!0):t=!1,t||fl(e,!0)}function kg(e){for(vt=e.return;vt;)switch(vt.tag){case 5:case 31:case 13:vn=!1;return;case 27:case 3:vn=!0;return;default:vt=vt.return}}function Si(e){if(e!==vt)return!1;if(!me)return kg(e),me=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||Id(e.type,e.memoizedProps)),n=!n),n&&He&&fl(e),kg(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(D(317));He=fy(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(D(317));He=fy(e)}else t===27?(t=He,pl(e.type)?(e=nh,nh=null,He=e):He=t):He=vt?Tn(e.stateNode.nextSibling):null;return!0}function Hl(){He=vt=null,me=!1}function Zf(){var e=nl;return e!==null&&(Qt===null?Qt=e:Qt.push.apply(Qt,e),nl=null),e}function bs(e){nl===null?nl=[e]:nl.push(e)}var Md=Fn(null),Fl=null,Ta=null;function Xa(e,t,n){Ce(Md,t._currentValue),t._currentValue=n}function ka(e){e._currentValue=Md.current,ft(Md)}function Od(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function Dd(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var i=l.dependencies;if(i!==null){var r=l.child;i=i.firstContext;e:for(;i!==null;){var c=i;i=l;for(var d=0;d<t.length;d++)if(c.context===t[d]){i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Od(i.return,n,e),a||(r=null);break e}i=c.next}}else if(l.tag===18){if(r=l.return,r===null)throw Error(D(341));r.lanes|=n,i=r.alternate,i!==null&&(i.lanes|=n),Od(r,n,e),r=null}else r=l.child;if(r!==null)r.return=l;else for(r=l;r!==null;){if(r===e){r=null;break}if(l=r.sibling,l!==null){l.return=r.return,r=l;break}r=r.return}l=r}}function nu(e,t,n,a){e=null;for(var l=t,i=!1;l!==null;){if(!i){if((l.flags&524288)!==0)i=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var r=l.alternate;if(r===null)throw Error(D(387));if(r=r.memoizedProps,r!==null){var c=l.type;cn(l.pendingProps.value,r.value)||(e!==null?e.push(c):e=[c])}}else if(l===So.current){if(r=l.alternate,r===null)throw Error(D(387));r.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(Es):e=[Es])}l=l.return}e!==null&&Dd(t,e,n,a),t.flags|=262144}function Mo(e){for(e=e.firstContext;e!==null;){if(!cn(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Bl(e){Fl=e,Ta=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function St(e){return m0(Fl,e)}function Kr(e,t){return Fl===null&&Bl(e),m0(e,t)}function m0(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Ta===null){if(e===null)throw Error(D(308));Ta=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Ta=Ta.next=t;return n}var mx=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},px=st.unstable_scheduleCallback,gx=st.unstable_NormalPriority,nt={$$typeof:va,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function _h(){return{controller:new mx,data:new Map,refCount:0}}function zs(e){e.refCount--,e.refCount===0&&px(gx,function(){e.controller.abort()})}var as=null,Rd=0,Xi=0,Bi=null;function yx(e,t){if(as===null){var n=as=[];Rd=0,Xi=Fh(),Bi={status:"pending",value:void 0,then:function(a){n.push(a)}}}return Rd++,t.then(Eg,Eg),t}function Eg(){if(--Rd===0&&as!==null){Bi!==null&&(Bi.status="fulfilled");var e=as;as=null,Xi=0,Bi=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function bx(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(a.status="rejected",a.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),a}var xg=I.S;I.S=function(e,t){Mb=un(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&yx(e,t),xg!==null&&xg(e,t)};var Ul=Fn(null);function kh(){var e=Ul.current;return e!==null?e:Ne.pooledCache}function oo(e,t){t===null?Ce(Ul,Ul.current):Ce(Ul,t.pool)}function p0(){var e=kh();return e===null?null:{parent:nt._currentValue,pool:e}}var au=Error(D(460)),Eh=Error(D(474)),tc=Error(D(542)),Oo={then:function(){}};function wg(e){return e=e.status,e==="fulfilled"||e==="rejected"}function g0(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Sa,Sa),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Mg(e),e;default:if(typeof t.status=="string")t.then(Sa,Sa);else{if(e=Ne,e!==null&&100<e.shellSuspendCounter)throw Error(D(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=a}},function(a){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Mg(e),e}throw Yl=t,au}}function Rl(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Yl=n,au):n}}var Yl=null;function Ag(){if(Yl===null)throw Error(D(459));var e=Yl;return Yl=null,e}function Mg(e){if(e===au||e===tc)throw Error(D(483))}var qi=null,vs=0;function Jr(e){var t=vs;return vs+=1,qi===null&&(qi=[]),g0(qi,e,t)}function Zu(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function Wr(e,t){throw t.$$typeof===lE?Error(D(525)):(e=Object.prototype.toString.call(t),Error(D(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function y0(e){function t(g,b){if(e){var k=g.deletions;k===null?(g.deletions=[b],g.flags|=16):k.push(b)}}function n(g,b){if(!e)return null;for(;b!==null;)t(g,b),b=b.sibling;return null}function a(g){for(var b=new Map;g!==null;)g.key!==null?b.set(g.key,g):b.set(g.index,g),g=g.sibling;return b}function l(g,b){return g=_a(g,b),g.index=0,g.sibling=null,g}function i(g,b,k){return g.index=k,e?(k=g.alternate,k!==null?(k=k.index,k<b?(g.flags|=67108866,b):k):(g.flags|=67108866,b)):(g.flags|=1048576,b)}function r(g){return e&&g.alternate===null&&(g.flags|=67108866),g}function c(g,b,k,E){return b===null||b.tag!==6?(b=jf(k,g.mode,E),b.return=g,b):(b=l(b,k),b.return=g,b)}function d(g,b,k,E){var N=k.type;return N===Ei?p(g,b,k.props.children,E,k.key):b!==null&&(b.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===Za&&Rl(N)===b.type)?(b=l(b,k.props),Zu(b,k),b.return=g,b):(b=ro(k.type,k.key,k.props,null,g.mode,E),Zu(b,k),b.return=g,b)}function m(g,b,k,E){return b===null||b.tag!==4||b.stateNode.containerInfo!==k.containerInfo||b.stateNode.implementation!==k.implementation?(b=Vf(k,g.mode,E),b.return=g,b):(b=l(b,k.children||[]),b.return=g,b)}function p(g,b,k,E,N){return b===null||b.tag!==7?(b=Cl(k,g.mode,E,N),b.return=g,b):(b=l(b,k),b.return=g,b)}function _(g,b,k){if(typeof b=="string"&&b!==""||typeof b=="number"||typeof b=="bigint")return b=jf(""+b,g.mode,k),b.return=g,b;if(typeof b=="object"&&b!==null){switch(b.$$typeof){case qr:return k=ro(b.type,b.key,b.props,null,g.mode,k),Zu(k,b),k.return=g,k;case Ju:return b=Vf(b,g.mode,k),b.return=g,b;case Za:return b=Rl(b),_(g,b,k)}if(Wu(b)||ju(b))return b=Cl(b,g.mode,k,null),b.return=g,b;if(typeof b.then=="function")return _(g,Jr(b),k);if(b.$$typeof===va)return _(g,Kr(g,b),k);Wr(g,b)}return null}function y(g,b,k,E){var N=b!==null?b.key:null;if(typeof k=="string"&&k!==""||typeof k=="number"||typeof k=="bigint")return N!==null?null:c(g,b,""+k,E);if(typeof k=="object"&&k!==null){switch(k.$$typeof){case qr:return k.key===N?d(g,b,k,E):null;case Ju:return k.key===N?m(g,b,k,E):null;case Za:return k=Rl(k),y(g,b,k,E)}if(Wu(k)||ju(k))return N!==null?null:p(g,b,k,E,null);if(typeof k.then=="function")return y(g,b,Jr(k),E);if(k.$$typeof===va)return y(g,b,Kr(g,k),E);Wr(g,k)}return null}function S(g,b,k,E,N){if(typeof E=="string"&&E!==""||typeof E=="number"||typeof E=="bigint")return g=g.get(k)||null,c(b,g,""+E,N);if(typeof E=="object"&&E!==null){switch(E.$$typeof){case qr:return g=g.get(E.key===null?k:E.key)||null,d(b,g,E,N);case Ju:return g=g.get(E.key===null?k:E.key)||null,m(b,g,E,N);case Za:return E=Rl(E),S(g,b,k,E,N)}if(Wu(E)||ju(E))return g=g.get(k)||null,p(b,g,E,N,null);if(typeof E.then=="function")return S(g,b,k,Jr(E),N);if(E.$$typeof===va)return S(g,b,k,Kr(b,E),N);Wr(b,E)}return null}function x(g,b,k,E){for(var N=null,H=null,U=b,B=b=0,W=null;U!==null&&B<k.length;B++){U.index>B?(W=U,U=null):W=U.sibling;var J=y(g,U,k[B],E);if(J===null){U===null&&(U=W);break}e&&U&&J.alternate===null&&t(g,U),b=i(J,b,B),H===null?N=J:H.sibling=J,H=J,U=W}if(B===k.length)return n(g,U),me&&ya(g,B),N;if(U===null){for(;B<k.length;B++)U=_(g,k[B],E),U!==null&&(b=i(U,b,B),H===null?N=U:H.sibling=U,H=U);return me&&ya(g,B),N}for(U=a(U);B<k.length;B++)W=S(U,g,B,k[B],E),W!==null&&(e&&W.alternate!==null&&U.delete(W.key===null?B:W.key),b=i(W,b,B),H===null?N=W:H.sibling=W,H=W);return e&&U.forEach(function(ee){return t(g,ee)}),me&&ya(g,B),N}function w(g,b,k,E){if(k==null)throw Error(D(151));for(var N=null,H=null,U=b,B=b=0,W=null,J=k.next();U!==null&&!J.done;B++,J=k.next()){U.index>B?(W=U,U=null):W=U.sibling;var ee=y(g,U,J.value,E);if(ee===null){U===null&&(U=W);break}e&&U&&ee.alternate===null&&t(g,U),b=i(ee,b,B),H===null?N=ee:H.sibling=ee,H=ee,U=W}if(J.done)return n(g,U),me&&ya(g,B),N;if(U===null){for(;!J.done;B++,J=k.next())J=_(g,J.value,E),J!==null&&(b=i(J,b,B),H===null?N=J:H.sibling=J,H=J);return me&&ya(g,B),N}for(U=a(U);!J.done;B++,J=k.next())J=S(U,g,B,J.value,E),J!==null&&(e&&J.alternate!==null&&U.delete(J.key===null?B:J.key),b=i(J,b,B),H===null?N=J:H.sibling=J,H=J);return e&&U.forEach(function(Me){return t(g,Me)}),me&&ya(g,B),N}function O(g,b,k,E){if(typeof k=="object"&&k!==null&&k.type===Ei&&k.key===null&&(k=k.props.children),typeof k=="object"&&k!==null){switch(k.$$typeof){case qr:e:{for(var N=k.key;b!==null;){if(b.key===N){if(N=k.type,N===Ei){if(b.tag===7){n(g,b.sibling),E=l(b,k.props.children),E.return=g,g=E;break e}}else if(b.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===Za&&Rl(N)===b.type){n(g,b.sibling),E=l(b,k.props),Zu(E,k),E.return=g,g=E;break e}n(g,b);break}else t(g,b);b=b.sibling}k.type===Ei?(E=Cl(k.props.children,g.mode,E,k.key),E.return=g,g=E):(E=ro(k.type,k.key,k.props,null,g.mode,E),Zu(E,k),E.return=g,g=E)}return r(g);case Ju:e:{for(N=k.key;b!==null;){if(b.key===N)if(b.tag===4&&b.stateNode.containerInfo===k.containerInfo&&b.stateNode.implementation===k.implementation){n(g,b.sibling),E=l(b,k.children||[]),E.return=g,g=E;break e}else{n(g,b);break}else t(g,b);b=b.sibling}E=Vf(k,g.mode,E),E.return=g,g=E}return r(g);case Za:return k=Rl(k),O(g,b,k,E)}if(Wu(k))return x(g,b,k,E);if(ju(k)){if(N=ju(k),typeof N!="function")throw Error(D(150));return k=N.call(k),w(g,b,k,E)}if(typeof k.then=="function")return O(g,b,Jr(k),E);if(k.$$typeof===va)return O(g,b,Kr(g,k),E);Wr(g,k)}return typeof k=="string"&&k!==""||typeof k=="number"||typeof k=="bigint"?(k=""+k,b!==null&&b.tag===6?(n(g,b.sibling),E=l(b,k),E.return=g,g=E):(n(g,b),E=jf(k,g.mode,E),E.return=g,g=E),r(g)):n(g,b)}return function(g,b,k,E){try{vs=0;var N=O(g,b,k,E);return qi=null,N}catch(U){if(U===au||U===tc)throw U;var H=an(29,U,null,g.mode);return H.lanes=E,H.return=g,H}}}var ql=y0(!0),b0=y0(!1),Qa=!1;function xh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Nd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function al(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ll(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(Se&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=wo(e),o0(e,null,n),t}return ec(e,a,t,n),wo(e)}function ls(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Yy(e,n)}}function Qf(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var r={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};i===null?l=i=r:i=i.next=r,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var zd=!1;function is(){if(zd){var e=Bi;if(e!==null)throw e}}function us(e,t,n,a){zd=!1;var l=e.updateQueue;Qa=!1;var i=l.firstBaseUpdate,r=l.lastBaseUpdate,c=l.shared.pending;if(c!==null){l.shared.pending=null;var d=c,m=d.next;d.next=null,r===null?i=m:r.next=m,r=d;var p=e.alternate;p!==null&&(p=p.updateQueue,c=p.lastBaseUpdate,c!==r&&(c===null?p.firstBaseUpdate=m:c.next=m,p.lastBaseUpdate=d))}if(i!==null){var _=l.baseState;r=0,p=m=d=null,c=i;do{var y=c.lane&-536870913,S=y!==c.lane;if(S?(fe&y)===y:(a&y)===y){y!==0&&y===Xi&&(zd=!0),p!==null&&(p=p.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});e:{var x=e,w=c;y=t;var O=n;switch(w.tag){case 1:if(x=w.payload,typeof x=="function"){_=x.call(O,_,y);break e}_=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=w.payload,y=typeof x=="function"?x.call(O,_,y):x,y==null)break e;_=Be({},_,y);break e;case 2:Qa=!0}}y=c.callback,y!==null&&(e.flags|=64,S&&(e.flags|=8192),S=l.callbacks,S===null?l.callbacks=[y]:S.push(y))}else S={lane:y,tag:c.tag,payload:c.payload,callback:c.callback,next:null},p===null?(m=p=S,d=_):p=p.next=S,r|=y;if(c=c.next,c===null){if(c=l.shared.pending,c===null)break;S=c,c=S.next,S.next=null,l.lastBaseUpdate=S,l.shared.pending=null}}while(!0);p===null&&(d=_),l.baseState=d,l.firstBaseUpdate=m,l.lastBaseUpdate=p,i===null&&(l.shared.lanes=0),hl|=r,e.lanes=r,e.memoizedState=_}}function v0(e,t){if(typeof e!="function")throw Error(D(191,e));e.call(t)}function S0(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)v0(n[e],t)}var Fi=Fn(null),Do=Fn(0);function Og(e,t){e=Oa,Ce(Do,e),Ce(Fi,t),Oa=e|t.baseLanes}function Cd(){Ce(Do,Oa),Ce(Fi,Fi.current)}function wh(){Oa=Do.current,ft(Fi),ft(Do)}var fn=Fn(null),Sn=null;function Fa(e){var t=e.alternate;Ce(Je,Je.current&1),Ce(fn,e),Sn===null&&(t===null||Fi.current!==null||t.memoizedState!==null)&&(Sn=e)}function Ud(e){Ce(Je,Je.current),Ce(fn,e),Sn===null&&(Sn=e)}function T0(e){e.tag===22?(Ce(Je,Je.current),Ce(fn,e),Sn===null&&(Sn=e)):Ka(e)}function Ka(){Ce(Je,Je.current),Ce(fn,fn.current)}function nn(e){ft(fn),Sn===e&&(Sn=null),ft(Je)}var Je=Fn(0);function Ro(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||eh(n)||th(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var wa=0,le=null,Re=null,et=null,No=!1,Gi=!1,Gl=!1,zo=0,Ss=0,ji=null,vx=0;function Xe(){throw Error(D(321))}function Ah(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!cn(e[n],t[n]))return!1;return!0}function Mh(e,t,n,a,l,i){return wa=i,le=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,I.H=e===null||e.memoizedState===null?I0:Bh,Gl=!1,i=n(a,l),Gl=!1,Gi&&(i=k0(t,n,a,l)),_0(e),i}function _0(e){I.H=Ts;var t=Re!==null&&Re.next!==null;if(wa=0,et=Re=le=null,No=!1,Ss=0,ji=null,t)throw Error(D(300));e===null||at||(e=e.dependencies,e!==null&&Mo(e)&&(at=!0))}function k0(e,t,n,a){le=e;var l=0;do{if(Gi&&(ji=null),Ss=0,Gi=!1,25<=l)throw Error(D(301));if(l+=1,et=Re=null,e.updateQueue!=null){var i=e.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,i.memoCache!=null&&(i.memoCache.index=0)}I.H=P0,i=t(n,a)}while(Gi);return i}function Sx(){var e=I.H,t=e.useState()[0];return t=typeof t.then=="function"?Cs(t):t,e=e.useState()[0],(Re!==null?Re.memoizedState:null)!==e&&(le.flags|=1024),t}function Oh(){var e=zo!==0;return zo=0,e}function Dh(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Rh(e){if(No){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}No=!1}wa=0,et=Re=le=null,Gi=!1,Ss=zo=0,ji=null}function Yt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return et===null?le.memoizedState=et=e:et=et.next=e,et}function We(){if(Re===null){var e=le.alternate;e=e!==null?e.memoizedState:null}else e=Re.next;var t=et===null?le.memoizedState:et.next;if(t!==null)et=t,Re=e;else{if(e===null)throw le.alternate===null?Error(D(467)):Error(D(310));Re=e,e={memoizedState:Re.memoizedState,baseState:Re.baseState,baseQueue:Re.baseQueue,queue:Re.queue,next:null},et===null?le.memoizedState=et=e:et=et.next=e}return et}function nc(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Cs(e){var t=Ss;return Ss+=1,ji===null&&(ji=[]),e=g0(ji,e,t),t=le,(et===null?t.memoizedState:et.next)===null&&(t=t.alternate,I.H=t===null||t.memoizedState===null?I0:Bh),e}function ac(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Cs(e);if(e.$$typeof===va)return St(e)}throw Error(D(438,String(e)))}function Nh(e){var t=null,n=le.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=le.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=nc(),le.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),a=0;a<e;a++)n[a]=iE;return t.index++,n}function Aa(e,t){return typeof t=="function"?t(e):t}function co(e){var t=We();return zh(t,Re,e)}function zh(e,t,n){var a=e.queue;if(a===null)throw Error(D(311));a.lastRenderedReducer=n;var l=e.baseQueue,i=a.pending;if(i!==null){if(l!==null){var r=l.next;l.next=i.next,i.next=r}t.baseQueue=l=i,a.pending=null}if(i=e.baseState,l===null)e.memoizedState=i;else{t=l.next;var c=r=null,d=null,m=t,p=!1;do{var _=m.lane&-536870913;if(_!==m.lane?(fe&_)===_:(wa&_)===_){var y=m.revertLane;if(y===0)d!==null&&(d=d.next={lane:0,revertLane:0,gesture:null,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null}),_===Xi&&(p=!0);else if((wa&y)===y){m=m.next,y===Xi&&(p=!0);continue}else _={lane:0,revertLane:m.revertLane,gesture:null,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null},d===null?(c=d=_,r=i):d=d.next=_,le.lanes|=y,hl|=y;_=m.action,Gl&&n(i,_),i=m.hasEagerState?m.eagerState:n(i,_)}else y={lane:_,revertLane:m.revertLane,gesture:m.gesture,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null},d===null?(c=d=y,r=i):d=d.next=y,le.lanes|=_,hl|=_;m=m.next}while(m!==null&&m!==t);if(d===null?r=i:d.next=c,!cn(i,e.memoizedState)&&(at=!0,p&&(n=Bi,n!==null)))throw n;e.memoizedState=i,e.baseState=r,e.baseQueue=d,a.lastRenderedState=i}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function Xf(e){var t=We(),n=t.queue;if(n===null)throw Error(D(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var r=l=l.next;do i=e(i,r.action),r=r.next;while(r!==l);cn(i,t.memoizedState)||(at=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,a]}function E0(e,t,n){var a=le,l=We(),i=me;if(i){if(n===void 0)throw Error(D(407));n=n()}else n=t();var r=!cn((Re||l).memoizedState,n);if(r&&(l.memoizedState=n,at=!0),l=l.queue,Ch(A0.bind(null,a,l,e),[e]),l.getSnapshot!==t||r||et!==null&&et.memoizedState.tag&1){if(a.flags|=2048,Ki(9,{destroy:void 0},w0.bind(null,a,l,n,t),null),Ne===null)throw Error(D(349));i||(wa&127)!==0||x0(a,t,n)}return n}function x0(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=le.updateQueue,t===null?(t=nc(),le.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function w0(e,t,n,a){t.value=n,t.getSnapshot=a,M0(t)&&O0(e)}function A0(e,t,n){return n(function(){M0(t)&&O0(e)})}function M0(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!cn(e,n)}catch(a){return!0}}function O0(e){var t=Xl(e,2);t!==null&&Xt(t,e,2)}function Yd(e){var t=Yt();if(typeof e=="function"){var n=e;if(e=n(),Gl){Wa(!0);try{n()}finally{Wa(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Aa,lastRenderedState:e},t}function D0(e,t,n,a){return e.baseState=n,zh(e,Re,typeof a=="function"?a:Aa)}function Tx(e,t,n,a,l){if(ic(e))throw Error(D(485));if(e=t.action,e!==null){var i={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(r){i.listeners.push(r)}};I.T!==null?n(!0):i.isTransition=!1,a(i),n=t.pending,n===null?(i.next=t.pending=i,R0(t,i)):(i.next=n.next,t.pending=n.next=i)}}function R0(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var i=I.T,r={};I.T=r;try{var c=n(l,a),d=I.S;d!==null&&d(r,c),Dg(e,t,c)}catch(m){Ld(e,t,m)}finally{i!==null&&r.types!==null&&(i.types=r.types),I.T=i}}else try{i=n(l,a),Dg(e,t,i)}catch(m){Ld(e,t,m)}}function Dg(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){Rg(e,t,a)},function(a){return Ld(e,t,a)}):Rg(e,t,n)}function Rg(e,t,n){t.status="fulfilled",t.value=n,N0(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,R0(e,n)))}function Ld(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,N0(t),t=t.next;while(t!==a)}e.action=null}function N0(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function z0(e,t){return t}function Ng(e,t){if(me){var n=Ne.formState;if(n!==null){e:{var a=le;if(me){if(He){t:{for(var l=He,i=vn;l.nodeType!==8;){if(!i){l=null;break t}if(l=Tn(l.nextSibling),l===null){l=null;break t}}i=l.data,l=i==="F!"||i==="F"?l:null}if(l){He=Tn(l.nextSibling),a=l.data==="F!";break e}}fl(a)}a=!1}a&&(t=n[0])}}return n=Yt(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:z0,lastRenderedState:t},n.queue=a,n=J0.bind(null,le,a),a.dispatch=n,a=Yd(!1),i=Hh.bind(null,le,!1,a.queue),a=Yt(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=Tx.bind(null,le,l,i,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function zg(e){var t=We();return C0(t,Re,e)}function C0(e,t,n){if(t=zh(e,t,z0)[0],e=co(Aa)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Cs(t)}catch(r){throw r===au?tc:r}else a=t;t=We();var l=t.queue,i=l.dispatch;return n!==t.memoizedState&&(le.flags|=2048,Ki(9,{destroy:void 0},_x.bind(null,l,n),null)),[a,i,e]}function _x(e,t){e.action=t}function Cg(e){var t=We(),n=Re;if(n!==null)return C0(t,n,e);We(),t=t.memoizedState,n=We();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Ki(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=le.updateQueue,t===null&&(t=nc(),le.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function U0(){return We().memoizedState}function fo(e,t,n,a){var l=Yt();le.flags|=e,l.memoizedState=Ki(1|t,{destroy:void 0},n,a===void 0?null:a)}function lc(e,t,n,a){var l=We();a=a===void 0?null:a;var i=l.memoizedState.inst;Re!==null&&a!==null&&Ah(a,Re.memoizedState.deps)?l.memoizedState=Ki(t,i,n,a):(le.flags|=e,l.memoizedState=Ki(1|t,i,n,a))}function Ug(e,t){fo(8390656,8,e,t)}function Ch(e,t){lc(2048,8,e,t)}function kx(e){le.flags|=4;var t=le.updateQueue;if(t===null)t=nc(),le.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Y0(e){var t=We().memoizedState;return kx({ref:t,nextImpl:e}),function(){if((Se&2)!==0)throw Error(D(440));return t.impl.apply(void 0,arguments)}}function L0(e,t){return lc(4,2,e,t)}function H0(e,t){return lc(4,4,e,t)}function B0(e,t){if(typeof t=="function"){e=e();var n=t(e);return function(){typeof n=="function"?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function q0(e,t,n){n=n!=null?n.concat([e]):null,lc(4,4,B0.bind(null,t,e),n)}function Uh(){}function G0(e,t){var n=We();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&Ah(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function j0(e,t){var n=We();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&Ah(t,a[1]))return a[0];if(a=e(),Gl){Wa(!0);try{e()}finally{Wa(!1)}}return n.memoizedState=[a,t],a}function Yh(e,t,n){return n===void 0||(wa&1073741824)!==0&&(fe&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=Db(),le.lanes|=e,hl|=e,n)}function V0(e,t,n,a){return cn(n,t)?n:Fi.current!==null?(e=Yh(e,n,a),cn(e,t)||(at=!0),e):(wa&42)===0||(wa&1073741824)!==0&&(fe&261930)===0?(at=!0,e.memoizedState=n):(e=Db(),le.lanes|=e,hl|=e,t)}function Z0(e,t,n,a,l){var i=Te.p;Te.p=i!==0&&8>i?i:8;var r=I.T,c={};I.T=c,Hh(e,!1,t,n);try{var d=l(),m=I.S;if(m!==null&&m(c,d),d!==null&&typeof d=="object"&&typeof d.then=="function"){var p=bx(d,a);ss(e,t,p,on(e))}else ss(e,t,a,on(e))}catch(_){ss(e,t,{then:function(){},status:"rejected",reason:_},on())}finally{Te.p=i,r!==null&&c.types!==null&&(r.types=c.types),I.T=r}}function Ex(){}function Hd(e,t,n,a){if(e.tag!==5)throw Error(D(476));var l=Q0(e).queue;Z0(e,l,t,zl,n===null?Ex:function(){return X0(e),n(a)})}function Q0(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:zl,baseState:zl,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Aa,lastRenderedState:zl},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Aa,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function X0(e){var t=Q0(e);t.next===null&&(t=e.alternate.memoizedState),ss(e,t.next.queue,{},on())}function Lh(){return St(Es)}function F0(){return We().memoizedState}function K0(){return We().memoizedState}function xx(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=on();e=al(n);var a=ll(t,e,n);a!==null&&(Xt(a,t,n),ls(a,t,n)),t={cache:_h()},e.payload=t;return}t=t.return}}function wx(e,t,n){var a=on();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ic(e)?W0(t,n):(n=bh(e,t,n,a),n!==null&&(Xt(n,e,a),$0(n,t,a)))}function J0(e,t,n){var a=on();ss(e,t,n,a)}function ss(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ic(e))W0(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var r=t.lastRenderedState,c=i(r,n);if(l.hasEagerState=!0,l.eagerState=c,cn(c,r))return ec(e,t,l,0),Ne===null&&Po(),!1}catch(d){}if(n=bh(e,t,l,a),n!==null)return Xt(n,e,a),$0(n,t,a),!0}return!1}function Hh(e,t,n,a){if(a={lane:2,revertLane:Fh(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},ic(e)){if(t)throw Error(D(479))}else t=bh(e,n,a,2),t!==null&&Xt(t,e,2)}function ic(e){var t=e.alternate;return e===le||t!==null&&t===le}function W0(e,t){Gi=No=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function $0(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Yy(e,n)}}var Ts={readContext:St,use:ac,useCallback:Xe,useContext:Xe,useEffect:Xe,useImperativeHandle:Xe,useLayoutEffect:Xe,useInsertionEffect:Xe,useMemo:Xe,useReducer:Xe,useRef:Xe,useState:Xe,useDebugValue:Xe,useDeferredValue:Xe,useTransition:Xe,useSyncExternalStore:Xe,useId:Xe,useHostTransitionStatus:Xe,useFormState:Xe,useActionState:Xe,useOptimistic:Xe,useMemoCache:Xe,useCacheRefresh:Xe};Ts.useEffectEvent=Xe;var I0={readContext:St,use:ac,useCallback:function(e,t){return Yt().memoizedState=[e,t===void 0?null:t],e},useContext:St,useEffect:Ug,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,fo(4194308,4,B0.bind(null,t,e),n)},useLayoutEffect:function(e,t){return fo(4194308,4,e,t)},useInsertionEffect:function(e,t){fo(4,2,e,t)},useMemo:function(e,t){var n=Yt();t=t===void 0?null:t;var a=e();if(Gl){Wa(!0);try{e()}finally{Wa(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=Yt();if(n!==void 0){var l=n(t);if(Gl){Wa(!0);try{n(t)}finally{Wa(!1)}}}else l=t;return a.memoizedState=a.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},a.queue=e,e=e.dispatch=wx.bind(null,le,e),[a.memoizedState,e]},useRef:function(e){var t=Yt();return e={current:e},t.memoizedState=e},useState:function(e){e=Yd(e);var t=e.queue,n=J0.bind(null,le,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Uh,useDeferredValue:function(e,t){var n=Yt();return Yh(n,e,t)},useTransition:function(){var e=Yd(!1);return e=Z0.bind(null,le,e.queue,!0,!1),Yt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=le,l=Yt();if(me){if(n===void 0)throw Error(D(407));n=n()}else{if(n=t(),Ne===null)throw Error(D(349));(fe&127)!==0||x0(a,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,Ug(A0.bind(null,a,i,e),[e]),a.flags|=2048,Ki(9,{destroy:void 0},w0.bind(null,a,i,n,t),null),n},useId:function(){var e=Yt(),t=Ne.identifierPrefix;if(me){var n=Zn,a=Vn;n=(a&~(1<<32-rn(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=zo++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=vx++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Lh,useFormState:Ng,useActionState:Ng,useOptimistic:function(e){var t=Yt();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Hh.bind(null,le,!0,n),n.dispatch=t,[e,t]},useMemoCache:Nh,useCacheRefresh:function(){return Yt().memoizedState=xx.bind(null,le)},useEffectEvent:function(e){var t=Yt(),n={impl:e};return t.memoizedState=n,function(){if((Se&2)!==0)throw Error(D(440));return n.impl.apply(void 0,arguments)}}},Bh={readContext:St,use:ac,useCallback:G0,useContext:St,useEffect:Ch,useImperativeHandle:q0,useInsertionEffect:L0,useLayoutEffect:H0,useMemo:j0,useReducer:co,useRef:U0,useState:function(){return co(Aa)},useDebugValue:Uh,useDeferredValue:function(e,t){var n=We();return V0(n,Re.memoizedState,e,t)},useTransition:function(){var e=co(Aa)[0],t=We().memoizedState;return[typeof e=="boolean"?e:Cs(e),t]},useSyncExternalStore:E0,useId:F0,useHostTransitionStatus:Lh,useFormState:zg,useActionState:zg,useOptimistic:function(e,t){var n=We();return D0(n,Re,e,t)},useMemoCache:Nh,useCacheRefresh:K0};Bh.useEffectEvent=Y0;var P0={readContext:St,use:ac,useCallback:G0,useContext:St,useEffect:Ch,useImperativeHandle:q0,useInsertionEffect:L0,useLayoutEffect:H0,useMemo:j0,useReducer:Xf,useRef:U0,useState:function(){return Xf(Aa)},useDebugValue:Uh,useDeferredValue:function(e,t){var n=We();return Re===null?Yh(n,e,t):V0(n,Re.memoizedState,e,t)},useTransition:function(){var e=Xf(Aa)[0],t=We().memoizedState;return[typeof e=="boolean"?e:Cs(e),t]},useSyncExternalStore:E0,useId:F0,useHostTransitionStatus:Lh,useFormState:Cg,useActionState:Cg,useOptimistic:function(e,t){var n=We();return Re!==null?D0(n,Re,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Nh,useCacheRefresh:K0};P0.useEffectEvent=Y0;function Ff(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:Be({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Bd={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=on(),l=al(a);l.payload=t,n!=null&&(l.callback=n),t=ll(e,l,a),t!==null&&(Xt(t,e,a),ls(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=on(),l=al(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=ll(e,l,a),t!==null&&(Xt(t,e,a),ls(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=on(),a=al(n);a.tag=2,t!=null&&(a.callback=t),t=ll(e,a,n),t!==null&&(Xt(t,e,n),ls(t,e,n))}};function Yg(e,t,n,a,l,i,r){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,i,r):t.prototype&&t.prototype.isPureReactComponent?!gs(n,a)||!gs(l,i):!0}function Lg(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&Bd.enqueueReplaceState(t,t.state,null)}function jl(e,t){var n=t;if("ref"in t){n={};for(var a in t)a!=="ref"&&(n[a]=t[a])}if(e=e.defaultProps){n===t&&(n=Be({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function eb(e){xo(e)}function tb(e){console.error(e)}function nb(e){xo(e)}function Co(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Hg(e,t,n){try{var a=e.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(l){setTimeout(function(){throw l})}}function qd(e,t,n){return n=al(n),n.tag=3,n.payload={element:null},n.callback=function(){Co(e,t)},n}function ab(e){return e=al(e),e.tag=3,e}function lb(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var i=a.value;e.payload=function(){return l(i)},e.callback=function(){Hg(t,n,a)}}var r=n.stateNode;r!==null&&typeof r.componentDidCatch=="function"&&(e.callback=function(){Hg(t,n,a),typeof l!="function"&&(il===null?il=new Set([this]):il.add(this));var c=a.stack;this.componentDidCatch(a.value,{componentStack:c!==null?c:""})})}function Ax(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&nu(t,n,l,!0),n=fn.current,n!==null){switch(n.tag){case 31:case 13:return Sn===null?Bo():n.alternate===null&&Fe===0&&(Fe=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===Oo?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),ld(e,a,l)),!1;case 22:return n.flags|=65536,a===Oo?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([a]):n.add(a)),ld(e,a,l)),!1}throw Error(D(435,n.tag))}return ld(e,a,l),Bo(),!1}if(me)return t=fn.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==Ad&&(e=Error(D(422),{cause:a}),bs(bn(e,n)))):(a!==Ad&&(t=Error(D(423),{cause:a}),bs(bn(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=bn(a,n),l=qd(e.stateNode,a,l),Qf(e,l),Fe!==4&&(Fe=2)),!1;var i=Error(D(520),{cause:a});if(i=bn(i,n),cs===null?cs=[i]:cs.push(i),Fe!==4&&(Fe=2),t===null)return!0;a=bn(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=qd(n.stateNode,a,e),Qf(n,e),!1;case 1:if(t=n.type,i=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(il===null||!il.has(i))))return n.flags|=65536,l&=-l,n.lanes|=l,l=ab(l),lb(l,e,n,a),Qf(n,l),!1}n=n.return}while(n!==null);return!1}var qh=Error(D(461)),at=!1;function yt(e,t,n,a){t.child=e===null?b0(t,null,n,a):ql(t,e.child,n,a)}function Bg(e,t,n,a,l){n=n.render;var i=t.ref;if("ref"in a){var r={};for(var c in a)c!=="ref"&&(r[c]=a[c])}else r=a;return Bl(t),a=Mh(e,t,n,r,i,l),c=Oh(),e!==null&&!at?(Dh(e,t,l),Ma(e,t,l)):(me&&c&&Sh(t),t.flags|=1,yt(e,t,a,l),t.child)}function qg(e,t,n,a,l){if(e===null){var i=n.type;return typeof i=="function"&&!vh(i)&&i.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=i,ib(e,t,i,a,l)):(e=ro(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!Gh(e,l)){var r=i.memoizedProps;if(n=n.compare,n=n!==null?n:gs,n(r,a)&&e.ref===t.ref)return Ma(e,t,l)}return t.flags|=1,e=_a(i,a),e.ref=t.ref,e.return=t,t.child=e}function ib(e,t,n,a,l){if(e!==null){var i=e.memoizedProps;if(gs(i,a)&&e.ref===t.ref)if(at=!1,t.pendingProps=a=i,Gh(e,l))(e.flags&131072)!==0&&(at=!0);else return t.lanes=e.lanes,Ma(e,t,l)}return Gd(e,t,n,a,l)}function ub(e,t,n,a){var l=a.children,i=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(i=i!==null?i.baseLanes|n:n,e!==null){for(a=t.child=e.child,l=0;a!==null;)l=l|a.lanes|a.childLanes,a=a.sibling;a=l&~i}else a=0,t.child=null;return Gg(e,t,i,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&oo(t,i!==null?i.cachePool:null),i!==null?Og(t,i):Cd(),T0(t);else return a=t.lanes=536870912,Gg(e,t,i!==null?i.baseLanes|n:n,n,a)}else i!==null?(oo(t,i.cachePool),Og(t,i),Ka(t),t.memoizedState=null):(e!==null&&oo(t,null),Cd(),Ka(t));return yt(e,t,l,n),t.child}function Iu(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Gg(e,t,n,a,l){var i=kh();return i=i===null?null:{parent:nt._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},e!==null&&oo(t,null),Cd(),T0(t),e!==null&&nu(e,t,a,!0),t.childLanes=l,null}function ho(e,t){return t=Uo({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function jg(e,t,n){return ql(t,e.child,null,n),e=ho(t,t.pendingProps),e.flags|=2,nn(t),t.memoizedState=null,e}function Mx(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(me){if(a.mode==="hidden")return e=ho(t,a),t.lanes=536870912,Iu(null,e);if(Ud(t),(e=He)?(e=Ib(e,vn),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:cl!==null?{id:Vn,overflow:Zn}:null,retryLane:536870912,hydrationErrors:null},n=f0(e),n.return=t,t.child=n,vt=t,He=null)):e=null,e===null)throw fl(t);return t.lanes=536870912,null}return ho(t,a)}var i=e.memoizedState;if(i!==null){var r=i.dehydrated;if(Ud(t),l)if(t.flags&256)t.flags&=-257,t=jg(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(D(558));else if(at||nu(e,t,n,!1),l=(n&e.childLanes)!==0,at||l){if(a=Ne,a!==null&&(r=Ly(a,n),r!==0&&r!==i.retryLane))throw i.retryLane=r,Xl(e,r),Xt(a,e,r),qh;Bo(),t=jg(e,t,n)}else e=i.treeContext,He=Tn(r.nextSibling),vt=t,me=!0,nl=null,vn=!1,e!==null&&h0(t,e),t=ho(t,a),t.flags|=4096;return t}return e=_a(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function mo(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(D(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Gd(e,t,n,a,l){return Bl(t),n=Mh(e,t,n,a,void 0,l),a=Oh(),e!==null&&!at?(Dh(e,t,l),Ma(e,t,l)):(me&&a&&Sh(t),t.flags|=1,yt(e,t,n,l),t.child)}function Vg(e,t,n,a,l,i){return Bl(t),t.updateQueue=null,n=k0(t,a,n,l),_0(e),a=Oh(),e!==null&&!at?(Dh(e,t,i),Ma(e,t,i)):(me&&a&&Sh(t),t.flags|=1,yt(e,t,n,i),t.child)}function Zg(e,t,n,a,l){if(Bl(t),t.stateNode===null){var i=Ni,r=n.contextType;typeof r=="object"&&r!==null&&(i=St(r)),i=new n(a,i),t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=Bd,t.stateNode=i,i._reactInternals=t,i=t.stateNode,i.props=a,i.state=t.memoizedState,i.refs={},xh(t),r=n.contextType,i.context=typeof r=="object"&&r!==null?St(r):Ni,i.state=t.memoizedState,r=n.getDerivedStateFromProps,typeof r=="function"&&(Ff(t,n,r,a),i.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(r=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),r!==i.state&&Bd.enqueueReplaceState(i,i.state,null),us(t,a,i,l),is(),i.state=t.memoizedState),typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){i=t.stateNode;var c=t.memoizedProps,d=jl(n,c);i.props=d;var m=i.context,p=n.contextType;r=Ni,typeof p=="object"&&p!==null&&(r=St(p));var _=n.getDerivedStateFromProps;p=typeof _=="function"||typeof i.getSnapshotBeforeUpdate=="function",c=t.pendingProps!==c,p||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(c||m!==r)&&Lg(t,i,a,r),Qa=!1;var y=t.memoizedState;i.state=y,us(t,a,i,l),is(),m=t.memoizedState,c||y!==m||Qa?(typeof _=="function"&&(Ff(t,n,_,a),m=t.memoizedState),(d=Qa||Yg(t,n,d,a,y,m,r))?(p||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=m),i.props=a,i.state=m,i.context=r,a=d):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,Nd(e,t),r=t.memoizedProps,p=jl(n,r),i.props=p,_=t.pendingProps,y=i.context,m=n.contextType,d=Ni,typeof m=="object"&&m!==null&&(d=St(m)),c=n.getDerivedStateFromProps,(m=typeof c=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(r!==_||y!==d)&&Lg(t,i,a,d),Qa=!1,y=t.memoizedState,i.state=y,us(t,a,i,l),is();var S=t.memoizedState;r!==_||y!==S||Qa||e!==null&&e.dependencies!==null&&Mo(e.dependencies)?(typeof c=="function"&&(Ff(t,n,c,a),S=t.memoizedState),(p=Qa||Yg(t,n,p,a,y,S,d)||e!==null&&e.dependencies!==null&&Mo(e.dependencies))?(m||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,S,d),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,S,d)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&y===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&y===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=S),i.props=a,i.state=S,i.context=d,a=p):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&y===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&y===e.memoizedState||(t.flags|=1024),a=!1)}return i=a,mo(e,t),a=(t.flags&128)!==0,i||a?(i=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:i.render(),t.flags|=1,e!==null&&a?(t.child=ql(t,e.child,null,l),t.child=ql(t,null,n,l)):yt(e,t,n,l),t.memoizedState=i.state,e=t.child):e=Ma(e,t,l),e}function Qg(e,t,n,a){return Hl(),t.flags|=256,yt(e,t,n,a),t.child}var Kf={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Jf(e){return{baseLanes:e,cachePool:p0()}}function Wf(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=ln),e}function sb(e,t,n){var a=t.pendingProps,l=!1,i=(t.flags&128)!==0,r;if((r=i)||(r=e!==null&&e.memoizedState===null?!1:(Je.current&2)!==0),r&&(l=!0,t.flags&=-129),r=(t.flags&32)!==0,t.flags&=-33,e===null){if(me){if(l?Fa(t):Ka(t),(e=He)?(e=Ib(e,vn),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:cl!==null?{id:Vn,overflow:Zn}:null,retryLane:536870912,hydrationErrors:null},n=f0(e),n.return=t,t.child=n,vt=t,He=null)):e=null,e===null)throw fl(t);return th(e)?t.lanes=32:t.lanes=536870912,null}var c=a.children;return a=a.fallback,l?(Ka(t),l=t.mode,c=Uo({mode:"hidden",children:c},l),a=Cl(a,l,n,null),c.return=t,a.return=t,c.sibling=a,t.child=c,a=t.child,a.memoizedState=Jf(n),a.childLanes=Wf(e,r,n),t.memoizedState=Kf,Iu(null,a)):(Fa(t),jd(t,c))}var d=e.memoizedState;if(d!==null&&(c=d.dehydrated,c!==null)){if(i)t.flags&256?(Fa(t),t.flags&=-257,t=$f(e,t,n)):t.memoizedState!==null?(Ka(t),t.child=e.child,t.flags|=128,t=null):(Ka(t),c=a.fallback,l=t.mode,a=Uo({mode:"visible",children:a.children},l),c=Cl(c,l,n,null),c.flags|=2,a.return=t,c.return=t,a.sibling=c,t.child=a,ql(t,e.child,null,n),a=t.child,a.memoizedState=Jf(n),a.childLanes=Wf(e,r,n),t.memoizedState=Kf,t=Iu(null,a));else if(Fa(t),th(c)){if(r=c.nextSibling&&c.nextSibling.dataset,r)var m=r.dgst;r=m,a=Error(D(419)),a.stack="",a.digest=r,bs({value:a,source:null,stack:null}),t=$f(e,t,n)}else if(at||nu(e,t,n,!1),r=(n&e.childLanes)!==0,at||r){if(r=Ne,r!==null&&(a=Ly(r,n),a!==0&&a!==d.retryLane))throw d.retryLane=a,Xl(e,a),Xt(r,e,a),qh;eh(c)||Bo(),t=$f(e,t,n)}else eh(c)?(t.flags|=192,t.child=e.child,t=null):(e=d.treeContext,He=Tn(c.nextSibling),vt=t,me=!0,nl=null,vn=!1,e!==null&&h0(t,e),t=jd(t,a.children),t.flags|=4096);return t}return l?(Ka(t),c=a.fallback,l=t.mode,d=e.child,m=d.sibling,a=_a(d,{mode:"hidden",children:a.children}),a.subtreeFlags=d.subtreeFlags&65011712,m!==null?c=_a(m,c):(c=Cl(c,l,n,null),c.flags|=2),c.return=t,a.return=t,a.sibling=c,t.child=a,Iu(null,a),a=t.child,c=e.child.memoizedState,c===null?c=Jf(n):(l=c.cachePool,l!==null?(d=nt._currentValue,l=l.parent!==d?{parent:d,pool:d}:l):l=p0(),c={baseLanes:c.baseLanes|n,cachePool:l}),a.memoizedState=c,a.childLanes=Wf(e,r,n),t.memoizedState=Kf,Iu(e.child,a)):(Fa(t),n=e.child,e=n.sibling,n=_a(n,{mode:"visible",children:a.children}),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function jd(e,t){return t=Uo({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Uo(e,t){return e=an(22,e,null,t),e.lanes=0,e}function $f(e,t,n){return ql(t,e.child,null,n),e=jd(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Xg(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Od(e.return,t,n)}function If(e,t,n,a,l,i){var r=e.memoizedState;r===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:i}:(r.isBackwards=t,r.rendering=null,r.renderingStartTime=0,r.last=a,r.tail=n,r.tailMode=l,r.treeForkCount=i)}function rb(e,t,n){var a=t.pendingProps,l=a.revealOrder,i=a.tail;a=a.children;var r=Je.current,c=(r&2)!==0;if(c?(r=r&1|2,t.flags|=128):r&=1,Ce(Je,r),yt(e,t,a,n),a=me?ys:0,!c&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Xg(e,n,t);else if(e.tag===19)Xg(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&Ro(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),If(t,!1,l,n,i,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&Ro(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}If(t,!0,n,null,i,a);break;case"together":If(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function Ma(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),hl|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(nu(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(D(153));if(t.child!==null){for(e=t.child,n=_a(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=_a(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Gh(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Mo(e)))}function Ox(e,t,n){switch(t.tag){case 3:To(t,t.stateNode.containerInfo),Xa(t,nt,e.memoizedState.cache),Hl();break;case 27:case 5:gd(t);break;case 4:To(t,t.stateNode.containerInfo);break;case 10:Xa(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Ud(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(Fa(t),t.flags|=128,null):(n&t.child.childLanes)!==0?sb(e,t,n):(Fa(t),e=Ma(e,t,n),e!==null?e.sibling:null);Fa(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(nu(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return rb(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),Ce(Je,Je.current),a)break;return null;case 22:return t.lanes=0,ub(e,t,n,t.pendingProps);case 24:Xa(t,nt,e.memoizedState.cache)}return Ma(e,t,n)}function ob(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)at=!0;else{if(!Gh(e,n)&&(t.flags&128)===0)return at=!1,Ox(e,t,n);at=(e.flags&131072)!==0}else at=!1,me&&(t.flags&1048576)!==0&&d0(t,ys,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=Rl(t.elementType),t.type=e,typeof e=="function")vh(e)?(a=jl(e,a),t.tag=1,t=Zg(null,t,e,a,n)):(t.tag=0,t=Gd(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===ih){t.tag=11,t=Bg(null,t,e,a,n);break e}else if(l===uh){t.tag=14,t=qg(null,t,e,a,n);break e}}throw t=md(e)||e,Error(D(306,t,""))}}return t;case 0:return Gd(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=jl(a,t.pendingProps),Zg(e,t,a,l,n);case 3:e:{if(To(t,t.stateNode.containerInfo),e===null)throw Error(D(387));a=t.pendingProps;var i=t.memoizedState;l=i.element,Nd(e,t),us(t,a,null,n);var r=t.memoizedState;if(a=r.cache,Xa(t,nt,a),a!==i.cache&&Dd(t,[nt],n,!0),is(),a=r.element,i.isDehydrated)if(i={element:a,isDehydrated:!1,cache:r.cache},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){t=Qg(e,t,a,n);break e}else if(a!==l){l=bn(Error(D(424)),t),bs(l),t=Qg(e,t,a,n);break e}else for(e=t.stateNode.containerInfo,e.nodeType===9?e=e.body:e=e.nodeName==="HTML"?e.ownerDocument.body:e,He=Tn(e.firstChild),vt=t,me=!0,nl=null,vn=!0,n=b0(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Hl(),a===l){t=Ma(e,t,n);break e}yt(e,t,a,n)}t=t.child}return t;case 26:return mo(e,t),e===null?(n=my(t.type,null,t.pendingProps,null))?t.memoizedState=n:me||(n=t.type,e=t.pendingProps,a=Vo(tl.current).createElement(n),a[bt]=t,a[Ft]=e,Tt(a,n,e),ct(a),t.stateNode=a):t.memoizedState=my(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return gd(t),e===null&&me&&(a=t.stateNode=Pb(t.type,t.pendingProps,tl.current),vt=t,vn=!0,l=He,pl(t.type)?(nh=l,He=Tn(a.firstChild)):He=l),yt(e,t,t.pendingProps.children,n),mo(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&me&&((l=a=He)&&(a=aw(a,t.type,t.pendingProps,vn),a!==null?(t.stateNode=a,vt=t,He=Tn(a.firstChild),vn=!1,l=!0):l=!1),l||fl(t)),gd(t),l=t.type,i=t.pendingProps,r=e!==null?e.memoizedProps:null,a=i.children,Id(l,i)?a=null:r!==null&&Id(l,r)&&(t.flags|=32),t.memoizedState!==null&&(l=Mh(e,t,Sx,null,null,n),Es._currentValue=l),mo(e,t),yt(e,t,a,n),t.child;case 6:return e===null&&me&&((e=n=He)&&(n=lw(n,t.pendingProps,vn),n!==null?(t.stateNode=n,vt=t,He=null,e=!0):e=!1),e||fl(t)),null;case 13:return sb(e,t,n);case 4:return To(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=ql(t,null,a,n):yt(e,t,a,n),t.child;case 11:return Bg(e,t,t.type,t.pendingProps,n);case 7:return yt(e,t,t.pendingProps,n),t.child;case 8:return yt(e,t,t.pendingProps.children,n),t.child;case 12:return yt(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,Xa(t,t.type,a.value),yt(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,Bl(t),l=St(l),a=a(l),t.flags|=1,yt(e,t,a,n),t.child;case 14:return qg(e,t,t.type,t.pendingProps,n);case 15:return ib(e,t,t.type,t.pendingProps,n);case 19:return rb(e,t,n);case 31:return Mx(e,t,n);case 22:return ub(e,t,n,t.pendingProps);case 24:return Bl(t),a=St(nt),e===null?(l=kh(),l===null&&(l=Ne,i=_h(),l.pooledCache=i,i.refCount++,i!==null&&(l.pooledCacheLanes|=n),l=i),t.memoizedState={parent:a,cache:l},xh(t),Xa(t,nt,l)):((e.lanes&n)!==0&&(Nd(e,t),us(t,null,null,n),is()),l=e.memoizedState,i=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),Xa(t,nt,a)):(a=i.cache,Xa(t,nt,a),a!==l.cache&&Dd(t,[nt],n,!0))),yt(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(D(156,t.tag))}function ha(e){e.flags|=4}function Pf(e,t,n,a,l){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(l&335544128)===l)if(e.stateNode.complete)e.flags|=8192;else if(zb())e.flags|=8192;else throw Yl=Oo,Eh}else e.flags&=-16777217}function Fg(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!nv(t))if(zb())e.flags|=8192;else throw Yl=Oo,Eh}function $r(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Cy():536870912,e.lanes|=t,Ji|=t)}function Qu(e,t){if(!me)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function Le(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags&65011712,a|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags,a|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function Dx(e,t,n){var a=t.pendingProps;switch(Th(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Le(t),null;case 1:return Le(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),ka(nt),Vi(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Si(t)?ha(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Zf())),Le(t),null;case 26:var l=t.type,i=t.memoizedState;return e===null?(ha(t),i!==null?(Le(t),Fg(t,i)):(Le(t),Pf(t,l,null,a,n))):i?i!==e.memoizedState?(ha(t),Le(t),Fg(t,i)):(Le(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&ha(t),Le(t),Pf(t,l,e,a,n)),null;case 27:if(_o(t),n=tl.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&ha(t);else{if(!a){if(t.stateNode===null)throw Error(D(166));return Le(t),null}e=Xn.current,Si(t)?_g(t,e):(e=Pb(l,a,n),t.stateNode=e,ha(t))}return Le(t),null;case 5:if(_o(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&ha(t);else{if(!a){if(t.stateNode===null)throw Error(D(166));return Le(t),null}if(i=Xn.current,Si(t))_g(t,i);else{var r=Vo(tl.current);switch(i){case 1:i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":i=r.createElement("div"),i.innerHTML="<script><\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof a.is=="string"?r.createElement("select",{is:a.is}):r.createElement("select"),a.multiple?i.multiple=!0:a.size&&(i.size=a.size);break;default:i=typeof a.is=="string"?r.createElement(l,{is:a.is}):r.createElement(l)}}i[bt]=t,i[Ft]=a;e:for(r=t.child;r!==null;){if(r.tag===5||r.tag===6)i.appendChild(r.stateNode);else if(r.tag!==4&&r.tag!==27&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break e;for(;r.sibling===null;){if(r.return===null||r.return===t)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}t.stateNode=i;e:switch(Tt(i,l,a),l){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&ha(t)}}return Le(t),Pf(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&ha(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(D(166));if(e=tl.current,Si(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=vt,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[bt]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Jb(e.nodeValue,n)),e||fl(t,!0)}else e=Vo(e).createTextNode(a),e[bt]=t,t.stateNode=e}return Le(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=Si(t),n!==null){if(e===null){if(!a)throw Error(D(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(D(557));e[bt]=t}else Hl(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Le(t),e=!1}else n=Zf(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(nn(t),t):(nn(t),null);if((t.flags&128)!==0)throw Error(D(558))}return Le(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=Si(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(D(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(D(317));l[bt]=t}else Hl(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Le(t),l=!1}else l=Zf(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(nn(t),t):(nn(t),null)}return nn(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),i=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(i=a.memoizedState.cachePool.pool),i!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),$r(t,t.updateQueue),Le(t),null);case 4:return Vi(),e===null&&Kh(t.stateNode.containerInfo),Le(t),null;case 10:return ka(t.type),Le(t),null;case 19:if(ft(Je),a=t.memoizedState,a===null)return Le(t),null;if(l=(t.flags&128)!==0,i=a.rendering,i===null)if(l)Qu(a,!1);else{if(Fe!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=Ro(e),i!==null){for(t.flags|=128,Qu(a,!1),e=i.updateQueue,t.updateQueue=e,$r(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)c0(n,e),n=n.sibling;return Ce(Je,Je.current&1|2),me&&ya(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&un()>Lo&&(t.flags|=128,l=!0,Qu(a,!1),t.lanes=4194304)}else{if(!l)if(e=Ro(i),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,$r(t,e),Qu(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!me)return Le(t),null}else 2*un()-a.renderingStartTime>Lo&&n!==536870912&&(t.flags|=128,l=!0,Qu(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(e=a.last,e!==null?e.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=un(),e.sibling=null,n=Je.current,Ce(Je,l?n&1|2:n&1),me&&ya(t,a.treeForkCount),e):(Le(t),null);case 22:case 23:return nn(t),wh(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&(Le(t),t.subtreeFlags&6&&(t.flags|=8192)):Le(t),n=t.updateQueue,n!==null&&$r(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&ft(Ul),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ka(nt),Le(t),null;case 25:return null;case 30:return null}throw Error(D(156,t.tag))}function Rx(e,t){switch(Th(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ka(nt),Vi(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return _o(t),null;case 31:if(t.memoizedState!==null){if(nn(t),t.alternate===null)throw Error(D(340));Hl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(nn(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(D(340));Hl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ft(Je),null;case 4:return Vi(),null;case 10:return ka(t.type),null;case 22:case 23:return nn(t),wh(),e!==null&&ft(Ul),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ka(nt),null;case 25:return null;default:return null}}function cb(e,t){switch(Th(t),t.tag){case 3:ka(nt),Vi();break;case 26:case 27:case 5:_o(t);break;case 4:Vi();break;case 31:t.memoizedState!==null&&nn(t);break;case 13:nn(t);break;case 19:ft(Je);break;case 10:ka(t.type);break;case 22:case 23:nn(t),wh(),e!==null&&ft(Ul);break;case 24:ka(nt)}}function Us(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var l=a.next;n=l;do{if((n.tag&e)===e){a=void 0;var i=n.create,r=n.inst;a=i(),r.destroy=a}n=n.next}while(n!==l)}}catch(c){Ae(t,t.return,c)}}function dl(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){var r=a.inst,c=r.destroy;if(c!==void 0){r.destroy=void 0,l=t;var d=n,m=c;try{m()}catch(p){Ae(l,d,p)}}}a=a.next}while(a!==i)}}catch(p){Ae(t,t.return,p)}}function fb(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{S0(t,n)}catch(a){Ae(e,e.return,a)}}}function db(e,t,n){n.props=jl(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){Ae(e,t,a)}}function rs(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof n=="function"?e.refCleanup=n(a):n.current=a}}catch(l){Ae(e,t,l)}}function Qn(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){Ae(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(l){Ae(e,t,l)}else n.current=null}function hb(e){var t=e.type,n=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break e;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(l){Ae(e,e.return,l)}}function ed(e,t,n){try{var a=e.stateNode;$x(a,e.type,n,t),a[Ft]=t}catch(l){Ae(e,e.return,l)}}function mb(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&pl(e.type)||e.tag===4}function td(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||mb(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&pl(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vd(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Sa));else if(a!==4&&(a===27&&pl(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Vd(e,t,n),e=e.sibling;e!==null;)Vd(e,t,n),e=e.sibling}function Yo(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&pl(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Yo(e,t,n),e=e.sibling;e!==null;)Yo(e,t,n),e=e.sibling}function pb(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);Tt(t,a,n),t[bt]=e,t[Ft]=n}catch(i){Ae(e,e.return,i)}}var ba=!1,tt=!1,nd=!1,Kg=typeof WeakSet=="function"?WeakSet:Set,ot=null;function Nx(e,t){if(e=e.containerInfo,Wd=Fo,e=n0(e),gh(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var l=a.anchorOffset,i=a.focusNode;a=a.focusOffset;try{n.nodeType,i.nodeType}catch(w){n=null;break e}var r=0,c=-1,d=-1,m=0,p=0,_=e,y=null;t:for(;;){for(var S;_!==n||l!==0&&_.nodeType!==3||(c=r+l),_!==i||a!==0&&_.nodeType!==3||(d=r+a),_.nodeType===3&&(r+=_.nodeValue.length),(S=_.firstChild)!==null;)y=_,_=S;for(;;){if(_===e)break t;if(y===n&&++m===l&&(c=r),y===i&&++p===a&&(d=r),(S=_.nextSibling)!==null)break;_=y,y=_.parentNode}_=S}n=c===-1||d===-1?null:{start:c,end:d}}else n=null}n=n||{start:0,end:0}}else n=null;for($d={focusedElem:e,selectionRange:n},Fo=!1,ot=t;ot!==null;)if(t=ot,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ot=e;else for(;ot!==null;){switch(t=ot,i=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&i!==null){e=void 0,n=t,l=i.memoizedProps,i=i.memoizedState,a=n.stateNode;try{var x=jl(n.type,l);e=a.getSnapshotBeforeUpdate(x,i),a.__reactInternalSnapshotBeforeUpdate=e}catch(w){Ae(n,n.return,w)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)Pd(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Pd(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(D(163))}if(e=t.sibling,e!==null){e.return=t.return,ot=e;break}ot=t.return}}function gb(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:pa(e,n),a&4&&Us(5,n);break;case 1:if(pa(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(r){Ae(n,n.return,r)}else{var l=jl(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(r){Ae(n,n.return,r)}}a&64&&fb(n),a&512&&rs(n,n.return);break;case 3:if(pa(e,n),a&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{S0(e,t)}catch(r){Ae(n,n.return,r)}}break;case 27:t===null&&a&4&&pb(n);case 26:case 5:pa(e,n),t===null&&a&4&&hb(n),a&512&&rs(n,n.return);break;case 12:pa(e,n);break;case 31:pa(e,n),a&4&&vb(e,n);break;case 13:pa(e,n),a&4&&Sb(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Gx.bind(null,n),iw(e,n))));break;case 22:if(a=n.memoizedState!==null||ba,!a){t=t!==null&&t.memoizedState!==null||tt,l=ba;var i=tt;ba=a,(tt=t)&&!i?ga(e,n,(n.subtreeFlags&8772)!==0):pa(e,n),ba=l,tt=i}break;case 30:break;default:pa(e,n)}}function yb(e){var t=e.alternate;t!==null&&(e.alternate=null,yb(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ch(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Ve=null,Zt=!1;function ma(e,t,n){for(n=n.child;n!==null;)bb(e,t,n),n=n.sibling}function bb(e,t,n){if(sn&&typeof sn.onCommitFiberUnmount=="function")try{sn.onCommitFiberUnmount(Ms,n)}catch(i){}switch(n.tag){case 26:tt||Qn(n,t),ma(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:tt||Qn(n,t);var a=Ve,l=Zt;pl(n.type)&&(Ve=n.stateNode,Zt=!1),ma(e,t,n),ds(n.stateNode),Ve=a,Zt=l;break;case 5:tt||Qn(n,t);case 6:if(a=Ve,l=Zt,Ve=null,ma(e,t,n),Ve=a,Zt=l,Ve!==null)if(Zt)try{(Ve.nodeType===9?Ve.body:Ve.nodeName==="HTML"?Ve.ownerDocument.body:Ve).removeChild(n.stateNode)}catch(i){Ae(n,t,i)}else try{Ve.removeChild(n.stateNode)}catch(i){Ae(n,t,i)}break;case 18:Ve!==null&&(Zt?(e=Ve,oy(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),Pi(e)):oy(Ve,n.stateNode));break;case 4:a=Ve,l=Zt,Ve=n.stateNode.containerInfo,Zt=!0,ma(e,t,n),Ve=a,Zt=l;break;case 0:case 11:case 14:case 15:dl(2,n,t),tt||dl(4,n,t),ma(e,t,n);break;case 1:tt||(Qn(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&db(n,t,a)),ma(e,t,n);break;case 21:ma(e,t,n);break;case 22:tt=(a=tt)||n.memoizedState!==null,ma(e,t,n),tt=a;break;default:ma(e,t,n)}}function vb(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Pi(e)}catch(n){Ae(t,t.return,n)}}}function Sb(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Pi(e)}catch(n){Ae(t,t.return,n)}}function zx(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Kg),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Kg),t;default:throw Error(D(435,e.tag))}}function Ir(e,t){var n=zx(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=jx.bind(null,e,a);a.then(l,l)}})}function jt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],i=e,r=t,c=r;e:for(;c!==null;){switch(c.tag){case 27:if(pl(c.type)){Ve=c.stateNode,Zt=!1;break e}break;case 5:Ve=c.stateNode,Zt=!1;break e;case 3:case 4:Ve=c.stateNode.containerInfo,Zt=!0;break e}c=c.return}if(Ve===null)throw Error(D(160));bb(i,r,l),Ve=null,Zt=!1,i=l.alternate,i!==null&&(i.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Tb(t,e),t=t.sibling}var Nn=null;function Tb(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:jt(t,e),Vt(e),a&4&&(dl(3,e,e.return),Us(3,e),dl(5,e,e.return));break;case 1:jt(t,e),Vt(e),a&512&&(tt||n===null||Qn(n,n.return)),a&64&&ba&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var l=Nn;if(jt(t,e),Vt(e),a&512&&(tt||n===null||Qn(n,n.return)),a&4){var i=n!==null?n.memoizedState:null;if(a=e.memoizedState,n===null)if(a===null)if(e.stateNode===null){e:{a=e.type,n=e.memoizedProps,l=l.ownerDocument||l;t:switch(a){case"title":i=l.getElementsByTagName("title")[0],(!i||i[Rs]||i[bt]||i.namespaceURI==="http://www.w3.org/2000/svg"||i.hasAttribute("itemprop"))&&(i=l.createElement(a),l.head.insertBefore(i,l.querySelector("head > title"))),Tt(i,a,n),i[bt]=e,ct(i),a=i;break e;case"link":var r=gy("link","href",l).get(a+(n.href||""));if(r){for(var c=0;c<r.length;c++)if(i=r[c],i.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&i.getAttribute("rel")===(n.rel==null?null:n.rel)&&i.getAttribute("title")===(n.title==null?null:n.title)&&i.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){r.splice(c,1);break t}}i=l.createElement(a),Tt(i,a,n),l.head.appendChild(i);break;case"meta":if(r=gy("meta","content",l).get(a+(n.content||""))){for(c=0;c<r.length;c++)if(i=r[c],i.getAttribute("content")===(n.content==null?null:""+n.content)&&i.getAttribute("name")===(n.name==null?null:n.name)&&i.getAttribute("property")===(n.property==null?null:n.property)&&i.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&i.getAttribute("charset")===(n.charSet==null?null:n.charSet)){r.splice(c,1);break t}}i=l.createElement(a),Tt(i,a,n),l.head.appendChild(i);break;default:throw Error(D(468,a))}i[bt]=e,ct(i),a=i}e.stateNode=a}else yy(l,e.type,e.stateNode);else e.stateNode=py(l,a,e.memoizedProps);else i!==a?(i===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):i.count--,a===null?yy(l,e.type,e.stateNode):py(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&ed(e,e.memoizedProps,n.memoizedProps)}break;case 27:jt(t,e),Vt(e),a&512&&(tt||n===null||Qn(n,n.return)),n!==null&&a&4&&ed(e,e.memoizedProps,n.memoizedProps);break;case 5:if(jt(t,e),Vt(e),a&512&&(tt||n===null||Qn(n,n.return)),e.flags&32){l=e.stateNode;try{Qi(l,"")}catch(x){Ae(e,e.return,x)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,ed(e,l,n!==null?n.memoizedProps:l)),a&1024&&(nd=!0);break;case 6:if(jt(t,e),Vt(e),a&4){if(e.stateNode===null)throw Error(D(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(x){Ae(e,e.return,x)}}break;case 3:if(yo=null,l=Nn,Nn=Zo(t.containerInfo),jt(t,e),Nn=l,Vt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{Pi(t.containerInfo)}catch(x){Ae(e,e.return,x)}nd&&(nd=!1,_b(e));break;case 4:a=Nn,Nn=Zo(e.stateNode.containerInfo),jt(t,e),Vt(e),Nn=a;break;case 12:jt(t,e),Vt(e);break;case 31:jt(t,e),Vt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ir(e,a)));break;case 13:jt(t,e),Vt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(uc=un()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ir(e,a)));break;case 22:l=e.memoizedState!==null;var d=n!==null&&n.memoizedState!==null,m=ba,p=tt;if(ba=m||l,tt=p||d,jt(t,e),tt=p,ba=m,Vt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||d||ba||tt||Nl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){d=n=t;try{if(i=d.stateNode,l)r=i.style,typeof r.setProperty=="function"?r.setProperty("display","none","important"):r.display="none";else{c=d.stateNode;var _=d.memoizedProps.style,y=_!=null&&_.hasOwnProperty("display")?_.display:null;c.style.display=y==null||typeof y=="boolean"?"":(""+y).trim()}}catch(x){Ae(d,d.return,x)}}}else if(t.tag===6){if(n===null){d=t;try{d.stateNode.nodeValue=l?"":d.memoizedProps}catch(x){Ae(d,d.return,x)}}}else if(t.tag===18){if(n===null){d=t;try{var S=d.stateNode;l?cy(S,!0):cy(d.stateNode,!1)}catch(x){Ae(d,d.return,x)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,Ir(e,n))));break;case 19:jt(t,e),Vt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ir(e,a)));break;case 30:break;case 21:break;default:jt(t,e),Vt(e)}}function Vt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(mb(a)){n=a;break}a=a.return}if(n==null)throw Error(D(160));switch(n.tag){case 27:var l=n.stateNode,i=td(e);Yo(e,i,l);break;case 5:var r=n.stateNode;n.flags&32&&(Qi(r,""),n.flags&=-33);var c=td(e);Yo(e,c,r);break;case 3:case 4:var d=n.stateNode.containerInfo,m=td(e);Vd(e,m,d);break;default:throw Error(D(161))}}catch(p){Ae(e,e.return,p)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function _b(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;_b(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function pa(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)gb(e,t.alternate,t),t=t.sibling}function Nl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:dl(4,t,t.return),Nl(t);break;case 1:Qn(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&db(t,t.return,n),Nl(t);break;case 27:ds(t.stateNode);case 26:case 5:Qn(t,t.return),Nl(t);break;case 22:t.memoizedState===null&&Nl(t);break;case 30:Nl(t);break;default:Nl(t)}e=e.sibling}}function ga(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,i=t,r=i.flags;switch(i.tag){case 0:case 11:case 15:ga(l,i,n),Us(4,i);break;case 1:if(ga(l,i,n),a=i,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(m){Ae(a,a.return,m)}if(a=i,l=a.updateQueue,l!==null){var c=a.stateNode;try{var d=l.shared.hiddenCallbacks;if(d!==null)for(l.shared.hiddenCallbacks=null,l=0;l<d.length;l++)v0(d[l],c)}catch(m){Ae(a,a.return,m)}}n&&r&64&&fb(i),rs(i,i.return);break;case 27:pb(i);case 26:case 5:ga(l,i,n),n&&a===null&&r&4&&hb(i),rs(i,i.return);break;case 12:ga(l,i,n);break;case 31:ga(l,i,n),n&&r&4&&vb(l,i);break;case 13:ga(l,i,n),n&&r&4&&Sb(l,i);break;case 22:i.memoizedState===null&&ga(l,i,n),rs(i,i.return);break;case 30:break;default:ga(l,i,n)}t=t.sibling}}function jh(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&zs(n))}function Vh(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&zs(e))}function Rn(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)kb(e,t,n,a),t=t.sibling}function kb(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:Rn(e,t,n,a),l&2048&&Us(9,t);break;case 1:Rn(e,t,n,a);break;case 3:Rn(e,t,n,a),l&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&zs(e)));break;case 12:if(l&2048){Rn(e,t,n,a),e=t.stateNode;try{var i=t.memoizedProps,r=i.id,c=i.onPostCommit;typeof c=="function"&&c(r,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(d){Ae(t,t.return,d)}}else Rn(e,t,n,a);break;case 31:Rn(e,t,n,a);break;case 13:Rn(e,t,n,a);break;case 23:break;case 22:i=t.stateNode,r=t.alternate,t.memoizedState!==null?i._visibility&2?Rn(e,t,n,a):os(e,t):i._visibility&2?Rn(e,t,n,a):(i._visibility|=2,_i(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&jh(r,t);break;case 24:Rn(e,t,n,a),l&2048&&Vh(t.alternate,t);break;default:Rn(e,t,n,a)}}function _i(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var i=e,r=t,c=n,d=a,m=r.flags;switch(r.tag){case 0:case 11:case 15:_i(i,r,c,d,l),Us(8,r);break;case 23:break;case 22:var p=r.stateNode;r.memoizedState!==null?p._visibility&2?_i(i,r,c,d,l):os(i,r):(p._visibility|=2,_i(i,r,c,d,l)),l&&m&2048&&jh(r.alternate,r);break;case 24:_i(i,r,c,d,l),l&&m&2048&&Vh(r.alternate,r);break;default:_i(i,r,c,d,l)}t=t.sibling}}function os(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,a=t,l=a.flags;switch(a.tag){case 22:os(n,a),l&2048&&jh(a.alternate,a);break;case 24:os(n,a),l&2048&&Vh(a.alternate,a);break;default:os(n,a)}t=t.sibling}}var Pu=8192;function Ti(e,t,n){if(e.subtreeFlags&Pu)for(e=e.child;e!==null;)Eb(e,t,n),e=e.sibling}function Eb(e,t,n){switch(e.tag){case 26:Ti(e,t,n),e.flags&Pu&&e.memoizedState!==null&&yw(n,Nn,e.memoizedState,e.memoizedProps);break;case 5:Ti(e,t,n);break;case 3:case 4:var a=Nn;Nn=Zo(e.stateNode.containerInfo),Ti(e,t,n),Nn=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=Pu,Pu=16777216,Ti(e,t,n),Pu=a):Ti(e,t,n));break;default:Ti(e,t,n)}}function xb(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Xu(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];ot=a,Ab(a,e)}xb(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)wb(e),e=e.sibling}function wb(e){switch(e.tag){case 0:case 11:case 15:Xu(e),e.flags&2048&&dl(9,e,e.return);break;case 3:Xu(e);break;case 12:Xu(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,po(e)):Xu(e);break;default:Xu(e)}}function po(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];ot=a,Ab(a,e)}xb(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:dl(8,t,t.return),po(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,po(t));break;default:po(t)}e=e.sibling}}function Ab(e,t){for(;ot!==null;){var n=ot;switch(n.tag){case 0:case 11:case 15:dl(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var a=n.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:zs(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,ot=a;else e:for(n=e;ot!==null;){a=ot;var l=a.sibling,i=a.return;if(yb(a),a===n){ot=null;break e}if(l!==null){l.return=i,ot=l;break e}ot=i}}}var Cx={getCacheForType:function(e){var t=St(nt),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return St(nt).controller.signal}},Ux=typeof WeakMap=="function"?WeakMap:Map,Se=0,Ne=null,ce=null,fe=0,we=0,tn=null,Ia=!1,lu=!1,Zh=!1,Oa=0,Fe=0,hl=0,Ll=0,Qh=0,ln=0,Ji=0,cs=null,Qt=null,Zd=!1,uc=0,Mb=0,Lo=1/0,Ho=null,il=null,ut=0,ul=null,Wi=null,Ea=0,Qd=0,Xd=null,Ob=null,fs=0,Fd=null;function on(){return(Se&2)!==0&&fe!==0?fe&-fe:I.T!==null?Fh():Hy()}function Db(){if(ln===0)if((fe&536870912)===0||me){var e=jr;jr<<=1,(jr&3932160)===0&&(jr=262144),ln=e}else ln=536870912;return e=fn.current,e!==null&&(e.flags|=32),ln}function Xt(e,t,n){(e===Ne&&(we===2||we===9)||e.cancelPendingCommit!==null)&&($i(e,0),Pa(e,fe,ln,!1)),Ds(e,n),((Se&2)===0||e!==Ne)&&(e===Ne&&((Se&2)===0&&(Ll|=n),Fe===4&&Pa(e,fe,ln,!1)),Kn(e))}function Rb(e,t,n){if((Se&6)!==0)throw Error(D(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||Os(e,t),l=a?Hx(e,t):ad(e,t,!0),i=a;do{if(l===0){lu&&!a&&Pa(e,t,0,!1);break}else{if(n=e.current.alternate,i&&!Yx(n)){l=ad(e,t,!1),i=!1;continue}if(l===2){if(i=t,e.errorRecoveryDisabledLanes&i)var r=0;else r=e.pendingLanes&-536870913,r=r!==0?r:r&536870912?536870912:0;if(r!==0){t=r;e:{var c=e;l=cs;var d=c.current.memoizedState.isDehydrated;if(d&&($i(c,r).flags|=256),r=ad(c,r,!1),r!==2){if(Zh&&!d){c.errorRecoveryDisabledLanes|=i,Ll|=i,l=4;break e}i=Qt,Qt=l,i!==null&&(Qt===null?Qt=i:Qt.push.apply(Qt,i))}l=r}if(i=!1,l!==2)continue}}if(l===1){$i(e,0),Pa(e,t,0,!0);break}e:{switch(a=e,i=l,i){case 0:case 1:throw Error(D(345));case 4:if((t&4194048)!==t)break;case 6:Pa(a,t,ln,!Ia);break e;case 2:Qt=null;break;case 3:case 5:break;default:throw Error(D(329))}if((t&62914560)===t&&(l=uc+300-un(),10<l)){if(Pa(a,t,ln,!Ia),Jo(a,0,!0)!==0)break e;Ea=t,a.timeoutHandle=$b(Jg.bind(null,a,n,Qt,Ho,Zd,t,ln,Ll,Ji,Ia,i,"Throttled",-0,0),l);break e}Jg(a,n,Qt,Ho,Zd,t,ln,Ll,Ji,Ia,i,null,-0,0)}}break}while(!0);Kn(e)}function Jg(e,t,n,a,l,i,r,c,d,m,p,_,y,S){if(e.timeoutHandle=-1,_=t.subtreeFlags,_&8192||(_&16785408)===16785408){_={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Sa},Eb(t,i,_);var x=(i&62914560)===i?uc-un():(i&4194048)===i?Mb-un():0;if(x=bw(_,x),x!==null){Ea=i,e.cancelPendingCommit=x($g.bind(null,e,t,i,n,a,l,r,c,d,p,_,null,y,S)),Pa(e,i,r,!m);return}}$g(e,t,i,n,a,l,r,c,d)}function Yx(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var l=n[a],i=l.getSnapshot;l=l.value;try{if(!cn(i(),l))return!1}catch(r){return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Pa(e,t,n,a){t&=~Qh,t&=~Ll,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var i=31-rn(l),r=1<<i;a[i]=-1,l&=~r}n!==0&&Uy(e,n,t)}function sc(){return(Se&6)===0?(Ys(0,!1),!1):!0}function Xh(){if(ce!==null){if(we===0)var e=ce.return;else e=ce,Ta=Fl=null,Rh(e),qi=null,vs=0,e=ce;for(;e!==null;)cb(e.alternate,e),e=e.return;ce=null}}function $i(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,ew(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),Ea=0,Xh(),Ne=e,ce=n=_a(e.current,null),fe=t,we=0,tn=null,Ia=!1,lu=Os(e,t),Zh=!1,Ji=ln=Qh=Ll=hl=Fe=0,Qt=cs=null,Zd=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var l=31-rn(a),i=1<<l;t|=e[l],a&=~i}return Oa=t,Po(),n}function Nb(e,t){le=null,I.H=Ts,t===au||t===tc?(t=Ag(),we=3):t===Eh?(t=Ag(),we=4):we=t===qh?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,tn=t,ce===null&&(Fe=1,Co(e,bn(t,e.current)))}function zb(){var e=fn.current;return e===null?!0:(fe&4194048)===fe?Sn===null:(fe&62914560)===fe||(fe&536870912)!==0?e===Sn:!1}function Cb(){var e=I.H;return I.H=Ts,e===null?Ts:e}function Ub(){var e=I.A;return I.A=Cx,e}function Bo(){Fe=4,Ia||(fe&4194048)!==fe&&fn.current!==null||(lu=!0),(hl&134217727)===0&&(Ll&134217727)===0||Ne===null||Pa(Ne,fe,ln,!1)}function ad(e,t,n){var a=Se;Se|=2;var l=Cb(),i=Ub();(Ne!==e||fe!==t)&&(Ho=null,$i(e,t)),t=!1;var r=Fe;e:do try{if(we!==0&&ce!==null){var c=ce,d=tn;switch(we){case 8:Xh(),r=6;break e;case 3:case 2:case 9:case 6:fn.current===null&&(t=!0);var m=we;if(we=0,tn=null,Ui(e,c,d,m),n&&lu){r=0;break e}break;default:m=we,we=0,tn=null,Ui(e,c,d,m)}}Lx(),r=Fe;break}catch(p){Nb(e,p)}while(!0);return t&&e.shellSuspendCounter++,Ta=Fl=null,Se=a,I.H=l,I.A=i,ce===null&&(Ne=null,fe=0,Po()),r}function Lx(){for(;ce!==null;)Yb(ce)}function Hx(e,t){var n=Se;Se|=2;var a=Cb(),l=Ub();Ne!==e||fe!==t?(Ho=null,Lo=un()+500,$i(e,t)):lu=Os(e,t);e:do try{if(we!==0&&ce!==null){t=ce;var i=tn;t:switch(we){case 1:we=0,tn=null,Ui(e,t,i,1);break;case 2:case 9:if(wg(i)){we=0,tn=null,Wg(t);break}t=function(){we!==2&&we!==9||Ne!==e||(we=7),Kn(e)},i.then(t,t);break e;case 3:we=7;break e;case 4:we=5;break e;case 7:wg(i)?(we=0,tn=null,Wg(t)):(we=0,tn=null,Ui(e,t,i,7));break;case 5:var r=null;switch(ce.tag){case 26:r=ce.memoizedState;case 5:case 27:var c=ce;if(r?nv(r):c.stateNode.complete){we=0,tn=null;var d=c.sibling;if(d!==null)ce=d;else{var m=c.return;m!==null?(ce=m,rc(m)):ce=null}break t}}we=0,tn=null,Ui(e,t,i,5);break;case 6:we=0,tn=null,Ui(e,t,i,6);break;case 8:Xh(),Fe=6;break e;default:throw Error(D(462))}}Bx();break}catch(p){Nb(e,p)}while(!0);return Ta=Fl=null,I.H=a,I.A=l,Se=n,ce!==null?0:(Ne=null,fe=0,Po(),Fe)}function Bx(){for(;ce!==null&&!rE();)Yb(ce)}function Yb(e){var t=ob(e.alternate,e,Oa);e.memoizedProps=e.pendingProps,t===null?rc(e):ce=t}function Wg(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Vg(n,t,t.pendingProps,t.type,void 0,fe);break;case 11:t=Vg(n,t,t.pendingProps,t.type.render,t.ref,fe);break;case 5:Rh(t);default:cb(n,t),t=ce=c0(t,Oa),t=ob(n,t,Oa)}e.memoizedProps=e.pendingProps,t===null?rc(e):ce=t}function Ui(e,t,n,a){Ta=Fl=null,Rh(t),qi=null,vs=0;var l=t.return;try{if(Ax(e,l,t,n,fe)){Fe=1,Co(e,bn(n,e.current)),ce=null;return}}catch(i){if(l!==null)throw ce=l,i;Fe=1,Co(e,bn(n,e.current)),ce=null;return}t.flags&32768?(me||a===1?e=!0:lu||(fe&536870912)!==0?e=!1:(Ia=e=!0,(a===2||a===9||a===3||a===6)&&(a=fn.current,a!==null&&a.tag===13&&(a.flags|=16384))),Lb(t,e)):rc(t)}function rc(e){var t=e;do{if((t.flags&32768)!==0){Lb(t,Ia);return}e=t.return;var n=Dx(t.alternate,t,Oa);if(n!==null){ce=n;return}if(t=t.sibling,t!==null){ce=t;return}ce=t=e}while(t!==null);Fe===0&&(Fe=5)}function Lb(e,t){do{var n=Rx(e.alternate,e);if(n!==null){n.flags&=32767,ce=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){ce=e;return}ce=e=n}while(e!==null);Fe=6,ce=null}function $g(e,t,n,a,l,i,r,c,d){e.cancelPendingCommit=null;do oc();while(ut!==0);if((Se&6)!==0)throw Error(D(327));if(t!==null){if(t===e.current)throw Error(D(177));if(i=t.lanes|t.childLanes,i|=yh,bE(e,n,i,r,c,d),e===Ne&&(ce=Ne=null,fe=0),Wi=t,ul=e,Ea=n,Qd=i,Xd=l,Ob=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,Vx(ko,function(){return jb(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=I.T,I.T=null,l=Te.p,Te.p=2,r=Se,Se|=4;try{Nx(e,t,n)}finally{Se=r,Te.p=l,I.T=a}}ut=1,Hb(),Bb(),qb()}}function Hb(){if(ut===1){ut=0;var e=ul,t=Wi,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=I.T,I.T=null;var a=Te.p;Te.p=2;var l=Se;Se|=4;try{Tb(t,e);var i=$d,r=n0(e.containerInfo),c=i.focusedElem,d=i.selectionRange;if(r!==c&&c&&c.ownerDocument&&t0(c.ownerDocument.documentElement,c)){if(d!==null&&gh(c)){var m=d.start,p=d.end;if(p===void 0&&(p=m),"selectionStart"in c)c.selectionStart=m,c.selectionEnd=Math.min(p,c.value.length);else{var _=c.ownerDocument||document,y=_&&_.defaultView||window;if(y.getSelection){var S=y.getSelection(),x=c.textContent.length,w=Math.min(d.start,x),O=d.end===void 0?w:Math.min(d.end,x);!S.extend&&w>O&&(r=O,O=w,w=r);var g=vg(c,w),b=vg(c,O);if(g&&b&&(S.rangeCount!==1||S.anchorNode!==g.node||S.anchorOffset!==g.offset||S.focusNode!==b.node||S.focusOffset!==b.offset)){var k=_.createRange();k.setStart(g.node,g.offset),S.removeAllRanges(),w>O?(S.addRange(k),S.extend(b.node,b.offset)):(k.setEnd(b.node,b.offset),S.addRange(k))}}}}for(_=[],S=c;S=S.parentNode;)S.nodeType===1&&_.push({element:S,left:S.scrollLeft,top:S.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;c<_.length;c++){var E=_[c];E.element.scrollLeft=E.left,E.element.scrollTop=E.top}}Fo=!!Wd,$d=Wd=null}finally{Se=l,Te.p=a,I.T=n}}e.current=t,ut=2}}function Bb(){if(ut===2){ut=0;var e=ul,t=Wi,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=I.T,I.T=null;var a=Te.p;Te.p=2;var l=Se;Se|=4;try{gb(e,t.alternate,t)}finally{Se=l,Te.p=a,I.T=n}}ut=3}}function qb(){if(ut===4||ut===3){ut=0,oE();var e=ul,t=Wi,n=Ea,a=Ob;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?ut=5:(ut=0,Wi=ul=null,Gb(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(il=null),oh(n),t=t.stateNode,sn&&typeof sn.onCommitFiberRoot=="function")try{sn.onCommitFiberRoot(Ms,t,void 0,(t.current.flags&128)===128)}catch(d){}if(a!==null){t=I.T,l=Te.p,Te.p=2,I.T=null;try{for(var i=e.onRecoverableError,r=0;r<a.length;r++){var c=a[r];i(c.value,{componentStack:c.stack})}}finally{I.T=t,Te.p=l}}(Ea&3)!==0&&oc(),Kn(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===Fd?fs++:(fs=0,Fd=e):fs=0,Ys(0,!1)}}function Gb(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,zs(t)))}function oc(){return Hb(),Bb(),qb(),jb()}function jb(){if(ut!==5)return!1;var e=ul,t=Qd;Qd=0;var n=oh(Ea),a=I.T,l=Te.p;try{Te.p=32>n?32:n,I.T=null,n=Xd,Xd=null;var i=ul,r=Ea;if(ut=0,Wi=ul=null,Ea=0,(Se&6)!==0)throw Error(D(331));var c=Se;if(Se|=4,wb(i.current),kb(i,i.current,r,n),Se=c,Ys(0,!1),sn&&typeof sn.onPostCommitFiberRoot=="function")try{sn.onPostCommitFiberRoot(Ms,i)}catch(d){}return!0}finally{Te.p=l,I.T=a,Gb(e,t)}}function Ig(e,t,n){t=bn(n,t),t=qd(e.stateNode,t,2),e=ll(e,t,2),e!==null&&(Ds(e,2),Kn(e))}function Ae(e,t,n){if(e.tag===3)Ig(e,e,n);else for(;t!==null;){if(t.tag===3){Ig(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(il===null||!il.has(a))){e=bn(n,e),n=ab(2),a=ll(t,n,2),a!==null&&(lb(n,a,t,e),Ds(a,2),Kn(a));break}}t=t.return}}function ld(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new Ux;var l=new Set;a.set(t,l)}else l=a.get(t),l===void 0&&(l=new Set,a.set(t,l));l.has(n)||(Zh=!0,l.add(n),e=qx.bind(null,e,t,n),t.then(e,e))}function qx(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ne===e&&(fe&n)===n&&(Fe===4||Fe===3&&(fe&62914560)===fe&&300>un()-uc?(Se&2)===0&&$i(e,0):Qh|=n,Ji===fe&&(Ji=0)),Kn(e)}function Vb(e,t){t===0&&(t=Cy()),e=Xl(e,t),e!==null&&(Ds(e,t),Kn(e))}function Gx(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Vb(e,n)}function jx(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(D(314))}a!==null&&a.delete(t),Vb(e,n)}function Vx(e,t){return sh(e,t)}var qo=null,ki=null,Kd=!1,Go=!1,id=!1,el=0;function Kn(e){e!==ki&&e.next===null&&(ki===null?qo=ki=e:ki=ki.next=e),Go=!0,Kd||(Kd=!0,Qx())}function Ys(e,t){if(!id&&Go){id=!0;do for(var n=!1,a=qo;a!==null;){if(!t)if(e!==0){var l=a.pendingLanes;if(l===0)var i=0;else{var r=a.suspendedLanes,c=a.pingedLanes;i=(1<<31-rn(42|e)+1)-1,i&=l&~(r&~c),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(n=!0,Pg(a,i))}else i=fe,i=Jo(a,a===Ne?i:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(i&3)===0||Os(a,i)||(n=!0,Pg(a,i));a=a.next}while(n);id=!1}}function Zx(){Zb()}function Zb(){Go=Kd=!1;var e=0;el!==0&&Px()&&(e=el);for(var t=un(),n=null,a=qo;a!==null;){var l=a.next,i=Qb(a,t);i===0?(a.next=null,n===null?qo=l:n.next=l,l===null&&(ki=n)):(n=a,(e!==0||(i&3)!==0)&&(Go=!0)),a=l}ut!==0&&ut!==5||Ys(e,!1),el!==0&&(el=0)}function Qb(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes&-62914561;0<i;){var r=31-rn(i),c=1<<r,d=l[r];d===-1?((c&n)===0||(c&a)!==0)&&(l[r]=yE(c,t)):d<=t&&(e.expiredLanes|=c),i&=~c}if(t=Ne,n=fe,n=Jo(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(we===2||we===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&Cf(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||Os(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&Cf(a),oh(n)){case 2:case 8:n=Ny;break;case 32:n=ko;break;case 268435456:n=zy;break;default:n=ko}return a=Xb.bind(null,e),n=sh(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&Cf(a),e.callbackPriority=2,e.callbackNode=null,2}function Xb(e,t){if(ut!==0&&ut!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(oc()&&e.callbackNode!==n)return null;var a=fe;return a=Jo(e,e===Ne?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(Rb(e,a,t),Qb(e,un()),e.callbackNode!=null&&e.callbackNode===n?Xb.bind(null,e):null)}function Pg(e,t){if(oc())return null;Rb(e,t,!0)}function Qx(){tw(function(){(Se&6)!==0?sh(Ry,Zx):Zb()})}function Fh(){if(el===0){var e=Xi;e===0&&(e=Gr,Gr<<=1,(Gr&261888)===0&&(Gr=256)),el=e}return el}function ey(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:io(""+e)}function ty(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function Xx(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var i=ey((l[Ft]||null).action),r=a.submitter;r&&(t=(t=r[Ft]||null)?ey(t.formAction):r.getAttribute("formAction"),t!==null&&(i=t,r=null));var c=new Wo("action","action",null,a,l);e.push({event:c,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(el!==0){var d=r?ty(l,r):new FormData(l);Hd(n,{pending:!0,data:d,method:l.method,action:i},null,d)}}else typeof i=="function"&&(c.preventDefault(),d=r?ty(l,r):new FormData(l),Hd(n,{pending:!0,data:d,method:l.method,action:i},i,d))},currentTarget:l}]})}}for(Pr=0;Pr<wd.length;Pr++)eo=wd[Pr],ny=eo.toLowerCase(),ay=eo[0].toUpperCase()+eo.slice(1),zn(ny,"on"+ay);var eo,ny,ay,Pr;zn(l0,"onAnimationEnd");zn(i0,"onAnimationIteration");zn(u0,"onAnimationStart");zn("dblclick","onDoubleClick");zn("focusin","onFocus");zn("focusout","onBlur");zn(cx,"onTransitionRun");zn(fx,"onTransitionStart");zn(dx,"onTransitionCancel");zn(s0,"onTransitionEnd");Zi("onMouseEnter",["mouseout","mouseover"]);Zi("onMouseLeave",["mouseout","mouseover"]);Zi("onPointerEnter",["pointerout","pointerover"]);Zi("onPointerLeave",["pointerout","pointerover"]);Vl("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Vl("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Vl("onBeforeInput",["compositionend","keypress","textInput","paste"]);Vl("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Vl("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Vl("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _s="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Fx=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(_s));function Fb(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],l=a.event;a=a.listeners;e:{var i=void 0;if(t)for(var r=a.length-1;0<=r;r--){var c=a[r],d=c.instance,m=c.currentTarget;if(c=c.listener,d!==i&&l.isPropagationStopped())break e;i=c,l.currentTarget=m;try{i(l)}catch(p){xo(p)}l.currentTarget=null,i=d}else for(r=0;r<a.length;r++){if(c=a[r],d=c.instance,m=c.currentTarget,c=c.listener,d!==i&&l.isPropagationStopped())break e;i=c,l.currentTarget=m;try{i(l)}catch(p){xo(p)}l.currentTarget=null,i=d}}}}function oe(e,t){var n=t[bd];n===void 0&&(n=t[bd]=new Set);var a=e+"__bubble";n.has(a)||(Kb(t,e,2,!1),n.add(a))}function ud(e,t,n){var a=0;t&&(a|=4),Kb(n,e,a,t)}var to="_reactListening"+Math.random().toString(36).slice(2);function Kh(e){if(!e[to]){e[to]=!0,By.forEach(function(n){n!=="selectionchange"&&(Fx.has(n)||ud(n,!1,e),ud(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[to]||(t[to]=!0,ud("selectionchange",!1,t))}}function Kb(e,t,n,a){switch(sv(t)){case 2:var l=Tw;break;case 8:l=_w;break;default:l=Ih}n=l.bind(null,t,n,e),l=void 0,!kd||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),a?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function sd(e,t,n,a,l){var i=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var r=a.tag;if(r===3||r===4){var c=a.stateNode.containerInfo;if(c===l)break;if(r===4)for(r=a.return;r!==null;){var d=r.tag;if((d===3||d===4)&&r.stateNode.containerInfo===l)return;r=r.return}for(;c!==null;){if(r=wi(c),r===null)return;if(d=r.tag,d===5||d===6||d===26||d===27){a=i=r;continue e}c=c.parentNode}}a=a.return}Fy(function(){var m=i,p=dh(n),_=[];e:{var y=r0.get(e);if(y!==void 0){var S=Wo,x=e;switch(e){case"keypress":if(so(n)===0)break e;case"keydown":case"keyup":S=jE;break;case"focusin":x="focus",S=Bf;break;case"focusout":x="blur",S=Bf;break;case"beforeblur":case"afterblur":S=Bf;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":S=cg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":S=DE;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":S=QE;break;case l0:case i0:case u0:S=zE;break;case s0:S=FE;break;case"scroll":case"scrollend":S=ME;break;case"wheel":S=JE;break;case"copy":case"cut":case"paste":S=UE;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":S=dg;break;case"toggle":case"beforetoggle":S=$E}var w=(t&4)!==0,O=!w&&(e==="scroll"||e==="scrollend"),g=w?y!==null?y+"Capture":null:y;w=[];for(var b=m,k;b!==null;){var E=b;if(k=E.stateNode,E=E.tag,E!==5&&E!==26&&E!==27||k===null||g===null||(E=ms(b,g),E!=null&&w.push(ks(b,E,k))),O)break;b=b.return}0<w.length&&(y=new S(y,x,null,n,p),_.push({event:y,listeners:w}))}}if((t&7)===0){e:{if(y=e==="mouseover"||e==="pointerover",S=e==="mouseout"||e==="pointerout",y&&n!==_d&&(x=n.relatedTarget||n.fromElement)&&(wi(x)||x[eu]))break e;if((S||y)&&(y=p.window===p?p:(y=p.ownerDocument)?y.defaultView||y.parentWindow:window,S?(x=n.relatedTarget||n.toElement,S=m,x=x?wi(x):null,x!==null&&(O=As(x),w=x.tag,x!==O||w!==5&&w!==27&&w!==6)&&(x=null)):(S=null,x=m),S!==x)){if(w=cg,E="onMouseLeave",g="onMouseEnter",b="mouse",(e==="pointerout"||e==="pointerover")&&(w=dg,E="onPointerLeave",g="onPointerEnter",b="pointer"),O=S==null?y:$u(S),k=x==null?y:$u(x),y=new w(E,b+"leave",S,n,p),y.target=O,y.relatedTarget=k,E=null,wi(p)===m&&(w=new w(g,b+"enter",x,n,p),w.target=k,w.relatedTarget=O,E=w),O=E,S&&x)t:{for(w=Kx,g=S,b=x,k=0,E=g;E;E=w(E))k++;E=0;for(var N=b;N;N=w(N))E++;for(;0<k-E;)g=w(g),k--;for(;0<E-k;)b=w(b),E--;for(;k--;){if(g===b||b!==null&&g===b.alternate){w=g;break t}g=w(g),b=w(b)}w=null}else w=null;S!==null&&ly(_,y,S,w,!1),x!==null&&O!==null&&ly(_,O,x,w,!0)}}e:{if(y=m?$u(m):window,S=y.nodeName&&y.nodeName.toLowerCase(),S==="select"||S==="input"&&y.type==="file")var H=gg;else if(pg(y))if(Py)H=sx;else{H=ix;var U=lx}else S=y.nodeName,!S||S.toLowerCase()!=="input"||y.type!=="checkbox"&&y.type!=="radio"?m&&fh(m.elementType)&&(H=gg):H=ux;if(H&&(H=H(e,m))){Iy(_,H,n,p);break e}U&&U(e,y,m),e==="focusout"&&m&&y.type==="number"&&m.memoizedProps.value!=null&&Td(y,"number",y.value)}switch(U=m?$u(m):window,e){case"focusin":(pg(U)||U.contentEditable==="true")&&(Oi=U,Ed=m,ns=null);break;case"focusout":ns=Ed=Oi=null;break;case"mousedown":xd=!0;break;case"contextmenu":case"mouseup":case"dragend":xd=!1,Sg(_,n,p);break;case"selectionchange":if(ox)break;case"keydown":case"keyup":Sg(_,n,p)}var B;if(ph)e:{switch(e){case"compositionstart":var W="onCompositionStart";break e;case"compositionend":W="onCompositionEnd";break e;case"compositionupdate":W="onCompositionUpdate";break e}W=void 0}else Mi?Wy(e,n)&&(W="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(W="onCompositionStart");W&&(Jy&&n.locale!=="ko"&&(Mi||W!=="onCompositionStart"?W==="onCompositionEnd"&&Mi&&(B=Ky()):($a=p,hh="value"in $a?$a.value:$a.textContent,Mi=!0)),U=jo(m,W),0<U.length&&(W=new fg(W,e,null,n,p),_.push({event:W,listeners:U}),B?W.data=B:(B=$y(n),B!==null&&(W.data=B)))),(B=PE?ex(e,n):tx(e,n))&&(W=jo(m,"onBeforeInput"),0<W.length&&(U=new fg("onBeforeInput","beforeinput",null,n,p),_.push({event:U,listeners:W}),U.data=B)),Xx(_,e,m,n,p)}Fb(_,t)})}function ks(e,t,n){return{instance:e,listener:t,currentTarget:n}}function jo(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,i=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||i===null||(l=ms(e,n),l!=null&&a.unshift(ks(e,l,i)),l=ms(e,t),l!=null&&a.push(ks(e,l,i))),e.tag===3)return a;e=e.return}return[]}function Kx(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function ly(e,t,n,a,l){for(var i=t._reactName,r=[];n!==null&&n!==a;){var c=n,d=c.alternate,m=c.stateNode;if(c=c.tag,d!==null&&d===a)break;c!==5&&c!==26&&c!==27||m===null||(d=m,l?(m=ms(n,i),m!=null&&r.unshift(ks(n,m,d))):l||(m=ms(n,i),m!=null&&r.push(ks(n,m,d)))),n=n.return}r.length!==0&&e.push({event:t,listeners:r})}var Jx=/\r\n?/g,Wx=/\u0000|\uFFFD/g;function iy(e){return(typeof e=="string"?e:""+e).replace(Jx,"\n").replace(Wx,"")}function Jb(e,t){return t=iy(t),iy(e)===t}function De(e,t,n,a,l,i){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||Qi(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&Qi(e,""+a);break;case"className":Zr(e,"class",a);break;case"tabIndex":Zr(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":Zr(e,n,a);break;case"style":Xy(e,a,i);break;case"data":if(t!=="object"){Zr(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=io(""+a),e.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof i=="function"&&(n==="formAction"?(t!=="input"&&De(e,t,"name",l.name,l,null),De(e,t,"formEncType",l.formEncType,l,null),De(e,t,"formMethod",l.formMethod,l,null),De(e,t,"formTarget",l.formTarget,l,null)):(De(e,t,"encType",l.encType,l,null),De(e,t,"method",l.method,l,null),De(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=io(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=Sa);break;case"onScroll":a!=null&&oe("scroll",e);break;case"onScrollEnd":a!=null&&oe("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(D(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(D(60));e.innerHTML=n}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}n=io(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""+a):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":a===!0?e.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,a):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(n,a):e.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(n):e.setAttribute(n,a);break;case"popover":oe("beforetoggle",e),oe("toggle",e),lo(e,"popover",a);break;case"xlinkActuate":da(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":da(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":da(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":da(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":da(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":da(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":da(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":da(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":da(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":lo(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=wE.get(n)||n,lo(e,n,a))}}function Jd(e,t,n,a,l,i){switch(n){case"style":Xy(e,a,i);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(D(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(D(60));e.innerHTML=n}}break;case"children":typeof a=="string"?Qi(e,a):(typeof a=="number"||typeof a=="bigint")&&Qi(e,""+a);break;case"onScroll":a!=null&&oe("scroll",e);break;case"onScrollEnd":a!=null&&oe("scrollend",e);break;case"onClick":a!=null&&(e.onclick=Sa);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!qy.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),i=e[Ft]||null,i=i!=null?i[n]:null,typeof i=="function"&&e.removeEventListener(t,i,l),typeof a=="function")){typeof i!="function"&&i!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,l);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):lo(e,n,a)}}}function Tt(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":oe("error",e),oe("load",e);var a=!1,l=!1,i;for(i in n)if(n.hasOwnProperty(i)){var r=n[i];if(r!=null)switch(i){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(D(137,t));default:De(e,t,i,r,n,null)}}l&&De(e,t,"srcSet",n.srcSet,n,null),a&&De(e,t,"src",n.src,n,null);return;case"input":oe("invalid",e);var c=i=r=l=null,d=null,m=null;for(a in n)if(n.hasOwnProperty(a)){var p=n[a];if(p!=null)switch(a){case"name":l=p;break;case"type":r=p;break;case"checked":d=p;break;case"defaultChecked":m=p;break;case"value":i=p;break;case"defaultValue":c=p;break;case"children":case"dangerouslySetInnerHTML":if(p!=null)throw Error(D(137,t));break;default:De(e,t,a,p,n,null)}}Vy(e,i,c,d,m,r,l,!1);return;case"select":oe("invalid",e),a=r=i=null;for(l in n)if(n.hasOwnProperty(l)&&(c=n[l],c!=null))switch(l){case"value":i=c;break;case"defaultValue":r=c;break;case"multiple":a=c;default:De(e,t,l,c,n,null)}t=i,n=r,e.multiple=!!a,t!=null?Li(e,!!a,t,!1):n!=null&&Li(e,!!a,n,!0);return;case"textarea":oe("invalid",e),i=l=a=null;for(r in n)if(n.hasOwnProperty(r)&&(c=n[r],c!=null))switch(r){case"value":a=c;break;case"defaultValue":l=c;break;case"children":i=c;break;case"dangerouslySetInnerHTML":if(c!=null)throw Error(D(91));break;default:De(e,t,r,c,n,null)}Qy(e,a,l,i);return;case"option":for(d in n)n.hasOwnProperty(d)&&(a=n[d],a!=null)&&(d==="selected"?e.selected=a&&typeof a!="function"&&typeof a!="symbol":De(e,t,d,a,n,null));return;case"dialog":oe("beforetoggle",e),oe("toggle",e),oe("cancel",e),oe("close",e);break;case"iframe":case"object":oe("load",e);break;case"video":case"audio":for(a=0;a<_s.length;a++)oe(_s[a],e);break;case"image":oe("error",e),oe("load",e);break;case"details":oe("toggle",e);break;case"embed":case"source":case"link":oe("error",e),oe("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(m in n)if(n.hasOwnProperty(m)&&(a=n[m],a!=null))switch(m){case"children":case"dangerouslySetInnerHTML":throw Error(D(137,t));default:De(e,t,m,a,n,null)}return;default:if(fh(t)){for(p in n)n.hasOwnProperty(p)&&(a=n[p],a!==void 0&&Jd(e,t,p,a,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(a=n[c],a!=null&&De(e,t,c,a,n,null))}function $x(e,t,n,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,i=null,r=null,c=null,d=null,m=null,p=null;for(S in n){var _=n[S];if(n.hasOwnProperty(S)&&_!=null)switch(S){case"checked":break;case"value":break;case"defaultValue":d=_;default:a.hasOwnProperty(S)||De(e,t,S,null,a,_)}}for(var y in a){var S=a[y];if(_=n[y],a.hasOwnProperty(y)&&(S!=null||_!=null))switch(y){case"type":i=S;break;case"name":l=S;break;case"checked":m=S;break;case"defaultChecked":p=S;break;case"value":r=S;break;case"defaultValue":c=S;break;case"children":case"dangerouslySetInnerHTML":if(S!=null)throw Error(D(137,t));break;default:S!==_&&De(e,t,y,S,a,_)}}Sd(e,r,c,d,m,p,i,l);return;case"select":S=r=c=y=null;for(i in n)if(d=n[i],n.hasOwnProperty(i)&&d!=null)switch(i){case"value":break;case"multiple":S=d;default:a.hasOwnProperty(i)||De(e,t,i,null,a,d)}for(l in a)if(i=a[l],d=n[l],a.hasOwnProperty(l)&&(i!=null||d!=null))switch(l){case"value":y=i;break;case"defaultValue":c=i;break;case"multiple":r=i;default:i!==d&&De(e,t,l,i,a,d)}t=c,n=r,a=S,y!=null?Li(e,!!n,y,!1):!!a!=!!n&&(t!=null?Li(e,!!n,t,!0):Li(e,!!n,n?[]:"",!1));return;case"textarea":S=y=null;for(c in n)if(l=n[c],n.hasOwnProperty(c)&&l!=null&&!a.hasOwnProperty(c))switch(c){case"value":break;case"children":break;default:De(e,t,c,null,a,l)}for(r in a)if(l=a[r],i=n[r],a.hasOwnProperty(r)&&(l!=null||i!=null))switch(r){case"value":y=l;break;case"defaultValue":S=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(D(91));break;default:l!==i&&De(e,t,r,l,a,i)}Zy(e,y,S);return;case"option":for(var x in n)y=n[x],n.hasOwnProperty(x)&&y!=null&&!a.hasOwnProperty(x)&&(x==="selected"?e.selected=!1:De(e,t,x,null,a,y));for(d in a)y=a[d],S=n[d],a.hasOwnProperty(d)&&y!==S&&(y!=null||S!=null)&&(d==="selected"?e.selected=y&&typeof y!="function"&&typeof y!="symbol":De(e,t,d,y,a,S));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var w in n)y=n[w],n.hasOwnProperty(w)&&y!=null&&!a.hasOwnProperty(w)&&De(e,t,w,null,a,y);for(m in a)if(y=a[m],S=n[m],a.hasOwnProperty(m)&&y!==S&&(y!=null||S!=null))switch(m){case"children":case"dangerouslySetInnerHTML":if(y!=null)throw Error(D(137,t));break;default:De(e,t,m,y,a,S)}return;default:if(fh(t)){for(var O in n)y=n[O],n.hasOwnProperty(O)&&y!==void 0&&!a.hasOwnProperty(O)&&Jd(e,t,O,void 0,a,y);for(p in a)y=a[p],S=n[p],!a.hasOwnProperty(p)||y===S||y===void 0&&S===void 0||Jd(e,t,p,y,a,S);return}}for(var g in n)y=n[g],n.hasOwnProperty(g)&&y!=null&&!a.hasOwnProperty(g)&&De(e,t,g,null,a,y);for(_ in a)y=a[_],S=n[_],!a.hasOwnProperty(_)||y===S||y==null&&S==null||De(e,t,_,y,a,S)}function uy(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Ix(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var l=n[a],i=l.transferSize,r=l.initiatorType,c=l.duration;if(i&&c&&uy(r)){for(r=0,c=l.responseEnd,a+=1;a<n.length;a++){var d=n[a],m=d.startTime;if(m>c)break;var p=d.transferSize,_=d.initiatorType;p&&uy(_)&&(d=d.responseEnd,r+=p*(d<c?1:(c-m)/(d-m)))}if(--a,t+=8*(i+r)/(l.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var Wd=null,$d=null;function Vo(e){return e.nodeType===9?e:e.ownerDocument}function sy(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Wb(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function Id(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var rd=null;function Px(){var e=window.event;return e&&e.type==="popstate"?e===rd?!1:(rd=e,!0):(rd=null,!1)}var $b=typeof setTimeout=="function"?setTimeout:void 0,ew=typeof clearTimeout=="function"?clearTimeout:void 0,ry=typeof Promise=="function"?Promise:void 0,tw=typeof queueMicrotask=="function"?queueMicrotask:typeof ry<"u"?function(e){return ry.resolve(null).then(e).catch(nw)}:$b;function nw(e){setTimeout(function(){throw e})}function pl(e){return e==="head"}function oy(e,t){var n=t,a=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"||n==="/&"){if(a===0){e.removeChild(l),Pi(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")ds(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,ds(n);for(var i=n.firstChild;i;){var r=i.nextSibling,c=i.nodeName;i[Rs]||c==="SCRIPT"||c==="STYLE"||c==="LINK"&&i.rel.toLowerCase()==="stylesheet"||n.removeChild(i),i=r}}else n==="body"&&ds(e.ownerDocument.body);n=l}while(n);Pi(t)}function cy(e,t){var n=e;e=0;do{var a=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=a}while(n)}function Pd(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":Pd(n),ch(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function aw(e,t,n,a){for(;e.nodeType===1;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[Rs])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(i=e.getAttribute("rel"),i==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(i!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(i=e.getAttribute("src"),(i!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&i&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var i=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===i)return e}else return e;if(e=Tn(e.nextSibling),e===null)break}return null}function lw(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Tn(e.nextSibling),e===null))return null;return e}function Ib(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Tn(e.nextSibling),e===null))return null;return e}function eh(e){return e.data==="$?"||e.data==="$~"}function th(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function iw(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function Tn(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var nh=null;function fy(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Tn(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function dy(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(t===0)return e;t--}else n!=="/$"&&n!=="/&"||t++}e=e.previousSibling}return null}function Pb(e,t,n){switch(t=Vo(n),e){case"html":if(e=t.documentElement,!e)throw Error(D(452));return e;case"head":if(e=t.head,!e)throw Error(D(453));return e;case"body":if(e=t.body,!e)throw Error(D(454));return e;default:throw Error(D(451))}}function ds(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ch(e)}var _n=new Map,hy=new Set;function Zo(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Da=Te.d;Te.d={f:uw,r:sw,D:rw,C:ow,L:cw,m:fw,X:hw,S:dw,M:mw};function uw(){var e=Da.f(),t=sc();return e||t}function sw(e){var t=tu(e);t!==null&&t.tag===5&&t.type==="form"?X0(t):Da.r(e)}var iu=typeof document>"u"?null:document;function ev(e,t,n){var a=iu;if(a&&typeof t=="string"&&t){var l=yn(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),hy.has(l)||(hy.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),Tt(t,"link",e),ct(t),a.head.appendChild(t)))}}function rw(e){Da.D(e),ev("dns-prefetch",e,null)}function ow(e,t){Da.C(e,t),ev("preconnect",e,t)}function cw(e,t,n){Da.L(e,t,n);var a=iu;if(a&&e&&t){var l='link[rel="preload"][as="'+yn(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+yn(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+yn(n.imageSizes)+'"]')):l+='[href="'+yn(e)+'"]';var i=l;switch(t){case"style":i=Ii(e);break;case"script":i=uu(e)}_n.has(i)||(e=Be({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),_n.set(i,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(Ls(i))||t==="script"&&a.querySelector(Hs(i))||(t=a.createElement("link"),Tt(t,"link",e),ct(t),a.head.appendChild(t)))}}function fw(e,t){Da.m(e,t);var n=iu;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+yn(a)+'"][href="'+yn(e)+'"]',i=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=uu(e)}if(!_n.has(i)&&(e=Be({rel:"modulepreload",href:e},t),_n.set(i,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Hs(i)))return}a=n.createElement("link"),Tt(a,"link",e),ct(a),n.head.appendChild(a)}}}function dw(e,t,n){Da.S(e,t,n);var a=iu;if(a&&e){var l=Yi(a).hoistableStyles,i=Ii(e);t=t||"default";var r=l.get(i);if(!r){var c={loading:0,preload:null};if(r=a.querySelector(Ls(i)))c.loading=5;else{e=Be({rel:"stylesheet",href:e,"data-precedence":t},n),(n=_n.get(i))&&Jh(e,n);var d=r=a.createElement("link");ct(d),Tt(d,"link",e),d._p=new Promise(function(m,p){d.onload=m,d.onerror=p}),d.addEventListener("load",function(){c.loading|=1}),d.addEventListener("error",function(){c.loading|=2}),c.loading|=4,go(r,t,a)}r={type:"stylesheet",instance:r,count:1,state:c},l.set(i,r)}}}function hw(e,t){Da.X(e,t);var n=iu;if(n&&e){var a=Yi(n).hoistableScripts,l=uu(e),i=a.get(l);i||(i=n.querySelector(Hs(l)),i||(e=Be({src:e,async:!0},t),(t=_n.get(l))&&Wh(e,t),i=n.createElement("script"),ct(i),Tt(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function mw(e,t){Da.M(e,t);var n=iu;if(n&&e){var a=Yi(n).hoistableScripts,l=uu(e),i=a.get(l);i||(i=n.querySelector(Hs(l)),i||(e=Be({src:e,async:!0,type:"module"},t),(t=_n.get(l))&&Wh(e,t),i=n.createElement("script"),ct(i),Tt(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function my(e,t,n,a){var l=(l=tl.current)?Zo(l):null;if(!l)throw Error(D(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Ii(n.href),n=Yi(l).hoistableStyles,a=n.get(t),a||(a={type:"style",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=Ii(n.href);var i=Yi(l).hoistableStyles,r=i.get(e);if(r||(l=l.ownerDocument||l,r={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,r),(i=l.querySelector(Ls(e)))&&!i._p&&(r.instance=i,r.state.loading=5),_n.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},_n.set(e,n),i||pw(l,e,n,r.state))),t&&a===null)throw Error(D(528,""));return r}if(t&&a!==null)throw Error(D(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=uu(n),n=Yi(l).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(D(444,e))}}function Ii(e){return'href="'+yn(e)+'"'}function Ls(e){return'link[rel="stylesheet"]['+e+"]"}function tv(e){return Be({},e,{"data-precedence":e.precedence,precedence:null})}function pw(e,t,n,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Tt(t,"link",n),ct(t),e.head.appendChild(t))}function uu(e){return'[src="'+yn(e)+'"]'}function Hs(e){return"script[async]"+e}function py(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+yn(n.href)+'"]');if(a)return t.instance=a,ct(a),a;var l=Be({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),ct(a),Tt(a,"style",l),go(a,n.precedence,e),t.instance=a;case"stylesheet":l=Ii(n.href);var i=e.querySelector(Ls(l));if(i)return t.state.loading|=4,t.instance=i,ct(i),i;a=tv(n),(l=_n.get(l))&&Jh(a,l),i=(e.ownerDocument||e).createElement("link"),ct(i);var r=i;return r._p=new Promise(function(c,d){r.onload=c,r.onerror=d}),Tt(i,"link",a),t.state.loading|=4,go(i,n.precedence,e),t.instance=i;case"script":return i=uu(n.src),(l=e.querySelector(Hs(i)))?(t.instance=l,ct(l),l):(a=n,(l=_n.get(i))&&(a=Be({},n),Wh(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),ct(l),Tt(l,"link",a),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(D(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,go(a,n.precedence,e));return t.instance}function go(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,i=l,r=0;r<a.length;r++){var c=a[r];if(c.dataset.precedence===t)i=c;else if(i!==l)break}i?i.parentNode.insertBefore(e,i.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Jh(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function Wh(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var yo=null;function gy(e,t,n){if(yo===null){var a=new Map,l=yo=new Map;l.set(n,a)}else l=yo,a=l.get(n),a||(a=new Map,l.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var i=n[l];if(!(i[Rs]||i[bt]||e==="link"&&i.getAttribute("rel")==="stylesheet")&&i.namespaceURI!=="http://www.w3.org/2000/svg"){var r=i.getAttribute(t)||"";r=e+r;var c=a.get(r);c?c.push(i):a.set(r,[i])}}return a}function yy(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function gw(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function nv(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function yw(e,t,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var l=Ii(a.href),i=t.querySelector(Ls(l));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Qo.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=i,ct(i);return}i=t.ownerDocument||t,a=tv(a),(l=_n.get(l))&&Jh(a,l),i=i.createElement("link"),ct(i);var r=i;r._p=new Promise(function(c,d){r.onload=c,r.onerror=d}),Tt(i,"link",a),n.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=Qo.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var od=0;function bw(e,t){return e.stylesheets&&e.count===0&&bo(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&bo(e,e.stylesheets),e.unsuspend){var i=e.unsuspend;e.unsuspend=null,i()}},6e4+t);0<e.imgBytes&&od===0&&(od=62500*Ix());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&bo(e,e.stylesheets),e.unsuspend)){var i=e.unsuspend;e.unsuspend=null,i()}},(e.imgBytes>od?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function Qo(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)bo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Xo=null;function bo(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Xo=new Map,t.forEach(vw,e),Xo=null,Qo.call(e))}function vw(e,t){if(!(t.state.loading&4)){var n=Xo.get(e);if(n)var a=n.get(null);else{n=new Map,Xo.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i<l.length;i++){var r=l[i];(r.nodeName==="LINK"||r.getAttribute("media")!=="not all")&&(n.set(r.dataset.precedence,r),a=r)}a&&n.set(null,a)}l=t.instance,r=l.getAttribute("data-precedence"),i=n.get(r)||a,i===a&&n.set(null,l),n.set(r,l),this.count++,a=Qo.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),i?i.parentNode.insertBefore(l,i.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var Es={$$typeof:va,Provider:null,Consumer:null,_currentValue:zl,_currentValue2:zl,_threadCount:0};function Sw(e,t,n,a,l,i,r,c,d){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Uf(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Uf(0),this.hiddenUpdates=Uf(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=i,this.onRecoverableError=r,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=d,this.incompleteTransitions=new Map}function av(e,t,n,a,l,i,r,c,d,m,p,_){return e=new Sw(e,t,n,r,d,m,p,_,c),t=1,i===!0&&(t|=24),i=an(3,null,null,t),e.current=i,i.stateNode=e,t=_h(),t.refCount++,e.pooledCache=t,t.refCount++,i.memoizedState={element:a,isDehydrated:n,cache:t},xh(i),e}function lv(e){return e?(e=Ni,e):Ni}function iv(e,t,n,a,l,i){l=lv(l),a.context===null?a.context=l:a.pendingContext=l,a=al(t),a.payload={element:n},i=i===void 0?null:i,i!==null&&(a.callback=i),n=ll(e,a,t),n!==null&&(Xt(n,e,t),ls(n,e,t))}function by(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function $h(e,t){by(e,t),(e=e.alternate)&&by(e,t)}function uv(e){if(e.tag===13||e.tag===31){var t=Xl(e,67108864);t!==null&&Xt(t,e,67108864),$h(e,67108864)}}function vy(e){if(e.tag===13||e.tag===31){var t=on();t=rh(t);var n=Xl(e,t);n!==null&&Xt(n,e,t),$h(e,t)}}var Fo=!0;function Tw(e,t,n,a){var l=I.T;I.T=null;var i=Te.p;try{Te.p=2,Ih(e,t,n,a)}finally{Te.p=i,I.T=l}}function _w(e,t,n,a){var l=I.T;I.T=null;var i=Te.p;try{Te.p=8,Ih(e,t,n,a)}finally{Te.p=i,I.T=l}}function Ih(e,t,n,a){if(Fo){var l=ah(a);if(l===null)sd(e,t,a,Ko,n),Sy(e,a);else if(Ew(l,e,t,n,a))a.stopPropagation();else if(Sy(e,a),t&4&&-1<kw.indexOf(e)){for(;l!==null;){var i=tu(l);if(i!==null)switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var r=Dl(i.pendingLanes);if(r!==0){var c=i;for(c.pendingLanes|=2,c.entangledLanes|=2;r;){var d=1<<31-rn(r);c.entanglements[1]|=d,r&=~d}Kn(i),(Se&6)===0&&(Lo=un()+500,Ys(0,!1))}}break;case 31:case 13:c=Xl(i,2),c!==null&&Xt(c,i,2),sc(),$h(i,2)}if(i=ah(a),i===null&&sd(e,t,a,Ko,n),i===l)break;l=i}l!==null&&a.stopPropagation()}else sd(e,t,a,null,n)}}function ah(e){return e=dh(e),Ph(e)}var Ko=null;function Ph(e){if(Ko=null,e=wi(e),e!==null){var t=As(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=wy(t),e!==null)return e;e=null}else if(n===31){if(e=Ay(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return Ko=e,null}function sv(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(cE()){case Ry:return 2;case Ny:return 8;case ko:case fE:return 32;case zy:return 268435456;default:return 32}default:return 32}}var lh=!1,sl=null,rl=null,ol=null,xs=new Map,ws=new Map,Ja=[],kw="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Sy(e,t){switch(e){case"focusin":case"focusout":sl=null;break;case"dragenter":case"dragleave":rl=null;break;case"mouseover":case"mouseout":ol=null;break;case"pointerover":case"pointerout":xs.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ws.delete(t.pointerId)}}function Fu(e,t,n,a,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:i,targetContainers:[l]},t!==null&&(t=tu(t),t!==null&&uv(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function Ew(e,t,n,a,l){switch(t){case"focusin":return sl=Fu(sl,e,t,n,a,l),!0;case"dragenter":return rl=Fu(rl,e,t,n,a,l),!0;case"mouseover":return ol=Fu(ol,e,t,n,a,l),!0;case"pointerover":var i=l.pointerId;return xs.set(i,Fu(xs.get(i)||null,e,t,n,a,l)),!0;case"gotpointercapture":return i=l.pointerId,ws.set(i,Fu(ws.get(i)||null,e,t,n,a,l)),!0}return!1}function rv(e){var t=wi(e.target);if(t!==null){var n=As(t);if(n!==null){if(t=n.tag,t===13){if(t=wy(n),t!==null){e.blockedOn=t,ag(e.priority,function(){vy(n)});return}}else if(t===31){if(t=Ay(n),t!==null){e.blockedOn=t,ag(e.priority,function(){vy(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function vo(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=ah(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);_d=a,n.target.dispatchEvent(a),_d=null}else return t=tu(n),t!==null&&uv(t),e.blockedOn=n,!1;t.shift()}return!0}function Ty(e,t,n){vo(e)&&n.delete(t)}function xw(){lh=!1,sl!==null&&vo(sl)&&(sl=null),rl!==null&&vo(rl)&&(rl=null),ol!==null&&vo(ol)&&(ol=null),xs.forEach(Ty),ws.forEach(Ty)}function no(e,t){e.blockedOn===t&&(e.blockedOn=null,lh||(lh=!0,st.unstable_scheduleCallback(st.unstable_NormalPriority,xw)))}var ao=null;function _y(e){ao!==e&&(ao=e,st.unstable_scheduleCallback(st.unstable_NormalPriority,function(){ao===e&&(ao=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],l=e[t+2];if(typeof a!="function"){if(Ph(a||n)===null)continue;break}var i=tu(n);i!==null&&(e.splice(t,3),t-=3,Hd(i,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function Pi(e){function t(d){return no(d,e)}sl!==null&&no(sl,e),rl!==null&&no(rl,e),ol!==null&&no(ol,e),xs.forEach(t),ws.forEach(t);for(var n=0;n<Ja.length;n++){var a=Ja[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<Ja.length&&(n=Ja[0],n.blockedOn===null);)rv(n),n.blockedOn===null&&Ja.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],i=n[a+1],r=l[Ft]||null;if(typeof i=="function")r||_y(n);else if(r){var c=null;if(i&&i.hasAttribute("formAction")){if(l=i,r=i[Ft]||null)c=r.formAction;else if(Ph(l)!==null)continue}else c=r.action;typeof c=="function"?n[a+1]=c:(n.splice(a,3),a-=3),_y(n)}}}function ov(){function e(i){i.canIntercept&&i.info==="react-transition"&&i.intercept({handler:function(){return new Promise(function(r){return l=r})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var i=navigation.currentEntry;i&&i.url!=null&&navigation.navigate(i.url,{state:i.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),l!==null&&(l(),l=null)}}}function em(e){this._internalRoot=e}cc.prototype.render=em.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(D(409));var n=t.current,a=on();iv(n,a,e,t,null,null)};cc.prototype.unmount=em.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;iv(e.current,2,null,e,null,null),sc(),t[eu]=null}};function cc(e){this._internalRoot=e}cc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Hy();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ja.length&&t!==0&&t<Ja[n].priority;n++);Ja.splice(n,0,e),n===0&&rv(e)}};var ky=Ey.version;if(ky!=="19.2.5")throw Error(D(527,ky,"19.2.5"));Te.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(D(188)):(e=Object.keys(e).join(","),Error(D(268,e)));return e=aE(t),e=e!==null?My(e):null,e=e===null?null:e.stateNode,e};var ww={bundleType:0,version:"19.2.5",rendererPackageName:"react-dom",currentDispatcherRef:I,reconcilerVersion:"19.2.5"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(Ku=__REACT_DEVTOOLS_GLOBAL_HOOK__,!Ku.isDisabled&&Ku.supportsFiber))try{Ms=Ku.inject(ww),sn=Ku}catch(e){}var Ku;fc.createRoot=function(e,t){if(!xy(e))throw Error(D(299));var n=!1,a="",l=eb,i=tb,r=nb;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(r=t.onRecoverableError)),t=av(e,1,!1,null,null,n,a,null,l,i,r,ov),e[eu]=t.current,Kh(e),new em(t)};fc.hydrateRoot=function(e,t,n){if(!xy(e))throw Error(D(299));var a=!1,l="",i=eb,r=tb,c=nb,d=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(i=n.onUncaughtError),n.onCaughtError!==void 0&&(r=n.onCaughtError),n.onRecoverableError!==void 0&&(c=n.onRecoverableError),n.formState!==void 0&&(d=n.formState)),t=av(e,1,!0,t,n!=null?n:null,a,l,d,i,r,c,ov),t.context=lv(null),n=t.current,a=on(),a=rh(a),l=al(a),l.callback=null,ll(n,l,a),n=a,t.current.lanes=n,Ds(t,n),Kn(t),e[eu]=t.current,Kh(e),new cc(t)};fc.version="19.2.5"});var hv=Dn((D2,dv)=>{"use strict";function fv(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(fv)}catch(e){console.error(e)}}fv(),dv.exports=cv()});var Fv=Dn((pm,pu)=>{(function(e,t){typeof pm=="object"&&typeof pu<"u"?pu.exports=t():typeof define=="function"&&define.amd?define(t):e.moment=t()})(pm,(function(){"use strict";var e;function t(){return e.apply(null,arguments)}function n(u){e=u}function a(u){return u instanceof Array||Object.prototype.toString.call(u)==="[object Array]"}function l(u){return u!=null&&Object.prototype.toString.call(u)==="[object Object]"}function i(u,s){return Object.prototype.hasOwnProperty.call(u,s)}function r(u){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(u).length===0;var s;for(s in u)if(i(u,s))return!1;return!0}function c(u){return u===void 0}function d(u){return typeof u=="number"||Object.prototype.toString.call(u)==="[object Number]"}function m(u){return u instanceof Date||Object.prototype.toString.call(u)==="[object Date]"}function p(u,s){var o=[],f,h=u.length;for(f=0;f<h;++f)o.push(s(u[f],f));return o}function _(u,s){for(var o in s)i(s,o)&&(u[o]=s[o]);return i(s,"toString")&&(u.toString=s.toString),i(s,"valueOf")&&(u.valueOf=s.valueOf),u}function y(u,s,o,f){return $m(u,s,o,f,!0).utc()}function S(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function x(u){return u._pf==null&&(u._pf=S()),u._pf}var w;Array.prototype.some?w=Array.prototype.some:w=function(u){var s=Object(this),o=s.length>>>0,f;for(f=0;f<o;f++)if(f in s&&u.call(this,s[f],f,s))return!0;return!1};function O(u){var s=null,o=!1,f=u._d&&!isNaN(u._d.getTime());if(f&&(s=x(u),o=w.call(s.parsedDateParts,function(h){return h!=null}),f=s.overflow<0&&!s.empty&&!s.invalidEra&&!s.invalidMonth&&!s.invalidWeekday&&!s.weekdayMismatch&&!s.nullInput&&!s.invalidFormat&&!s.userInvalidated&&(!s.meridiem||s.meridiem&&o),u._strict&&(f=f&&s.charsLeftOver===0&&s.unusedTokens.length===0&&s.bigHour===void 0)),Object.isFrozen==null||!Object.isFrozen(u))u._isValid=f;else return f;return u._isValid}function g(u){var s=y(NaN);return u!=null?_(x(s),u):x(s).userInvalidated=!0,s}var b=t.momentProperties=[],k=!1;function E(u,s){var o,f,h,T=b.length;if(c(s._isAMomentObject)||(u._isAMomentObject=s._isAMomentObject),c(s._i)||(u._i=s._i),c(s._f)||(u._f=s._f),c(s._l)||(u._l=s._l),c(s._strict)||(u._strict=s._strict),c(s._tzm)||(u._tzm=s._tzm),c(s._isUTC)||(u._isUTC=s._isUTC),c(s._offset)||(u._offset=s._offset),c(s._pf)||(u._pf=x(s)),c(s._locale)||(u._locale=s._locale),T>0)for(o=0;o<T;o++)f=b[o],h=s[f],c(h)||(u[f]=h);return u}function N(u){E(this,u),this._d=new Date(u._d!=null?u._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),k===!1&&(k=!0,t.updateOffset(this),k=!1)}function H(u){return u instanceof N||u!=null&&u._isAMomentObject!=null}function U(u){t.suppressDeprecationWarnings===!1&&typeof console<"u"&&console.warn&&console.warn("Deprecation warning: "+u)}function B(u,s){var o=!0;return _(function(){if(t.deprecationHandler!=null&&t.deprecationHandler(null,u),o){var f=[],h,T,A,V=arguments.length;for(T=0;T<V;T++){if(h="",typeof arguments[T]=="object"){h+="\n["+T+"] ";for(A in arguments[0])i(arguments[0],A)&&(h+=A+": "+arguments[0][A]+", ");h=h.slice(0,-2)}else h=arguments[T];f.push(h)}U(u+"\nArguments: "+Array.prototype.slice.call(f).join("")+"\n"+new Error().stack),o=!1}return s.apply(this,arguments)},s)}var W={};function J(u,s){t.deprecationHandler!=null&&t.deprecationHandler(u,s),W[u]||(U(s),W[u]=!0)}t.suppressDeprecationWarnings=!1,t.deprecationHandler=null;function ee(u){return typeof Function<"u"&&u instanceof Function||Object.prototype.toString.call(u)==="[object Function]"}function Me(u){var s,o;for(o in u)i(u,o)&&(s=u[o],ee(s)?this[o]=s:this["_"+o]=s);this._config=u,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function ue(u,s){var o=_({},u),f;for(f in s)i(s,f)&&(l(u[f])&&l(s[f])?(o[f]={},_(o[f],u[f]),_(o[f],s[f])):s[f]!=null?o[f]=s[f]:delete o[f]);for(f in u)i(u,f)&&!i(s,f)&&l(u[f])&&(o[f]=_({},o[f]));return o}function de(u){u!=null&&this.set(u)}var kt;Object.keys?kt=Object.keys:kt=function(u){var s,o=[];for(s in u)i(u,s)&&o.push(s);return o};var An={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function Pn(u,s,o){var f=this._calendar[u]||this._calendar.sameElse;return ee(f)?f.call(s,o):f}function rt(u,s,o){var f=""+Math.abs(u),h=s-f.length,T=u>=0;return(T?o?"+":"":"-")+Math.pow(10,Math.max(0,h)).toString().substr(1)+f}var Sl=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Ln=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Q={},ke={};function L(u,s,o,f){var h=f;typeof f=="string"&&(h=function(){return this[f]()}),u&&(ke[u]=h),s&&(ke[s[0]]=function(){return rt(h.apply(this,arguments),s[1],s[2])}),o&&(ke[o]=function(){return this.localeData().ordinal(h.apply(this,arguments),u)})}function fr(u){return u.match(/\[[\s\S]/)?u.replace(/^\[|\]$/g,""):u.replace(/\\/g,"")}function Ze(u){var s=u.match(Sl),o,f;for(o=0,f=s.length;o<f;o++)ke[s[o]]?s[o]=ke[s[o]]:s[o]=fr(s[o]);return function(h){var T="",A;for(A=0;A<f;A++)T+=ee(s[A])?s[A].call(h,u):s[A];return T}}function Hn(u,s){return u.isValid()?(s=Tl(s,u.localeData()),Q[s]=Q[s]||Ze(s),Q[s](u)):u.localeData().invalidDate()}function Tl(u,s){var o=5;function f(h){return s.longDateFormat(h)||h}for(Ln.lastIndex=0;o>=0&&Ln.test(u);)u=u.replace(Ln,f),Ln.lastIndex=0,o-=1;return u}var Bn={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function dr(u){var s=this._longDateFormat[u],o=this._longDateFormat[u.toUpperCase()];return s||!o?s:(this._longDateFormat[u]=o.match(Sl).map(function(f){return f==="MMMM"||f==="MM"||f==="DD"||f==="dddd"?f.slice(1):f}).join(""),this._longDateFormat[u])}var Eu="Invalid date";function hr(){return this._invalidDate}var mr="%d",ea=/\d{1,2}/;function _l(u){return this._ordinal.replace("%d",u)}var ta={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function xu(u,s,o,f){var h=this._relativeTime[o];return ee(h)?h(u,s,o,f):h.replace(/%d/i,u)}function wu(u,s){var o=this._relativeTime[u>0?"future":"past"];return ee(o)?o(s):o.replace(/%s/i,s)}var na={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function ht(u){return typeof u=="string"?na[u]||na[u.toLowerCase()]:void 0}function za(u){var s={},o,f;for(f in u)i(u,f)&&(o=ht(f),o&&(s[o]=u[f]));return s}var pr={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function gr(u){var s=[],o;for(o in u)i(u,o)&&s.push({unit:o,priority:pr[o]});return s.sort(function(f,h){return f.priority-h.priority}),s}var Au=/\d/,mt=/\d\d/,Ca=/\d{3}/,qn=/\d{4}/,Ot=/[+-]?\d{6}/,Ee=/\d\d?/,Mu=/\d\d\d\d?/,Ou=/\d\d\d\d\d\d?/,Ua=/\d{1,3}/,ui=/\d{1,4}/,aa=/[+-]?\d{1,6}/,Mn=/\d+/,Dt=/[+-]?\d+/,Ya=/Z|[+-]\d\d:?\d\d/gi,La=/Z|[+-]\d\d(?::?\d\d)?/gi,Du=/[+-]?\d+(\.\d{1,3})?/,kl=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Gn=/^[1-9]\d?/,El=/^([1-9]\d|\d)/,si;si={};function q(u,s,o){si[u]=ee(s)?s:function(f,h){return f&&o?o:s}}function Qc(u,s){return i(si,u)?si[u](s._strict,s._locale):new RegExp(Xc(u))}function Xc(u){return xe(u.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(s,o,f,h,T){return o||f||h||T}))}function xe(u){return u.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function it(u){return u<0?Math.ceil(u)||0:Math.floor(u)}function se(u){var s=+u,o=0;return s!==0&&isFinite(s)&&(o=it(s)),o}var ri={};function be(u,s){var o,f=s,h;for(typeof u=="string"&&(u=[u]),d(s)&&(f=function(T,A){A[s]=se(T)}),h=u.length,o=0;o<h;o++)ri[u[o]]=f}function Ha(u,s){be(u,function(o,f,h,T){h._w=h._w||{},s(o,h._w,h,T)})}function yr(u,s,o){s!=null&&i(ri,u)&&ri[u](s,o._a,o,u)}function oi(u){return u%4===0&&u%100!==0||u%400===0}var Oe=0,pt=1,Pt=2,Qe=3,Rt=4,en=5,gt=6,br=7,vr=8;L("Y",0,0,function(){var u=this.year();return u<=9999?rt(u,4):"+"+u}),L(0,["YY",2],0,function(){return this.year()%100}),L(0,["YYYY",4],0,"year"),L(0,["YYYYY",5],0,"year"),L(0,["YYYYYY",6,!0],0,"year"),q("Y",Dt),q("YY",Ee,mt),q("YYYY",ui,qn),q("YYYYY",aa,Ot),q("YYYYYY",aa,Ot),be(["YYYYY","YYYYYY"],Oe),be("YYYY",function(u,s){s[Oe]=u.length===2?t.parseTwoDigitYear(u):se(u)}),be("YY",function(u,s){s[Oe]=t.parseTwoDigitYear(u)}),be("Y",function(u,s){s[Oe]=parseInt(u,10)});function xl(u){return oi(u)?366:365}t.parseTwoDigitYear=function(u){return se(u)+(se(u)>68?1900:2e3)};var Ru=la("FullYear",!0);function Sr(){return oi(this.year())}function la(u,s){return function(o){return o!=null?(v(this,u,o),t.updateOffset(this,s),this):X(this,u)}}function X(u,s){if(!u.isValid())return NaN;var o=u._d,f=u._isUTC;switch(s){case"Milliseconds":return f?o.getUTCMilliseconds():o.getMilliseconds();case"Seconds":return f?o.getUTCSeconds():o.getSeconds();case"Minutes":return f?o.getUTCMinutes():o.getMinutes();case"Hours":return f?o.getUTCHours():o.getHours();case"Date":return f?o.getUTCDate():o.getDate();case"Day":return f?o.getUTCDay():o.getDay();case"Month":return f?o.getUTCMonth():o.getMonth();case"FullYear":return f?o.getUTCFullYear():o.getFullYear();default:return NaN}}function v(u,s,o){var f,h,T,A,V;if(!(!u.isValid()||isNaN(o))){switch(f=u._d,h=u._isUTC,s){case"Milliseconds":return void(h?f.setUTCMilliseconds(o):f.setMilliseconds(o));case"Seconds":return void(h?f.setUTCSeconds(o):f.setSeconds(o));case"Minutes":return void(h?f.setUTCMinutes(o):f.setMinutes(o));case"Hours":return void(h?f.setUTCHours(o):f.setHours(o));case"Date":return void(h?f.setUTCDate(o):f.setDate(o));case"FullYear":break;default:return}T=o,A=u.month(),V=u.date(),V=V===29&&A===1&&!oi(T)?28:V,h?f.setUTCFullYear(T,A,V):f.setFullYear(T,A,V)}}function R(u){return u=ht(u),ee(this[u])?this[u]():this}function Z(u,s){if(typeof u=="object"){u=za(u);var o=gr(u),f,h=o.length;for(f=0;f<h;f++)this[o[f].unit](u[o[f].unit])}else if(u=ht(u),ee(this[u]))return this[u](s);return this}function ze(u,s){return(u%s+s)%s}var re;Array.prototype.indexOf?re=Array.prototype.indexOf:re=function(u){var s;for(s=0;s<this.length;++s)if(this[s]===u)return s;return-1};function qe(u,s){if(isNaN(u)||isNaN(s))return NaN;var o=ze(s,12);return u+=(s-o)/12,o===1?oi(u)?29:28:31-o%7%2}L("M",["MM",2],"Mo",function(){return this.month()+1}),L("MMM",0,0,function(u){return this.localeData().monthsShort(this,u)}),L("MMMM",0,0,function(u){return this.localeData().months(this,u)}),q("M",Ee,Gn),q("MM",Ee,mt),q("MMM",function(u,s){return s.monthsShortRegex(u)}),q("MMMM",function(u,s){return s.monthsRegex(u)}),be(["M","MM"],function(u,s){s[pt]=se(u)-1}),be(["MMM","MMMM"],function(u,s,o,f){var h=o._locale.monthsParse(u,f,o._strict);h!=null?s[pt]=h:x(o).invalidMonth=u});var Et="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Nt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Bt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Nu=kl,Pe=kl;function Tr(u,s){return u?a(this._months)?this._months[u.month()]:this._months[(this._months.isFormat||Bt).test(s)?"format":"standalone"][u.month()]:a(this._months)?this._months:this._months.standalone}function _r(u,s){return u?a(this._monthsShort)?this._monthsShort[u.month()]:this._monthsShort[Bt.test(s)?"format":"standalone"][u.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function cS(u,s,o){var f,h,T,A=u.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],f=0;f<12;++f)T=y([2e3,f]),this._shortMonthsParse[f]=this.monthsShort(T,"").toLocaleLowerCase(),this._longMonthsParse[f]=this.months(T,"").toLocaleLowerCase();return o?s==="MMM"?(h=re.call(this._shortMonthsParse,A),h!==-1?h:null):(h=re.call(this._longMonthsParse,A),h!==-1?h:null):s==="MMM"?(h=re.call(this._shortMonthsParse,A),h!==-1?h:(h=re.call(this._longMonthsParse,A),h!==-1?h:null)):(h=re.call(this._longMonthsParse,A),h!==-1?h:(h=re.call(this._shortMonthsParse,A),h!==-1?h:null))}function fS(u,s,o){var f,h,T;if(this._monthsParseExact)return cS.call(this,u,s,o);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),f=0;f<12;f++){if(h=y([2e3,f]),o&&!this._longMonthsParse[f]&&(this._longMonthsParse[f]=new RegExp("^"+this.months(h,"").replace(".","")+"$","i"),this._shortMonthsParse[f]=new RegExp("^"+this.monthsShort(h,"").replace(".","")+"$","i")),!o&&!this._monthsParse[f]&&(T="^"+this.months(h,"")+"|^"+this.monthsShort(h,""),this._monthsParse[f]=new RegExp(T.replace(".",""),"i")),o&&s==="MMMM"&&this._longMonthsParse[f].test(u))return f;if(o&&s==="MMM"&&this._shortMonthsParse[f].test(u))return f;if(!o&&this._monthsParse[f].test(u))return f}}function Bm(u,s){if(!u.isValid())return u;if(typeof s=="string"){if(/^\d+$/.test(s))s=se(s);else if(s=u.localeData().monthsParse(s),!d(s))return u}var o=s,f=u.date();return f=f<29?f:Math.min(f,qe(u.year(),o)),u._isUTC?u._d.setUTCMonth(o,f):u._d.setMonth(o,f),u}function qm(u){return u!=null?(Bm(this,u),t.updateOffset(this,!0),this):X(this,"Month")}function dS(){return qe(this.year(),this.month())}function hS(u){return this._monthsParseExact?(i(this,"_monthsRegex")||Gm.call(this),u?this._monthsShortStrictRegex:this._monthsShortRegex):(i(this,"_monthsShortRegex")||(this._monthsShortRegex=Nu),this._monthsShortStrictRegex&&u?this._monthsShortStrictRegex:this._monthsShortRegex)}function mS(u){return this._monthsParseExact?(i(this,"_monthsRegex")||Gm.call(this),u?this._monthsStrictRegex:this._monthsRegex):(i(this,"_monthsRegex")||(this._monthsRegex=Pe),this._monthsStrictRegex&&u?this._monthsStrictRegex:this._monthsRegex)}function Gm(){function u(te,he){return he.length-te.length}var s=[],o=[],f=[],h,T,A,V;for(h=0;h<12;h++)T=y([2e3,h]),A=xe(this.monthsShort(T,"")),V=xe(this.months(T,"")),s.push(A),o.push(V),f.push(V),f.push(A);s.sort(u),o.sort(u),f.sort(u),this._monthsRegex=new RegExp("^("+f.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function pS(u,s,o,f,h,T,A){var V;return u<100&&u>=0?(V=new Date(u+400,s,o,f,h,T,A),isFinite(V.getFullYear())&&V.setFullYear(u)):V=new Date(u,s,o,f,h,T,A),V}function zu(u){var s,o;return u<100&&u>=0?(o=Array.prototype.slice.call(arguments),o[0]=u+400,s=new Date(Date.UTC.apply(null,o)),isFinite(s.getUTCFullYear())&&s.setUTCFullYear(u)):s=new Date(Date.UTC.apply(null,arguments)),s}function kr(u,s,o){var f=7+s-o,h=(7+zu(u,0,f).getUTCDay()-s)%7;return-h+f-1}function jm(u,s,o,f,h){var T=(7+o-f)%7,A=kr(u,f,h),V=1+7*(s-1)+T+A,te,he;return V<=0?(te=u-1,he=xl(te)+V):V>xl(u)?(te=u+1,he=V-xl(u)):(te=u,he=V),{year:te,dayOfYear:he}}function Cu(u,s,o){var f=kr(u.year(),s,o),h=Math.floor((u.dayOfYear()-f-1)/7)+1,T,A;return h<1?(A=u.year()-1,T=h+ia(A,s,o)):h>ia(u.year(),s,o)?(T=h-ia(u.year(),s,o),A=u.year()+1):(A=u.year(),T=h),{week:T,year:A}}function ia(u,s,o){var f=kr(u,s,o),h=kr(u+1,s,o);return(xl(u)-f+h)/7}L("w",["ww",2],"wo","week"),L("W",["WW",2],"Wo","isoWeek"),q("w",Ee,Gn),q("ww",Ee,mt),q("W",Ee,Gn),q("WW",Ee,mt),Ha(["w","ww","W","WW"],function(u,s,o,f){s[f.substr(0,1)]=se(u)});function gS(u){return Cu(u,this._week.dow,this._week.doy).week}var yS={dow:0,doy:6};function bS(){return this._week.dow}function vS(){return this._week.doy}function SS(u){var s=this.localeData().week(this);return u==null?s:this.add((u-s)*7,"d")}function TS(u){var s=Cu(this,1,4).week;return u==null?s:this.add((u-s)*7,"d")}L("d",0,"do","day"),L("dd",0,0,function(u){return this.localeData().weekdaysMin(this,u)}),L("ddd",0,0,function(u){return this.localeData().weekdaysShort(this,u)}),L("dddd",0,0,function(u){return this.localeData().weekdays(this,u)}),L("e",0,0,"weekday"),L("E",0,0,"isoWeekday"),q("d",Ee),q("e",Ee),q("E",Ee),q("dd",function(u,s){return s.weekdaysMinRegex(u)}),q("ddd",function(u,s){return s.weekdaysShortRegex(u)}),q("dddd",function(u,s){return s.weekdaysRegex(u)}),Ha(["dd","ddd","dddd"],function(u,s,o,f){var h=o._locale.weekdaysParse(u,f,o._strict);h!=null?s.d=h:x(o).invalidWeekday=u}),Ha(["d","e","E"],function(u,s,o,f){s[f]=se(u)});function _S(u,s){return typeof u!="string"?u:isNaN(u)?(u=s.weekdaysParse(u),typeof u=="number"?u:null):parseInt(u,10)}function kS(u,s){return typeof u=="string"?s.weekdaysParse(u)%7||7:isNaN(u)?null:u}function Fc(u,s){return u.slice(s,7).concat(u.slice(0,s))}var ES="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Vm="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),xS="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),wS=kl,AS=kl,MS=kl;function OS(u,s){var o=a(this._weekdays)?this._weekdays:this._weekdays[u&&u!==!0&&this._weekdays.isFormat.test(s)?"format":"standalone"];return u===!0?Fc(o,this._week.dow):u?o[u.day()]:o}function DS(u){return u===!0?Fc(this._weekdaysShort,this._week.dow):u?this._weekdaysShort[u.day()]:this._weekdaysShort}function RS(u){return u===!0?Fc(this._weekdaysMin,this._week.dow):u?this._weekdaysMin[u.day()]:this._weekdaysMin}function NS(u,s,o){var f,h,T,A=u.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],f=0;f<7;++f)T=y([2e3,1]).day(f),this._minWeekdaysParse[f]=this.weekdaysMin(T,"").toLocaleLowerCase(),this._shortWeekdaysParse[f]=this.weekdaysShort(T,"").toLocaleLowerCase(),this._weekdaysParse[f]=this.weekdays(T,"").toLocaleLowerCase();return o?s==="dddd"?(h=re.call(this._weekdaysParse,A),h!==-1?h:null):s==="ddd"?(h=re.call(this._shortWeekdaysParse,A),h!==-1?h:null):(h=re.call(this._minWeekdaysParse,A),h!==-1?h:null):s==="dddd"?(h=re.call(this._weekdaysParse,A),h!==-1||(h=re.call(this._shortWeekdaysParse,A),h!==-1)?h:(h=re.call(this._minWeekdaysParse,A),h!==-1?h:null)):s==="ddd"?(h=re.call(this._shortWeekdaysParse,A),h!==-1||(h=re.call(this._weekdaysParse,A),h!==-1)?h:(h=re.call(this._minWeekdaysParse,A),h!==-1?h:null)):(h=re.call(this._minWeekdaysParse,A),h!==-1||(h=re.call(this._weekdaysParse,A),h!==-1)?h:(h=re.call(this._shortWeekdaysParse,A),h!==-1?h:null))}function zS(u,s,o){var f,h,T;if(this._weekdaysParseExact)return NS.call(this,u,s,o);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),f=0;f<7;f++){if(h=y([2e3,1]).day(f),o&&!this._fullWeekdaysParse[f]&&(this._fullWeekdaysParse[f]=new RegExp("^"+this.weekdays(h,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[f]=new RegExp("^"+this.weekdaysShort(h,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[f]=new RegExp("^"+this.weekdaysMin(h,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[f]||(T="^"+this.weekdays(h,"")+"|^"+this.weekdaysShort(h,"")+"|^"+this.weekdaysMin(h,""),this._weekdaysParse[f]=new RegExp(T.replace(".",""),"i")),o&&s==="dddd"&&this._fullWeekdaysParse[f].test(u))return f;if(o&&s==="ddd"&&this._shortWeekdaysParse[f].test(u))return f;if(o&&s==="dd"&&this._minWeekdaysParse[f].test(u))return f;if(!o&&this._weekdaysParse[f].test(u))return f}}function CS(u){if(!this.isValid())return u!=null?this:NaN;var s=X(this,"Day");return u!=null?(u=_S(u,this.localeData()),this.add(u-s,"d")):s}function US(u){if(!this.isValid())return u!=null?this:NaN;var s=(this.day()+7-this.localeData()._week.dow)%7;return u==null?s:this.add(u-s,"d")}function YS(u){if(!this.isValid())return u!=null?this:NaN;if(u!=null){var s=kS(u,this.localeData());return this.day(this.day()%7?s:s-7)}else return this.day()||7}function LS(u){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||Kc.call(this),u?this._weekdaysStrictRegex:this._weekdaysRegex):(i(this,"_weekdaysRegex")||(this._weekdaysRegex=wS),this._weekdaysStrictRegex&&u?this._weekdaysStrictRegex:this._weekdaysRegex)}function HS(u){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||Kc.call(this),u?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(i(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=AS),this._weekdaysShortStrictRegex&&u?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function BS(u){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||Kc.call(this),u?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(i(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=MS),this._weekdaysMinStrictRegex&&u?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Kc(){function u(zt,ca){return ca.length-zt.length}var s=[],o=[],f=[],h=[],T,A,V,te,he;for(T=0;T<7;T++)A=y([2e3,1]).day(T),V=xe(this.weekdaysMin(A,"")),te=xe(this.weekdaysShort(A,"")),he=xe(this.weekdays(A,"")),s.push(V),o.push(te),f.push(he),h.push(V),h.push(te),h.push(he);s.sort(u),o.sort(u),f.sort(u),h.sort(u),this._weekdaysRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+f.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Jc(){return this.hours()%12||12}function qS(){return this.hours()||24}L("H",["HH",2],0,"hour"),L("h",["hh",2],0,Jc),L("k",["kk",2],0,qS),L("hmm",0,0,function(){return""+Jc.apply(this)+rt(this.minutes(),2)}),L("hmmss",0,0,function(){return""+Jc.apply(this)+rt(this.minutes(),2)+rt(this.seconds(),2)}),L("Hmm",0,0,function(){return""+this.hours()+rt(this.minutes(),2)}),L("Hmmss",0,0,function(){return""+this.hours()+rt(this.minutes(),2)+rt(this.seconds(),2)});function Zm(u,s){L(u,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),s)})}Zm("a",!0),Zm("A",!1);function Qm(u,s){return s._meridiemParse}q("a",Qm),q("A",Qm),q("H",Ee,El),q("h",Ee,Gn),q("k",Ee,Gn),q("HH",Ee,mt),q("hh",Ee,mt),q("kk",Ee,mt),q("hmm",Mu),q("hmmss",Ou),q("Hmm",Mu),q("Hmmss",Ou),be(["H","HH"],Qe),be(["k","kk"],function(u,s,o){var f=se(u);s[Qe]=f===24?0:f}),be(["a","A"],function(u,s,o){o._isPm=o._locale.isPM(u),o._meridiem=u}),be(["h","hh"],function(u,s,o){s[Qe]=se(u),x(o).bigHour=!0}),be("hmm",function(u,s,o){var f=u.length-2;s[Qe]=se(u.substr(0,f)),s[Rt]=se(u.substr(f)),x(o).bigHour=!0}),be("hmmss",function(u,s,o){var f=u.length-4,h=u.length-2;s[Qe]=se(u.substr(0,f)),s[Rt]=se(u.substr(f,2)),s[en]=se(u.substr(h)),x(o).bigHour=!0}),be("Hmm",function(u,s,o){var f=u.length-2;s[Qe]=se(u.substr(0,f)),s[Rt]=se(u.substr(f))}),be("Hmmss",function(u,s,o){var f=u.length-4,h=u.length-2;s[Qe]=se(u.substr(0,f)),s[Rt]=se(u.substr(f,2)),s[en]=se(u.substr(h))});function GS(u){return(u+"").toLowerCase().charAt(0)==="p"}var jS=/[ap]\.?m?\.?/i,VS=la("Hours",!0);function ZS(u,s,o){return u>11?o?"pm":"PM":o?"am":"AM"}var Xm={calendar:An,longDateFormat:Bn,invalidDate:Eu,ordinal:mr,dayOfMonthOrdinalParse:ea,relativeTime:ta,months:Et,monthsShort:Nt,week:yS,weekdays:ES,weekdaysMin:xS,weekdaysShort:Vm,meridiemParse:jS},Ge={},Uu={},Yu;function QS(u,s){var o,f=Math.min(u.length,s.length);for(o=0;o<f;o+=1)if(u[o]!==s[o])return o;return f}function Fm(u){return u&&u.toLowerCase().replace("_","-")}function XS(u){for(var s=0,o,f,h,T;s<u.length;){for(T=Fm(u[s]).split("-"),o=T.length,f=Fm(u[s+1]),f=f?f.split("-"):null;o>0;){if(h=Er(T.slice(0,o).join("-")),h)return h;if(f&&f.length>=o&&QS(T,f)>=o-1)break;o--}s++}return Yu}function FS(u){return!!(u&&u.match("^[^/\\\\]*$"))}function Er(u){var s=null,o;if(Ge[u]===void 0&&typeof pu<"u"&&pu&&pu.exports&&FS(u))try{s=Yu._abbr,o=_p,o("./locale/"+u),Ba(s)}catch(f){Ge[u]=null}return Ge[u]}function Ba(u,s){var o;return u&&(c(s)?o=ua(u):o=Wc(u,s),o?Yu=o:typeof console<"u"&&console.warn&&console.warn("Locale "+u+" not found. Did you forget to load it?")),Yu._abbr}function Wc(u,s){if(s!==null){var o,f=Xm;if(s.abbr=u,Ge[u]!=null)J("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),f=Ge[u]._config;else if(s.parentLocale!=null)if(Ge[s.parentLocale]!=null)f=Ge[s.parentLocale]._config;else if(o=Er(s.parentLocale),o!=null)f=o._config;else return Uu[s.parentLocale]||(Uu[s.parentLocale]=[]),Uu[s.parentLocale].push({name:u,config:s}),null;return Ge[u]=new de(ue(f,s)),Uu[u]&&Uu[u].forEach(function(h){Wc(h.name,h.config)}),Ba(u),Ge[u]}else return delete Ge[u],null}function KS(u,s){if(s!=null){var o,f,h=Xm;Ge[u]!=null&&Ge[u].parentLocale!=null?Ge[u].set(ue(Ge[u]._config,s)):(f=Er(u),f!=null&&(h=f._config),s=ue(h,s),f==null&&(s.abbr=u),o=new de(s),o.parentLocale=Ge[u],Ge[u]=o),Ba(u)}else Ge[u]!=null&&(Ge[u].parentLocale!=null?(Ge[u]=Ge[u].parentLocale,u===Ba()&&Ba(u)):Ge[u]!=null&&delete Ge[u]);return Ge[u]}function ua(u){var s;if(u&&u._locale&&u._locale._abbr&&(u=u._locale._abbr),!u)return Yu;if(!a(u)){if(s=Er(u),s)return s;u=[u]}return XS(u)}function JS(){return kt(Ge)}function $c(u){var s,o=u._a;return o&&x(u).overflow===-2&&(s=o[pt]<0||o[pt]>11?pt:o[Pt]<1||o[Pt]>qe(o[Oe],o[pt])?Pt:o[Qe]<0||o[Qe]>24||o[Qe]===24&&(o[Rt]!==0||o[en]!==0||o[gt]!==0)?Qe:o[Rt]<0||o[Rt]>59?Rt:o[en]<0||o[en]>59?en:o[gt]<0||o[gt]>999?gt:-1,x(u)._overflowDayOfYear&&(s<Oe||s>Pt)&&(s=Pt),x(u)._overflowWeeks&&s===-1&&(s=br),x(u)._overflowWeekday&&s===-1&&(s=vr),x(u).overflow=s),u}var WS=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,$S=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,IS=/Z|[+-]\d\d(?::?\d\d)?/,xr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Ic=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],PS=/^\/?Date\((-?\d+)/i,eT=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,tT={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Km(u){var s,o,f=u._i,h=WS.exec(f)||$S.exec(f),T,A,V,te,he=xr.length,zt=Ic.length;if(h){for(x(u).iso=!0,s=0,o=he;s<o;s++)if(xr[s][1].exec(h[1])){A=xr[s][0],T=xr[s][2]!==!1;break}if(A==null){u._isValid=!1;return}if(h[3]){for(s=0,o=zt;s<o;s++)if(Ic[s][1].exec(h[3])){V=(h[2]||" ")+Ic[s][0];break}if(V==null){u._isValid=!1;return}}if(!T&&V!=null){u._isValid=!1;return}if(h[4])if(IS.exec(h[4]))te="Z";else{u._isValid=!1;return}u._f=A+(V||"")+(te||""),ef(u)}else u._isValid=!1}function nT(u,s,o,f,h,T){var A=[aT(u),Nt.indexOf(s),parseInt(o,10),parseInt(f,10),parseInt(h,10)];return T&&A.push(parseInt(T,10)),A}function aT(u){var s=parseInt(u,10);return s<=49?2e3+s:s<=999?1900+s:s}function lT(u){return u.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function iT(u,s,o){if(u){var f=Vm.indexOf(u),h=new Date(s[0],s[1],s[2]).getDay();if(f!==h)return x(o).weekdayMismatch=!0,o._isValid=!1,!1}return!0}function uT(u,s,o){if(u)return tT[u];if(s)return 0;var f=parseInt(o,10),h=f%100,T=(f-h)/100;return T*60+h}function Jm(u){var s=eT.exec(lT(u._i)),o;if(s){if(o=nT(s[4],s[3],s[2],s[5],s[6],s[7]),!iT(s[1],o,u))return;u._a=o,u._tzm=uT(s[8],s[9],s[10]),u._d=zu.apply(null,u._a),u._d.setUTCMinutes(u._d.getUTCMinutes()-u._tzm),x(u).rfc2822=!0}else u._isValid=!1}function sT(u){var s=PS.exec(u._i);if(s!==null){u._d=new Date(+s[1]);return}if(Km(u),u._isValid===!1)delete u._isValid;else return;if(Jm(u),u._isValid===!1)delete u._isValid;else return;u._strict?u._isValid=!1:t.createFromInputFallback(u)}t.createFromInputFallback=B("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(u){u._d=new Date(u._i+(u._useUTC?" UTC":""))});function ci(u,s,o){return u!=null?u:s!=null?s:o}function rT(u){var s=new Date(t.now());return u._useUTC?[s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()]:[s.getFullYear(),s.getMonth(),s.getDate()]}function Pc(u){var s,o,f=[],h,T,A;if(!u._d){for(h=rT(u),u._w&&u._a[Pt]==null&&u._a[pt]==null&&oT(u),u._dayOfYear!=null&&(A=ci(u._a[Oe],h[Oe]),(u._dayOfYear>xl(A)||u._dayOfYear===0)&&(x(u)._overflowDayOfYear=!0),o=zu(A,0,u._dayOfYear),u._a[pt]=o.getUTCMonth(),u._a[Pt]=o.getUTCDate()),s=0;s<3&&u._a[s]==null;++s)u._a[s]=f[s]=h[s];for(;s<7;s++)u._a[s]=f[s]=u._a[s]==null?s===2?1:0:u._a[s];u._a[Qe]===24&&u._a[Rt]===0&&u._a[en]===0&&u._a[gt]===0&&(u._nextDay=!0,u._a[Qe]=0),u._d=(u._useUTC?zu:pS).apply(null,f),T=u._useUTC?u._d.getUTCDay():u._d.getDay(),u._tzm!=null&&u._d.setUTCMinutes(u._d.getUTCMinutes()-u._tzm),u._nextDay&&(u._a[Qe]=24),u._w&&typeof u._w.d<"u"&&u._w.d!==T&&(x(u).weekdayMismatch=!0)}}function oT(u){var s,o,f,h,T,A,V,te,he;s=u._w,s.GG!=null||s.W!=null||s.E!=null?(T=1,A=4,o=ci(s.GG,u._a[Oe],Cu(Ue(),1,4).year),f=ci(s.W,1),h=ci(s.E,1),(h<1||h>7)&&(te=!0)):(T=u._locale._week.dow,A=u._locale._week.doy,he=Cu(Ue(),T,A),o=ci(s.gg,u._a[Oe],he.year),f=ci(s.w,he.week),s.d!=null?(h=s.d,(h<0||h>6)&&(te=!0)):s.e!=null?(h=s.e+T,(s.e<0||s.e>6)&&(te=!0)):h=T),f<1||f>ia(o,T,A)?x(u)._overflowWeeks=!0:te!=null?x(u)._overflowWeekday=!0:(V=jm(o,f,h,T,A),u._a[Oe]=V.year,u._dayOfYear=V.dayOfYear)}t.ISO_8601=function(){},t.RFC_2822=function(){};function ef(u){if(u._f===t.ISO_8601){Km(u);return}if(u._f===t.RFC_2822){Jm(u);return}u._a=[],x(u).empty=!0;var s=""+u._i,o,f,h,T,A,V=s.length,te=0,he,zt;for(h=Tl(u._f,u._locale).match(Sl)||[],zt=h.length,o=0;o<zt;o++)T=h[o],f=(s.match(Qc(T,u))||[])[0],f&&(A=s.substr(0,s.indexOf(f)),A.length>0&&x(u).unusedInput.push(A),s=s.slice(s.indexOf(f)+f.length),te+=f.length),ke[T]?(f?x(u).empty=!1:x(u).unusedTokens.push(T),yr(T,f,u)):u._strict&&!f&&x(u).unusedTokens.push(T);x(u).charsLeftOver=V-te,s.length>0&&x(u).unusedInput.push(s),u._a[Qe]<=12&&x(u).bigHour===!0&&u._a[Qe]>0&&(x(u).bigHour=void 0),x(u).parsedDateParts=u._a.slice(0),x(u).meridiem=u._meridiem,u._a[Qe]=cT(u._locale,u._a[Qe],u._meridiem),he=x(u).era,he!==null&&(u._a[Oe]=u._locale.erasConvertYear(he,u._a[Oe])),Pc(u),$c(u)}function cT(u,s,o){var f;return o==null?s:u.meridiemHour!=null?u.meridiemHour(s,o):(u.isPM!=null&&(f=u.isPM(o),f&&s<12&&(s+=12),!f&&s===12&&(s=0)),s)}function fT(u){var s,o,f,h,T,A,V=!1,te=u._f.length;if(te===0){x(u).invalidFormat=!0,u._d=new Date(NaN);return}for(h=0;h<te;h++)T=0,A=!1,s=E({},u),u._useUTC!=null&&(s._useUTC=u._useUTC),s._f=u._f[h],ef(s),O(s)&&(A=!0),T+=x(s).charsLeftOver,T+=x(s).unusedTokens.length*10,x(s).score=T,V?T<f&&(f=T,o=s):(f==null||T<f||A)&&(f=T,o=s,A&&(V=!0));_(u,o||s)}function dT(u){if(!u._d){var s=za(u._i),o=s.day===void 0?s.date:s.day;u._a=p([s.year,s.month,o,s.hour,s.minute,s.second,s.millisecond],function(f){return f&&parseInt(f,10)}),Pc(u)}}function hT(u){var s=new N($c(Wm(u)));return s._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function Wm(u){var s=u._i,o=u._f;return u._locale=u._locale||ua(u._l),s===null||o===void 0&&s===""?g({nullInput:!0}):(typeof s=="string"&&(u._i=s=u._locale.preparse(s)),H(s)?new N($c(s)):(m(s)?u._d=s:a(o)?fT(u):o?ef(u):mT(u),O(u)||(u._d=null),u))}function mT(u){var s=u._i;c(s)?u._d=new Date(t.now()):m(s)?u._d=new Date(s.valueOf()):typeof s=="string"?sT(u):a(s)?(u._a=p(s.slice(0),function(o){return parseInt(o,10)}),Pc(u)):l(s)?dT(u):d(s)?u._d=new Date(s):t.createFromInputFallback(u)}function $m(u,s,o,f,h){var T={};return(s===!0||s===!1)&&(f=s,s=void 0),(o===!0||o===!1)&&(f=o,o=void 0),(l(u)&&r(u)||a(u)&&u.length===0)&&(u=void 0),T._isAMomentObject=!0,T._useUTC=T._isUTC=h,T._l=o,T._i=u,T._f=s,T._strict=f,hT(T)}function Ue(u,s,o,f){return $m(u,s,o,f,!1)}var pT=B("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var u=Ue.apply(null,arguments);return this.isValid()&&u.isValid()?u<this?this:u:g()}),gT=B("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var u=Ue.apply(null,arguments);return this.isValid()&&u.isValid()?u>this?this:u:g()});function Im(u,s){var o,f;if(s.length===1&&a(s[0])&&(s=s[0]),!s.length)return Ue();for(o=s[0],f=1;f<s.length;++f)(!s[f].isValid()||s[f][u](o))&&(o=s[f]);return o}function yT(){var u=[].slice.call(arguments,0);return Im("isBefore",u)}function bT(){var u=[].slice.call(arguments,0);return Im("isAfter",u)}var vT=function(){return Date.now?Date.now():+new Date},Lu=["year","quarter","month","week","day","hour","minute","second","millisecond"];function ST(u){var s,o=!1,f,h=Lu.length;for(s in u)if(i(u,s)&&!(re.call(Lu,s)!==-1&&(u[s]==null||!isNaN(u[s]))))return!1;for(f=0;f<h;++f)if(u[Lu[f]]){if(o)return!1;parseFloat(u[Lu[f]])!==se(u[Lu[f]])&&(o=!0)}return!0}function TT(){return this._isValid}function _T(){return On(NaN)}function wr(u){var s=za(u),o=s.year||0,f=s.quarter||0,h=s.month||0,T=s.week||s.isoWeek||0,A=s.day||0,V=s.hour||0,te=s.minute||0,he=s.second||0,zt=s.millisecond||0;this._isValid=ST(s),this._milliseconds=+zt+he*1e3+te*6e4+V*1e3*60*60,this._days=+A+T*7,this._months=+h+f*3+o*12,this._data={},this._locale=ua(),this._bubble()}function Ar(u){return u instanceof wr}function tf(u){return u<0?Math.round(-1*u)*-1:Math.round(u)}function kT(u,s,o){var f=Math.min(u.length,s.length),h=Math.abs(u.length-s.length),T=0,A;for(A=0;A<f;A++)(o&&u[A]!==s[A]||!o&&se(u[A])!==se(s[A]))&&T++;return T+h}function Pm(u,s){L(u,0,0,function(){var o=this.utcOffset(),f="+";return o<0&&(o=-o,f="-"),f+rt(~~(o/60),2)+s+rt(~~o%60,2)})}Pm("Z",":"),Pm("ZZ",""),q("Z",La),q("ZZ",La),be(["Z","ZZ"],function(u,s,o){o._useUTC=!0,o._tzm=nf(La,u)});var ET=/([\+\-]|\d\d)/gi;function nf(u,s){var o=(s||"").match(u),f,h,T;return o===null?null:(f=o[o.length-1]||[],h=(f+"").match(ET)||["-",0,0],T=+(h[1]*60)+se(h[2]),T===0?0:h[0]==="+"?T:-T)}function af(u,s){var o,f;return s._isUTC?(o=s.clone(),f=(H(u)||m(u)?u.valueOf():Ue(u).valueOf())-o.valueOf(),o._d.setTime(o._d.valueOf()+f),t.updateOffset(o,!1),o):Ue(u).local()}function lf(u){return-Math.round(u._d.getTimezoneOffset())}t.updateOffset=function(){};function xT(u,s,o){var f=this._offset||0,h;if(!this.isValid())return u!=null?this:NaN;if(u!=null){if(typeof u=="string"){if(u=nf(La,u),u===null)return this}else Math.abs(u)<16&&!o&&(u=u*60);return!this._isUTC&&s&&(h=lf(this)),this._offset=u,this._isUTC=!0,h!=null&&this.add(h,"m"),f!==u&&(!s||this._changeInProgress?ap(this,On(u-f,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?f:lf(this)}function wT(u,s){return u!=null?(typeof u!="string"&&(u=-u),this.utcOffset(u,s),this):-this.utcOffset()}function AT(u){return this.utcOffset(0,u)}function MT(u){return this._isUTC&&(this.utcOffset(0,u),this._isUTC=!1,u&&this.subtract(lf(this),"m")),this}function OT(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var u=nf(Ya,this._i);u!=null?this.utcOffset(u):this.utcOffset(0,!0)}return this}function DT(u){return this.isValid()?(u=u?Ue(u).utcOffset():0,(this.utcOffset()-u)%60===0):!1}function RT(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function NT(){if(!c(this._isDSTShifted))return this._isDSTShifted;var u={},s;return E(u,this),u=Wm(u),u._a?(s=u._isUTC?y(u._a):Ue(u._a),this._isDSTShifted=this.isValid()&&kT(u._a,s.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function zT(){return this.isValid()?!this._isUTC:!1}function CT(){return this.isValid()?this._isUTC:!1}function ep(){return this.isValid()?this._isUTC&&this._offset===0:!1}var UT=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,YT=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function On(u,s){var o=u,f=null,h,T,A;return Ar(u)?o={ms:u._milliseconds,d:u._days,M:u._months}:d(u)||!isNaN(+u)?(o={},s?o[s]=+u:o.milliseconds=+u):(f=UT.exec(u))?(h=f[1]==="-"?-1:1,o={y:0,d:se(f[Pt])*h,h:se(f[Qe])*h,m:se(f[Rt])*h,s:se(f[en])*h,ms:se(tf(f[gt]*1e3))*h}):(f=YT.exec(u))?(h=f[1]==="-"?-1:1,o={y:wl(f[2],h),M:wl(f[3],h),w:wl(f[4],h),d:wl(f[5],h),h:wl(f[6],h),m:wl(f[7],h),s:wl(f[8],h)}):o==null?o={}:typeof o=="object"&&("from"in o||"to"in o)&&(A=LT(Ue(o.from),Ue(o.to)),o={},o.ms=A.milliseconds,o.M=A.months),T=new wr(o),Ar(u)&&i(u,"_locale")&&(T._locale=u._locale),Ar(u)&&i(u,"_isValid")&&(T._isValid=u._isValid),T}On.fn=wr.prototype,On.invalid=_T;function wl(u,s){var o=u&&parseFloat(u.replace(",","."));return(isNaN(o)?0:o)*s}function tp(u,s){var o={};return o.months=s.month()-u.month()+(s.year()-u.year())*12,u.clone().add(o.months,"M").isAfter(s)&&--o.months,o.milliseconds=+s-+u.clone().add(o.months,"M"),o}function LT(u,s){var o;return u.isValid()&&s.isValid()?(s=af(s,u),u.isBefore(s)?o=tp(u,s):(o=tp(s,u),o.milliseconds=-o.milliseconds,o.months=-o.months),o):{milliseconds:0,months:0}}function np(u,s){return function(o,f){var h,T;return f!==null&&!isNaN(+f)&&(J(s,"moment()."+s+"(period, number) is deprecated. Please use moment()."+s+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),T=o,o=f,f=T),h=On(o,f),ap(this,h,u),this}}function ap(u,s,o,f){var h=s._milliseconds,T=tf(s._days),A=tf(s._months);u.isValid()&&(f=f==null?!0:f,A&&Bm(u,X(u,"Month")+A*o),T&&v(u,"Date",X(u,"Date")+T*o),h&&u._d.setTime(u._d.valueOf()+h*o),f&&t.updateOffset(u,T||A))}var HT=np(1,"add"),BT=np(-1,"subtract");function lp(u){return typeof u=="string"||u instanceof String}function qT(u){return H(u)||m(u)||lp(u)||d(u)||jT(u)||GT(u)||u===null||u===void 0}function GT(u){var s=l(u)&&!r(u),o=!1,f=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],h,T,A=f.length;for(h=0;h<A;h+=1)T=f[h],o=o||i(u,T);return s&&o}function jT(u){var s=a(u),o=!1;return s&&(o=u.filter(function(f){return!d(f)&&lp(u)}).length===0),s&&o}function VT(u){var s=l(u)&&!r(u),o=!1,f=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],h,T;for(h=0;h<f.length;h+=1)T=f[h],o=o||i(u,T);return s&&o}function ZT(u,s){var o=u.diff(s,"days",!0);return o<-6?"sameElse":o<-1?"lastWeek":o<0?"lastDay":o<1?"sameDay":o<2?"nextDay":o<7?"nextWeek":"sameElse"}function QT(u,s){arguments.length===1&&(arguments[0]?qT(arguments[0])?(u=arguments[0],s=void 0):VT(arguments[0])&&(s=arguments[0],u=void 0):(u=void 0,s=void 0));var o=u||Ue(),f=af(o,this).startOf("day"),h=t.calendarFormat(this,f)||"sameElse",T=s&&(ee(s[h])?s[h].call(this,o):s[h]);return this.format(T||this.localeData().calendar(h,this,Ue(o)))}function XT(){return new N(this)}function FT(u,s){var o=H(u)?u:Ue(u);return this.isValid()&&o.isValid()?(s=ht(s)||"millisecond",s==="millisecond"?this.valueOf()>o.valueOf():o.valueOf()<this.clone().startOf(s).valueOf()):!1}function KT(u,s){var o=H(u)?u:Ue(u);return this.isValid()&&o.isValid()?(s=ht(s)||"millisecond",s==="millisecond"?this.valueOf()<o.valueOf():this.clone().endOf(s).valueOf()<o.valueOf()):!1}function JT(u,s,o,f){var h=H(u)?u:Ue(u),T=H(s)?s:Ue(s);return this.isValid()&&h.isValid()&&T.isValid()?(f=f||"()",(f[0]==="("?this.isAfter(h,o):!this.isBefore(h,o))&&(f[1]===")"?this.isBefore(T,o):!this.isAfter(T,o))):!1}function WT(u,s){var o=H(u)?u:Ue(u),f;return this.isValid()&&o.isValid()?(s=ht(s)||"millisecond",s==="millisecond"?this.valueOf()===o.valueOf():(f=o.valueOf(),this.clone().startOf(s).valueOf()<=f&&f<=this.clone().endOf(s).valueOf())):!1}function $T(u,s){return this.isSame(u,s)||this.isAfter(u,s)}function IT(u,s){return this.isSame(u,s)||this.isBefore(u,s)}function PT(u,s,o){var f,h,T;if(!this.isValid())return NaN;if(f=af(u,this),!f.isValid())return NaN;switch(h=(f.utcOffset()-this.utcOffset())*6e4,s=ht(s),s){case"year":T=Mr(this,f)/12;break;case"month":T=Mr(this,f);break;case"quarter":T=Mr(this,f)/3;break;case"second":T=(this-f)/1e3;break;case"minute":T=(this-f)/6e4;break;case"hour":T=(this-f)/36e5;break;case"day":T=(this-f-h)/864e5;break;case"week":T=(this-f-h)/6048e5;break;default:T=this-f}return o?T:it(T)}function Mr(u,s){if(u.date()<s.date())return-Mr(s,u);var o=(s.year()-u.year())*12+(s.month()-u.month()),f=u.clone().add(o,"months"),h,T;return s-f<0?(h=u.clone().add(o-1,"months"),T=(s-f)/(f-h)):(h=u.clone().add(o+1,"months"),T=(s-f)/(h-f)),-(o+T)||0}t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function e_(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function t_(u){if(!this.isValid())return null;var s=u!==!0,o=s?this.clone().utc():this;return o.year()<0||o.year()>9999?Hn(o,s?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):ee(Date.prototype.toISOString)?s?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",Hn(o,"Z")):Hn(o,s?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function n_(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var u="moment",s="",o,f,h,T;return this.isLocal()||(u=this.utcOffset()===0?"moment.utc":"moment.parseZone",s="Z"),o="["+u+'("]',f=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",h="-MM-DD[T]HH:mm:ss.SSS",T=s+'[")]',this.format(o+f+h+T)}function a_(u){u||(u=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var s=Hn(this,u);return this.localeData().postformat(s)}function l_(u,s){return this.isValid()&&(H(u)&&u.isValid()||Ue(u).isValid())?On({to:this,from:u}).locale(this.locale()).humanize(!s):this.localeData().invalidDate()}function i_(u){return this.from(Ue(),u)}function u_(u,s){return this.isValid()&&(H(u)&&u.isValid()||Ue(u).isValid())?On({from:this,to:u}).locale(this.locale()).humanize(!s):this.localeData().invalidDate()}function s_(u){return this.to(Ue(),u)}function ip(u){var s;return u===void 0?this._locale._abbr:(s=ua(u),s!=null&&(this._locale=s),this)}var up=B("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(u){return u===void 0?this.localeData():this.locale(u)});function sp(){return this._locale}var Or=1e3,fi=60*Or,Dr=60*fi,rp=(365*400+97)*24*Dr;function di(u,s){return(u%s+s)%s}function op(u,s,o){return u<100&&u>=0?new Date(u+400,s,o)-rp:new Date(u,s,o).valueOf()}function cp(u,s,o){return u<100&&u>=0?Date.UTC(u+400,s,o)-rp:Date.UTC(u,s,o)}function r_(u){var s,o;if(u=ht(u),u===void 0||u==="millisecond"||!this.isValid())return this;switch(o=this._isUTC?cp:op,u){case"year":s=o(this.year(),0,1);break;case"quarter":s=o(this.year(),this.month()-this.month()%3,1);break;case"month":s=o(this.year(),this.month(),1);break;case"week":s=o(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":s=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":s=o(this.year(),this.month(),this.date());break;case"hour":s=this._d.valueOf(),s-=di(s+(this._isUTC?0:this.utcOffset()*fi),Dr);break;case"minute":s=this._d.valueOf(),s-=di(s,fi);break;case"second":s=this._d.valueOf(),s-=di(s,Or);break}return this._d.setTime(s),t.updateOffset(this,!0),this}function o_(u){var s,o;if(u=ht(u),u===void 0||u==="millisecond"||!this.isValid())return this;switch(o=this._isUTC?cp:op,u){case"year":s=o(this.year()+1,0,1)-1;break;case"quarter":s=o(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":s=o(this.year(),this.month()+1,1)-1;break;case"week":s=o(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":s=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":s=o(this.year(),this.month(),this.date()+1)-1;break;case"hour":s=this._d.valueOf(),s+=Dr-di(s+(this._isUTC?0:this.utcOffset()*fi),Dr)-1;break;case"minute":s=this._d.valueOf(),s+=fi-di(s,fi)-1;break;case"second":s=this._d.valueOf(),s+=Or-di(s,Or)-1;break}return this._d.setTime(s),t.updateOffset(this,!0),this}function c_(){return this._d.valueOf()-(this._offset||0)*6e4}function f_(){return Math.floor(this.valueOf()/1e3)}function d_(){return new Date(this.valueOf())}function h_(){var u=this;return[u.year(),u.month(),u.date(),u.hour(),u.minute(),u.second(),u.millisecond()]}function m_(){var u=this;return{years:u.year(),months:u.month(),date:u.date(),hours:u.hours(),minutes:u.minutes(),seconds:u.seconds(),milliseconds:u.milliseconds()}}function p_(){return this.isValid()?this.toISOString():null}function g_(){return O(this)}function y_(){return _({},x(this))}function b_(){return x(this).overflow}function v_(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}L("N",0,0,"eraAbbr"),L("NN",0,0,"eraAbbr"),L("NNN",0,0,"eraAbbr"),L("NNNN",0,0,"eraName"),L("NNNNN",0,0,"eraNarrow"),L("y",["y",1],"yo","eraYear"),L("y",["yy",2],0,"eraYear"),L("y",["yyy",3],0,"eraYear"),L("y",["yyyy",4],0,"eraYear"),q("N",uf),q("NN",uf),q("NNN",uf),q("NNNN",D_),q("NNNNN",R_),be(["N","NN","NNN","NNNN","NNNNN"],function(u,s,o,f){var h=o._locale.erasParse(u,f,o._strict);h?x(o).era=h:x(o).invalidEra=u}),q("y",Mn),q("yy",Mn),q("yyy",Mn),q("yyyy",Mn),q("yo",N_),be(["y","yy","yyy","yyyy"],Oe),be(["yo"],function(u,s,o,f){var h;o._locale._eraYearOrdinalRegex&&(h=u.match(o._locale._eraYearOrdinalRegex)),o._locale.eraYearOrdinalParse?s[Oe]=o._locale.eraYearOrdinalParse(u,h):s[Oe]=parseInt(u,10)});function S_(u,s){var o,f,h,T=this._eras||ua("en")._eras;for(o=0,f=T.length;o<f;++o)switch(typeof T[o].since==="string"&&(h=t(T[o].since).startOf("day"),T[o].since=h.valueOf()),typeof T[o].until){case"undefined":T[o].until=1/0;break;case"string":h=t(T[o].until).startOf("day").valueOf(),T[o].until=h.valueOf();break}return T}function T_(u,s,o){var f,h,T=this.eras(),A,V,te;for(u=u.toUpperCase(),f=0,h=T.length;f<h;++f)if(A=T[f].name.toUpperCase(),V=T[f].abbr.toUpperCase(),te=T[f].narrow.toUpperCase(),o)switch(s){case"N":case"NN":case"NNN":if(V===u)return T[f];break;case"NNNN":if(A===u)return T[f];break;case"NNNNN":if(te===u)return T[f];break}else if([A,V,te].indexOf(u)>=0)return T[f]}function __(u,s){var o=u.since<=u.until?1:-1;return s===void 0?t(u.since).year():t(u.since).year()+(s-u.offset)*o}function k_(){var u,s,o,f=this.localeData().eras();for(u=0,s=f.length;u<s;++u)if(o=this.clone().startOf("day").valueOf(),f[u].since<=o&&o<=f[u].until||f[u].until<=o&&o<=f[u].since)return f[u].name;return""}function E_(){var u,s,o,f=this.localeData().eras();for(u=0,s=f.length;u<s;++u)if(o=this.clone().startOf("day").valueOf(),f[u].since<=o&&o<=f[u].until||f[u].until<=o&&o<=f[u].since)return f[u].narrow;return""}function x_(){var u,s,o,f=this.localeData().eras();for(u=0,s=f.length;u<s;++u)if(o=this.clone().startOf("day").valueOf(),f[u].since<=o&&o<=f[u].until||f[u].until<=o&&o<=f[u].since)return f[u].abbr;return""}function w_(){var u,s,o,f,h=this.localeData().eras();for(u=0,s=h.length;u<s;++u)if(o=h[u].since<=h[u].until?1:-1,f=this.clone().startOf("day").valueOf(),h[u].since<=f&&f<=h[u].until||h[u].until<=f&&f<=h[u].since)return(this.year()-t(h[u].since).year())*o+h[u].offset;return this.year()}function A_(u){return i(this,"_erasNameRegex")||sf.call(this),u?this._erasNameRegex:this._erasRegex}function M_(u){return i(this,"_erasAbbrRegex")||sf.call(this),u?this._erasAbbrRegex:this._erasRegex}function O_(u){return i(this,"_erasNarrowRegex")||sf.call(this),u?this._erasNarrowRegex:this._erasRegex}function uf(u,s){return s.erasAbbrRegex(u)}function D_(u,s){return s.erasNameRegex(u)}function R_(u,s){return s.erasNarrowRegex(u)}function N_(u,s){return s._eraYearOrdinalRegex||Mn}function sf(){var u=[],s=[],o=[],f=[],h,T,A,V,te,he=this.eras();for(h=0,T=he.length;h<T;++h)A=xe(he[h].name),V=xe(he[h].abbr),te=xe(he[h].narrow),s.push(A),u.push(V),o.push(te),f.push(A),f.push(V),f.push(te);this._erasRegex=new RegExp("^("+f.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+s.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+u.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+o.join("|")+")","i")}L(0,["gg",2],0,function(){return this.weekYear()%100}),L(0,["GG",2],0,function(){return this.isoWeekYear()%100});function Rr(u,s){L(0,[u,u.length],0,s)}Rr("gggg","weekYear"),Rr("ggggg","weekYear"),Rr("GGGG","isoWeekYear"),Rr("GGGGG","isoWeekYear"),q("G",Dt),q("g",Dt),q("GG",Ee,mt),q("gg",Ee,mt),q("GGGG",ui,qn),q("gggg",ui,qn),q("GGGGG",aa,Ot),q("ggggg",aa,Ot),Ha(["gggg","ggggg","GGGG","GGGGG"],function(u,s,o,f){s[f.substr(0,2)]=se(u)}),Ha(["gg","GG"],function(u,s,o,f){s[f]=t.parseTwoDigitYear(u)});function z_(u){return fp.call(this,u,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function C_(u){return fp.call(this,u,this.isoWeek(),this.isoWeekday(),1,4)}function U_(){return ia(this.year(),1,4)}function Y_(){return ia(this.isoWeekYear(),1,4)}function L_(){var u=this.localeData()._week;return ia(this.year(),u.dow,u.doy)}function H_(){var u=this.localeData()._week;return ia(this.weekYear(),u.dow,u.doy)}function fp(u,s,o,f,h){var T;return u==null?Cu(this,f,h).year:(T=ia(u,f,h),s>T&&(s=T),B_.call(this,u,s,o,f,h))}function B_(u,s,o,f,h){var T=jm(u,s,o,f,h),A=zu(T.year,0,T.dayOfYear);return this.year(A.getUTCFullYear()),this.month(A.getUTCMonth()),this.date(A.getUTCDate()),this}L("Q",0,"Qo","quarter"),q("Q",Au),be("Q",function(u,s){s[pt]=(se(u)-1)*3});function q_(u){return u==null?Math.ceil((this.month()+1)/3):this.month((u-1)*3+this.month()%3)}L("D",["DD",2],"Do","date"),q("D",Ee,Gn),q("DD",Ee,mt),q("Do",function(u,s){return u?s._dayOfMonthOrdinalParse||s._ordinalParse:s._dayOfMonthOrdinalParseLenient}),be(["D","DD"],Pt),be("Do",function(u,s){s[Pt]=se(u.match(Ee)[0])});var dp=la("Date",!0);L("DDD",["DDDD",3],"DDDo","dayOfYear"),q("DDD",Ua),q("DDDD",Ca),be(["DDD","DDDD"],function(u,s,o){o._dayOfYear=se(u)});function G_(u){var s=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return u==null?s:this.add(u-s,"d")}L("m",["mm",2],0,"minute"),q("m",Ee,El),q("mm",Ee,mt),be(["m","mm"],Rt);var j_=la("Minutes",!1);L("s",["ss",2],0,"second"),q("s",Ee,El),q("ss",Ee,mt),be(["s","ss"],en);var V_=la("Seconds",!1);L("S",0,0,function(){return~~(this.millisecond()/100)}),L(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),L(0,["SSS",3],0,"millisecond"),L(0,["SSSS",4],0,function(){return this.millisecond()*10}),L(0,["SSSSS",5],0,function(){return this.millisecond()*100}),L(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),L(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),L(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),L(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),q("S",Ua,Au),q("SS",Ua,mt),q("SSS",Ua,Ca);var qa,hp;for(qa="SSSS";qa.length<=9;qa+="S")q(qa,Mn);function Z_(u,s){s[gt]=se(("0."+u)*1e3)}for(qa="S";qa.length<=9;qa+="S")be(qa,Z_);hp=la("Milliseconds",!1),L("z",0,0,"zoneAbbr"),L("zz",0,0,"zoneName");function Q_(){return this._isUTC?"UTC":""}function X_(){return this._isUTC?"Coordinated Universal Time":""}var C=N.prototype;C.add=HT,C.calendar=QT,C.clone=XT,C.diff=PT,C.endOf=o_,C.format=a_,C.from=l_,C.fromNow=i_,C.to=u_,C.toNow=s_,C.get=R,C.invalidAt=b_,C.isAfter=FT,C.isBefore=KT,C.isBetween=JT,C.isSame=WT,C.isSameOrAfter=$T,C.isSameOrBefore=IT,C.isValid=g_,C.lang=up,C.locale=ip,C.localeData=sp,C.max=gT,C.min=pT,C.parsingFlags=y_,C.set=Z,C.startOf=r_,C.subtract=BT,C.toArray=h_,C.toObject=m_,C.toDate=d_,C.toISOString=t_,C.inspect=n_,typeof Symbol<"u"&&Symbol.for!=null&&(C[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),C.toJSON=p_,C.toString=e_,C.unix=f_,C.valueOf=c_,C.creationData=v_,C.eraName=k_,C.eraNarrow=E_,C.eraAbbr=x_,C.eraYear=w_,C.year=Ru,C.isLeapYear=Sr,C.weekYear=z_,C.isoWeekYear=C_,C.quarter=C.quarters=q_,C.month=qm,C.daysInMonth=dS,C.week=C.weeks=SS,C.isoWeek=C.isoWeeks=TS,C.weeksInYear=L_,C.weeksInWeekYear=H_,C.isoWeeksInYear=U_,C.isoWeeksInISOWeekYear=Y_,C.date=dp,C.day=C.days=CS,C.weekday=US,C.isoWeekday=YS,C.dayOfYear=G_,C.hour=C.hours=VS,C.minute=C.minutes=j_,C.second=C.seconds=V_,C.millisecond=C.milliseconds=hp,C.utcOffset=xT,C.utc=AT,C.local=MT,C.parseZone=OT,C.hasAlignedHourOffset=DT,C.isDST=RT,C.isLocal=zT,C.isUtcOffset=CT,C.isUtc=ep,C.isUTC=ep,C.zoneAbbr=Q_,C.zoneName=X_,C.dates=B("dates accessor is deprecated. Use date instead.",dp),C.months=B("months accessor is deprecated. Use month instead",qm),C.years=B("years accessor is deprecated. Use year instead",Ru),C.zone=B("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",wT),C.isDSTShifted=B("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",NT);function F_(u){return Ue(u*1e3)}function K_(){return Ue.apply(null,arguments).parseZone()}function mp(u){return u}var ve=de.prototype;ve.calendar=Pn,ve.longDateFormat=dr,ve.invalidDate=hr,ve.ordinal=_l,ve.preparse=mp,ve.postformat=mp,ve.relativeTime=xu,ve.pastFuture=wu,ve.set=Me,ve.eras=S_,ve.erasParse=T_,ve.erasConvertYear=__,ve.erasAbbrRegex=M_,ve.erasNameRegex=A_,ve.erasNarrowRegex=O_,ve.months=Tr,ve.monthsShort=_r,ve.monthsParse=fS,ve.monthsRegex=mS,ve.monthsShortRegex=hS,ve.week=gS,ve.firstDayOfYear=vS,ve.firstDayOfWeek=bS,ve.weekdays=OS,ve.weekdaysMin=RS,ve.weekdaysShort=DS,ve.weekdaysParse=zS,ve.weekdaysRegex=LS,ve.weekdaysShortRegex=HS,ve.weekdaysMinRegex=BS,ve.isPM=GS,ve.meridiem=ZS;function Nr(u,s,o,f){var h=ua(),T=y().set(f,s);return h[o](T,u)}function pp(u,s,o){if(d(u)&&(s=u,u=void 0),u=u||"",s!=null)return Nr(u,s,o,"month");var f,h=[];for(f=0;f<12;f++)h[f]=Nr(u,f,o,"month");return h}function rf(u,s,o,f){typeof u=="boolean"?(d(s)&&(o=s,s=void 0),s=s||""):(s=u,o=s,u=!1,d(s)&&(o=s,s=void 0),s=s||"");var h=ua(),T=u?h._week.dow:0,A,V=[];if(o!=null)return Nr(s,(o+T)%7,f,"day");for(A=0;A<7;A++)V[A]=Nr(s,(A+T)%7,f,"day");return V}function J_(u,s){return pp(u,s,"months")}function W_(u,s){return pp(u,s,"monthsShort")}function $_(u,s,o){return rf(u,s,o,"weekdays")}function I_(u,s,o){return rf(u,s,o,"weekdaysShort")}function P_(u,s,o){return rf(u,s,o,"weekdaysMin")}Ba("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(u){var s=u%10,o=se(u%100/10)===1?"th":s===1?"st":s===2?"nd":s===3?"rd":"th";return u+o}}),t.lang=B("moment.lang is deprecated. Use moment.locale instead.",Ba),t.langData=B("moment.langData is deprecated. Use moment.localeData instead.",ua);var sa=Math.abs;function ek(){var u=this._data;return this._milliseconds=sa(this._milliseconds),this._days=sa(this._days),this._months=sa(this._months),u.milliseconds=sa(u.milliseconds),u.seconds=sa(u.seconds),u.minutes=sa(u.minutes),u.hours=sa(u.hours),u.months=sa(u.months),u.years=sa(u.years),this}function gp(u,s,o,f){var h=On(s,o);return u._milliseconds+=f*h._milliseconds,u._days+=f*h._days,u._months+=f*h._months,u._bubble()}function tk(u,s){return gp(this,u,s,1)}function nk(u,s){return gp(this,u,s,-1)}function yp(u){return u<0?Math.floor(u):Math.ceil(u)}function ak(){var u=this._milliseconds,s=this._days,o=this._months,f=this._data,h,T,A,V,te;return u>=0&&s>=0&&o>=0||u<=0&&s<=0&&o<=0||(u+=yp(of(o)+s)*864e5,s=0,o=0),f.milliseconds=u%1e3,h=it(u/1e3),f.seconds=h%60,T=it(h/60),f.minutes=T%60,A=it(T/60),f.hours=A%24,s+=it(A/24),te=it(bp(s)),o+=te,s-=yp(of(te)),V=it(o/12),o%=12,f.days=s,f.months=o,f.years=V,this}function bp(u){return u*4800/146097}function of(u){return u*146097/4800}function lk(u){if(!this.isValid())return NaN;var s,o,f=this._milliseconds;if(u=ht(u),u==="month"||u==="quarter"||u==="year")switch(s=this._days+f/864e5,o=this._months+bp(s),u){case"month":return o;case"quarter":return o/3;case"year":return o/12}else switch(s=this._days+Math.round(of(this._months)),u){case"week":return s/7+f/6048e5;case"day":return s+f/864e5;case"hour":return s*24+f/36e5;case"minute":return s*1440+f/6e4;case"second":return s*86400+f/1e3;case"millisecond":return Math.floor(s*864e5)+f;default:throw new Error("Unknown unit "+u)}}function ra(u){return function(){return this.as(u)}}var vp=ra("ms"),ik=ra("s"),uk=ra("m"),sk=ra("h"),rk=ra("d"),ok=ra("w"),ck=ra("M"),fk=ra("Q"),dk=ra("y"),hk=vp;function mk(){return On(this)}function pk(u){return u=ht(u),this.isValid()?this[u+"s"]():NaN}function Al(u){return function(){return this.isValid()?this._data[u]:NaN}}var gk=Al("milliseconds"),yk=Al("seconds"),bk=Al("minutes"),vk=Al("hours"),Sk=Al("days"),Tk=Al("months"),_k=Al("years");function kk(){return it(this.days()/7)}var oa=Math.round,hi={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Ek(u,s,o,f,h){return h.relativeTime(s||1,!!o,u,f)}function xk(u,s,o,f){var h=On(u).abs(),T=oa(h.as("s")),A=oa(h.as("m")),V=oa(h.as("h")),te=oa(h.as("d")),he=oa(h.as("M")),zt=oa(h.as("w")),ca=oa(h.as("y")),Ga=T<=o.ss&&["s",T]||T<o.s&&["ss",T]||A<=1&&["m"]||A<o.m&&["mm",A]||V<=1&&["h"]||V<o.h&&["hh",V]||te<=1&&["d"]||te<o.d&&["dd",te];return o.w!=null&&(Ga=Ga||zt<=1&&["w"]||zt<o.w&&["ww",zt]),Ga=Ga||he<=1&&["M"]||he<o.M&&["MM",he]||ca<=1&&["y"]||["yy",ca],Ga[2]=s,Ga[3]=+u>0,Ga[4]=f,Ek.apply(null,Ga)}function wk(u){return u===void 0?oa:typeof u=="function"?(oa=u,!0):!1}function Ak(u,s){return hi[u]===void 0?!1:s===void 0?hi[u]:(hi[u]=s,u==="s"&&(hi.ss=s-1),!0)}function Mk(u,s){if(!this.isValid())return this.localeData().invalidDate();var o=!1,f=hi,h,T;return typeof u=="object"&&(s=u,u=!1),typeof u=="boolean"&&(o=u),typeof s=="object"&&(f=Object.assign({},hi,s),s.s!=null&&s.ss==null&&(f.ss=s.s-1)),h=this.localeData(),T=xk(this,!o,f,h),o&&(T=h.pastFuture(+this,T)),h.postformat(T)}var cf=Math.abs;function mi(u){return(u>0)-(u<0)||+u}function zr(){if(!this.isValid())return this.localeData().invalidDate();var u=cf(this._milliseconds)/1e3,s=cf(this._days),o=cf(this._months),f,h,T,A,V=this.asSeconds(),te,he,zt,ca;return V?(f=it(u/60),h=it(f/60),u%=60,f%=60,T=it(o/12),o%=12,A=u?u.toFixed(3).replace(/\.?0+$/,""):"",te=V<0?"-":"",he=mi(this._months)!==mi(V)?"-":"",zt=mi(this._days)!==mi(V)?"-":"",ca=mi(this._milliseconds)!==mi(V)?"-":"",te+"P"+(T?he+T+"Y":"")+(o?he+o+"M":"")+(s?zt+s+"D":"")+(h||f||u?"T":"")+(h?ca+h+"H":"")+(f?ca+f+"M":"")+(u?ca+A+"S":"")):"P0D"}var pe=wr.prototype;pe.isValid=TT,pe.abs=ek,pe.add=tk,pe.subtract=nk,pe.as=lk,pe.asMilliseconds=vp,pe.asSeconds=ik,pe.asMinutes=uk,pe.asHours=sk,pe.asDays=rk,pe.asWeeks=ok,pe.asMonths=ck,pe.asQuarters=fk,pe.asYears=dk,pe.valueOf=hk,pe._bubble=ak,pe.clone=mk,pe.get=pk,pe.milliseconds=gk,pe.seconds=yk,pe.minutes=bk,pe.hours=vk,pe.days=Sk,pe.weeks=kk,pe.months=Tk,pe.years=_k,pe.humanize=Mk,pe.toISOString=zr,pe.toString=zr,pe.toJSON=zr,pe.locale=ip,pe.localeData=sp,pe.toIsoString=B("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",zr),pe.lang=up,L("X",0,0,"unix"),L("x",0,0,"valueOf"),q("x",Dt),q("X",Du),be("X",function(u,s,o){o._d=new Date(parseFloat(u)*1e3)}),be("x",function(u,s,o){o._d=new Date(se(u))});return t.version="2.30.1",n(Ue),t.fn=C,t.min=yT,t.max=bT,t.now=vT,t.utc=y,t.unix=F_,t.months=J_,t.isDate=m,t.locale=Ba,t.invalid=g,t.duration=On,t.isMoment=H,t.weekdays=$_,t.parseZone=K_,t.localeData=ua,t.isDuration=Ar,t.monthsShort=W_,t.weekdaysMin=P_,t.defineLocale=Wc,t.updateLocale=KS,t.locales=JS,t.weekdaysShort=I_,t.normalizeUnits=ht,t.relativeTimeRounding=wk,t.relativeTimeThreshold=Ak,t.calendarFormat=ZT,t.prototype=C,t.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},t}))});var i1=Dn(Dc=>{"use strict";var Ww=Symbol.for("react.transitional.element"),$w=Symbol.for("react.fragment");function l1(e,t,n){var a=null;if(n!==void 0&&(a=""+n),t.key!==void 0&&(a=""+t.key),"key"in t){n={};for(var l in t)l!=="key"&&(n[l]=t[l])}else n=t;return t=n.ref,{$$typeof:Ww,type:e,key:a,ref:t!==void 0?t:null,props:n}}Dc.Fragment=$w;Dc.jsx=l1;Dc.jsxs=l1});var $e=Dn((XM,u1)=>{"use strict";u1.exports=i1()});var li=ye(hv());var Jn=class extends Error{constructor(){super(...arguments);F(this,"name","KyError")}get isKyError(){return!0}};var su=class extends Jn{constructor(n,a,l){var m;let i=n.status||n.status===0?n.status:"",r=(m=n.statusText)!=null?m:"",c="".concat(i," ").concat(r).trim(),d=c?"status code ".concat(c):"an unknown error";super("Request failed with ".concat(d,": ").concat(a.method," ").concat(a.url));F(this,"name","HTTPError");F(this,"response");F(this,"request");F(this,"options");F(this,"data");this.response=n,this.request=a,this.options=l}};var ru=class extends Jn{constructor(n,a){super("Request failed due to a network error: ".concat(n.method," ").concat(n.url),a);F(this,"name","NetworkError");F(this,"request");this.request=n}};var ou=class extends Error{constructor(n){let a="Non-error value was thrown";try{typeof n=="string"?a=n:n&&typeof n=="object"&&"message"in n&&typeof n.message=="string"&&(a=n.message)}catch(l){}super(a);F(this,"name","NonError");F(this,"value");this.value=n}};var Kl=class extends Jn{constructor(n){let a=n!=null&&n.cause?n.cause instanceof Error?n.cause:new ou(n.cause):void 0;super(n!=null&&n.code?"Forced retry: ".concat(n.code):"Forced retry",a?{cause:a}:void 0);F(this,"name","ForceRetryError");F(this,"customDelay");F(this,"code");F(this,"customRequest");this.customDelay=n==null?void 0:n.delay,this.code=n==null?void 0:n.code,this.customRequest=n==null?void 0:n.request}};var dc=class extends Error{constructor(n){super("Response schema validation failed");F(this,"name","SchemaValidationError");F(this,"issues");this.issues=n}};var kn=class extends Jn{constructor(n){super("Request timed out: ".concat(n.method," ").concat(n.url));F(this,"name","TimeoutError");F(this,"request");this.request=n}};var tm=(()=>{let e=!1,t=!1,n=typeof globalThis.ReadableStream=="function",a=typeof globalThis.Request=="function";if(n&&a)try{t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")}catch(l){if(l instanceof Error&&l.message==="unsupported BodyInit type")return!1;throw l}return e&&!t})(),mv=typeof globalThis.AbortController=="function",hc=typeof globalThis.AbortSignal=="function"&&typeof globalThis.AbortSignal.any=="function",pv=typeof globalThis.ReadableStream=="function",gv=typeof globalThis.FormData=="function",mc=["get","post","put","patch","head","delete"],Aw=()=>{};Aw();var yv={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*",bytes:"*/*"},cu=2147483647,bv=40,pc=Symbol("stop"),Bs=class{constructor(t){F(this,"options");this.options=t}},vv=e=>new Bs(e),Sv={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,baseUrl:!0,prefix:!0,retry:!0,timeout:!0,totalTimeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0,context:!0},Tv={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,duplex:!0};var gc=new TextEncoder,Mw=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(let[n,a]of e)t+=bv,t+=gc.encode('Content-Disposition: form-data; name="'.concat(n,'"')).byteLength,t+=typeof a=="string"?gc.encode(a).byteLength:a.size;return t}return e instanceof Blob?e.size:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:typeof e=="string"?gc.encode(e).byteLength:e instanceof URLSearchParams?gc.encode(e.toString()).byteLength:0},_v=(e,t,n)=>{let a,l=0;return e.pipeThrough(new TransformStream({transform(i,r){if(r.enqueue(i),a){l+=a.byteLength;let c=t===0?0:l/t;c>=1&&(c=1-Number.EPSILON),n==null||n({percent:c,totalBytes:Math.max(t,l),transferredBytes:l},a)}a=i},flush(){a&&(l+=a.byteLength,n==null||n({percent:1,totalBytes:Math.max(t,l),transferredBytes:l},a))}}))},kv=(e,t)=>{if(!e.body)return e;let n={status:e.status,statusText:e.statusText,headers:e.headers};if(e.status===204)return new Response(null,n);let a=Math.max(0,Number(e.headers.get("content-length"))||0);return new Response(_v(e.body,a,t),n)},Ev=(e,t,n)=>{if(!e.body)return e;let a=Mw(n!=null?n:e.body);return new Request(e,{duplex:"half",body:_v(e.body,a,t)})};var Wn=e=>e!==null&&typeof e=="object";var Ow=Symbol("replaceOption"),nm=e=>Wn(e)&&e[Ow]===!0?{isReplace:!0,value:e.value}:{isReplace:!1,value:e};var Gs=(...e)=>{for(let t of e)if((!Wn(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return im({},...e)},lm=(e={},t={})=>{let n=new globalThis.Headers(e),a=t instanceof globalThis.Headers,l=new globalThis.Headers(t);for(let[i,r]of l.entries())a&&r==="undefined"||r===void 0?n.delete(i):n.set(i,r);return n},am=e=>{if(!Wn(e)||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},fu=e=>{if(e instanceof URLSearchParams){let t=new URLSearchParams(e),n=e[gl];return n&&(t[gl]=new Set(n)),t}return e instanceof globalThis.Headers?new globalThis.Headers(e):Array.isArray(e)?[...e]:am(e)?G({},e):e},Dw=e=>Object.fromEntries(Object.entries(e).filter(t=>t[1]!==void 0)),Rw=(e,t)=>am(e)&&am(t)?Dw(G(G({},e),t)):lm(e,t);function qs(e,t,n){var a,l;return Object.hasOwn(t,n)&&t[n]===void 0?[]:im((a=e[n])!=null?a:[],(l=t[n])!=null?l:[])}var yc=(e={},t={})=>({init:qs(e,t,"init"),beforeRequest:qs(e,t,"beforeRequest"),beforeRetry:qs(e,t,"beforeRetry"),beforeError:qs(e,t,"beforeError"),afterResponse:qs(e,t,"afterResponse")}),gl=Symbol("deletedParameters"),Nw=(e,t)=>{let n=new URLSearchParams,a=new Set;for(let l of[e,t])if(l!==void 0)if(l instanceof URLSearchParams){for(let[r,c]of l.entries())n.append(r,c),a.delete(r);let i=l[gl];if(i)for(let r of i)n.delete(r),a.add(r)}else if(Array.isArray(l))for(let i of l){if(!Array.isArray(i)||i.length!==2)throw new TypeError("Array search parameters must be provided in [[key, value], ...] format");n.append(String(i[0]),String(i[1])),a.delete(String(i[0]))}else if(Wn(l))for(let[i,r]of Object.entries(l))r===void 0?(n.delete(i),a.add(i)):(n.append(i,String(r)),a.delete(i));else{let i=new URLSearchParams(l);for(let[r,c]of i.entries())n.append(r,c),a.delete(r)}return a.size>0&&(n[gl]=a),n},im=(...e)=>{let t={},n={},a={},l,i=[];for(let r of e)if(Array.isArray(r))Array.isArray(t)||(t=[]),t=[...t,...r];else if(Wn(r)){for(let[c,d]of Object.entries(r)){if(c==="signal"&&d instanceof globalThis.AbortSignal){i.push(d);continue}let m=nm(d),{isReplace:p}=m;if(d=m.value,c==="context"){if(d!=null&&(!Wn(d)||Array.isArray(d)))throw new TypeError("The `context` option must be an object");t=$(G({},t),{context:d==null?{}:G(p?{}:G({},t.context),d)});continue}if(c==="searchParams"){d==null?l=void 0:p?l=d:l=l===void 0?d:Nw(l,d);continue}Wn(d)&&!p&&c in t&&(d=im(t[c],d)),t=$(G({},t),{[c]:d})}if(Wn(r.hooks)){let{value:c,isReplace:d}=nm(r.hooks);a=yc(d?{}:a,c),t.hooks=a}if(Wn(r.headers)){let{value:c,isReplace:d}=nm(r.headers);n=d?fu(c):Rw(n,c),t.headers=n}}return l!==void 0&&(t.searchParams=l),i.length>0&&(i.length===1?t.signal=i[0]:hc?t.signal=AbortSignal.any(i):t.signal=i.at(-1)),t};var wv=e=>mc.includes(e)?e.toUpperCase():e,zw=["get","put","head","delete","options","trace"],Cw=[408,413,429,500,502,503,504],Uw=[413,429,503],xv={limit:2,methods:zw,statusCodes:Cw,afterStatusCodes:Uw,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3,jitter:void 0,retryOnTimeout:!1},Av=(e={})=>{var n;if(typeof e=="number")return $(G({},xv),{limit:e});if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");let t=Object.fromEntries(Object.entries($(G({},e),{methods:(n=e.methods)==null?void 0:n.map(a=>a.toLowerCase())})).filter(([,a])=>a!==void 0));return G(G({},xv),t)};async function um(e,t,n,a){return new Promise((l,i)=>{let r=setTimeout(()=>{n&&n.abort(),i(new kn(e))},a.timeout);a.fetch(e,t).then(l).catch(i).then(()=>{clearTimeout(r)})})}async function bc(e,{signal:t}){return new Promise((n,a)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",l,{once:!0}));function l(){clearTimeout(i),a(t.reason)}let i=setTimeout(()=>{t==null||t.removeEventListener("abort",l),n()},e)})}var Mv=e=>{let t={};for(let n in e)Object.hasOwn(e,n)&&!(n in Tv)&&!(n in Sv)&&(t[n]=e[n]);return t},Ov=e=>{var t;return e===void 0?!1:Array.isArray(e)?e.length>0:e instanceof URLSearchParams?e.size>0||!!((t=e[gl])!=null&&t.size):typeof e=="object"?Object.keys(e).length>0:typeof e=="string"?e.trim().length>0:!!e};var Yw=Object.prototype.toString,Lw=e=>Yw.call(e)==="[object Error]",Hw=new Set(["network error","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function sm(e){if(!(e&&Lw(e)&&e.name==="TypeError"&&typeof e.message=="string"))return!1;let{message:n,stack:a}=e;return n==="Load failed"?a===void 0||"__sentry_captured__"in e:n.startsWith("error sending request for url")||n==="Failed to fetch"||n.startsWith("Failed to fetch (")&&n.endsWith(")")?!0:Hw.has(n)}var rm=(e,t)=>e instanceof t||(e==null?void 0:e.name)===t.name;function Dv(e){return rm(e,su)}function Rv(e){return rm(e,ru)}function Nv(e){return rm(e,kn)}var Bw=10*1024*1024,qw="The `prefixUrl` option has been renamed `prefix` in v2 and enhanced to allow slashes in input. See also the new `baseUrl` option for improved flexibility with standard URL resolution: https://github.com/sindresorhus/ky#baseurl",js=Symbol("timedOutResponseData"),Gw=e=>{var a;let t=/;\s*charset\s*=\s*(?:"([^"]+)"|([^;,\s]+))/i.exec(e),n=(a=t==null?void 0:t[1])!=null?a:t==null?void 0:t[2];if(n)try{return new TextDecoder(n)}catch(l){}return new TextDecoder},zv="The `schema` argument must follow the Standard Schema specification",jw=e=>typeof e!="object"?e:G(G(G(G({},e),e.methods&&{methods:[...e.methods]}),e.statusCodes&&{statusCodes:[...e.statusCodes]}),e.afterStatusCodes&&{afterStatusCodes:[...e.afterStatusCodes]}),Yv=Object.prototype.toString,Cv=e=>e instanceof globalThis.Request||Yv.call(e)==="[object Request]",Vs=e=>e instanceof globalThis.Response||Yv.call(e)==="[object Response]",Vw=e=>Array.isArray(e)?e.map(t=>[...t]):fu(e);function Zw(e){let t=$(G({},e),{json:fu(e.json),context:fu(e.context),headers:fu(e.headers),searchParams:Vw(e.searchParams)});return e.retry!==void 0&&(t.retry=jw(e.retry)),t}var Uv=async(e,t)=>{if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(zv);let n=t["~standard"];if(typeof n!="object"||n===null||typeof n.validate!="function")throw new TypeError(zv);let a=await n.validate(e);if(a.issues)throw new dc(a.issues);return a.value},xc,Lv,Ra,Cn,dt,Y,Ks,Wl,Js,$l,mu,Il,Ws,z,Jl,Hv,om,Bv,cm,qv,Gv,jv,vc,yl,fm,Zs,Vv,Zv,dm,Sc,Tc,_c,Qs,hm,du,kc,hu,Ec,Qv,Xs=class Xs{constructor(t,n={}){qt(this,z);F(this,"request");qt(this,Ra);qt(this,Cn,0);qt(this,dt);qt(this,Y);qt(this,Ks);qt(this,Wl);qt(this,Js,new WeakSet);qt(this,$l);qt(this,mu);qt(this,Il,!1);qt(this,Ws,new WeakMap);var l,i,r,c,d,m,p,_,y,S,x,w,O,g;if(xt(this,dt,t),Object.hasOwn(n,"prefixUrl"))throw new Error(qw);if(xt(this,Y,$(G({},n),{headers:lm(M(this,dt).headers,n.headers),hooks:yc({},n.hooks),method:wv((i=(l=n.method)!=null?l:M(this,dt).method)!=null?i:"GET"),prefix:String(n.prefix||""),retry:Av(n.retry),throwHttpErrors:(r=n.throwHttpErrors)!=null?r:!0,timeout:(c=n.timeout)!=null?c:1e4,totalTimeout:(d=n.totalTimeout)!=null?d:!1,fetch:(m=n.fetch)!=null?m:globalThis.fetch.bind(globalThis),context:(p=n.context)!=null?p:{}})),typeof M(this,dt)!="string"&&!(M(this,dt)instanceof URL||M(this,dt)instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(typeof M(this,dt)=="string"){if(M(this,Y).prefix){let b=M(this,Y).prefix.replace(/\/+$/,""),k=M(this,dt).replace(/^\/+/,"");xt(this,dt,"".concat(b,"/").concat(k))}if(M(this,Y).baseUrl){let b;try{b=new URL(M(this,dt))}catch(k){}b||xt(this,dt,new URL(M(this,dt),new Request(M(this,Y).baseUrl).url))}}mv&&hc&&(xt(this,Wl,(_=M(this,Y).signal)!=null?_:M(this,dt).signal),xt(this,Ra,new globalThis.AbortController),M(this,Y).signal=j(this,z,fm).call(this)),tm&&(M(this,Y).duplex="half"),M(this,Y).json!==void 0&&(M(this,Y).body=(x=(S=(y=M(this,Y)).stringifyJson)==null?void 0:S.call(y,M(this,Y).json))!=null?x:JSON.stringify(M(this,Y).json),M(this,Y).headers.set("content-type",(w=M(this,Y).headers.get("content-type"))!=null?w:"application/json"));let a=n.headers&&new globalThis.Headers(n.headers).has("content-type");if(M(this,dt)instanceof globalThis.Request&&(gv&&M(this,Y).body instanceof globalThis.FormData||M(this,Y).body instanceof URLSearchParams)&&!a&&M(this,Y).headers.delete("content-type"),this.request=new globalThis.Request(M(this,dt),M(this,Y)),Ov(M(this,Y).searchParams)){let b=new URL(this.request.url),k=(O=M(this,Y).searchParams)==null?void 0:O[gl];if(k)for(let E of k)b.searchParams.delete(E);if(typeof M(this,Y).searchParams=="string"){let E=M(this,Y).searchParams.replace(/^\?/,"");E!==""&&(b.search=b.search?"".concat(b.search,"&").concat(E):"?".concat(E))}else{let E=new URLSearchParams(j(g=Xs,xc,Lv).call(g,M(this,Y).searchParams));for(let[N,H]of E.entries())b.searchParams.append(N,H)}if(M(this,Y).searchParams&&typeof M(this,Y).searchParams=="object"&&!Array.isArray(M(this,Y).searchParams)&&!(M(this,Y).searchParams instanceof URLSearchParams))for(let[E,N]of Object.entries(M(this,Y).searchParams))N===void 0&&b.searchParams.delete(E);this.request=new globalThis.Request(b,M(this,Y))}if(M(this,Y).onUploadProgress&&typeof M(this,Y).onUploadProgress!="function")throw new TypeError("The `onUploadProgress` option must be a function");xt(this,mu,typeof M(this,Y).totalTimeout=="number"?j(this,z,hm).call(this):void 0)}static create(t,n){var d,m,p,_;let a=(m=(d=n.hooks)==null?void 0:d.init)!=null?m:[],l=a.length>0?Zw(n):n;for(let y of a)y(l);let i=new Xs(t,l),r=async()=>{var w,O,g,b,k,E,N,H,U,B,W,J,ee;if(typeof M(i,Y).timeout=="number"&&M(i,Y).timeout>cu)throw new RangeError("The `timeout` option cannot be greater than ".concat(cu));if(typeof M(i,Y).totalTimeout=="number"&&M(i,Y).totalTimeout>cu)throw new RangeError("The `totalTimeout` option cannot be greater than ".concat(cu));await Promise.resolve();let y=await j(w=i,z,Vv).call(w),S=y!=null?y:await j(O=i,z,dm).call(O,async()=>{var Me;return j(Me=i,z,_c).call(Me)}),x=y!==void 0||j(g=i,z,Tc).call(g);for(;;){if(S===void 0)return S;if(Vs(S))try{S=await j(b=i,z,Zv).call(b,S)}catch(ue){if(!(ue instanceof Kl))throw ue;let de=await j(k=i,z,Sc).call(k,ue,async()=>{var kt;return j(kt=i,z,_c).call(kt)});if(de===void 0)return de;S=de,x=j(E=i,z,Tc).call(E);continue}let Me=S;if(!Me.ok&&Me.type!=="opaque"&&(typeof M(i,Y).throwHttpErrors=="function"?M(i,Y).throwHttpErrors(Me.status):M(i,Y).throwHttpErrors)){let ue=new su(Me,j(N=i,z,hu).call(N,Me),j(H=i,z,du).call(H)),de=ue;if(ue.data=await j(U=i,z,Bv).call(U,Me),x)throw de;let kt=await j(B=i,z,Sc).call(B,ue,async()=>{var An;return j(An=i,z,_c).call(An)});if(kt===void 0)return kt;S=kt,x=j(W=i,z,Tc).call(W);continue}break}if(!Vs(S))return S;if(j(J=i,z,om).call(J,S),M(i,Y).onDownloadProgress){if(typeof M(i,Y).onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!pv)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");let Me=S.clone();return j(ee=i,z,yl).call(ee,S),kv(Me,M(i,Y).onDownloadProgress)}return S},c=(async()=>{var y,S,x,w,O;try{return await r()}catch(g){if(!(g instanceof Error)||M(i,Js).has(g))throw g;let b=g;for(let k of M(i,Y).hooks.beforeError){let E=await k({request:i.request,options:j(y=i,z,du).call(y),error:b,retryCount:M(i,Cn)});E instanceof Error&&(b=E)}throw b}finally{let g=M(i,Ks);j(x=i,z,vc).call(x,(S=g==null?void 0:g.body)!=null?S:void 0),i.request!==g&&j(O=i,z,vc).call(O,(w=i.request.body)!=null?w:void 0)}})();for(let[y,S]of Object.entries(yv))y==="bytes"&&typeof((_=(p=globalThis.Response)==null?void 0:p.prototype)==null?void 0:_.bytes)!="function"||(c[y]=async x=>{var b;i.request.headers.set("accept",i.request.headers.get("accept")||S);let w=await c;if(y!=="json")return w[y]();let O=await w.text();if(O==="")return x!==void 0?Uv(void 0,x):JSON.parse(O);let g=l.parseJson?await l.parseJson(O,{request:j(b=i,z,hu).call(b,w),response:w}):JSON.parse(O);return x===void 0?g:Uv(g,x)});return c}};xc=new WeakSet,Lv=function(t){return t&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof URLSearchParams)?Object.fromEntries(Object.entries(t).filter(([,n])=>n!==void 0)):t},Ra=new WeakMap,Cn=new WeakMap,dt=new WeakMap,Y=new WeakMap,Ks=new WeakMap,Wl=new WeakMap,Js=new WeakMap,$l=new WeakMap,mu=new WeakMap,Il=new WeakMap,Ws=new WeakMap,z=new WeakSet,Jl=function(){let t=M(this,Y).retry.delay(M(this,Cn)+1),n=t;return M(this,Y).retry.jitter===!0?n=Math.random()*t:typeof M(this,Y).retry.jitter=="function"&&(n=M(this,Y).retry.jitter(t),(!Number.isFinite(n)||n<0)&&(n=t)),Math.min(M(this,Y).retry.backoffLimit,n)},Hv=async function(t){var a,l,i,r,c;if(M(this,Cn)>=M(this,Y).retry.limit)throw t;let n=t instanceof Error?t:new ou(t);if(n instanceof Kl)return(a=n.customDelay)!=null?a:j(this,z,Jl).call(this);if(!M(this,Y).retry.methods.includes(this.request.method.toLowerCase()))throw t;if(M(this,Y).retry.shouldRetry!==void 0){let d=await M(this,Y).retry.shouldRetry({error:n,retryCount:M(this,Cn)+1});if(d===!1)throw t;if(d===!0)return j(this,z,Jl).call(this)}if(Nv(t)){if(!M(this,Y).retry.retryOnTimeout)throw t;return j(this,z,Jl).call(this)}if(Dv(t)){if(!M(this,Y).retry.statusCodes.includes(t.response.status))throw t;let d=(c=(r=(i=(l=t.response.headers.get("Retry-After"))!=null?l:t.response.headers.get("RateLimit-Reset"))!=null?i:t.response.headers.get("X-RateLimit-Retry-After"))!=null?r:t.response.headers.get("X-RateLimit-Reset"))!=null?c:t.response.headers.get("X-Rate-Limit-Reset");if(d&&M(this,Y).retry.afterStatusCodes.includes(t.response.status)){let m=Number(d)*1e3;return Number.isNaN(m)?m=Date.parse(d)-Date.now():m>=Date.parse("2024-01-01")&&(m-=Date.now()),Number.isFinite(m)?(m=Math.max(0,m),Math.min(M(this,Y).retry.maxRetryAfter,m)):Math.min(M(this,Y).retry.maxRetryAfter,j(this,z,Jl).call(this))}if(t.response.status===413)throw t;return j(this,z,Jl).call(this)}if(!Rv(t))throw t;return j(this,z,Jl).call(this)},om=function(t){let n=j(this,z,hu).call(this,t);return M(this,Y).parseJson&&(t.json=async()=>{let a=await t.text();return a===""?JSON.parse(a):M(this,Y).parseJson(a,{request:n,response:t})}),t},Bv=async function(t){var l;let n=await j(this,z,Gv).call(this,t,j(this,z,cm).call(this));if(n===js){j(this,z,Zs).call(this);return}if(!n)return;if(!j(this,z,qv).call(this,(l=t.headers.get("content-type"))!=null?l:""))return n;let a=await j(this,z,jv).call(this,n,t,j(this,z,cm).call(this),j(this,z,hu).call(this,t));if(a===js){j(this,z,Zs).call(this);return}return a},cm=function(){let t=M(this,Y).timeout===!1?1e4:M(this,Y).timeout,n=j(this,z,Qs).call(this);if(n===void 0)return t;if(n<=0)throw new kn(this.request);return Math.min(t,n)},qv=function(t){var a;let n=((a=t.split(";",1)[0])!=null?a:"").trim().toLowerCase();return/\/(?:.*[.+-])?json$/.test(n)},Gv=async function(t,n){var _;let{body:a}=t;if(!a)try{return await t.text()}catch(y){return}let l;try{l=a.getReader()}catch(y){return}let i=Gw((_=t.headers.get("content-type"))!=null?_:""),r=[],c=0,d=(async()=>{try{for(;;){let{done:y,value:S}=await l.read();if(y)break;if(c+=S.byteLength,c>Bw){l.cancel().catch(()=>{});return}r.push(i.decode(S,{stream:!0}))}}catch(y){return}return r.push(i.decode()),r.join("")})(),m=new Promise(y=>{let S=setTimeout(()=>{y(js)},n);d.finally(()=>{clearTimeout(S)})}),p=await Promise.race([d,m]);return p===js&&l.cancel().catch(()=>{}),p},jv=async function(t,n,a,l){let i;try{return await Promise.race([Promise.resolve().then(()=>M(this,Y).parseJson?M(this,Y).parseJson(t,{request:l,response:n}):JSON.parse(t)),new Promise(r=>{i=setTimeout(()=>{r(js)},a)})])}catch(r){return}finally{clearTimeout(i)}},vc=function(t){t&&t.cancel().catch(()=>{})},yl=function(t){var n;j(this,z,vc).call(this,(n=t.body)!=null?n:void 0)},fm=function(){return M(this,Wl)?AbortSignal.any([M(this,Wl),M(this,Ra).signal]):M(this,Ra).signal},Zs=function(){let t=j(this,z,Qs).call(this);if(t!==void 0&&t<=0)throw new kn(this.request)},Vv=async function(){for(let t of M(this,Y).hooks.beforeRequest){let n=await t({request:this.request,options:j(this,z,du).call(this),retryCount:0});if(Cv(n))j(this,z,kc).call(this,n);else if(Vs(n))return n}},Zv=async function(t){let n=j(this,z,hu).call(this,t);for(let a of M(this,Y).hooks.afterResponse){let l=j(this,z,Ec).call(this,t.clone(),n);j(this,z,om).call(this,l);let i;try{i=await a({request:this.request,options:j(this,z,du).call(this),response:l,retryCount:M(this,Cn)})}catch(c){throw l!==t&&j(this,z,yl).call(this,l),j(this,z,yl).call(this,t),c}if(i instanceof Bs)throw l!==t&&j(this,z,yl).call(this,l),j(this,z,yl).call(this,t),new Kl(i.options);let r=Vs(i)?j(this,z,Ec).call(this,i,n):t;l!==t&&l!==r&&l.body!==r.body&&j(this,z,yl).call(this,l),t!==r&&t.body!==r.body&&j(this,z,yl).call(this,t),t=r}return t},dm=async function(t){try{return await t()}catch(n){return j(this,z,Sc).call(this,n,t)}},Sc=async function(t,n){xt(this,Il,!1);let a=Math.min(await j(this,z,Hv).call(this,t),cu),l={signal:M(this,Wl)},i=j(this,z,Qs).call(this);if(i!==void 0){if(i<=0)throw new kn(this.request);if(a>=i)throw await bc(i,l),new kn(this.request)}if(await bc(a,l),j(this,z,Zs).call(this),t instanceof Kl&&t.customRequest){let r=new globalThis.Request(t.customRequest,M(this,Y).signal?{signal:M(this,Y).signal}:void 0);j(this,z,kc).call(this,r)}for(let r of M(this,Y).hooks.beforeRetry){let c;try{c=await r({request:this.request,options:j(this,z,du).call(this),error:t,retryCount:M(this,Cn)+1})}catch(d){throw d instanceof Error&&d!==t&&M(this,Js).add(d),d}if(Cv(c)){j(this,z,kc).call(this,c);break}if(Vs(c))return xt(this,Il,!0),pf(this,Cn)._++,c;if(c===pc)return}return j(this,z,Zs).call(this),pf(this,Cn)._++,j(this,z,dm).call(this,n)},Tc=function(){let t=M(this,Il);return xt(this,Il,!1),t},_c=async function(){var l,i;(l=M(this,Ra))!=null&&l.signal.aborted&&(xt(this,Ra,new globalThis.AbortController),M(this,Y).signal=j(this,z,fm).call(this),this.request=new globalThis.Request(this.request,{signal:M(this,Y).signal}));let t=Mv(M(this,Y)),n=M(this,Y).retry.limit>0?this.request.clone():void 0,a=j(this,z,Qv).call(this,this.request,(i=M(this,Y).body)!=null?i:void 0);xt(this,Ks,a),n&&(this.request=n);try{let r=j(this,z,Qs).call(this);if(r!==void 0&&r<=0)throw new kn(this.request);let c=M(this,Y).timeout===!1?r:r===void 0?M(this,Y).timeout:Math.min(M(this,Y).timeout,r),d=c===void 0?await M(this,Y).fetch(a,t):await um(a,t,M(this,Ra),{timeout:c,fetch:M(this,Y).fetch});return j(this,z,Ec).call(this,d,a)}catch(r){throw sm(r)?new ru(this.request,{cause:r}):r}},Qs=function(){if(M(this,mu)===void 0)return;let t=j(this,z,hm).call(this)-M(this,mu);return Math.max(0,M(this,Y).totalTimeout-t)},hm=function(){var t,n;return(n=(t=globalThis.performance)==null?void 0:t.now())!=null?n:Date.now()},du=function(){if(!M(this,$l)){let t=M(this,Y),{hooks:n,json:a,parseJson:l,stringifyJson:i,searchParams:r,timeout:c,totalTimeout:d,throwHttpErrors:m,fetch:p}=t,_=kp(t,["hooks","json","parseJson","stringifyJson","searchParams","timeout","totalTimeout","throwHttpErrors","fetch"]);xt(this,$l,Object.freeze(_))}return M(this,$l)},kc=function(t){xt(this,$l,void 0),this.request=t},hu=function(t){var n;return(n=M(this,Ws).get(t))!=null?n:this.request},Ec=function(t,n){return M(this,Ws).set(t,n),t},Qv=function(t,n){var a;return!M(this,Y).onUploadProgress||!t.body||!tm?t:Ev(t,M(this,Y).onUploadProgress,(a=n!=null?n:M(this,Y).body)!=null?a:void 0)},qt(Xs,xc);var Fs=Xs;var mm=e=>{let t=(n,a)=>Fs.create(n,Gs(e,a));for(let n of mc)t[n]=(a,l)=>Fs.create(a,Gs(e,l,{method:n}));return t.create=n=>mm(Gs(n)),t.extend=n=>(typeof n=="function"&&(n=n(e!=null?e:{})),mm(Gs(e,n))),t.stop=pc,t.retry=vv,t},Qw=mm(),Xv=Qw;var gm=ye(Fv());function Jt(){return globalThis.app}function Xw(e){let t=(0,gm.default)(e,gm.default.ISO_8601),n=t.fromNow(),a="".concat(t.format("MMMM D YYYY, h:mm a")," (").concat(t.format(),") ");return[n,a]}function gu(e){try{return Xw(e)}catch(t){return null}}function yu(e){e.close()}function wc(e){var t;(t=document.getElementById(e))==null||t.focus()}function Kv(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function Fw(e){let t=Jt(),n=new Headers(e);return n.set(t.csrfHeaderName,t.csrfToken),n}function Kw(e){return"".concat(Jt().homeR).concat(e)}function Jw(e){try{let t=new URL(e,window.location.origin),n="".concat(t.pathname).concat(t.search).concat(t.hash);return n.startsWith("/")?n.slice(1):n}catch(t){return e.replace(/^\/+/,"")}}async function En(e,t,n={}){var l;return await Xv(Kw(t),{method:e,headers:Fw(n.headers),body:(l=n.body)!=null?l:void 0,throwHttpErrors:!1})}async function Jv(e,t){await En("POST","bm/".concat(e.toString(),"/").concat(t),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function Ac(e){await En("DELETE","bm/".concat(e.toString()),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function Wv(e){await En("POST","bm/".concat(e.toString(),"/read"),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function Mc(e){let t=await En("POST","api/add",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});return{ok:t.ok,status:t.status,bodyText:await t.text()}}async function $v(e){let t=await En("POST","api/note/add",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});return{ok:t.ok,status:t.status,bodyText:await t.text()}}async function Oc(e){let t=await En("POST","api/lookuptitle",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});return t.status===200?await t.text():null}async function Iv(e){let t=await En("POST","api/tagcloud",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!t.ok)return null;try{return await t.json()}catch(n){return null}}async function Pv(e){await En("POST","api/tagcloudmode",{headers:{"content-type":"application/json"},body:JSON.stringify(e)})}async function e1(e){let t=await En("POST","api/tagSuggestions",{headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!t.ok)return null;try{return await t.json()}catch(n){return null}}async function t1(e){await En("DELETE","api/note/".concat(e.toString()),{headers:{"content-type":"application/x-www-form-urlencoded"}})}async function n1(e){await En("POST","api/accountSettings",{headers:{"content-type":"application/json"},body:JSON.stringify(e)})}async function a1(){let e=Jt();await En("POST",Jw(e.authRlogoutR)),window.location.reload()}var s1=ye(Gt());var At=ye($e());function r1({initial:e}){let[t,n]=s1.default.useState(e);async function a(l){n(l),await n1(l)}return(0,At.jsxs)("div",{className:"settings-form",children:[(0,At.jsx)("div",{className:"fw7 mb2",children:"Account Settings"}),(0,At.jsxs)("div",{className:"flex items-center mb2",children:[(0,At.jsx)("input",{type:"checkbox",className:"pointer mr2",id:"archiveDefault",name:"archiveDefault",checked:t.archiveDefault,onChange:l=>{a($(G({},t),{archiveDefault:l.target.checked}))}}),(0,At.jsx)("label",{htmlFor:"archiveDefault",className:"lh-copy",children:"Archive Non-Private Bookmarks (archive.li)"})]}),(0,At.jsxs)("div",{className:"flex items-center mb2",children:[(0,At.jsx)("input",{type:"checkbox",className:"pointer mr2",id:"privateDefault",name:"privateDefault",checked:t.privateDefault,onChange:l=>{a($(G({},t),{privateDefault:l.target.checked}))}}),(0,At.jsx)("label",{htmlFor:"privateDefault",className:"lh-copy",children:"Default new bookmarks to Private"})]}),(0,At.jsxs)("div",{className:"flex items-center mb2",children:[(0,At.jsx)("input",{type:"checkbox",className:"pointer mr2",id:"suggestTags",name:"suggestTags",checked:t.suggestTags,onChange:l=>{a($(G({},t),{suggestTags:l.target.checked}))}}),(0,At.jsx)("label",{htmlFor:"suggestTags",className:"lh-copy",children:"Enable tag suggestions"})]}),(0,At.jsxs)("div",{className:"flex items-center mb2",children:[(0,At.jsx)("input",{type:"checkbox",className:"pointer mr2",id:"privacyLock",name:"privacyLock",checked:t.privacyLock,onChange:l=>{a($(G({},t),{privacyLock:l.target.checked}))}}),(0,At.jsx)("label",{htmlFor:"privacyLock",className:"lh-copy",children:"Privacy Lock (Private Account)"})]})]})}var Pl=ye(Gt());var Wt=ye(Gt());var Iw=180;function Rc({enabled:e,tags:t,onTagsUpdate:n,maxSuggestions:a=10}){let[l,i]=Wt.default.useState(null),r=Wt.default.useRef(0),c=Wt.default.useRef(null),d=Wt.default.useRef(null),m=Wt.default.useCallback(()=>{c.current!=null&&(window.clearTimeout(c.current),c.current=null),r.current+=1},[]),p=Wt.default.useCallback(()=>{m(),i(null)},[m]);Wt.default.useEffect(()=>()=>{m()},[m]),Wt.default.useEffect(()=>{e||p()},[e,p]);let _=Wt.default.useCallback(O=>{let{value:g,selectionStart:b,selectionEnd:k}=O.target;if(n(g),!e){p();return}if(b==null||k==null||b!==k){p();return}if(tA(t,g)){p();return}let E=o1(g,b);if(E==null||E.token.length<2){p();return}let N=nA(g),H=E.token.toLowerCase(),B=N.filter(J=>J===H).length>1,W={query:E.token,currentTags:Array.from(new Set(N.filter(J=>B||J!==H)))};m(),c.current=window.setTimeout(()=>{let J=r.current+1;r.current=J,(async()=>{let ee=await e1(W);if(J!==r.current||ee==null||d.current==null)return;let Me=ee.suggestions.slice(0,a);if(Me.length===0){p();return}let ue=Pw(d.current,b);i({items:Me,selectedIndex:0,tokenRange:E,anchorLeft:ue.left,anchorTop:ue.top})})()},Iw)},[m,p,e,a,n]),y=Wt.default.useCallback(O=>{let g=d.current;if(g==null||l==null)return;let b=eA(t,l.tokenRange,O);n(b.value),p(),requestAnimationFrame(()=>{g.focus(),g.setSelectionRange(b.caret,b.caret)})},[p,n,l,t]),S=Wt.default.useCallback(O=>{if(O.key==="Escape"){l!=null&&(O.preventDefault(),p());return}if(O.key===" "){p();return}if(l!=null){if(O.key==="ArrowDown"){O.preventDefault(),i(g=>g==null?g:$(G({},g),{selectedIndex:(g.selectedIndex+1)%g.items.length}));return}if(O.key==="ArrowUp"){O.preventDefault(),i(g=>g==null?g:$(G({},g),{selectedIndex:(g.selectedIndex-1+g.items.length)%g.items.length}));return}if(O.key==="Enter"||O.key==="Tab"){O.preventDefault();let g=l.items[l.selectedIndex];y(g.term)}}},[y,p,l]),x=Wt.default.useCallback(O=>{if(l==null)return;let g=O.currentTarget,{selectionStart:b,selectionEnd:k,value:E}=g;if(b==null||k==null||b!==k){p();return}let N=o1(E,b);if(N==null){p();return}N.start!==l.tokenRange.start&&p()},[p,l]),w=Wt.default.useCallback(O=>{i(g=>g==null?g:$(G({},g),{selectedIndex:O}))},[]);return{tagInputRef:d,suggestionState:l,closeSuggestions:p,onTagsChange:_,onTagsKeyDown:S,onTagsSelect:x,onSuggestionHover:w,onSuggestionPick:y}}function o1(e,t){let n=Math.max(0,Math.min(t,e.length)),a=n;for(;a>0&&e[a-1]!==" ";)a-=1;let l=n;for(;l<e.length&&e[l]!==" ";)l+=1;let i=e.slice(a,l).trim();return i===""?null:{token:i,start:a,end:l}}function Pw(e,t){let n=window.getComputedStyle(e),a=document.createElement("div");a.style.position="absolute",a.style.visibility="hidden",a.style.whiteSpace="pre",a.style.top="0",a.style.left="0",a.style.font=n.font,a.style.fontKerning=n.fontKerning,a.style.fontFeatureSettings=n.fontFeatureSettings,a.style.fontVariantLigatures=n.fontVariantLigatures,a.style.letterSpacing=n.letterSpacing,a.style.textTransform=n.textTransform,a.style.textIndent=n.textIndent,a.style.boxSizing=n.boxSizing,a.style.padding=n.padding,a.style.border=n.border,a.style.width="".concat(String(e.clientWidth),"px");let l=document.createElement("span");l.textContent=e.value.slice(0,t),a.appendChild(l);let i=document.createElement("span");i.textContent="\u200B",a.appendChild(i),document.body.appendChild(a);let r=i.offsetLeft-e.scrollLeft+1,c=i.offsetTop-e.scrollTop+e.offsetHeight+4;return document.body.removeChild(a),{left:r,top:c}}function eA(e,t,n){let a=e.slice(0,t.start),l=e.slice(t.end).replace(/^ /,""),i="".concat(n," ");return{value:"".concat(a).concat(i).concat(l),caret:a.length+i.length}}function tA(e,t){if(e===t)return!1;let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n+=1;let a=e.length,l=t.length;for(;a>n&&l>n&&e[a-1]===t[l-1];)a-=1,l-=1;let i=e.slice(n,a),r=t.slice(n,l);return i===""&&r===""?!1:c1(i)&&c1(r)}function c1(e){return e===""||/^ *$/.test(e)}function nA(e){return e.split(" ").map(t=>t.trim().toLowerCase()).filter(t=>t!=="")}function aA(e){return decodeURIComponent(e)}function lA(e){var r;let t=e.slice(0,1),a=(t==="#"||t==="?"?e.slice(1):e).split("&").filter(c=>c!==""),l=c=>aA(c.replace(/\+/g," ")),i=[];for(let c of a){let[d,...m]=c.split("=");d&&(m.length===0?i.push([l(d),null]):m.length===1&&i.push([l(d),l((r=m[0])!=null?r:"")]))}return i}function $s(){return lA(window.location.search)}function Is(e,t){for(let[n,a]of e)if(n===t)return a;return null}function bu(e){return encodeURIComponent(e.replace(/\+/g,"%2B"))}function Na(e){return e!=null?e:""}function f1(e){return e.replace(/,/g," ").replace(/\s+/g," ").trim()}var eO=ye(Gt()),$n=ye($e()),d1=80;function Nc({suggestionState:e,onHover:t,onPick:n}){return(0,$n.jsx)("div",{className:"absolute z-5 bg-near-white dark-gray ba b--moon-gray br2 shadow-4 overflow-hidden f6",style:{left:e.anchorLeft,top:e.anchorTop,width:"max-content",maxWidth:"22rem"},children:e.items.map((a,l)=>{let i=l===e.selectedIndex,r=uA(a.term);return(0,$n.jsxs)("button",{type:"button",className:"flex items-center justify-between w-100 bn bg-transparent tl ph2 pv1 pointer nowrap dark-gray hover-blue ".concat(i?"bg-light-blue dark-blue":""),onMouseEnter:()=>{t(l)},onMouseDown:c=>{c.preventDefault()},onClick:()=>{n(a.term)},title:a.term,children:[(0,$n.jsx)("span",{className:"mr2",children:iA(r,e.tokenRange.token)}),(0,$n.jsx)("span",{className:"gray f6 tr",style:{minWidth:"3ch"},children:a.count})]},"".concat(a.term,"-").concat(a.count.toString()))})})}function iA(e,t){let n=e.toLocaleLowerCase(),a=t.toLocaleLowerCase(),l=n.indexOf(a);if(l<0)return e;let i=e.slice(0,l),r=e.slice(l,l+t.length),c=e.slice(l+t.length);return(0,$n.jsxs)($n.Fragment,{children:[i,(0,$n.jsx)("strong",{children:r}),c]})}function uA(e){return e.length<=d1?e:"".concat(e.slice(0,d1),"...")}var K=ye($e());function h1({initial:e}){var ee,Me;let t=Jt(),[n,a]=Pl.default.useState(e),[l,i]=Pl.default.useState(e),[r,c]=Pl.default.useState(!1),[d,m]=Pl.default.useState(!1),[p,_]=Pl.default.useState(!1),[y,S]=Pl.default.useState(null),x=t.dat.suggestTags===!0,{tagInputRef:w,suggestionState:O,closeSuggestions:g,onTagsChange:b,onTagsKeyDown:k,onTagsSelect:E,onSuggestionHover:N,onSuggestionPick:H}=Rc({enabled:x,tags:l.tags,maxSuggestions:4,onTagsUpdate:ue=>{i(de=>$(G({},de),{tags:ue}))}}),U=gu(n.time);async function B(){m(!0);try{let ue=await Oc(l);ue!=null&&i(de=>$(G({},de),{title:ue}))}finally{m(!1)}}async function W(){await Ac(n.bid),_(!0)}let J=async ue=>{ue.preventDefault(),S(null);let de=await Mc(l);if(de.ok&&de.status>=200&&de.status<300){a(l);let kt=$s(),An=Is(kt,"next"),Pn=document.referrer,rt=window.location.origin;An==="closeWindow"?yu(window):An==="back"?Pn.startsWith(rt)?window.location.href=Pn:window.location.href=rt:yu(window)}else S(de.bodyText)};return p?(0,K.jsx)("p",{className:"red",children:"you killed this bookmark"}):(0,K.jsx)("form",{onSubmit:ue=>{J(ue)},children:(0,K.jsx)("table",{className:"w-100",children:(0,K.jsxs)("tbody",{children:[(0,K.jsxs)("tr",{children:[(0,K.jsx)("td",{className:"w1"}),(0,K.jsxs)("td",{children:[n.bid>0?(0,K.jsxs)("div",{className:"alert",children:["previously saved\xA0",(0,K.jsx)("span",{className:"link f7 dib gray pr3",title:(ee=U==null?void 0:U[1])!=null?ee:n.time,children:(Me=U==null?void 0:U[0])!=null?Me:"\xA0"}),(0,K.jsx)("div",{className:"edit_links dib ml1",children:(0,K.jsxs)("div",{className:"delete_link di",children:[(0,K.jsx)("button",{type:"button",onClick:()=>{c(!0)},className:"delete",hidden:r,children:"delete"}),(0,K.jsxs)("span",{className:"confirm red",hidden:!r,children:[(0,K.jsx)("button",{type:"button",onClick:()=>{c(!1)},children:"cancel\xA0/\xA0"}),(0,K.jsx)("button",{type:"button",onClick:()=>{W()},className:"red",children:"destroy"})]})]})})]}):null,y?(0,K.jsx)("div",{className:"alert alert-err",children:y}):null]})]}),(0,K.jsxs)("tr",{children:[(0,K.jsx)("td",{children:(0,K.jsx)("label",{htmlFor:"url",children:"URL"})}),(0,K.jsx)("td",{children:(0,K.jsx)("input",{type:"url",id:"url",className:"w-100 mv1",required:!0,name:"url",autoFocus:n.url==="",value:l.url,onChange:ue=>{i(de=>$(G({},de),{url:ue.target.value}))}})})]}),(0,K.jsxs)("tr",{children:[(0,K.jsx)("td",{children:(0,K.jsx)("label",{htmlFor:"title",children:"title"})}),(0,K.jsxs)("td",{className:"flex",children:[(0,K.jsx)("input",{type:"text",id:"title",className:"w-100 mv1 flex-auto",name:"title",value:l.title,onChange:ue=>{i(de=>$(G({},de),{title:ue.target.value}))}}),(0,K.jsx)("button",{disabled:d,type:"button",onClick:()=>{B()},className:"ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0".concat(d?"bg-light-silver":""),children:"fetch"})]})]}),(0,K.jsxs)("tr",{children:[(0,K.jsx)("td",{children:(0,K.jsx)("label",{htmlFor:"description",children:"description"})}),(0,K.jsx)("td",{children:(0,K.jsx)("textarea",{className:"w-100 mt1 mid-gray",id:"description",name:"description",rows:4,value:l.description,onChange:ue=>{i(de=>$(G({},de),{description:ue.target.value}))}})})]}),(0,K.jsxs)("tr",{children:[(0,K.jsx)("td",{children:(0,K.jsx)("label",{htmlFor:"tags",children:"tags"})}),(0,K.jsx)("td",{children:(0,K.jsxs)("div",{className:"relative",children:[(0,K.jsx)("input",{ref:w,type:"text",id:"tags",className:"w-100 mv1",name:"tags",autoComplete:"off",autoCapitalize:"off",autoFocus:n.url!=="",value:l.tags,onChange:b,onKeyDown:k,onClick:E,onSelect:E,onBlur:()=>{window.setTimeout(()=>{g()},0)}}),O!=null?(0,K.jsx)(Nc,{suggestionState:O,onHover:N,onPick:H}):null]})})]}),(0,K.jsxs)("tr",{children:[(0,K.jsx)("td",{children:(0,K.jsx)("label",{htmlFor:"private",children:"private"})}),(0,K.jsx)("td",{children:(0,K.jsx)("input",{type:"checkbox",id:"private",className:"private pointer",name:"private",checked:l.private,onChange:ue=>{i(de=>$(G({},de),{private:ue.target.checked}))}})})]}),(0,K.jsxs)("tr",{children:[(0,K.jsx)("td",{children:(0,K.jsx)("label",{htmlFor:"toread",children:"read later"})}),(0,K.jsx)("td",{children:(0,K.jsx)("input",{type:"checkbox",id:"toread",className:"toread pointer",name:"toread",checked:l.toread,onChange:ue=>{i(de=>$(G({},de),{toread:ue.target.checked}))}})})]}),(0,K.jsxs)("tr",{children:[(0,K.jsx)("td",{}),(0,K.jsx)("td",{children:(0,K.jsx)("input",{type:"submit",className:"ph3 pv2 input-reset black ba b--navy bg-transparent pointer f6 dib mt1 dim",value:n.bid>0?"update bookmark":"add bookmark"})})]})]})})})}var eS=ye(Gt());var m1=e=>{let t,n=new Set,a=(m,p)=>{let _=typeof m=="function"?m(t):m;if(!Object.is(_,t)){let y=t;t=(p!=null?p:typeof _!="object"||_===null)?_:Object.assign({},t,_),n.forEach(S=>S(t,y))}},l=()=>t,c={setState:a,getState:l,getInitialState:()=>d,subscribe:m=>(n.add(m),()=>n.delete(m))},d=t=e(a,l,c);return c},p1=(e=>e?m1(e):m1);var Ps=ye(Gt(),1);var sA=e=>e;function rA(e,t=sA){let n=Ps.default.useSyncExternalStore(e.subscribe,Ps.default.useCallback(()=>t(e.getState()),[e,t]),Ps.default.useCallback(()=>t(e.getInitialState()),[e,t]));return Ps.default.useDebugValue(n),n}var g1=e=>{let t=p1(e),n=a=>rA(t,a);return Object.assign(n,t),n},zc=(e=>e?g1(e):g1);var er=zc(e=>({bmarks:[],setAll:t=>{e({bmarks:t})},removeById:t=>{e(n=>({bmarks:n.bmarks.filter(a=>a.bid!==t)}))},upsert:t=>{e(n=>({bmarks:n.bmarks.map(a=>a.bid===t.bid?t:a)}))}}));var ai=ye(Gt());var{entries:O1,setPrototypeOf:y1,isFrozen:oA,getPrototypeOf:cA,getOwnPropertyDescriptor:fA}=Object,{freeze:Ht,seal:xn,create:Su}=Object,{apply:_m,construct:km}=typeof Reflect<"u"&&Reflect;Ht||(Ht=function(t){return t});xn||(xn=function(t){return t});_m||(_m=function(t,n){for(var a=arguments.length,l=new Array(a>2?a-2:0),i=2;i<a;i++)l[i-2]=arguments[i];return t.apply(n,l)});km||(km=function(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];return new t(...a)});var tr=lt(Array.prototype.forEach),dA=lt(Array.prototype.lastIndexOf),b1=lt(Array.prototype.pop),nr=lt(Array.prototype.push),hA=lt(Array.prototype.splice),Lt=Array.isArray,ir=lt(String.prototype.toLowerCase),ym=lt(String.prototype.toString),v1=lt(String.prototype.match),vu=lt(String.prototype.replace),S1=lt(String.prototype.indexOf),mA=lt(String.prototype.trim),pA=lt(Number.prototype.toString),gA=lt(Boolean.prototype.toString),T1=typeof BigInt>"u"?null:lt(BigInt.prototype.toString),_1=typeof Symbol>"u"?null:lt(Symbol.prototype.toString),Ke=lt(Object.prototype.hasOwnProperty),ar=lt(Object.prototype.toString),_t=lt(RegExp.prototype.test),Cc=yA(TypeError);function lt(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];return _m(e,t,a)}}function yA(e){return function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return km(e,n)}}function ie(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ir;if(y1&&y1(e,null),!Lt(t))return e;let a=t.length;for(;a--;){let l=t[a];if(typeof l=="string"){let i=n(l);i!==l&&(oA(t)||(t[a]=i),l=i)}e[l]=!0}return e}function bA(e){for(let t=0;t<e.length;t++)Ke(e,t)||(e[t]=null);return e}function $t(e){let t=Su(null);for(let[n,a]of O1(e))Ke(e,n)&&(Lt(a)?t[n]=bA(a):a&&typeof a=="object"&&a.constructor===Object?t[n]=$t(a):t[n]=a);return t}function vA(e){switch(typeof e){case"string":return e;case"number":return pA(e);case"boolean":return gA(e);case"bigint":return T1?T1(e):"0";case"symbol":return _1?_1(e):"Symbol()";case"undefined":return ar(e);case"function":case"object":{if(e===null)return ar(e);let t=e,n=Tu(t,"toString");if(typeof n=="function"){let a=n(t);return typeof a=="string"?a:ar(a)}return ar(e)}default:return ar(e)}}function Tu(e,t){for(;e!==null;){let a=fA(e,t);if(a){if(a.get)return lt(a.get);if(typeof a.value=="function")return lt(a.value)}e=cA(e)}function n(){return null}return n}function SA(e){try{return _t(e,""),!0}catch(t){return!1}}var k1=Ht(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),bm=Ht(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),vm=Ht(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),TA=Ht(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Sm=Ht(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),_A=Ht(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),E1=Ht(["#text"]),x1=Ht(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),Tm=Ht(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),w1=Ht(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Uc=Ht(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),kA=xn(/\{\{[\w\W]*|[\w\W]*\}\}/gm),EA=xn(/<%[\w\W]*|[\w\W]*%>/gm),xA=xn(/\$\{[\w\W]*/gm),wA=xn(/^data-[\-\w.\u00B7-\uFFFF]+$/),AA=xn(/^aria-[\-\w]+$/),D1=xn(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),MA=xn(/^(?:\w+script|data):/i),OA=xn(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),R1=xn(/^html$/i),DA=xn(/^[a-z][.\w]*(-[.\w]+)+$/i),A1=Object.freeze({__proto__:null,ARIA_ATTR:AA,ATTR_WHITESPACE:OA,CUSTOM_ELEMENT:DA,DATA_ATTR:wA,DOCTYPE_NAME:R1,ERB_EXPR:EA,IS_ALLOWED_URI:D1,IS_SCRIPT_OR_DATA:MA,MUSTACHE_EXPR:kA,TMPLIT_EXPR:xA}),lr={element:1,text:3,progressingInstruction:7,comment:8,document:9},RA=function(){return typeof window>"u"?null:window},NA=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let a=null,l="data-tt-policy-suffix";n&&n.hasAttribute(l)&&(a=n.getAttribute(l));let i="dompurify"+(a?"#"+a:"");try{return t.createPolicy(i,{createHTML(r){return r},createScriptURL(r){return r}})}catch(r){return console.warn("TrustedTypes policy "+i+" could not be created."),null}},M1=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function N1(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:RA(),t=X=>N1(X);if(t.version="3.4.1",t.removed=[],!e||!e.document||e.document.nodeType!==lr.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e,a=n,l=a.currentScript,{DocumentFragment:i,HTMLTemplateElement:r,Node:c,Element:d,NodeFilter:m,NamedNodeMap:p=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:_,DOMParser:y,trustedTypes:S}=e,x=d.prototype,w=Tu(x,"cloneNode"),O=Tu(x,"remove"),g=Tu(x,"nextSibling"),b=Tu(x,"childNodes"),k=Tu(x,"parentNode");if(typeof r=="function"){let X=n.createElement("template");X.content&&X.content.ownerDocument&&(n=X.content.ownerDocument)}let E,N="",{implementation:H,createNodeIterator:U,createDocumentFragment:B,getElementsByTagName:W}=n,{importNode:J}=a,ee=M1();t.isSupported=typeof O1=="function"&&typeof k=="function"&&H&&H.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:Me,ERB_EXPR:ue,TMPLIT_EXPR:de,DATA_ATTR:kt,ARIA_ATTR:An,IS_SCRIPT_OR_DATA:Pn,ATTR_WHITESPACE:rt,CUSTOM_ELEMENT:Sl}=A1,{IS_ALLOWED_URI:Ln}=A1,Q=null,ke=ie({},[...k1,...bm,...vm,...Sm,...E1]),L=null,fr=ie({},[...x1,...Tm,...w1,...Uc]),Ze=Object.seal(Su(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Hn=null,Tl=null,Bn=Object.seal(Su(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),dr=!0,Eu=!0,hr=!1,mr=!0,ea=!1,_l=!0,ta=!1,xu=!1,wu=!1,na=!1,ht=!1,za=!1,pr=!0,gr=!1,Au="user-content-",mt=!0,Ca=!1,qn={},Ot=null,Ee=ie({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Mu=null,Ou=ie({},["audio","video","img","source","image","track"]),Ua=null,ui=ie({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),aa="http://www.w3.org/1998/Math/MathML",Mn="http://www.w3.org/2000/svg",Dt="http://www.w3.org/1999/xhtml",Ya=Dt,La=!1,Du=null,kl=ie({},[aa,Mn,Dt],ym),Gn=ie({},["mi","mo","mn","ms","mtext"]),El=ie({},["annotation-xml"]),si=ie({},["title","style","font","a","script"]),q=null,Qc=["application/xhtml+xml","text/html"],Xc="text/html",xe=null,it=null,se=n.createElement("form"),ri=function(v){return v instanceof RegExp||v instanceof Function},be=function(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(it&&it===v)return;(!v||typeof v!="object")&&(v={}),v=$t(v),q=Qc.indexOf(v.PARSER_MEDIA_TYPE)===-1?Xc:v.PARSER_MEDIA_TYPE,xe=q==="application/xhtml+xml"?ym:ir,Q=Ke(v,"ALLOWED_TAGS")&&Lt(v.ALLOWED_TAGS)?ie({},v.ALLOWED_TAGS,xe):ke,L=Ke(v,"ALLOWED_ATTR")&&Lt(v.ALLOWED_ATTR)?ie({},v.ALLOWED_ATTR,xe):fr,Du=Ke(v,"ALLOWED_NAMESPACES")&&Lt(v.ALLOWED_NAMESPACES)?ie({},v.ALLOWED_NAMESPACES,ym):kl,Ua=Ke(v,"ADD_URI_SAFE_ATTR")&&Lt(v.ADD_URI_SAFE_ATTR)?ie($t(ui),v.ADD_URI_SAFE_ATTR,xe):ui,Mu=Ke(v,"ADD_DATA_URI_TAGS")&&Lt(v.ADD_DATA_URI_TAGS)?ie($t(Ou),v.ADD_DATA_URI_TAGS,xe):Ou,Ot=Ke(v,"FORBID_CONTENTS")&&Lt(v.FORBID_CONTENTS)?ie({},v.FORBID_CONTENTS,xe):Ee,Hn=Ke(v,"FORBID_TAGS")&&Lt(v.FORBID_TAGS)?ie({},v.FORBID_TAGS,xe):$t({}),Tl=Ke(v,"FORBID_ATTR")&&Lt(v.FORBID_ATTR)?ie({},v.FORBID_ATTR,xe):$t({}),qn=Ke(v,"USE_PROFILES")?v.USE_PROFILES&&typeof v.USE_PROFILES=="object"?$t(v.USE_PROFILES):v.USE_PROFILES:!1,dr=v.ALLOW_ARIA_ATTR!==!1,Eu=v.ALLOW_DATA_ATTR!==!1,hr=v.ALLOW_UNKNOWN_PROTOCOLS||!1,mr=v.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ea=v.SAFE_FOR_TEMPLATES||!1,_l=v.SAFE_FOR_XML!==!1,ta=v.WHOLE_DOCUMENT||!1,na=v.RETURN_DOM||!1,ht=v.RETURN_DOM_FRAGMENT||!1,za=v.RETURN_TRUSTED_TYPE||!1,wu=v.FORCE_BODY||!1,pr=v.SANITIZE_DOM!==!1,gr=v.SANITIZE_NAMED_PROPS||!1,mt=v.KEEP_CONTENT!==!1,Ca=v.IN_PLACE||!1,Ln=SA(v.ALLOWED_URI_REGEXP)?v.ALLOWED_URI_REGEXP:D1,Ya=typeof v.NAMESPACE=="string"?v.NAMESPACE:Dt,Gn=Ke(v,"MATHML_TEXT_INTEGRATION_POINTS")&&v.MATHML_TEXT_INTEGRATION_POINTS&&typeof v.MATHML_TEXT_INTEGRATION_POINTS=="object"?$t(v.MATHML_TEXT_INTEGRATION_POINTS):ie({},["mi","mo","mn","ms","mtext"]),El=Ke(v,"HTML_INTEGRATION_POINTS")&&v.HTML_INTEGRATION_POINTS&&typeof v.HTML_INTEGRATION_POINTS=="object"?$t(v.HTML_INTEGRATION_POINTS):ie({},["annotation-xml"]);let R=Ke(v,"CUSTOM_ELEMENT_HANDLING")&&v.CUSTOM_ELEMENT_HANDLING&&typeof v.CUSTOM_ELEMENT_HANDLING=="object"?$t(v.CUSTOM_ELEMENT_HANDLING):Su(null);if(Ze=Su(null),Ke(R,"tagNameCheck")&&ri(R.tagNameCheck)&&(Ze.tagNameCheck=R.tagNameCheck),Ke(R,"attributeNameCheck")&&ri(R.attributeNameCheck)&&(Ze.attributeNameCheck=R.attributeNameCheck),Ke(R,"allowCustomizedBuiltInElements")&&typeof R.allowCustomizedBuiltInElements=="boolean"&&(Ze.allowCustomizedBuiltInElements=R.allowCustomizedBuiltInElements),ea&&(Eu=!1),ht&&(na=!0),qn&&(Q=ie({},E1),L=Su(null),qn.html===!0&&(ie(Q,k1),ie(L,x1)),qn.svg===!0&&(ie(Q,bm),ie(L,Tm),ie(L,Uc)),qn.svgFilters===!0&&(ie(Q,vm),ie(L,Tm),ie(L,Uc)),qn.mathMl===!0&&(ie(Q,Sm),ie(L,w1),ie(L,Uc))),Bn.tagCheck=null,Bn.attributeCheck=null,Ke(v,"ADD_TAGS")&&(typeof v.ADD_TAGS=="function"?Bn.tagCheck=v.ADD_TAGS:Lt(v.ADD_TAGS)&&(Q===ke&&(Q=$t(Q)),ie(Q,v.ADD_TAGS,xe))),Ke(v,"ADD_ATTR")&&(typeof v.ADD_ATTR=="function"?Bn.attributeCheck=v.ADD_ATTR:Lt(v.ADD_ATTR)&&(L===fr&&(L=$t(L)),ie(L,v.ADD_ATTR,xe))),Ke(v,"ADD_URI_SAFE_ATTR")&&Lt(v.ADD_URI_SAFE_ATTR)&&ie(Ua,v.ADD_URI_SAFE_ATTR,xe),Ke(v,"FORBID_CONTENTS")&&Lt(v.FORBID_CONTENTS)&&(Ot===Ee&&(Ot=$t(Ot)),ie(Ot,v.FORBID_CONTENTS,xe)),Ke(v,"ADD_FORBID_CONTENTS")&&Lt(v.ADD_FORBID_CONTENTS)&&(Ot===Ee&&(Ot=$t(Ot)),ie(Ot,v.ADD_FORBID_CONTENTS,xe)),mt&&(Q["#text"]=!0),ta&&ie(Q,["html","head","body"]),Q.table&&(ie(Q,["tbody"]),delete Hn.tbody),v.TRUSTED_TYPES_POLICY){if(typeof v.TRUSTED_TYPES_POLICY.createHTML!="function")throw Cc('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof v.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Cc('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=v.TRUSTED_TYPES_POLICY,N=E.createHTML("")}else E===void 0&&(E=NA(S,l)),E!==null&&typeof N=="string"&&(N=E.createHTML(""));Ht&&Ht(v),it=v},Ha=ie({},[...bm,...vm,...TA]),yr=ie({},[...Sm,..._A]),oi=function(v){let R=k(v);(!R||!R.tagName)&&(R={namespaceURI:Ya,tagName:"template"});let Z=ir(v.tagName),ze=ir(R.tagName);return Du[v.namespaceURI]?v.namespaceURI===Mn?R.namespaceURI===Dt?Z==="svg":R.namespaceURI===aa?Z==="svg"&&(ze==="annotation-xml"||Gn[ze]):!!Ha[Z]:v.namespaceURI===aa?R.namespaceURI===Dt?Z==="math":R.namespaceURI===Mn?Z==="math"&&El[ze]:!!yr[Z]:v.namespaceURI===Dt?R.namespaceURI===Mn&&!El[ze]||R.namespaceURI===aa&&!Gn[ze]?!1:!yr[Z]&&(si[Z]||!Ha[Z]):!!(q==="application/xhtml+xml"&&Du[v.namespaceURI]):!1},Oe=function(v){nr(t.removed,{element:v});try{k(v).removeChild(v)}catch(R){O(v)}},pt=function(v,R){try{nr(t.removed,{attribute:R.getAttributeNode(v),from:R})}catch(Z){nr(t.removed,{attribute:null,from:R})}if(R.removeAttribute(v),v==="is")if(na||ht)try{Oe(R)}catch(Z){}else try{R.setAttribute(v,"")}catch(Z){}},Pt=function(v){let R=null,Z=null;if(wu)v="<remove></remove>"+v;else{let qe=v1(v,/^[\r\n\t ]+/);Z=qe&&qe[0]}q==="application/xhtml+xml"&&Ya===Dt&&(v='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+v+"</body></html>");let ze=E?E.createHTML(v):v;if(Ya===Dt)try{R=new y().parseFromString(ze,q)}catch(qe){}if(!R||!R.documentElement){R=H.createDocument(Ya,"template",null);try{R.documentElement.innerHTML=La?N:ze}catch(qe){}}let re=R.body||R.documentElement;return v&&Z&&re.insertBefore(n.createTextNode(Z),re.childNodes[0]||null),Ya===Dt?W.call(R,ta?"html":"body")[0]:ta?R.documentElement:re},Qe=function(v){return U.call(v.ownerDocument||v,v,m.SHOW_ELEMENT|m.SHOW_COMMENT|m.SHOW_TEXT|m.SHOW_PROCESSING_INSTRUCTION|m.SHOW_CDATA_SECTION,null)},Rt=function(v){return v instanceof _&&(typeof v.nodeName!="string"||typeof v.textContent!="string"||typeof v.removeChild!="function"||!(v.attributes instanceof p)||typeof v.removeAttribute!="function"||typeof v.setAttribute!="function"||typeof v.namespaceURI!="string"||typeof v.insertBefore!="function"||typeof v.hasChildNodes!="function")},en=function(v){return typeof c=="function"&&v instanceof c};function gt(X,v,R){tr(X,Z=>{Z.call(t,v,R,it)})}let br=function(v){let R=null;if(gt(ee.beforeSanitizeElements,v,null),Rt(v))return Oe(v),!0;let Z=xe(v.nodeName);if(gt(ee.uponSanitizeElement,v,{tagName:Z,allowedTags:Q}),_l&&v.hasChildNodes()&&!en(v.firstElementChild)&&_t(/<[/\w!]/g,v.innerHTML)&&_t(/<[/\w!]/g,v.textContent)||_l&&v.namespaceURI===Dt&&Z==="style"&&en(v.firstElementChild)||v.nodeType===lr.progressingInstruction||_l&&v.nodeType===lr.comment&&_t(/<[/\w]/g,v.data))return Oe(v),!0;if(Hn[Z]||!(Bn.tagCheck instanceof Function&&Bn.tagCheck(Z))&&!Q[Z]){if(!Hn[Z]&&Ru(Z)&&(Ze.tagNameCheck instanceof RegExp&&_t(Ze.tagNameCheck,Z)||Ze.tagNameCheck instanceof Function&&Ze.tagNameCheck(Z)))return!1;if(mt&&!Ot[Z]){let ze=k(v)||v.parentNode,re=b(v)||v.childNodes;if(re&&ze){let qe=re.length;for(let Et=qe-1;Et>=0;--Et){let Nt=w(re[Et],!0);ze.insertBefore(Nt,g(v))}}}return Oe(v),!0}return v instanceof d&&!oi(v)||(Z==="noscript"||Z==="noembed"||Z==="noframes")&&_t(/<\/no(script|embed|frames)/i,v.innerHTML)?(Oe(v),!0):(ea&&v.nodeType===lr.text&&(R=v.textContent,tr([Me,ue,de],ze=>{R=vu(R,ze," ")}),v.textContent!==R&&(nr(t.removed,{element:v.cloneNode()}),v.textContent=R)),gt(ee.afterSanitizeElements,v,null),!1)},vr=function(v,R,Z){if(Tl[R]||pr&&(R==="id"||R==="name")&&(Z in n||Z in se))return!1;if(!(Eu&&!Tl[R]&&_t(kt,R))){if(!(dr&&_t(An,R))){if(!(Bn.attributeCheck instanceof Function&&Bn.attributeCheck(R,v))){if(!L[R]||Tl[R]){if(!(Ru(v)&&(Ze.tagNameCheck instanceof RegExp&&_t(Ze.tagNameCheck,v)||Ze.tagNameCheck instanceof Function&&Ze.tagNameCheck(v))&&(Ze.attributeNameCheck instanceof RegExp&&_t(Ze.attributeNameCheck,R)||Ze.attributeNameCheck instanceof Function&&Ze.attributeNameCheck(R,v))||R==="is"&&Ze.allowCustomizedBuiltInElements&&(Ze.tagNameCheck instanceof RegExp&&_t(Ze.tagNameCheck,Z)||Ze.tagNameCheck instanceof Function&&Ze.tagNameCheck(Z))))return!1}else if(!Ua[R]){if(!_t(Ln,vu(Z,rt,""))){if(!((R==="src"||R==="xlink:href"||R==="href")&&v!=="script"&&S1(Z,"data:")===0&&Mu[v])){if(!(hr&&!_t(Pn,vu(Z,rt,"")))){if(Z)return!1}}}}}}}return!0},xl=ie({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Ru=function(v){return!xl[ir(v)]&&_t(Sl,v)},Sr=function(v){gt(ee.beforeSanitizeAttributes,v,null);let{attributes:R}=v;if(!R||Rt(v))return;let Z={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:L,forceKeepAttr:void 0},ze=R.length;for(;ze--;){let re=R[ze],{name:qe,namespaceURI:Et,value:Nt}=re,Bt=xe(qe),Nu=Nt,Pe=qe==="value"?Nu:mA(Nu);if(Z.attrName=Bt,Z.attrValue=Pe,Z.keepAttr=!0,Z.forceKeepAttr=void 0,gt(ee.uponSanitizeAttribute,v,Z),Pe=Z.attrValue,gr&&(Bt==="id"||Bt==="name")&&S1(Pe,Au)!==0&&(pt(qe,v),Pe=Au+Pe),_l&&_t(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Pe)){pt(qe,v);continue}if(Bt==="attributename"&&v1(Pe,"href")){pt(qe,v);continue}if(Z.forceKeepAttr)continue;if(!Z.keepAttr){pt(qe,v);continue}if(!mr&&_t(/\/>/i,Pe)){pt(qe,v);continue}ea&&tr([Me,ue,de],_r=>{Pe=vu(Pe,_r," ")});let Tr=xe(v.nodeName);if(!vr(Tr,Bt,Pe)){pt(qe,v);continue}if(E&&typeof S=="object"&&typeof S.getAttributeType=="function"&&!Et)switch(S.getAttributeType(Tr,Bt)){case"TrustedHTML":{Pe=E.createHTML(Pe);break}case"TrustedScriptURL":{Pe=E.createScriptURL(Pe);break}}if(Pe!==Nu)try{Et?v.setAttributeNS(Et,qe,Pe):v.setAttribute(qe,Pe),Rt(v)?Oe(v):b1(t.removed)}catch(_r){pt(qe,v)}}gt(ee.afterSanitizeAttributes,v,null)},la=function(v){let R=null,Z=Qe(v);for(gt(ee.beforeSanitizeShadowDOM,v,null);R=Z.nextNode();)gt(ee.uponSanitizeShadowNode,R,null),br(R),Sr(R),R.content instanceof i&&la(R.content);gt(ee.afterSanitizeShadowDOM,v,null)};return t.sanitize=function(X){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},R=null,Z=null,ze=null,re=null;if(La=!X,La&&(X="<!-->"),typeof X!="string"&&!en(X)&&(X=vA(X),typeof X!="string"))throw Cc("dirty is not a string, aborting");if(!t.isSupported)return X;if(xu||be(v),t.removed=[],typeof X=="string"&&(Ca=!1),Ca){let Nt=X.nodeName;if(typeof Nt=="string"){let Bt=xe(Nt);if(!Q[Bt]||Hn[Bt])throw Cc("root node is forbidden and cannot be sanitized in-place")}}else if(X instanceof c)R=Pt("<!---->"),Z=R.ownerDocument.importNode(X,!0),Z.nodeType===lr.element&&Z.nodeName==="BODY"||Z.nodeName==="HTML"?R=Z:R.appendChild(Z);else{if(!na&&!ea&&!ta&&X.indexOf("<")===-1)return E&&za?E.createHTML(X):X;if(R=Pt(X),!R)return na?null:za?N:""}R&&wu&&Oe(R.firstChild);let qe=Qe(Ca?X:R);for(;ze=qe.nextNode();)br(ze),Sr(ze),ze.content instanceof i&&la(ze.content);if(Ca)return X;if(na){if(ea){R.normalize();let Nt=R.innerHTML;tr([Me,ue,de],Bt=>{Nt=vu(Nt,Bt," ")}),R.innerHTML=Nt}if(ht)for(re=B.call(R.ownerDocument);R.firstChild;)re.appendChild(R.firstChild);else re=R;return(L.shadowroot||L.shadowrootmode)&&(re=J.call(a,re,!0)),re}let Et=ta?R.outerHTML:R.innerHTML;return ta&&Q["!doctype"]&&R.ownerDocument&&R.ownerDocument.doctype&&R.ownerDocument.doctype.name&&_t(R1,R.ownerDocument.doctype.name)&&(Et="<!DOCTYPE "+R.ownerDocument.doctype.name+">\n"+Et),ea&&tr([Me,ue,de],Nt=>{Et=vu(Et,Nt," ")}),E&&za?E.createHTML(Et):Et},t.setConfig=function(){let X=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};be(X),xu=!0},t.clearConfig=function(){it=null,xu=!1},t.isValidAttribute=function(X,v,R){it||be({});let Z=xe(X),ze=xe(v);return vr(Z,ze,R)},t.addHook=function(X,v){typeof v=="function"&&nr(ee[X],v)},t.removeHook=function(X,v){if(v!==void 0){let R=dA(ee[X],v);return R===-1?void 0:hA(ee[X],R,1)[0]}return b1(ee[X])},t.removeHooks=function(X){ee[X]=[]},t.removeAllHooks=function(){ee=M1()},t}var z1=N1();function Am(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ni=Am();function G1(e){ni=e}var ei={exec:()=>null};function ge(e,t=""){let n=typeof e=="string"?e:e.source,a={replace:(l,i)=>{let r=typeof i=="string"?i:i.source;return r=r.replace(Mt.caret,"$1"),n=n.replace(l,r),a},getRegex:()=>new RegExp(n,t)};return a}var zA=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch(t){return!1}})(),Mt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp("^( {0,3}".concat(e,")((?:[ ][^\\n]*)?(?:\\n|$))")),nextBulletRegex:e=>new RegExp("^ {0,".concat(Math.min(3,e-1),"}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))")),hrRegex:e=>new RegExp("^ {0,".concat(Math.min(3,e-1),"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)")),fencesBeginRegex:e=>new RegExp("^ {0,".concat(Math.min(3,e-1),"}(?:```|~~~)")),headingBeginRegex:e=>new RegExp("^ {0,".concat(Math.min(3,e-1),"}#")),htmlBeginRegex:e=>new RegExp("^ {0,".concat(Math.min(3,e-1),"}<(?:[a-z].*>|!--)"),"i"),blockquoteBeginRegex:e=>new RegExp("^ {0,".concat(Math.min(3,e-1),"}>"))},CA=/^(?:[ \t]*(?:\n|$))+/,UA=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,YA=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,rr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,LA=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Mm=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,j1=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,V1=ge(j1).replace(/bull/g,Mm).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),HA=ge(j1).replace(/bull/g,Mm).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Om=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,BA=/^[^\n]+/,Dm=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,qA=ge(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Dm).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),GA=ge(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Mm).getRegex(),Gc="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Rm=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,jA=ge("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Rm).replace("tag",Gc).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Z1=ge(Om).replace("hr",rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Gc).getRegex(),VA=ge(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Z1).getRegex(),Nm={blockquote:VA,code:UA,def:qA,fences:YA,heading:LA,hr:rr,html:jA,lheading:V1,list:GA,newline:CA,paragraph:Z1,table:ei,text:BA},C1=ge("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Gc).getRegex(),ZA=$(G({},Nm),{lheading:HA,table:C1,paragraph:ge(Om).replace("hr",rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",C1).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Gc).getRegex()}),QA=$(G({},Nm),{html:ge("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Rm).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ei,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ge(Om).replace("hr",rr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",V1).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),XA=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,FA=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Q1=/^( {2,}|\\)\n(?!\s*$)/,KA=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,_u=/[\p{P}\p{S}]/u,jc=/[\s\p{P}\p{S}]/u,zm=/[^\s\p{P}\p{S}]/u,JA=ge(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,jc).getRegex(),X1=/(?!~)[\p{P}\p{S}]/u,WA=/(?!~)[\s\p{P}\p{S}]/u,$A=/(?:[^\s\p{P}\p{S}]|~)/u,IA=ge(/link|precode-code|html/,"g").replace("link",new RegExp("\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)")).replace("precode-",zA?"(?<!`)()":"(^^|[^`])").replace("code",new RegExp("(?<b>`+)[^`]+\\k<b>(?!`)")).replace("html",/<(?! )[^<>]*?>/).getRegex(),F1=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,PA=ge(F1,"u").replace(/punct/g,_u).getRegex(),e2=ge(F1,"u").replace(/punct/g,X1).getRegex(),K1="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",t2=ge(K1,"gu").replace(/notPunctSpace/g,zm).replace(/punctSpace/g,jc).replace(/punct/g,_u).getRegex(),n2=ge(K1,"gu").replace(/notPunctSpace/g,$A).replace(/punctSpace/g,WA).replace(/punct/g,X1).getRegex(),a2=ge("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,zm).replace(/punctSpace/g,jc).replace(/punct/g,_u).getRegex(),l2=ge(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,_u).getRegex(),i2="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",u2=ge(i2,"gu").replace(/notPunctSpace/g,zm).replace(/punctSpace/g,jc).replace(/punct/g,_u).getRegex(),s2=ge(/\\(punct)/,"gu").replace(/punct/g,_u).getRegex(),r2=ge(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),o2=ge(Rm).replace("(?:-->|$)","-->").getRegex(),c2=ge("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",o2).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Hc=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,f2=ge(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Hc).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),J1=ge(/^!?\[(label)\]\[(ref)\]/).replace("label",Hc).replace("ref",Dm).getRegex(),W1=ge(/^!?\[(ref)\](?:\[\])?/).replace("ref",Dm).getRegex(),d2=ge("reflink|nolink(?!\\()","g").replace("reflink",J1).replace("nolink",W1).getRegex(),U1=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Cm={_backpedal:ei,anyPunctuation:s2,autolink:r2,blockSkip:IA,br:Q1,code:FA,del:ei,delLDelim:ei,delRDelim:ei,emStrongLDelim:PA,emStrongRDelimAst:t2,emStrongRDelimUnd:a2,escape:XA,link:f2,nolink:W1,punctuation:JA,reflink:J1,reflinkSearch:d2,tag:c2,text:KA,url:ei},h2=$(G({},Cm),{link:ge(/^!?\[(label)\]\((.*?)\)/).replace("label",Hc).getRegex(),reflink:ge(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Hc).getRegex()}),Em=$(G({},Cm),{emStrongRDelimAst:n2,emStrongLDelim:e2,delLDelim:l2,delRDelim:u2,url:ge(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",U1).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:ge(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",U1).getRegex()}),m2=$(G({},Em),{br:ge(Q1).replace("{2,}","*").getRegex(),text:ge(Em.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),Yc={normal:Nm,gfm:ZA,pedantic:QA},ur={normal:Cm,gfm:Em,breaks:m2,pedantic:h2},p2={"&":"&","<":"<",">":">",'"':""","'":"'"},Y1=e=>p2[e];function In(e,t){if(t){if(Mt.escapeTest.test(e))return e.replace(Mt.escapeReplace,Y1)}else if(Mt.escapeTestNoEncode.test(e))return e.replace(Mt.escapeReplaceNoEncode,Y1);return e}function L1(e){try{e=encodeURI(e).replace(Mt.percentDecode,"%")}catch(t){return null}return e}function H1(e,t){var i;let n=e.replace(Mt.findPipe,(r,c,d)=>{let m=!1,p=c;for(;--p>=0&&d[p]==="\\";)m=!m;return m?"|":" |"}),a=n.split(Mt.splitPipe),l=0;if(a[0].trim()||a.shift(),a.length>0&&!((i=a.at(-1))!=null&&i.trim())&&a.pop(),t)if(a.length>t)a.splice(t);else for(;a.length<t;)a.push("");for(;l<a.length;l++)a[l]=a[l].trim().replace(Mt.slashPipe,"|");return a}function bl(e,t,n){let a=e.length;if(a===0)return"";let l=0;for(;l<a;){let i=e.charAt(a-l-1);if(i===t&&!n)l++;else if(i!==t&&n)l++;else break}return e.slice(0,a-l)}function B1(e){let t=e.split("\n"),n=t.length-1;for(;n>=0&&Mt.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join("\n")}function g2(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let a=0;a<e.length;a++)if(e[a]==="\\")a++;else if(e[a]===t[0])n++;else if(e[a]===t[1]&&(n--,n<0))return a;return n>0?-2:-1}function y2(e,t=0){let n=t,a="";for(let l of e)if(l===" "){let i=4-n%4;a+=" ".repeat(i),n+=i}else a+=l,n++;return a}function q1(e,t,n,a,l){let i=t.href,r=t.title||null,c=e[1].replace(l.other.outputLinkReplace,"$1");a.state.inLink=!0;let d={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:i,title:r,text:c,tokens:a.inlineTokens(c)};return a.state.inLink=!1,d}function b2(e,t,n){let a=e.match(n.other.indentCodeCompensation);if(a===null)return t;let l=a[1];return t.split("\n").map(i=>{let r=i.match(n.other.beginningSpace);if(r===null)return i;let[c]=r;return c.length>=l.length?i.slice(l.length):i}).join("\n")}var Bc=class{constructor(e){F(this,"options");F(this,"rules");F(this,"lexer");this.options=e||ni}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:B1(t[0]),a=n.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n,codeBlockStyle:"indented",text:a}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],a=b2(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:a}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let a=bl(n,"#");(this.options.pedantic||!a||this.rules.other.endingSpaceChar.test(a))&&(n=a.trim())}return{type:"heading",raw:bl(t[0],"\n"),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:bl(t[0],"\n")}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=bl(t[0],"\n").split("\n"),a="",l="",i=[];for(;n.length>0;){let r=!1,c=[],d;for(d=0;d<n.length;d++)if(this.rules.other.blockquoteStart.test(n[d]))c.push(n[d]),r=!0;else if(!r)c.push(n[d]);else break;n=n.slice(d);let m=c.join("\n"),p=m.replace(this.rules.other.blockquoteSetextReplace,"\n $1").replace(this.rules.other.blockquoteSetextReplace2,"");a=a?"".concat(a,"\n").concat(m):m,l=l?"".concat(l,"\n").concat(p):p;let _=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=_,n.length===0)break;let y=i.at(-1);if((y==null?void 0:y.type)==="code")break;if((y==null?void 0:y.type)==="blockquote"){let S=y,x=S.raw+"\n"+n.join("\n"),w=this.blockquote(x);i[i.length-1]=w,a=a.substring(0,a.length-S.raw.length)+w.raw,l=l.substring(0,l.length-S.text.length)+w.text;break}else if((y==null?void 0:y.type)==="list"){let S=y,x=S.raw+"\n"+n.join("\n"),w=this.list(x);i[i.length-1]=w,a=a.substring(0,a.length-y.raw.length)+w.raw,l=l.substring(0,l.length-S.raw.length)+w.raw,n=x.substring(i.at(-1).raw.length).split("\n");continue}}return{type:"blockquote",raw:a,tokens:i,text:l}}}list(e){var n,a;let t=this.rules.block.list.exec(e);if(t){let l=t[1].trim(),i=l.length>1,r={type:"list",raw:"",ordered:i,start:i?+l.slice(0,-1):"",loose:!1,items:[]};l=i?"\\d{1,9}\\".concat(l.slice(-1)):"\\".concat(l),this.options.pedantic&&(l=i?l:"[*+-]");let c=this.rules.other.listItemRegex(l),d=!1;for(;e;){let p=!1,_="",y="";if(!(t=c.exec(e))||this.rules.block.hr.test(e))break;_=t[0],e=e.substring(_.length);let S=y2(t[2].split("\n",1)[0],t[1].length),x=e.split("\n",1)[0],w=!S.trim(),O=0;if(this.options.pedantic?(O=2,y=S.trimStart()):w?O=t[1].length+1:(O=S.search(this.rules.other.nonSpaceChar),O=O>4?1:O,y=S.slice(O),O+=t[1].length),w&&this.rules.other.blankLine.test(x)&&(_+=x+"\n",e=e.substring(x.length+1),p=!0),!p){let g=this.rules.other.nextBulletRegex(O),b=this.rules.other.hrRegex(O),k=this.rules.other.fencesBeginRegex(O),E=this.rules.other.headingBeginRegex(O),N=this.rules.other.htmlBeginRegex(O),H=this.rules.other.blockquoteBeginRegex(O);for(;e;){let U=e.split("\n",1)[0],B;if(x=U,this.options.pedantic?(x=x.replace(this.rules.other.listReplaceNesting," "),B=x):B=x.replace(this.rules.other.tabCharGlobal," "),k.test(x)||E.test(x)||N.test(x)||H.test(x)||g.test(x)||b.test(x))break;if(B.search(this.rules.other.nonSpaceChar)>=O||!x.trim())y+="\n"+B.slice(O);else{if(w||S.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||k.test(S)||E.test(S)||b.test(S))break;y+="\n"+x}w=!x.trim(),_+=U+"\n",e=e.substring(U.length+1),S=B.slice(O)}}r.loose||(d?r.loose=!0:this.rules.other.doubleBlankLine.test(_)&&(d=!0)),r.items.push({type:"list_item",raw:_,task:!!this.options.gfm&&this.rules.other.listIsTask.test(y),loose:!1,text:y,tokens:[]}),r.raw+=_}let m=r.items.at(-1);if(m)m.raw=m.raw.trimEnd(),m.text=m.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let p of r.items){if(this.lexer.state.top=!1,p.tokens=this.lexer.blockTokens(p.text,[]),p.task){if(p.text=p.text.replace(this.rules.other.listReplaceTask,""),((n=p.tokens[0])==null?void 0:n.type)==="text"||((a=p.tokens[0])==null?void 0:a.type)==="paragraph"){p.tokens[0].raw=p.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),p.tokens[0].text=p.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let y=this.lexer.inlineQueue.length-1;y>=0;y--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[y].src)){this.lexer.inlineQueue[y].src=this.lexer.inlineQueue[y].src.replace(this.rules.other.listReplaceTask,"");break}}let _=this.rules.other.listTaskCheckbox.exec(p.raw);if(_){let y={type:"checkbox",raw:_[0]+" ",checked:_[0]!=="[ ]"};p.checked=y.checked,r.loose?p.tokens[0]&&["paragraph","text"].includes(p.tokens[0].type)&&"tokens"in p.tokens[0]&&p.tokens[0].tokens?(p.tokens[0].raw=y.raw+p.tokens[0].raw,p.tokens[0].text=y.raw+p.tokens[0].text,p.tokens[0].tokens.unshift(y)):p.tokens.unshift({type:"paragraph",raw:y.raw,text:y.raw,tokens:[y]}):p.tokens.unshift(y)}}if(!r.loose){let _=p.tokens.filter(S=>S.type==="space"),y=_.length>0&&_.some(S=>this.rules.other.anyLine.test(S.raw));r.loose=y}}if(r.loose)for(let p of r.items){p.loose=!0;for(let _ of p.tokens)_.type==="text"&&(_.type="paragraph")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=B1(t[0]);return{type:"html",block:!0,raw:n,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),a=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",l=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:bl(t[0],"\n"),href:a,title:l}}}table(e){var r;let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=H1(t[1]),a=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),l=(r=t[3])!=null&&r.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split("\n"):[],i={type:"table",raw:bl(t[0],"\n"),header:[],align:[],rows:[]};if(n.length===a.length){for(let c of a)this.rules.other.tableAlignRight.test(c)?i.align.push("right"):this.rules.other.tableAlignCenter.test(c)?i.align.push("center"):this.rules.other.tableAlignLeft.test(c)?i.align.push("left"):i.align.push(null);for(let c=0;c<n.length;c++)i.header.push({text:n[c],tokens:this.lexer.inline(n[c]),header:!0,align:i.align[c]});for(let c of l)i.rows.push(H1(c,i.header.length).map((d,m)=>({text:d,tokens:this.lexer.inline(d),header:!1,align:i.align[m]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:bl(t[0],"\n"),depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)==="\n"?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let i=bl(n.slice(0,-1),"\\");if((n.length-i.length)%2===0)return}else{let i=g2(t[2],"()");if(i===-2)return;if(i>-1){let r=(t[0].indexOf("!")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let a=t[2],l="";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(a);i&&(a=i[1],l=i[3])}else l=t[3]?t[3].slice(1,-1):"";return a=a.trim(),this.rules.other.startAngleBracket.test(a)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?a=a.slice(1):a=a.slice(1,-1)),q1(t,{href:a&&a.replace(this.rules.inline.anyPunctuation,"$1"),title:l&&l.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let a=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),l=t[a.toLowerCase()];if(!l){let i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return q1(n,l,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let a=this.rules.inline.emStrongLDelim.exec(e);if(!(!a||!a[1]&&!a[2]&&!a[3]&&!a[4]||a[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(a[1]||a[3])||!n||this.rules.inline.punctuation.exec(n))){let l=[...a[0]].length-1,i,r,c=l,d=0,m=a[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(m.lastIndex=0,t=t.slice(-1*e.length+l);(a=m.exec(t))!==null;){if(i=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!i)continue;if(r=[...i].length,a[3]||a[4]){c+=r;continue}else if((a[5]||a[6])&&l%3&&!((l+r)%3)){d+=r;continue}if(c-=r,c>0)continue;r=Math.min(r,r+c+d);let p=[...a[0]][0].length,_=e.slice(0,l+a.index+p+r);if(Math.min(l,r)%2){let S=_.slice(1,-1);return{type:"em",raw:_,text:S,tokens:this.lexer.inlineTokens(S)}}let y=_.slice(2,-2);return{type:"strong",raw:_,text:y,tokens:this.lexer.inlineTokens(y)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),a=this.rules.other.nonSpaceChar.test(n),l=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return a&&l&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let a=this.rules.inline.delLDelim.exec(e);if(a&&(!a[1]||!n||this.rules.inline.punctuation.exec(n))){let l=[...a[0]].length-1,i,r,c=l,d=this.rules.inline.delRDelim;for(d.lastIndex=0,t=t.slice(-1*e.length+l);(a=d.exec(t))!==null;){if(i=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!i||(r=[...i].length,r!==l))continue;if(a[3]||a[4]){c+=r;continue}if(c-=r,c>0)continue;r=Math.min(r,r+c);let m=[...a[0]][0].length,p=e.slice(0,l+a.index+m+r),_=p.slice(l,-l);return{type:"del",raw:p,text:_,tokens:this.lexer.inlineTokens(_)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,a;return t[2]==="@"?(n=t[1],a="mailto:"+n):(n=t[1],a=n),{type:"link",raw:t[0],text:n,href:a,tokens:[{type:"text",raw:n,text:n}]}}}url(e){var n,a;let t;if(t=this.rules.inline.url.exec(e)){let l,i;if(t[2]==="@")l=t[0],i="mailto:"+l;else{let r;do r=t[0],t[0]=(a=(n=this.rules.inline._backpedal.exec(t[0]))==null?void 0:n[0])!=null?a:"";while(r!==t[0]);l=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:l,href:i,tokens:[{type:"text",raw:l,text:l}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},Un=class xm{constructor(t){F(this,"tokens");F(this,"options");F(this,"state");F(this,"inlineQueue");F(this,"tokenizer");this.tokens=[],this.tokens.links=Object.create(null),this.options=t||ni,this.options.tokenizer=this.options.tokenizer||new Bc,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:Mt,block:Yc.normal,inline:ur.normal};this.options.pedantic?(n.block=Yc.pedantic,n.inline=ur.pedantic):this.options.gfm&&(n.block=Yc.gfm,this.options.breaks?n.inline=ur.breaks:n.inline=ur.gfm),this.tokenizer.rules=n}static get rules(){return{block:Yc,inline:ur}}static lex(t,n){return new xm(n).lex(t)}static lexInline(t,n){return new xm(n).inlineTokens(t)}lex(t){t=t.replace(Mt.carriageReturn,"\n"),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let a=this.inlineQueue[n];this.inlineTokens(a.src,a.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],a=!1){var i,r,c;this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(Mt.tabCharGlobal," ").replace(Mt.spaceLine,""));let l=1/0;for(;t;){if(t.length<l)l=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let d;if((r=(i=this.options.extensions)==null?void 0:i.block)!=null&&r.some(p=>(d=p.call({lexer:this},t,n))?(t=t.substring(d.raw.length),n.push(d),!0):!1))continue;if(d=this.tokenizer.space(t)){t=t.substring(d.raw.length);let p=n.at(-1);d.raw.length===1&&p!==void 0?p.raw+="\n":n.push(d);continue}if(d=this.tokenizer.code(t)){t=t.substring(d.raw.length);let p=n.at(-1);(p==null?void 0:p.type)==="paragraph"||(p==null?void 0:p.type)==="text"?(p.raw+=(p.raw.endsWith("\n")?"":"\n")+d.raw,p.text+="\n"+d.text,this.inlineQueue.at(-1).src=p.text):n.push(d);continue}if(d=this.tokenizer.fences(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.heading(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.hr(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.blockquote(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.list(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.html(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.def(t)){t=t.substring(d.raw.length);let p=n.at(-1);(p==null?void 0:p.type)==="paragraph"||(p==null?void 0:p.type)==="text"?(p.raw+=(p.raw.endsWith("\n")?"":"\n")+d.raw,p.text+="\n"+d.raw,this.inlineQueue.at(-1).src=p.text):this.tokens.links[d.tag]||(this.tokens.links[d.tag]={href:d.href,title:d.title},n.push(d));continue}if(d=this.tokenizer.table(t)){t=t.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.lheading(t)){t=t.substring(d.raw.length),n.push(d);continue}let m=t;if((c=this.options.extensions)!=null&&c.startBlock){let p=1/0,_=t.slice(1),y;this.options.extensions.startBlock.forEach(S=>{y=S.call({lexer:this},_),typeof y=="number"&&y>=0&&(p=Math.min(p,y))}),p<1/0&&p>=0&&(m=t.substring(0,p+1))}if(this.state.top&&(d=this.tokenizer.paragraph(m))){let p=n.at(-1);a&&(p==null?void 0:p.type)==="paragraph"?(p.raw+=(p.raw.endsWith("\n")?"":"\n")+d.raw,p.text+="\n"+d.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=p.text):n.push(d),a=m.length!==t.length,t=t.substring(d.raw.length);continue}if(d=this.tokenizer.text(t)){t=t.substring(d.raw.length);let p=n.at(-1);(p==null?void 0:p.type)==="text"?(p.raw+=(p.raw.endsWith("\n")?"":"\n")+d.raw,p.text+="\n"+d.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=p.text):n.push(d);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){var m,p,_,y,S,x;this.tokenizer.lexer=this;let a=t,l=null;if(this.tokens.links){let w=Object.keys(this.tokens.links);if(w.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(a))!==null;)w.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(a))!==null;)a=a.slice(0,l.index)+"++"+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(l=this.tokenizer.rules.inline.blockSkip.exec(a))!==null;)i=l[2]?l[2].length:0,a=a.slice(0,l.index+i)+"["+"a".repeat(l[0].length-i-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);a=(_=(p=(m=this.options.hooks)==null?void 0:m.emStrongMask)==null?void 0:p.call({lexer:this},a))!=null?_:a;let r=!1,c="",d=1/0;for(;t;){if(t.length<d)d=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}r||(c=""),r=!1;let w;if((S=(y=this.options.extensions)==null?void 0:y.inline)!=null&&S.some(g=>(w=g.call({lexer:this},t,n))?(t=t.substring(w.raw.length),n.push(w),!0):!1))continue;if(w=this.tokenizer.escape(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.tag(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.link(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(w.raw.length);let g=n.at(-1);w.type==="text"&&(g==null?void 0:g.type)==="text"?(g.raw+=w.raw,g.text+=w.text):n.push(w);continue}if(w=this.tokenizer.emStrong(t,a,c)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.codespan(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.br(t)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.del(t,a,c)){t=t.substring(w.raw.length),n.push(w);continue}if(w=this.tokenizer.autolink(t)){t=t.substring(w.raw.length),n.push(w);continue}if(!this.state.inLink&&(w=this.tokenizer.url(t))){t=t.substring(w.raw.length),n.push(w);continue}let O=t;if((x=this.options.extensions)!=null&&x.startInline){let g=1/0,b=t.slice(1),k;this.options.extensions.startInline.forEach(E=>{k=E.call({lexer:this},b),typeof k=="number"&&k>=0&&(g=Math.min(g,k))}),g<1/0&&g>=0&&(O=t.substring(0,g+1))}if(w=this.tokenizer.inlineText(O)){t=t.substring(w.raw.length),w.raw.slice(-1)!=="_"&&(c=w.raw.slice(-1)),r=!0;let g=n.at(-1);(g==null?void 0:g.type)==="text"?(g.raw+=w.raw,g.text+=w.text):n.push(w);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return n}infiniteLoopError(t){let n="Infinite loop on byte: "+t;if(this.options.silent)console.error(n);else throw new Error(n)}},qc=class{constructor(e){F(this,"options");F(this,"parser");this.options=e||ni}space(e){return""}code({text:e,lang:t,escaped:n}){var i;let a=(i=(t||"").match(Mt.notSpaceStart))==null?void 0:i[0],l=e.replace(Mt.endingNewline,"")+"\n";return a?'<pre><code class="language-'+In(a)+'">'+(n?l:In(l,!0))+"</code></pre>\n":"<pre><code>"+(n?l:In(l,!0))+"</code></pre>\n"}blockquote({tokens:e}){return"<blockquote>\n".concat(this.parser.parse(e),"</blockquote>\n")}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return"<h".concat(t,">").concat(this.parser.parseInline(e),"</h").concat(t,">\n")}hr(e){return"<hr>\n"}list(e){let t=e.ordered,n=e.start,a="";for(let r=0;r<e.items.length;r++){let c=e.items[r];a+=this.listitem(c)}let l=t?"ol":"ul",i=t&&n!==1?' start="'+n+'"':"";return"<"+l+i+">\n"+a+"</"+l+">\n"}listitem(e){return"<li>".concat(this.parser.parse(e.tokens),"</li>\n")}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return"<p>".concat(this.parser.parseInline(e),"</p>\n")}table(e){let t="",n="";for(let l=0;l<e.header.length;l++)n+=this.tablecell(e.header[l]);t+=this.tablerow({text:n});let a="";for(let l=0;l<e.rows.length;l++){let i=e.rows[l];n="";for(let r=0;r<i.length;r++)n+=this.tablecell(i[r]);a+=this.tablerow({text:n})}return a&&(a="<tbody>".concat(a,"</tbody>")),"<table>\n<thead>\n"+t+"</thead>\n"+a+"</table>\n"}tablerow({text:e}){return"<tr>\n".concat(e,"</tr>\n")}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?"<".concat(n,' align="').concat(e.align,'">'):"<".concat(n,">"))+t+"</".concat(n,">\n")}strong({tokens:e}){return"<strong>".concat(this.parser.parseInline(e),"</strong>")}em({tokens:e}){return"<em>".concat(this.parser.parseInline(e),"</em>")}codespan({text:e}){return"<code>".concat(In(e,!0),"</code>")}br(e){return"<br>"}del({tokens:e}){return"<del>".concat(this.parser.parseInline(e),"</del>")}link({href:e,title:t,tokens:n}){let a=this.parser.parseInline(n),l=L1(e);if(l===null)return a;e=l;let i='<a href="'+e+'"';return t&&(i+=' title="'+In(t)+'"'),i+=">"+a+"</a>",i}image({href:e,title:t,text:n,tokens:a}){a&&(n=this.parser.parseInline(a,this.parser.textRenderer));let l=L1(e);if(l===null)return In(n);e=l;let i='<img src="'.concat(e,'" alt="').concat(In(n),'"');return t&&(i+=' title="'.concat(In(t),'"')),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:In(e.text)}},Um=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},Yn=class wm{constructor(t){F(this,"options");F(this,"renderer");F(this,"textRenderer");this.options=t||ni,this.options.renderer=this.options.renderer||new qc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Um}static parse(t,n){return new wm(n).parse(t)}static parseInline(t,n){return new wm(n).parseInline(t)}parse(t){var a,l;this.renderer.parser=this;let n="";for(let i=0;i<t.length;i++){let r=t[i];if((l=(a=this.options.extensions)==null?void 0:a.renderers)!=null&&l[r.type]){let d=r,m=this.options.extensions.renderers[d.type].call({parser:this},d);if(m!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(d.type)){n+=m||"";continue}}let c=r;switch(c.type){case"space":{n+=this.renderer.space(c);break}case"hr":{n+=this.renderer.hr(c);break}case"heading":{n+=this.renderer.heading(c);break}case"code":{n+=this.renderer.code(c);break}case"table":{n+=this.renderer.table(c);break}case"blockquote":{n+=this.renderer.blockquote(c);break}case"list":{n+=this.renderer.list(c);break}case"checkbox":{n+=this.renderer.checkbox(c);break}case"html":{n+=this.renderer.html(c);break}case"def":{n+=this.renderer.def(c);break}case"paragraph":{n+=this.renderer.paragraph(c);break}case"text":{n+=this.renderer.text(c);break}default:{let d='Token with "'+c.type+'" type was not found.';if(this.options.silent)return console.error(d),"";throw new Error(d)}}}return n}parseInline(t,n=this.renderer){var l,i;this.renderer.parser=this;let a="";for(let r=0;r<t.length;r++){let c=t[r];if((i=(l=this.options.extensions)==null?void 0:l.renderers)!=null&&i[c.type]){let m=this.options.extensions.renderers[c.type].call({parser:this},c);if(m!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(c.type)){a+=m||"";continue}}let d=c;switch(d.type){case"escape":{a+=n.text(d);break}case"html":{a+=n.html(d);break}case"link":{a+=n.link(d);break}case"image":{a+=n.image(d);break}case"checkbox":{a+=n.checkbox(d);break}case"strong":{a+=n.strong(d);break}case"em":{a+=n.em(d);break}case"codespan":{a+=n.codespan(d);break}case"br":{a+=n.br(d);break}case"del":{a+=n.del(d);break}case"text":{a+=n.text(d);break}default:{let m='Token with "'+d.type+'" type was not found.';if(this.options.silent)return console.error(m),"";throw new Error(m)}}}return a}},Lc,sr=(Lc=class{constructor(e){F(this,"options");F(this,"block");this.options=e||ni}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?Un.lex:Un.lexInline}provideParser(e=this.block){return e?Yn.parse:Yn.parseInline}},F(Lc,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),F(Lc,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),Lc),v2=class{constructor(...e){F(this,"defaults",Am());F(this,"options",this.setOptions);F(this,"parse",this.parseMarkdown(!0));F(this,"parseInline",this.parseMarkdown(!1));F(this,"Parser",Yn);F(this,"Renderer",qc);F(this,"TextRenderer",Um);F(this,"Lexer",Un);F(this,"Tokenizer",Bc);F(this,"Hooks",sr);this.use(...e)}walkTokens(e,t){var a,l;let n=[];for(let i of e)switch(n=n.concat(t.call(this,i)),i.type){case"table":{let r=i;for(let c of r.header)n=n.concat(this.walkTokens(c.tokens,t));for(let c of r.rows)for(let d of c)n=n.concat(this.walkTokens(d.tokens,t));break}case"list":{let r=i;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=i;(l=(a=this.defaults.extensions)==null?void 0:a.childTokens)!=null&&l[r.type]?this.defaults.extensions.childTokens[r.type].forEach(c=>{let d=r[c].flat(1/0);n=n.concat(this.walkTokens(d,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let a=G({},n);if(a.async=this.defaults.async||a.async||!1,n.extensions&&(n.extensions.forEach(l=>{if(!l.name)throw new Error("extension name required");if("renderer"in l){let i=t.renderers[l.name];i?t.renderers[l.name]=function(...r){let c=l.renderer.apply(this,r);return c===!1&&(c=i.apply(this,r)),c}:t.renderers[l.name]=l.renderer}if("tokenizer"in l){if(!l.level||l.level!=="block"&&l.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[l.level];i?i.unshift(l.tokenizer):t[l.level]=[l.tokenizer],l.start&&(l.level==="block"?t.startBlock?t.startBlock.push(l.start):t.startBlock=[l.start]:l.level==="inline"&&(t.startInline?t.startInline.push(l.start):t.startInline=[l.start]))}"childTokens"in l&&l.childTokens&&(t.childTokens[l.name]=l.childTokens)}),a.extensions=t),n.renderer){let l=this.defaults.renderer||new qc(this.defaults);for(let i in n.renderer){if(!(i in l))throw new Error("renderer '".concat(i,"' does not exist"));if(["options","parser"].includes(i))continue;let r=i,c=n.renderer[r],d=l[r];l[r]=(...m)=>{let p=c.apply(l,m);return p===!1&&(p=d.apply(l,m)),p||""}}a.renderer=l}if(n.tokenizer){let l=this.defaults.tokenizer||new Bc(this.defaults);for(let i in n.tokenizer){if(!(i in l))throw new Error("tokenizer '".concat(i,"' does not exist"));if(["options","rules","lexer"].includes(i))continue;let r=i,c=n.tokenizer[r],d=l[r];l[r]=(...m)=>{let p=c.apply(l,m);return p===!1&&(p=d.apply(l,m)),p}}a.tokenizer=l}if(n.hooks){let l=this.defaults.hooks||new sr;for(let i in n.hooks){if(!(i in l))throw new Error("hook '".concat(i,"' does not exist"));if(["options","block"].includes(i))continue;let r=i,c=n.hooks[r],d=l[r];sr.passThroughHooks.has(i)?l[r]=m=>{if(this.defaults.async&&sr.passThroughHooksRespectAsync.has(i))return(async()=>{let _=await c.call(l,m);return d.call(l,_)})();let p=c.call(l,m);return d.call(l,p)}:l[r]=(...m)=>{if(this.defaults.async)return(async()=>{let _=await c.apply(l,m);return _===!1&&(_=await d.apply(l,m)),_})();let p=c.apply(l,m);return p===!1&&(p=d.apply(l,m)),p}}a.hooks=l}if(n.walkTokens){let l=this.defaults.walkTokens,i=n.walkTokens;a.walkTokens=function(r){let c=[];return c.push(i.call(this,r)),l&&(c=c.concat(l.call(this,r))),c}}this.defaults=G(G({},this.defaults),a)}),this}setOptions(e){return this.defaults=G(G({},this.defaults),e),this}lexer(e,t){return Un.lex(e,t!=null?t:this.defaults)}parser(e,t){return Yn.parse(e,t!=null?t:this.defaults)}parseMarkdown(e){return(t,n)=>{let a=G({},n),l=G(G({},this.defaults),a),i=this.onError(!!l.silent,!!l.async);if(this.defaults.async===!0&&a.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(l.hooks&&(l.hooks.options=l,l.hooks.block=e),l.async)return(async()=>{let r=l.hooks?await l.hooks.preprocess(t):t,c=await(l.hooks?await l.hooks.provideLexer(e):e?Un.lex:Un.lexInline)(r,l),d=l.hooks?await l.hooks.processAllTokens(c):c;l.walkTokens&&await Promise.all(this.walkTokens(d,l.walkTokens));let m=await(l.hooks?await l.hooks.provideParser(e):e?Yn.parse:Yn.parseInline)(d,l);return l.hooks?await l.hooks.postprocess(m):m})().catch(i);try{l.hooks&&(t=l.hooks.preprocess(t));let r=(l.hooks?l.hooks.provideLexer(e):e?Un.lex:Un.lexInline)(t,l);l.hooks&&(r=l.hooks.processAllTokens(r)),l.walkTokens&&this.walkTokens(r,l.walkTokens);let c=(l.hooks?l.hooks.provideParser(e):e?Yn.parse:Yn.parseInline)(r,l);return l.hooks&&(c=l.hooks.postprocess(c)),c}catch(r){return i(r)}}}onError(e,t){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",e){let a="<p>An error occurred:</p><pre>"+In(n.message+"",!0)+"</pre>";return t?Promise.resolve(a):a}if(t)return Promise.reject(n);throw n}}},ti=new v2;function _e(e,t){return ti.parse(e,t)}_e.options=_e.setOptions=function(e){return ti.setOptions(e),_e.defaults=ti.defaults,G1(_e.defaults),_e};_e.getDefaults=Am;_e.defaults=ni;_e.use=function(...e){return ti.use(...e),_e.defaults=ti.defaults,G1(_e.defaults),_e};_e.walkTokens=function(e,t){return ti.walkTokens(e,t)};_e.parseInline=ti.parseInline;_e.Parser=Yn;_e.parser=Yn.parse;_e.Renderer=qc;_e.TextRenderer=Um;_e.Lexer=Un;_e.lexer=Un.lex;_e.Tokenizer=Bc;_e.Hooks=sr;_e.parse=_e;var gO=_e.options,yO=_e.setOptions,bO=_e.use,vO=_e.walkTokens,SO=_e.parseInline;var TO=Yn.parse,_O=Un.lex;var $1=ye(Gt()),I1=ye($e());_e.setOptions({pedantic:!1,gfm:!0});function Vc({text:e,className:t}){let n=$1.default.useMemo(()=>{if(!e)return"";let a=_e.parse(e,{async:!1});return z1.sanitize(typeof a=="string"?a:"")},[e]);return(0,I1.jsx)("div",{className:t,dangerouslySetInnerHTML:{__html:n}})}var P=ye($e());function P1({initial:e,onNotifyRemove:t,onUpdated:n}){var Ln;let a=Jt(),[l,i]=ai.default.useState(e),[r,c]=ai.default.useState(e),[d,m]=ai.default.useState(!1),[p,_]=ai.default.useState(!1),[y,S]=ai.default.useState(!1),[x,w]=ai.default.useState(null),O="".concat(l.bid.toString(),"_tags"),g=Q=>"".concat(Na(a.userR),"/b:").concat(Q),b=Q=>"".concat(Na(a.userR),"/t:").concat(bu(Q)),k=Kv(l.time),E="".concat(l.time.slice(0,16),"Z"),N=a.dat.suggestTags===!0,{tagInputRef:H,suggestionState:U,closeSuggestions:B,onTagsChange:W,onTagsKeyDown:J,onTagsSelect:ee,onSuggestionHover:Me,onSuggestionPick:ue}=Rc({enabled:N,tags:r.tags,onTagsUpdate:Q=>{c(ke=>$(G({},ke),{tags:Q}))}});async function de(Q){await Jv(l.bid,Q?"star":"unstar");let ke=$(G({},l),{selected:Q});i(ke),c(L=>$(G({},L),{selected:Q})),n(ke)}async function kt(){await Ac(l.bid),t()}async function An(){await Wv(l.bid);let Q=$(G({},l),{toread:!1});i(Q),n(Q)}function Pn(Q){c(l),_(Q),w(null),B(),Q&&wc(O)}async function rt(){S(!0);try{let Q=await Oc(r);Q!=null&&c(ke=>$(G({},ke),{title:Q}))}finally{S(!1)}}let Sl=async Q=>{Q.preventDefault(),w(null);let ke=$(G({},r),{tags:f1(r.tags)}),L=await Mc(ke);L.ok&&L.status>=200&&L.status<300?(i(ke),_(!1),n(ke)):(w(L.bodyText),console.log(L.bodyText))};return(0,P.jsxs)("div",{id:String(l.bid),className:"bookmark w-100 mw7 pa1 mb3".concat(l.private?" private":""),children:[a.dat.isowner?(0,P.jsx)("div",{className:"star fl pointer".concat(l.selected?" selected":""),children:(0,P.jsx)("button",{className:"moon-gray",onClick:()=>{de(!l.selected)},type:"button",children:"\u272D"})}):null,p?(0,P.jsxs)("div",{className:"edit_bookmark_form pa2 pt0 bg-white",children:[x?(0,P.jsx)("div",{className:"alert alert-err",children:x}):null,(0,P.jsxs)("form",{onSubmit:Q=>{Sl(Q)},children:[(0,P.jsx)("div",{children:"url"}),(0,P.jsx)("input",{type:"url",className:"url w-100 mb2 pt1 edit_form_input",required:!0,name:"url",value:r.url,onChange:Q=>{c(ke=>$(G({},ke),{url:Q.target.value}))}}),(0,P.jsx)("div",{children:"title"}),(0,P.jsxs)("div",{className:"flex",children:[(0,P.jsx)("input",{type:"text",className:"title w-100 mb2 pt1 edit_form_input",name:"title",value:r.title,onChange:Q=>{c(ke=>$(G({},ke),{title:Q.target.value}))}}),(0,P.jsx)("button",{disabled:y,type:"button",onClick:()=>{rt()},className:"ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7".concat(y?"bg-light-silver":""),children:"fetch"})]}),(0,P.jsx)("div",{children:"description"}),(0,P.jsx)("textarea",{className:"description w-100 mb1 pt1 edit_form_input",name:"description",rows:5,value:r.description,onChange:Q=>{c(ke=>$(G({},ke),{description:Q.target.value}))}}),(0,P.jsxs)("div",{id:"tags_input_box",children:[(0,P.jsx)("div",{children:"tags"}),(0,P.jsxs)("div",{className:"relative",children:[(0,P.jsx)("input",{id:O,ref:H,type:"text",className:"tags w-100 mb1 pt1 edit_form_input",name:"tags",autoComplete:"off",autoCapitalize:"off",value:r.tags,onChange:W,onKeyDown:J,onClick:ee,onSelect:ee,onBlur:()=>{window.setTimeout(()=>{B()},0)}}),U!=null?(0,P.jsx)(Nc,{suggestionState:U,onHover:Me,onPick:ue}):null]})]}),(0,P.jsxs)("div",{className:"edit_form_checkboxes mv3",children:[(0,P.jsx)("input",{type:"checkbox",className:"private pointer",id:"edit_private",name:"private",checked:r.private,onChange:Q=>{c(ke=>$(G({},ke),{private:Q.target.checked}))}})," ",(0,P.jsx)("label",{htmlFor:"edit_private",className:"mr2",children:"private"})," ",(0,P.jsx)("input",{type:"checkbox",className:"toread pointer",id:"edit_toread",name:"toread",checked:r.toread,onChange:Q=>{c(ke=>$(G({},ke),{toread:Q.target.checked}))}})," ",(0,P.jsx)("label",{htmlFor:"edit_toread",children:"to-read"})]}),(0,P.jsx)("input",{type:"submit",className:"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim",value:"save"})," ",(0,P.jsx)("input",{type:"reset",className:"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim",value:"cancel",onClick:()=>{Pn(!1)}})]})]}):(0,P.jsxs)("div",{className:"display",children:[(0,P.jsx)("a",{href:l.url,target:"_blank",rel:"noreferrer",className:"link f5 lh-title".concat(l.toread?" unread":""),children:l.title===""?"[no title]":l.title}),(0,P.jsx)("br",{}),(0,P.jsx)("a",{href:l.url,className:"link f7 gray hover-blue",children:l.url}),(0,P.jsx)("a",{href:(Ln=l.archiveUrl)!=null?Ln:"http://archive.is/".concat(l.url),className:"link f7 gray hover-blue ml2".concat(l.archiveUrl?" green":""),target:"_blank",rel:"noreferrer",title:"archive link",children:l.archiveUrl?"\u2611":"\u2610"}),(0,P.jsx)("br",{}),(0,P.jsx)("div",{className:"description mt1 mid-gray",children:(0,P.jsx)(Vc,{text:l.description})}),(0,P.jsx)("div",{className:"tags",children:l.tags!==""?l.tags.split(" ").map(Q=>(0,P.jsx)("a",{className:"link tag mr1".concat(Q.slice(0,1)==="."?" private":""),href:b(Q),children:Q},Q)):null}),(0,P.jsx)("a",{className:"link f7 dib gray w4",href:g(l.slug),title:E,children:k}),a.dat.isowner?(0,P.jsxs)("div",{className:"edit_links di",children:[(0,P.jsx)("button",{type:"button",onClick:()=>{Pn(!0)},className:"edit light-silver hover-blue",children:"edit\xA0\xA0"}),(0,P.jsxs)("div",{className:"delete_link di",children:[(0,P.jsx)("button",{type:"button",onClick:()=>{m(!0)},className:"delete light-silver hover-blue".concat(d?" dn":""),children:"delete"}),(0,P.jsxs)("span",{className:"confirm red".concat(d?"":" dn"),children:[(0,P.jsx)("button",{type:"button",onClick:()=>{m(!1)},children:"cancel\xA0/\xA0"}),(0,P.jsx)("button",{type:"button",onClick:()=>{kt()},className:"red",children:"destroy"})]})]})]}):null,a.dat.isowner&&l.toread?(0,P.jsxs)("div",{className:"read di",children:["\xA0\xA0",(0,P.jsx)("button",{onClick:()=>{An()},className:"mark_read",type:"button",children:"mark as read"})]}):null]})]})}var Ym=ye($e());function tS({initial:e}){let t=er(i=>i.bmarks),n=er(i=>i.setAll),a=er(i=>i.removeById),l=er(i=>i.upsert);return eS.default.useEffect(()=>{n(e)},[e,n]),(0,Ym.jsx)("div",{children:t.map(i=>(0,Ym.jsx)(P1,{initial:i,onNotifyRemove:()=>{a(i.bid)},onUpdated:r=>{l(r)}},i.bid))})}var nS=ye(Gt());var It=ye($e());function S2(e){let t=e.split("\n");return(0,It.jsxs)(It.Fragment,{children:[t[0],t.slice(1).map((n,a)=>(0,It.jsxs)(nS.default.Fragment,{children:[(0,It.jsx)("br",{}),n]},a))]})}function aS({initial:e}){let t=Jt(),n=a=>"".concat(Na(t.userR),"/notes/").concat(a);return(0,It.jsx)("div",{children:e.map(a=>{var i,r;let l=gu(a.created);return(0,It.jsx)("div",{id:String(a.id),className:"note w-100 mw7 pa1 mb2".concat(a.shared?"":" private"),children:(0,It.jsxs)("div",{className:"display",children:[(0,It.jsx)("a",{href:n(a.slug),className:"link f5 lh-title",children:a.title===""?"[no title]":a.title}),(0,It.jsx)("br",{}),(0,It.jsx)("div",{className:"description mt1 mid-gray",children:S2(a.text.slice(0,200))}),(0,It.jsx)("a",{className:"link f7 dib gray w4",title:(i=l==null?void 0:l[1])!=null?i:a.created,href:n(a.slug),children:(r=l==null?void 0:l[0])!=null?r:"\xA0"})]})},a.id)})})}var vl=ye(Gt());var ne=ye($e());function T2(e){let t=e.split("\n");return(0,ne.jsxs)(ne.Fragment,{children:[t[0],t.slice(1).map((n,a)=>(0,ne.jsxs)(vl.default.Fragment,{children:[(0,ne.jsx)("br",{}),n]},a))]})}function lS({initial:e}){var k,E;let t=Jt(),[n,a]=vl.default.useState(e),[l,i]=vl.default.useState(e),[r,c]=vl.default.useState(!1),[d,m]=vl.default.useState(e.id<=0),[p,_]=vl.default.useState(!1),[y,S]=vl.default.useState(null),x="".concat(n.id.toString(),"_text"),w=gu(n.created);function O(N){i(n),m(N);let H=$s(),U=Is(H,"next");!N&&U==="closeWindow"?yu(window):N&&wc(x)}async function g(){await t1(n.id),_(!0)}let b=async N=>{N.preventDefault(),S(null);let H=await $v(l);if(H.ok&&H.status>=200&&H.status<300){let U=$s(),B=Is(U,"next"),W=document.referrer,J=window.location.origin;B==="closeWindow"?yu(window):B==="back"?W.startsWith(J)?window.location.href=W:window.location.href=J:l.id===0?window.location.href=Na(t.noteR):(a(l),m(!1))}else S(H.bodyText),console.log(H.bodyText)};return p?(0,ne.jsx)("p",{className:"red",children:"you killed this note"}):(0,ne.jsx)("div",{id:String(n.id),className:"note w-100 mw7 pa1 mb2",children:d?(0,ne.jsxs)("form",{onSubmit:N=>{b(N)},children:[y?(0,ne.jsx)("div",{className:"alert alert-err",children:y}):null,(0,ne.jsx)("p",{className:"mt2 mb1",children:"title:"}),(0,ne.jsx)("input",{type:"text",className:"title w-100 mb1 pt1 edit_form_input",name:"title",value:l.title,onChange:N=>{i(H=>$(G({},H),{title:N.target.value}))},autoFocus:l.title===""}),(0,ne.jsx)("br",{}),(0,ne.jsx)("p",{className:"mt2 mb1",children:"description:"}),(0,ne.jsx)("textarea",{id:x,className:"description w-100 mb1 pt1 edit_form_input",name:"text",rows:25,value:l.text,onChange:N=>{i(H=>$(G({},H),{text:N.target.value}))}}),(0,ne.jsxs)("div",{className:"edit_form_checkboxes mb3",children:[(0,ne.jsx)("input",{type:"checkbox",className:"is-markdown pointer",id:"edit_ismarkdown",name:"ismarkdown",checked:l.isMarkdown,onChange:N=>{i(H=>$(G({},H),{isMarkdown:N.target.checked}))}})," ",(0,ne.jsx)("label",{htmlFor:"edit_ismarkdown",className:"mr2",children:"use markdown?"}),(0,ne.jsx)("br",{})]}),(0,ne.jsxs)("div",{className:"edit_form_checkboxes mb3",children:[(0,ne.jsx)("input",{type:"checkbox",className:"is-markdown pointer",id:"edit_shared",name:"shared",checked:l.shared,onChange:N=>{i(H=>$(G({},H),{shared:N.target.checked}))}})," ",(0,ne.jsx)("label",{htmlFor:"edit_shared",className:"mr2",children:"public?"}),(0,ne.jsx)("br",{})]}),(0,ne.jsx)("input",{type:"submit",className:"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim",value:"save"})," ",(0,ne.jsx)("input",{type:"reset",className:"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim",value:"cancel",onClick:()=>{O(!1)}})]}):(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsxs)("div",{className:"display",children:[(0,ne.jsx)("div",{className:"link f5 lh-title",children:n.title===""?"[no title]":n.title}),(0,ne.jsx)("br",{}),n.isMarkdown?(0,ne.jsx)("div",{className:"description mt1",children:(0,ne.jsx)(Vc,{text:n.text})}):(0,ne.jsx)("div",{className:"description mt1 mid-gray",children:T2(n.text)}),(0,ne.jsxs)("div",{className:"link f7 dib gray w4",children:[(0,ne.jsx)("span",{title:(k=w==null?void 0:w[1])!=null?k:n.created,children:(E=w==null?void 0:w[0])!=null?E:"\xA0"})," - ",(0,ne.jsx)("span",{className:"gray",children:n.shared?"public":"private"})]})]}),t.dat.isowner?(0,ne.jsxs)("div",{className:"edit_links db mt3",children:[(0,ne.jsx)("button",{type:"button",onClick:()=>{O(!0)},className:"edit light-silver hover-blue",children:"edit\xA0\xA0"}),(0,ne.jsxs)("div",{className:"delete_link di",children:[(0,ne.jsx)("button",{type:"button",onClick:()=>{c(!0)},className:"delete light-silver hover-blue".concat(r?" dn":""),children:"delete"}),(0,ne.jsxs)("span",{className:"confirm red".concat(r?"":" dn"),children:[(0,ne.jsx)("button",{type:"button",onClick:()=>{c(!1)},children:"cancel\xA0/\xA0"}),(0,ne.jsx)("button",{type:"button",onClick:()=>{g()},className:"red",children:"destroy"})]})]})]}):null]})})}var Zc=ye(Gt());var or=zc(e=>({mode:{kind:"none"},tagcloud:{},setMode:t=>{e({mode:t})},setTagCloud:t=>{e({tagcloud:t})}}));function iS(e){switch(e.mode){case"top":{let t=typeof e.value=="number"?e.value:Number(e.value);return Number.isFinite(t)?{kind:"top",expanded:e.expanded,value:t}:{kind:"none"}}case"lowerBound":{let t=typeof e.value=="number"?e.value:Number(e.value);return Number.isFinite(t)?{kind:"lowerBound",expanded:e.expanded,value:t}:{kind:"none"}}case"related":{let t=typeof e.value=="string"?e.value:"",n=t?t.split(" "):[];return{kind:"related",expanded:e.expanded,value:n}}default:return{kind:"none"}}}function Lm(e){switch(e.kind){case"top":return{mode:"top",value:e.value,expanded:e.expanded};case"lowerBound":return{mode:"lowerBound",value:e.value,expanded:e.expanded};case"related":return{mode:"related",value:e.value.join(" "),expanded:e.expanded};case"none":return{mode:"none",value:"",expanded:!1}}}function wn(e){return e.kind==="none"?!1:e.expanded}function uS(e){return e.kind==="related"}function Hm(e,t){return e.kind==="none"?e:$(G({},e),{expanded:t})}var Ie=ye($e());function sS(e,t,n,a,l,i){let r=e(a-n);return(a-n<.01||r===0?1:e(t-n)/r)*(i-l)+l}function rS(e,t,n,a){let l=Jt(),i=e.map(m=>m.toLowerCase()),r=Object.entries(a).sort((m,p)=>m[0].toLowerCase().localeCompare(p[0].toLowerCase())),c=m=>"".concat(Na(l.userR)).concat(m===""?"":"/t:".concat(m)),d=[];for(let[m,p]of r){let _=m.toLowerCase(),y=sS(O=>O,p,t,n,100,150),S=sS(O=>Math.log(1+O),p,t,n,.6,1),x={fontSize:"".concat(y.toString(),"%"),opacity:S},w=i.length===0?null:i.includes(_)?(0,Ie.jsx)("a",{href:c(i.filter(O=>O!==_).map(bu).join("+")),className:"link mr2 tag-exclude",children:"\u2296"}):(0,Ie.jsx)("a",{href:c(i.concat([_]).map(bu).join("+")),className:"link mr2 tag-include",children:"\u2295"});d.push((0,Ie.jsx)("a",{href:c(bu(m)),className:"link tag mr1",style:x,children:m},"".concat(m,"-tag"))),w&&d.push((0,Ie.jsx)(Zc.default.Fragment,{children:w},"".concat(m,"-ie")))}return d}function oS({initialMode:e}){let t=or(O=>O.mode),n=or(O=>O.tagcloud),a=or(O=>O.setMode),l=or(O=>O.setTagCloud);if(Zc.default.useEffect(()=>{a(e)},[e]),Zc.default.useEffect(()=>{async function O(g){if(g.kind==="none")return;let b=await Iv(Lm(g));l(b!=null?b:{})}O(t)},[t,l]),t.kind==="none")return(0,Ie.jsx)("div",{className:"tag_cloud"});let i={kind:"top",expanded:wn(t),value:200},r={kind:"lowerBound",expanded:wn(t),value:1},c={kind:"lowerBound",expanded:wn(t),value:2},d={kind:"lowerBound",expanded:wn(t),value:5},m={kind:"lowerBound",expanded:wn(t),value:10},p={kind:"lowerBound",expanded:wn(t),value:20},_=Object.values(n),y=_.length?Math.min(..._):1,S=_.length?Math.max(..._):1;async function x(O){let g=Hm(t,O);a(g),await Pv(Lm(g))}async function w(O){JSON.stringify(t)===JSON.stringify(O)?await x(!wn(t)):a(Hm(O,!0))}return(0,Ie.jsxs)("div",{className:"tag_cloud mv3",children:[(0,Ie.jsxs)("div",{className:"tag_cloud_header mb2",children:[uS(t)?(0,Ie.jsx)("button",{type:"button",className:"pa1 f7 link hover-blue mr1 b",onClick:()=>{x(!wn(t))},children:"Related Tags"}):(0,Ie.jsxs)(Ie.Fragment,{children:[(0,Ie.jsx)("button",{type:"button",className:"pa1 f7 link hover-blue mr1".concat(JSON.stringify(t)===JSON.stringify(i)?" b":""),title:"show a cloud of your most-used tags",onClick:()=>{w(i)},children:"Top Tags"}),(0,Ie.jsx)("button",{type:"button",className:"pa1 f7 link hover-blue ml2 ".concat(JSON.stringify(t)===JSON.stringify(r)?" b":""),title:"show all tags",onClick:()=>{w(r)},children:"all"}),"\u2027",(0,Ie.jsx)("button",{type:"button",className:"pa1 f7 link hover-blue".concat(JSON.stringify(t)===JSON.stringify(c)?" b":""),title:"show tags with at least 2 bookmarks",onClick:()=>{w(c)},children:"2"}),"\u2027",(0,Ie.jsx)("button",{type:"button",className:"pa1 f7 link hover-blue".concat(JSON.stringify(t)===JSON.stringify(d)?" b":""),title:"show tags with at least 5 bookmarks",onClick:()=>{w(d)},children:"5"}),"\u2027",(0,Ie.jsx)("button",{type:"button",className:"pa1 f7 link hover-blue".concat(JSON.stringify(t)===JSON.stringify(m)?" b":""),title:"show tags with at least 10 bookmarks",onClick:()=>{w(m)},children:"10"}),"\u2027",(0,Ie.jsx)("button",{type:"button",className:"pa1 f7 link hover-blue".concat(JSON.stringify(t)===JSON.stringify(p)?" b":""),title:"show tags with at least 20 bookmarks",onClick:()=>{w(p)},children:"20"})]}),(0,Ie.jsx)("button",{type:"button",className:"pa1 ml2 f7 link silver hover-blue",onClick:()=>{x(!wn(t))},children:wn(t)?"hide":"show"})]}),wn(t)?(0,Ie.jsx)("div",{className:"tag_cloud_body",children:t.kind==="related"?rS(t.value,y,S,n):rS([],y,S,n)}):null]})}var ii=ye($e());function ku(e){return document.querySelector(e)}function cr(){let e=document.querySelector("#content");e&&e.setAttribute("view-rendered","")}var yD=e=>()=>{e.preventDefault(),a1()},bD=e=>t=>()=>{let n=ku(e);n&&((0,li.createRoot)(n).render((0,ii.jsx)(tS,{initial:t})),cr())},vD=e=>t=>()=>{let n=ku(e);n&&(0,li.createRoot)(n).render((0,ii.jsx)(oS,{initialMode:iS(t)}))},SD=e=>t=>()=>{let n=ku(e);n&&((0,li.createRoot)(n).render((0,ii.jsx)(h1,{initial:t})),cr())},TD=e=>t=>()=>{let n=ku(e);n&&((0,li.createRoot)(n).render((0,ii.jsx)(aS,{initial:t})),cr())},_D=e=>t=>()=>{let n=ku(e);n&&((0,li.createRoot)(n).render((0,ii.jsx)(lS,{initial:t})),cr())},kD=e=>t=>()=>{let n=ku(e);n&&((0,li.createRoot)(n).render((0,ii.jsx)(r1,{initial:t})),cr())};export{yD as logoutE,kD as renderAccountSettings,SD as renderAddForm,bD as renderBookmarks,_D as renderNote,TD as renderNotes,vD as renderTagCloud};-/*! Bundled license information:--scheduler/cjs/scheduler.production.js:- (**- * @license React- * scheduler.production.js- *- * Copyright (c) Meta Platforms, Inc. and affiliates.- *- * This source code is licensed under the MIT license found in the- * LICENSE file in the root directory of this source tree.- *)--react/cjs/react.production.js:- (**- * @license React- * react.production.js- *- * Copyright (c) Meta Platforms, Inc. and affiliates.- *- * This source code is licensed under the MIT license found in the- * LICENSE file in the root directory of this source tree.- *)--react-dom/cjs/react-dom.production.js:- (**- * @license React- * react-dom.production.js- *- * Copyright (c) Meta Platforms, Inc. and affiliates.- *- * This source code is licensed under the MIT license found in the- * LICENSE file in the root directory of this source tree.- *)--react-dom/cjs/react-dom-client.production.js:- (**- * @license React- * react-dom-client.production.js- *- * Copyright (c) Meta Platforms, Inc. and affiliates.- *- * This source code is licensed under the MIT license found in the- * LICENSE file in the root directory of this source tree.- *)--moment/moment.js:- (*! moment.js *)- (*! version : 2.30.1 *)- (*! authors : Tim Wood, Iskren Chernev, Moment.js contributors *)- (*! license : MIT *)- (*! momentjs.com *)--react/cjs/react-jsx-runtime.production.js:- (**- * @license React- * react-jsx-runtime.production.js- *- * Copyright (c) Meta Platforms, Inc. and affiliates.- *- * This source code is licensed under the MIT license found in the- * LICENSE file in the root directory of this source tree.- *)--ky/distribution/index.js:- (*! MIT License © Sindre Sorhus *)--dompurify/dist/purify.es.mjs:- (*! @license DOMPurify 3.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.1/LICENSE *)-*/-//# sourceMappingURL=app-OTQLPXA7.min.js.map
− static/js/app-OTQLPXA7.min.js.gz
binary file changed (120152 → absent bytes)
− static/js/app-OTQLPXA7.min.js.map
@@ -1,7 +0,0 @@-{- "version": 3,- "sources": ["../node_modules/scheduler/cjs/scheduler.production.js", "../node_modules/scheduler/index.js", "../node_modules/react/cjs/react.production.js", "../node_modules/react/index.js", "../node_modules/react-dom/cjs/react-dom.production.js", "../node_modules/react-dom/index.js", "../node_modules/react-dom/cjs/react-dom-client.production.js", "../node_modules/react-dom/client.js", "../node_modules/moment/moment.js", "../node_modules/react/cjs/react-jsx-runtime.production.js", "../node_modules/react/jsx-runtime.js", "../src/index.tsx", "../node_modules/ky/source/errors/KyError.ts", "../node_modules/ky/source/errors/HTTPError.ts", "../node_modules/ky/source/errors/NetworkError.ts", "../node_modules/ky/source/errors/NonError.ts", "../node_modules/ky/source/errors/ForceRetryError.ts", "../node_modules/ky/source/errors/SchemaValidationError.ts", "../node_modules/ky/source/errors/TimeoutError.ts", "../node_modules/ky/source/core/constants.ts", "../node_modules/ky/source/utils/body.ts", "../node_modules/ky/source/utils/is.ts", "../node_modules/ky/source/utils/merge.ts", "../node_modules/ky/source/utils/normalize.ts", "../node_modules/ky/source/utils/timeout.ts", "../node_modules/ky/source/utils/delay.ts", "../node_modules/ky/source/utils/options.ts", "../node_modules/ky/source/utils/is-network-error.ts", "../node_modules/ky/source/utils/type-guards.ts", "../node_modules/ky/source/core/Ky.ts", "../node_modules/ky/source/index.ts", "../src/globals.ts", "../src/api.ts", "../src/components/AccountSettings.tsx", "../src/components/AddForm.tsx", "../src/hooks/useTagSuggestions.ts", "../src/util.ts", "../src/components/TagSuggestionsDropdown.tsx", "../src/components/BList.tsx", "../node_modules/zustand/esm/vanilla.mjs", "../node_modules/zustand/esm/react.mjs", "../src/stores/bookmarksStore.ts", "../src/components/BMark.tsx", "../node_modules/dompurify/src/utils.ts", "../node_modules/dompurify/src/tags.ts", "../node_modules/dompurify/src/attrs.ts", "../node_modules/dompurify/src/regexp.ts", "../node_modules/dompurify/src/purify.ts", "../node_modules/marked/src/defaults.ts", "../node_modules/marked/src/rules.ts", "../node_modules/marked/src/helpers.ts", "../node_modules/marked/src/Tokenizer.ts", "../node_modules/marked/src/Lexer.ts", "../node_modules/marked/src/Renderer.ts", "../node_modules/marked/src/TextRenderer.ts", "../node_modules/marked/src/Parser.ts", "../node_modules/marked/src/Hooks.ts", "../node_modules/marked/src/Instance.ts", "../node_modules/marked/src/marked.ts", "../src/components/Markdown.tsx", "../src/components/NList.tsx", "../src/components/NNote.tsx", "../src/components/TagCloud.tsx", "../src/stores/tagCloudStore.ts", "../src/types.ts"],- "sourcesContent": ["/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.5\";\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n", "/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.5\";\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n", "/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.5\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.5\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.5\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.5\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.5\";\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n", "//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n", "/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "import { createRoot } from 'react-dom/client';\n\nimport { logout } from './api';\nimport { AccountSettingsView } from './components/AccountSettings';\nimport { AddForm } from './components/AddForm';\nimport { BList } from './components/BList';\nimport { NList } from './components/NList';\nimport { NNote } from './components/NNote';\nimport { TagCloud } from './components/TagCloud';\nimport type { AccountSettings, Bookmark, Note, TagCloudMode } from './types';\nimport { tagCloudModeToF } from './types';\n\nfunction selectEl(selector: string): Element | null {\n return document.querySelector(selector);\n}\n\nfunction viewRendered(): void {\n const el = document.querySelector('#content');\n if (el) el.setAttribute('view-rendered', '');\n}\n\nexport const logoutE = (e: Event) => () => {\n e.preventDefault();\n void logout();\n};\n\nexport const renderBookmarks = (renderElSelector: string) => (bmarks: Bookmark[]) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<BList initial={bmarks} />);\n viewRendered();\n};\n\nexport const renderTagCloud = (renderElSelector: string) => (tagCloudMode: TagCloudMode) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<TagCloud initialMode={tagCloudModeToF(tagCloudMode)} />);\n};\n\nexport const renderAddForm = (renderElSelector: string) => (bmark: Bookmark) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<AddForm initial={bmark} />);\n viewRendered();\n};\n\nexport const renderNotes = (renderElSelector: string) => (notes: Note[]) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<NList initial={notes} />);\n viewRendered();\n};\n\nexport const renderNote = (renderElSelector: string) => (note: Note) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<NNote initial={note} />);\n viewRendered();\n};\n\nexport const renderAccountSettings =\n (renderElSelector: string) => (accountSettings: AccountSettings) => () => {\n const el = selectEl(renderElSelector);\n if (!el) return;\n createRoot(el).render(<AccountSettingsView initial={accountSettings} />);\n viewRendered();\n };\n", "/**\nBase class for all Ky-specific errors. `HTTPError`, `NetworkError`, `TimeoutError`, and `ForceRetryError` extend this class.\n\nYou can use `instanceof KyError` to check if an error originated from Ky, or use the `isKyError()` type guard for cross-realm compatibility and TypeScript type narrowing.\n\nNote: `SchemaValidationError` is intentionally not considered a Ky error. `KyError` covers failures in Ky's HTTP lifecycle (bad status, timeout, retry), while schema validation errors originate from the user-provided schema, not from Ky itself.\n*/\nexport class KyError extends Error {\n\toverride name = 'KyError';\n\n\tget isKyError(): true {\n\t\treturn true;\n\t}\n}\n", "import type {NormalizedOptions} from '../types/options.js';\nimport type {KyRequest} from '../types/request.js';\nimport type {KyResponse} from '../types/response.js';\nimport {KyError} from './KyError.js';\n\n/**\nError thrown when the response has a non-2xx status code and `throwHttpErrors` is enabled.\n\nThe error has a `response` property with the `Response` object, a `request` property with the `Request` object, an `options` property with the normalized options (either passed to `ky` when creating an instance with `ky.create()` or directly when performing the request), and a `data` property with the pre-parsed response body. For JSON responses (based on `Content-Type`), the body is parsed using the `parseJson` option if set, or `JSON.parse` by default. For other content types, it is set as plain text. If the body is empty or parsing fails, `data` will be `undefined`. To avoid hanging or excessive buffering, `error.data` population is bounded by the request timeout and a 10 MiB response body size limit. The `data` property is populated before `beforeError` hooks run, so hooks can access it.\n\nThe response body is automatically consumed when populating `error.data`, so `error.response.json()` and other body methods will not work. Use `error.data` instead. The `error.response` object is still available for headers, status, etc.\n\nBe aware that some types of errors, such as network errors, inherently mean that a response was not received. In that case, the error will be an instance of `NetworkError` instead of `HTTPError` and will not contain a `response` property.\n*/\nexport class HTTPError<T = unknown> extends KyError {\n\toverride name = 'HTTPError' as const;\n\tresponse: KyResponse<T>;\n\trequest: KyRequest;\n\toptions: NormalizedOptions;\n\tdata: T | string | undefined;\n\n\tconstructor(response: Response, request: Request, options: NormalizedOptions) {\n\t\tconst code = (response.status || response.status === 0) ? response.status : '';\n\t\tconst title = response.statusText ?? '';\n\t\tconst status = `${code} ${title}`.trim();\n\t\tconst reason = status ? `status code ${status}` : 'an unknown error';\n\n\t\tsuper(`Request failed with ${reason}: ${request.method} ${request.url}`);\n\n\t\tthis.response = response;\n\t\tthis.request = request;\n\t\tthis.options = options;\n\t}\n}\n", "import type {KyRequest} from '../types/request.js';\nimport {KyError} from './KyError.js';\n\n/**\nError thrown when a network error occurs during the request (e.g., DNS failure, connection refused, offline). It has a `request` property with the `Request` object. The original error is available via the standard `cause` property.\n\nNetwork errors are automatically retried (for retriable methods).\n\nNote: Network errors are detected using runtime-specific heuristics. Unrecognized runtimes may produce errors that are not wrapped in `NetworkError`. Use the `shouldRetry` option to handle such cases.\n*/\nexport class NetworkError extends KyError {\n\toverride name = 'NetworkError' as const;\n\trequest: KyRequest;\n\n\tconstructor(request: Request, options?: {cause?: Error}) {\n\t\tsuper(`Request failed due to a network error: ${request.method} ${request.url}`, options);\n\t\tthis.request = request;\n\t}\n}\n", "/**\nWrapper for non-Error values that were thrown.\n\nIn JavaScript, any value can be thrown (not just Error instances). This class wraps such values to ensure consistent error handling.\n*/\nexport class NonError extends Error {\n\toverride name = 'NonError';\n\treadonly value: unknown;\n\n\tconstructor(value: unknown) {\n\t\tlet message = 'Non-error value was thrown';\n\n\t\t// Intentionally minimal as this error is just an edge-case.\n\t\ttry {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tmessage = value;\n\t\t\t} else if (value && typeof value === 'object' && 'message' in value && typeof value.message === 'string') {\n\t\t\t\tmessage = value.message;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Use default message if accessing properties throws\n\t\t}\n\n\t\tsuper(message);\n\n\t\tthis.value = value;\n\t}\n}\n", "import type {ForceRetryOptions} from '../core/constants.js';\nimport {KyError} from './KyError.js';\nimport {NonError} from './NonError.js';\n\n/**\nError used to signal a forced retry from `afterResponse` hooks.\n\nThis is thrown when `ky.retry()` is returned from an `afterResponse` hook. It is observable in `beforeRetry` and `beforeError` hooks via the `isForceRetryError()` type guard.\n*/\nexport class ForceRetryError extends KyError {\n\toverride name = 'ForceRetryError' as const;\n\tcustomDelay: number | undefined;\n\tcode: string | undefined;\n\tcustomRequest: Request | undefined;\n\n\tconstructor(options?: ForceRetryOptions) {\n\t\t// Runtime protection: wrap non-Error causes in NonError\n\t\t// TypeScript type is Error for guidance, but JS users can pass anything\n\t\tconst cause = options?.cause\n\t\t\t? (options.cause instanceof Error ? options.cause : new NonError(options.cause))\n\t\t\t: undefined;\n\n\t\tsuper(\n\t\t\toptions?.code ? `Forced retry: ${options.code}` : 'Forced retry',\n\t\t\tcause ? {cause} : undefined,\n\t\t);\n\n\t\tthis.customDelay = options?.delay;\n\t\tthis.code = options?.code;\n\t\tthis.customRequest = options?.request;\n\t}\n}\n", "import type {StandardSchemaV1Issue} from '../types/standard-schema.js';\n\n/**\nThe error thrown when [Standard Schema](https://github.com/standard-schema/standard-schema) validation fails in `.json(schema)`. It has an `issues` property with the validation issues from the schema.\n\nThis error intentionally does not extend `KyError` because it does not represent a failure in Ky's HTTP lifecycle. The request succeeded; the user's schema rejected the data. As such, it is not matched by `isKyError()`.\n\n@example\n```\nimport ky, {SchemaValidationError} from 'ky';\nimport {z} from 'zod';\n\nconst userSchema = z.object({name: z.string()});\n\ntry {\n\tconst user = await ky('/api/user').json(userSchema);\n\tconsole.log(user.name);\n} catch (error) {\n\tif (error instanceof SchemaValidationError) {\n\t\tconsole.error(error.issues);\n\t}\n}\n```\n*/\nexport class SchemaValidationError extends Error {\n\toverride name = 'SchemaValidationError' as const;\n\treadonly issues: readonly StandardSchemaV1Issue[];\n\n\tconstructor(issues: readonly StandardSchemaV1Issue[]) {\n\t\tsuper('Response schema validation failed');\n\t\tthis.issues = issues;\n\t}\n}\n", "import type {KyRequest} from '../types/request.js';\nimport {KyError} from './KyError.js';\n\n/**\nError thrown when the request times out. It has a `request` property with the `Request` object.\n*/\nexport class TimeoutError extends KyError {\n\toverride name = 'TimeoutError' as const;\n\trequest: KyRequest;\n\n\tconstructor(request: Request) {\n\t\tsuper(`Request timed out: ${request.method} ${request.url}`);\n\t\tthis.request = request;\n\t}\n}\n", "import type {Expect, Equal} from '@type-challenges/utils';\nimport {type KyOptionsRegistry, type RequestHttpMethod} from '../types/options.js';\n\nexport const supportsRequestStreams = (() => {\n\tlet duplexAccessed = false;\n\tlet hasContentType = false;\n\tconst supportsReadableStream = typeof globalThis.ReadableStream === 'function';\n\tconst supportsRequest = typeof globalThis.Request === 'function';\n\n\tif (supportsReadableStream && supportsRequest) {\n\t\ttry {\n\t\t\thasContentType = new globalThis.Request('https://empty.invalid', {\n\t\t\t\tbody: new globalThis.ReadableStream(),\n\t\t\t\tmethod: 'POST',\n\t\t\t\t// @ts-expect-error - Types are outdated.\n\t\t\t\tget duplex() {\n\t\t\t\t\tduplexAccessed = true;\n\t\t\t\t\treturn 'half';\n\t\t\t\t},\n\t\t\t}).headers.has('Content-Type');\n\t\t} catch (error) {\n\t\t\t// QQBrowser on iOS throws \"unsupported BodyInit type\" error (see issue #581)\n\t\t\tif (error instanceof Error && error.message === 'unsupported BodyInit type') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\treturn duplexAccessed && !hasContentType;\n})();\n\nexport const supportsAbortController = typeof globalThis.AbortController === 'function';\nexport const supportsAbortSignal = typeof globalThis.AbortSignal === 'function' && typeof globalThis.AbortSignal.any === 'function';\nexport const supportsResponseStreams = typeof globalThis.ReadableStream === 'function';\nexport const supportsFormData = typeof globalThis.FormData === 'function';\n\nexport const requestMethods = ['get', 'post', 'put', 'patch', 'head', 'delete'] as const;\n\nconst validate = <T extends Array<true>>() => undefined as unknown as T;\nvalidate<[\n\tExpect<Equal<typeof requestMethods[number], RequestHttpMethod>>,\n]>();\n\nexport const responseTypes = {\n\tjson: 'application/json',\n\ttext: 'text/*',\n\tformData: 'multipart/form-data',\n\tarrayBuffer: '*/*',\n\tblob: '*/*',\n\t// Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).\n\t// We still feature-check at runtime before exposing the shortcut.\n\tbytes: '*/*',\n} as const;\n\n// The maximum value of a 32bit int (see issue #117)\nexport const maxSafeTimeout = 2_147_483_647;\n\n// Size in bytes of a typical form boundary (e.g., '------WebKitFormBoundaryaxpyiPgbbPti10Rw'), used to help estimate upload size\nexport const usualFormBoundarySize = 40;\n\n/**\nSymbol that can be returned by a `beforeRetry` hook to stop retrying without throwing an error.\n*/\nexport const stop = Symbol('stop');\n\n/**\nOptions for forcing a retry via `ky.retry()`.\n*/\nexport type ForceRetryOptions = {\n\t/**\n\tCustom delay in milliseconds before retrying.\n\n\tIf not provided, uses the default retry delay calculation based on `retry.delay` configuration.\n\n\t**Note:** Custom delays bypass jitter and `backoffLimit`. This is intentional, as custom delays often come from server responses (e.g., `Retry-After` headers) and should be respected exactly as specified.\n\t*/\n\tdelay?: number;\n\n\t/**\n\tError code for the retry.\n\n\tThis machine-readable identifier will be included in the error message passed to `beforeRetry` hooks, allowing you to distinguish between different types of forced retries.\n\n\t@example\n\t```\n\treturn ky.retry({code: 'RATE_LIMIT'});\n\t// Resulting error message: 'Forced retry: RATE_LIMIT'\n\t```\n\t*/\n\tcode?: string;\n\n\t/**\n\tOriginal error that caused the retry.\n\n\tThis allows you to preserve the error chain when forcing a retry based on caught exceptions. The error will be set as the `cause` of the `ForceRetryError`, enabling proper error chain traversal.\n\n\t@example\n\t```\n\ttry {\n\t\tconst data = await response.json();\n\t\tvalidateBusinessLogic(data);\n\t} catch (error) {\n\t\treturn ky.retry({\n\t\t\tcode: 'VALIDATION_FAILED',\n\t\t\tcause: error // Preserves original error in chain\n\t\t});\n\t}\n\t```\n\t*/\n\tcause?: Error;\n\n\t/**\n\tCustom request to use for the retry.\n\n\tThis allows you to modify or completely replace the request during a forced retry. The custom request becomes the starting point for the retry - `beforeRetry` hooks can still further modify it if needed.\n\n\t**Note:** The custom request's `signal` will be replaced with Ky's managed signal to handle timeouts and user-provided abort signals correctly. If the original request body has been consumed, you must provide a new body or clone the request before consuming.\n\n\t**Warning:** Custom retry requests are not sanitized. If you reuse headers across origins, remove any credentials you do not want forwarded.\n\n\t@example\n\t```\n\t// Fallback to a different endpoint\n\treturn ky.retry({\n\t\trequest: new Request('https://backup-api.com/endpoint', {\n\t\t\tmethod: request.method,\n\t\t\theaders: request.headers,\n\t\t}),\n\t\tcode: 'BACKUP_ENDPOINT'\n\t});\n\n\t// Retry with refreshed authentication token\n\tconst data = await response.json();\n\treturn ky.retry({\n\t\trequest: new Request(request, {\n\t\t\theaders: {\n\t\t\t\t...Object.fromEntries(request.headers),\n\t\t\t\t'Authorization': `Bearer ${data.newToken}`\n\t\t\t}\n\t\t}),\n\t\tcode: 'TOKEN_REFRESHED'\n\t});\n\t```\n\t*/\n\trequest?: Request;\n};\n\n/**\nMarker returned by `ky.retry()` to signal a forced retry from `afterResponse` hooks.\n*/\nexport class RetryMarker {\n\toptions: ForceRetryOptions | undefined;\n\n\tconstructor(options?: ForceRetryOptions) {\n\t\tthis.options = options;\n\t}\n}\n\n/**\nForce a retry from an `afterResponse` hook.\n\nThis allows you to retry a request based on the response content, even if the response has a successful status code. The retry will respect the `retry.limit` option and skip the `shouldRetry` check. The forced retry is observable in `beforeRetry` hooks, where the error will be a `ForceRetryError`.\n\n@param options - Optional configuration for the retry.\n\n@example\n```\nimport ky, {isForceRetryError} from 'ky';\n\nconst api = ky.extend({\n\thooks: {\n\t\tafterResponse: [\n\t\t\tasync ({request, response}) => {\n\t\t\t\t// Retry based on response body content\n\t\t\t\tif (response.status === 200) {\n\t\t\t\t\tconst data = await response.json();\n\n\t\t\t\t\t// Simple retry with default delay\n\t\t\t\t\tif (data.error?.code === 'TEMPORARY_ERROR') {\n\t\t\t\t\t\treturn ky.retry();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with custom delay from API response\n\t\t\t\t\tif (data.error?.code === 'RATE_LIMIT') {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\tdelay: data.error.retryAfter * 1000,\n\t\t\t\t\t\t\tcode: 'RATE_LIMIT'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with a modified request (e.g., fallback endpoint)\n\t\t\t\t\tif (data.error?.code === 'FALLBACK_TO_BACKUP') {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\trequest: new Request('https://backup-api.com/endpoint', {\n\t\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcode: 'BACKUP_ENDPOINT'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with refreshed authentication\n\t\t\t\t\tif (data.error?.code === 'TOKEN_REFRESH' && data.newToken) {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\trequest: new Request(request, {\n\t\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\t...Object.fromEntries(request.headers),\n\t\t\t\t\t\t\t\t\t'Authorization': `Bearer ${data.newToken}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcode: 'TOKEN_REFRESHED'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with cause to preserve error chain\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvalidateResponse(data);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\tcode: 'VALIDATION_FAILED',\n\t\t\t\t\t\t\tcause: error\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\tbeforeRetry: [\n\t\t\t({error, retryCount}) => {\n\t\t\t\t// Observable in beforeRetry hooks\n\t\t\t\tif (isForceRetryError(error)) {\n\t\t\t\t\tconsole.log(`Forced retry #${retryCount}: ${error.message}`);\n\t\t\t\t\t// Example output: \"Forced retry #1: Forced retry: RATE_LIMIT\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n});\n\nconst response = await api.get('https://example.com/api');\n```\n*/\nexport const retry = (options?: ForceRetryOptions) => new RetryMarker(options);\n\nexport const kyOptionKeys: KyOptionsRegistry = {\n\tjson: true,\n\tparseJson: true,\n\tstringifyJson: true,\n\tsearchParams: true,\n\tbaseUrl: true,\n\tprefix: true,\n\tretry: true,\n\ttimeout: true,\n\ttotalTimeout: true,\n\thooks: true,\n\tthrowHttpErrors: true,\n\tonDownloadProgress: true,\n\tonUploadProgress: true,\n\tfetch: true,\n\tcontext: true,\n};\n\n// Standard RequestInit options that should NOT be passed separately to fetch()\n// because they're already applied to the Request object.\n// Note: `dispatcher` and `priority` are NOT included here - they're fetch-only\n// options that the Request constructor doesn't accept, so they need to be passed\n// separately to fetch().\nexport const requestOptionsRegistry = {\n\tmethod: true,\n\theaders: true,\n\tbody: true,\n\tmode: true,\n\tcredentials: true,\n\tcache: true,\n\tredirect: true,\n\treferrer: true,\n\treferrerPolicy: true,\n\tintegrity: true,\n\tkeepalive: true,\n\tsignal: true,\n\twindow: true,\n\tduplex: true,\n} as const;\n", "import type {Options} from '../types/options.js';\nimport {usualFormBoundarySize} from '../core/constants.js';\n\nconst encoder = new TextEncoder();\n\n// eslint-disable-next-line @typescript-eslint/no-restricted-types\nexport const getBodySize = (body?: BodyInit | null): number => {\n\tif (!body) {\n\t\treturn 0;\n\t}\n\n\tif (body instanceof FormData) {\n\t\t// This is an approximation, as FormData size calculation is not straightforward\n\t\tlet size = 0;\n\n\t\tfor (const [key, value] of body) {\n\t\t\tsize += usualFormBoundarySize;\n\t\t\tsize += encoder.encode(`Content-Disposition: form-data; name=\"${key}\"`).byteLength;\n\t\t\tsize += typeof value === 'string'\n\t\t\t\t? encoder.encode(value).byteLength\n\t\t\t\t: value.size;\n\t\t}\n\n\t\treturn size;\n\t}\n\n\tif (body instanceof Blob) {\n\t\treturn body.size;\n\t}\n\n\tif (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {\n\t\treturn body.byteLength;\n\t}\n\n\tif (typeof body === 'string') {\n\t\treturn encoder.encode(body).byteLength;\n\t}\n\n\tif (body instanceof URLSearchParams) {\n\t\treturn encoder.encode(body.toString()).byteLength;\n\t}\n\n\treturn 0;\n};\n\nconst withProgress = (stream: ReadableStream<Uint8Array>, totalBytes: number, onProgress: Options['onDownloadProgress'] | Options['onUploadProgress']): ReadableStream<Uint8Array> => {\n\tlet previousChunk: Uint8Array | undefined;\n\tlet transferredBytes = 0;\n\n\treturn stream.pipeThrough(new TransformStream<Uint8Array, Uint8Array>({\n\t\ttransform(currentChunk, controller) {\n\t\t\tcontroller.enqueue(currentChunk);\n\n\t\t\tif (previousChunk) {\n\t\t\t\ttransferredBytes += previousChunk.byteLength;\n\n\t\t\t\tlet percent = totalBytes === 0 ? 0 : transferredBytes / totalBytes;\n\t\t\t\t// Avoid reporting 100% progress before the stream is actually finished (in case totalBytes is inaccurate)\n\t\t\t\tif (percent >= 1) {\n\t\t\t\t\t// Epsilon is used here to get as close as possible to 100% without reaching it.\n\t\t\t\t\t// If we were to use 0.99 here, percent could potentially go backwards.\n\t\t\t\t\tpercent = 1 - Number.EPSILON;\n\t\t\t\t}\n\n\t\t\t\tonProgress?.({percent, totalBytes: Math.max(totalBytes, transferredBytes), transferredBytes}, previousChunk);\n\t\t\t}\n\n\t\t\tpreviousChunk = currentChunk;\n\t\t},\n\t\tflush() {\n\t\t\tif (previousChunk) {\n\t\t\t\ttransferredBytes += previousChunk.byteLength;\n\t\t\t\tonProgress?.({percent: 1, totalBytes: Math.max(totalBytes, transferredBytes), transferredBytes}, previousChunk);\n\t\t\t}\n\t\t},\n\t}));\n};\n\nexport const streamResponse = (response: Response, onDownloadProgress: Options['onDownloadProgress']) => {\n\tif (!response.body) {\n\t\treturn response;\n\t}\n\n\tconst responseInit = {\n\t\tstatus: response.status,\n\t\tstatusText: response.statusText,\n\t\theaders: response.headers,\n\t};\n\n\tif (response.status === 204) {\n\t\treturn new Response(null, responseInit);\n\t}\n\n\tconst totalBytes = Math.max(0, Number(response.headers.get('content-length')) || 0);\n\treturn new Response(withProgress(response.body, totalBytes, onDownloadProgress), responseInit);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-restricted-types\nexport const streamRequest = (request: Request, onUploadProgress: Options['onUploadProgress'], originalBody?: BodyInit | null) => {\n\tif (!request.body) {\n\t\treturn request;\n\t}\n\n\t// Use original body for size calculation since request.body is already a stream\n\tconst totalBytes = getBodySize(originalBody ?? request.body);\n\n\treturn new Request(request, {\n\t\t// @ts-expect-error - Types are outdated.\n\t\tduplex: 'half',\n\t\tbody: withProgress(request.body, totalBytes, onUploadProgress),\n\t});\n};\n", "// eslint-disable-next-line @typescript-eslint/no-restricted-types\nexport const isObject = (value: unknown): value is object => value !== null && typeof value === 'object';\n", "import type {KyHeadersInit, Options} from '../types/options.js';\nimport type {Hooks} from '../types/hooks.js';\nimport {supportsAbortSignal} from '../core/constants.js';\nimport {isObject} from './is.js';\n\nconst replaceSymbol: unique symbol = Symbol('replaceOption');\n\ntype ReplaceMarked<T> = {\n\t[replaceSymbol]: true;\n\tvalue: T;\n};\n\ntype ReplaceState<T> = {\n\tisReplace: boolean;\n\tvalue: T;\n};\n\nconst getReplaceState = <T>(value: T): ReplaceState<T> =>\n\tisObject(value) && (value as any)[replaceSymbol] === true\n\t\t? {\n\t\t\tisReplace: true,\n\t\t\tvalue: (value as unknown as ReplaceMarked<T>).value,\n\t\t}\n\t\t: {\n\t\t\tisReplace: false,\n\t\t\tvalue,\n\t\t};\n\n/**\nWraps a value so that `ky.extend()` will replace the parent value instead of merging with it. Works with hooks, headers, search parameters, context, and any other deep-merged option.\n\nBy default, `.extend()` deep-merges options with the parent instance: hooks get appended, headers get merged, and search parameters get accumulated. Use `replaceOption` when you want to fully replace a merged property instead.\n\n@example\n```\nimport ky, {replaceOption} from 'ky';\n\nconst base = ky.create({\n\thooks: {beforeRequest: [addAuth, addTracking]},\n});\n\n// Replaces instead of appending\nconst extended = base.extend({\n\thooks: replaceOption({beforeRequest: [onlyThis]}),\n});\n// hooks.beforeRequest is now [onlyThis], not [addAuth, addTracking, onlyThis]\n```\n*/\nexport const replaceOption = <T>(value: T): T => {\n\tconst markedValue: ReplaceMarked<T> = {[replaceSymbol]: true, value};\n\treturn markedValue as unknown as T;\n};\n\nexport const validateAndMerge = (...sources: Array<Partial<Options> | undefined>): Partial<Options> => {\n\tfor (const source of sources) {\n\t\tif ((!isObject(source) || Array.isArray(source)) && source !== undefined) {\n\t\t\tthrow new TypeError('The `options` argument must be an object');\n\t\t}\n\t}\n\n\treturn deepMerge({}, ...sources);\n};\n\nexport const mergeHeaders = (source1: KyHeadersInit = {}, source2: KyHeadersInit = {}) => {\n\tconst result = new globalThis.Headers(source1 as RequestInit['headers']);\n\tconst isHeadersInstance = source2 instanceof globalThis.Headers;\n\tconst source = new globalThis.Headers(source2 as RequestInit['headers']);\n\n\tfor (const [key, value] of source.entries()) {\n\t\tif ((isHeadersInstance && value === 'undefined') || value === undefined) {\n\t\t\tresult.delete(key);\n\t\t} else {\n\t\t\tresult.set(key, value);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n\tif (!isObject(value) || Array.isArray(value)) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n};\n\nexport const cloneShallow = <T>(value: T): T => {\n\tif (value instanceof URLSearchParams) {\n\t\tconst copy = new URLSearchParams(value) as URLSearchParams & {[deletedParametersSymbol]?: Set<string>};\n\t\tconst deleted = (value as URLSearchParams & {[deletedParametersSymbol]?: Set<string>})[deletedParametersSymbol];\n\t\tif (deleted) {\n\t\t\t// Preserve internal deletion markers so init-hook cloning does not resurrect params removed during option merging.\n\t\t\tcopy[deletedParametersSymbol] = new Set(deleted);\n\t\t}\n\n\t\treturn copy as T;\n\t}\n\n\tif (value instanceof globalThis.Headers) {\n\t\treturn new globalThis.Headers(value) as T;\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn [...value] as T;\n\t}\n\n\tif (isPlainObject(value)) {\n\t\tconst copy = {...value};\n\t\treturn copy as T;\n\t}\n\n\treturn value;\n};\n\nconst normalizeHeaderObject = (headers: Record<string, string | undefined>): Record<string, string> =>\n\tObject.fromEntries(\n\t\tObject.entries(headers).filter((entry): entry is [string, string] => entry[1] !== undefined),\n\t);\n\nconst mergeHeaderContainers = (source1: KyHeadersInit, source2: KyHeadersInit): KyHeadersInit => {\n\tif (isPlainObject(source1) && isPlainObject(source2)) {\n\t\treturn normalizeHeaderObject({...source1, ...source2});\n\t}\n\n\treturn mergeHeaders(source1, source2);\n};\n\nfunction newHookValue<K extends keyof Hooks>(original: Hooks, incoming: Hooks, property: K): Required<Hooks>[K] {\n\treturn (Object.hasOwn(incoming, property) && incoming[property] === undefined)\n\t\t? []\n\t\t: deepMerge<Required<Hooks>[K]>(original[property] ?? [], incoming[property] ?? []);\n}\n\nexport const mergeHooks = (original: Hooks = {}, incoming: Hooks = {}): Required<Hooks> => (\n\t{\n\t\tinit: newHookValue(original, incoming, 'init'),\n\t\tbeforeRequest: newHookValue(original, incoming, 'beforeRequest'),\n\t\tbeforeRetry: newHookValue(original, incoming, 'beforeRetry'),\n\t\tbeforeError: newHookValue(original, incoming, 'beforeError'),\n\t\tafterResponse: newHookValue(original, incoming, 'afterResponse'),\n\t}\n);\n\nexport const deletedParametersSymbol = Symbol('deletedParameters');\n\nconst appendSearchParameters = (target: any, source: any): URLSearchParams => {\n\tconst result = new URLSearchParams() as URLSearchParams & {[deletedParametersSymbol]?: Set<string>};\n\tconst deleted = new Set<string>();\n\n\tfor (const input of [target, source]) {\n\t\tif (input === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (input instanceof URLSearchParams) {\n\t\t\tfor (const [key, value] of input.entries()) {\n\t\t\t\tresult.append(key, value);\n\t\t\t\tdeleted.delete(key);\n\t\t\t}\n\n\t\t\tconst inputDeleted = (input as any)[deletedParametersSymbol] as Set<string> | undefined;\n\t\t\tif (inputDeleted) {\n\t\t\t\tfor (const key of inputDeleted) {\n\t\t\t\t\tresult.delete(key);\n\t\t\t\t\tdeleted.add(key);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (Array.isArray(input)) {\n\t\t\tfor (const pair of input) {\n\t\t\t\tif (!Array.isArray(pair) || pair.length !== 2) {\n\t\t\t\t\tthrow new TypeError('Array search parameters must be provided in [[key, value], ...] format');\n\t\t\t\t}\n\n\t\t\t\tresult.append(String(pair[0]), String(pair[1]));\n\t\t\t\tdeleted.delete(String(pair[0]));\n\t\t\t}\n\t\t} else if (isObject(input)) {\n\t\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\tresult.delete(key);\n\t\t\t\t\tdeleted.add(key);\n\t\t\t\t} else {\n\t\t\t\t\tresult.append(key, String(value));\n\t\t\t\t\tdeleted.delete(key);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// String\n\t\t\tconst parameters = new URLSearchParams(input);\n\t\t\tfor (const [key, value] of parameters.entries()) {\n\t\t\t\tresult.append(key, value);\n\t\t\t\tdeleted.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (deleted.size > 0) {\n\t\tresult[deletedParametersSymbol] = deleted;\n\t}\n\n\treturn result;\n};\n\n// TODO: Make this strongly-typed (no `any`).\nexport const deepMerge = <T>(...sources: Array<Partial<T> | undefined>): T => {\n\tlet returnValue: any = {};\n\tlet headers: KyHeadersInit = {};\n\tlet hooks = {};\n\tlet searchParameters: any;\n\tconst signals: AbortSignal[] = [];\n\n\tfor (const source of sources) {\n\t\tif (Array.isArray(source)) {\n\t\t\tif (!Array.isArray(returnValue)) {\n\t\t\t\treturnValue = [];\n\t\t\t}\n\n\t\t\treturnValue = [...returnValue, ...source];\n\t\t} else if (isObject(source)) {\n\t\t\tfor (let [key, value] of Object.entries(source)) {\n\t\t\t\t// Special handling for AbortSignal instances\n\t\t\t\tif (key === 'signal' && value instanceof globalThis.AbortSignal) {\n\t\t\t\t\tsignals.push(value);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst replaceState = getReplaceState(value);\n\t\t\t\tconst {isReplace} = replaceState;\n\t\t\t\tvalue = replaceState.value;\n\n\t\t\t\t// Special handling for context - shallow merge only\n\t\t\t\tif (key === 'context') {\n\t\t\t\t\tif (value !== undefined && value !== null && (!isObject(value) || Array.isArray(value))) {\n\t\t\t\t\t\tthrow new TypeError('The `context` option must be an object');\n\t\t\t\t\t}\n\n\t\t\t\t\t// Shallow merge: always create a new object to prevent mutation bugs\n\t\t\t\t\treturnValue = {\n\t\t\t\t\t\t...returnValue,\n\t\t\t\t\t\tcontext: (value === undefined || value === null)\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: (isReplace\n\t\t\t\t\t\t\t\t? {...value}\n\t\t\t\t\t\t\t\t: {...returnValue.context, ...value}),\n\t\t\t\t\t};\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Special handling for searchParams\n\t\t\t\tif (key === 'searchParams') {\n\t\t\t\t\tif (value === undefined || value === null) {\n\t\t\t\t\t\t// Explicit undefined or null removes searchParams\n\t\t\t\t\t\tsearchParameters = undefined;\n\t\t\t\t\t} else if (isReplace) {\n\t\t\t\t\t\tsearchParameters = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// First source: keep as-is to preserve type (string/object/URLSearchParams)\n\t\t\t\t\t\t// Subsequent sources: merge and convert to URLSearchParams\n\t\t\t\t\t\tsearchParameters = searchParameters === undefined ? value : appendSearchParameters(searchParameters, value);\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (isObject(value) && !isReplace && key in returnValue) {\n\t\t\t\t\tvalue = deepMerge(returnValue[key], value);\n\t\t\t\t}\n\n\t\t\t\treturnValue = {...returnValue, [key]: value};\n\t\t\t}\n\n\t\t\tif (isObject((source as any).hooks)) {\n\t\t\t\tconst {value: hookValue, isReplace} = getReplaceState((source as any).hooks);\n\t\t\t\thooks = isReplace\n\t\t\t\t\t? mergeHooks({}, hookValue)\n\t\t\t\t\t: mergeHooks(hooks, hookValue);\n\n\t\t\t\treturnValue.hooks = hooks;\n\t\t\t}\n\n\t\t\tif (isObject((source as any).headers)) {\n\t\t\t\tconst {value: headerValue, isReplace} = getReplaceState((source as any).headers);\n\t\t\t\theaders = isReplace\n\t\t\t\t\t? cloneShallow(headerValue as KyHeadersInit)\n\t\t\t\t\t: mergeHeaderContainers(headers, headerValue as KyHeadersInit);\n\n\t\t\t\treturnValue.headers = headers;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (searchParameters !== undefined) {\n\t\treturnValue.searchParams = searchParameters;\n\t}\n\n\tif (signals.length > 0) {\n\t\tif (signals.length === 1) {\n\t\t\treturnValue.signal = signals[0];\n\t\t} else if (supportsAbortSignal) {\n\t\t\treturnValue.signal = AbortSignal.any(signals);\n\t\t} else {\n\t\t\t// When AbortSignal.any is not available, use the last signal\n\t\t\t// This maintains the previous behavior before signal merging was added\n\t\t\t// This can be remove when the `supportsAbortSignal` check is removed.`\n\t\t\treturnValue.signal = signals.at(-1);\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n", "import {requestMethods} from '../core/constants.js';\nimport type {RetryOptions} from '../types/retry.js';\nimport type {HttpMethod, RequestHttpMethod} from '../types/options.js';\n\nexport const normalizeRequestMethod = (input: string): string =>\n\trequestMethods.includes(input as RequestHttpMethod) ? input.toUpperCase() : input;\n\nconst retryMethods: HttpMethod[] = ['get', 'put', 'head', 'delete', 'options', 'trace'];\n\nconst retryStatusCodes = [408, 413, 429, 500, 502, 503, 504];\n\nconst retryAfterStatusCodes = [413, 429, 503];\n\ntype InternalRetryOptions = Required<Omit<RetryOptions, 'shouldRetry'>> & Pick<RetryOptions, 'shouldRetry'>;\n\nconst defaultRetryOptions: InternalRetryOptions = {\n\tlimit: 2,\n\tmethods: retryMethods,\n\tstatusCodes: retryStatusCodes,\n\tafterStatusCodes: retryAfterStatusCodes,\n\tmaxRetryAfter: Number.POSITIVE_INFINITY,\n\tbackoffLimit: Number.POSITIVE_INFINITY,\n\tdelay: attemptCount => 0.3 * (2 ** (attemptCount - 1)) * 1000,\n\tjitter: undefined,\n\tretryOnTimeout: false,\n};\n\nexport const normalizeRetryOptions = (retry: number | RetryOptions = {}): InternalRetryOptions => {\n\tif (typeof retry === 'number') {\n\t\treturn {\n\t\t\t...defaultRetryOptions,\n\t\t\tlimit: retry,\n\t\t};\n\t}\n\n\tif (retry.methods && !Array.isArray(retry.methods)) {\n\t\tthrow new Error('retry.methods must be an array');\n\t}\n\n\tif (retry.statusCodes && !Array.isArray(retry.statusCodes)) {\n\t\tthrow new Error('retry.statusCodes must be an array');\n\t}\n\n\tconst normalizedRetry = Object.fromEntries(Object.entries({\n\t\t...retry,\n\t\tmethods: retry.methods?.map(method => method.toLowerCase()),\n\t}).filter(([, value]) => value !== undefined)) as RetryOptions;\n\n\treturn {\n\t\t...defaultRetryOptions,\n\t\t...normalizedRetry,\n\t};\n};\n", "import {TimeoutError} from '../errors/TimeoutError.js';\n\nexport type TimeoutOptions = {\n\ttimeout: number;\n\tfetch: typeof fetch;\n};\n\n// `Promise.race()` workaround (#91)\nexport default async function timeout(\n\trequest: Request,\n\tinit: RequestInit,\n\tabortController: AbortController | undefined,\n\toptions: TimeoutOptions,\n): Promise<Response> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tif (abortController) {\n\t\t\t\tabortController.abort();\n\t\t\t}\n\n\t\t\treject(new TimeoutError(request));\n\t\t}, options.timeout);\n\n\t\tvoid options\n\t\t\t.fetch(request, init)\n\t\t\t.then(resolve)\n\t\t\t.catch(reject)\n\t\t\t.then(() => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t});\n\t});\n}\n", "// https://github.com/sindresorhus/delay/tree/ab98ae8dfcb38e1593286c94d934e70d14a4e111\n\nimport {type InternalOptions} from '../types/options.js';\n\nexport type DelayOptions = {\n\tsignal?: InternalOptions['signal'];\n};\n\nexport default async function delay(\n\tms: number,\n\t{signal}: DelayOptions,\n): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tif (signal) {\n\t\t\tsignal.throwIfAborted();\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tfunction abortHandler() {\n\t\t\tclearTimeout(timeoutId);\n\t\t\treject(signal!.reason as Error);\n\t\t}\n\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tsignal?.removeEventListener('abort', abortHandler);\n\t\t\tresolve();\n\t\t}, ms);\n\t});\n}\n", "import {kyOptionKeys, requestOptionsRegistry} from '../core/constants.js';\nimport type {SearchParamsOption} from '../types/options.js';\nimport {deletedParametersSymbol} from './merge.js';\n\nexport const findUnknownOptions = (\n\toptions: Record<string, unknown>,\n): Record<string, unknown> => {\n\tconst unknownOptions: Record<string, unknown> = {};\n\n\tfor (const key in options) {\n\t\t// Skip inherited properties\n\t\tif (!Object.hasOwn(options, key)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Forward every non-standard, non-Ky option to fetch().\n\t\t// We intentionally do not check whether the key also exists on `Request`, because some runtimes\n\t\t// patch `Request.prototype` with fetch-only extensions. For example, Next.js adds `next`, and the\n\t\t// old `key in request` heuristic dropped it unless Ky kept a special-case allowlist.\n\t\t// Passing all non-standard keys makes that allowlist unnecessary and preserves future fetch extensions too.\n\t\tif (!(key in requestOptionsRegistry) && !(key in kyOptionKeys)) {\n\t\t\tunknownOptions[key] = options[key];\n\t\t}\n\t}\n\n\treturn unknownOptions;\n};\n\nexport const hasSearchParameters = (search: SearchParamsOption): boolean => {\n\tif (search === undefined) {\n\t\treturn false;\n\t}\n\n\t// The `typeof array` still gives \"object\", so we need different checking for array.\n\tif (Array.isArray(search)) {\n\t\treturn search.length > 0;\n\t}\n\n\tif (search instanceof URLSearchParams) {\n\t\treturn search.size > 0 || Boolean((search as any)[deletedParametersSymbol]?.size);\n\t}\n\n\t// Record\n\tif (typeof search === 'object') {\n\t\treturn Object.keys(search).length > 0;\n\t}\n\n\tif (typeof search === 'string') {\n\t\treturn search.trim().length > 0;\n\t}\n\n\treturn Boolean(search);\n};\n", "// Inlined from https://github.com/sindresorhus/is-network-error v1.3.1\n\nconst objectToString = Object.prototype.toString;\n\nconst isError = (value: unknown): value is Error => objectToString.call(value) === '[object Error]';\n\nconst errorMessages = new Set([\n\t'network error', // Chrome\n\t'NetworkError when attempting to fetch resource.', // Firefox\n\t'The Internet connection appears to be offline.', // Safari 16\n\t'Network request failed', // `cross-fetch`\n\t'fetch failed', // Undici (Node.js)\n\t'terminated', // Undici (Node.js)\n\t' A network error occurred.', // Bun (WebKit) - leading space is intentional\n\t'Network connection lost', // Cloudflare Workers (fetch)\n]);\n\nexport default function isRawNetworkError(error: unknown): error is TypeError {\n\tconst isValid = error\n\t\t&& isError(error)\n\t\t&& error.name === 'TypeError'\n\t\t&& typeof error.message === 'string';\n\n\tif (!isValid) {\n\t\treturn false;\n\t}\n\n\tconst {message, stack} = error;\n\n\t// Safari 17+ has generic message but no stack for network errors\n\tif (message === 'Load failed') {\n\t\treturn stack === undefined\n\t\t\t// Sentry adds its own stack trace to the fetch error, so also check for that\n\t\t\t|| '__sentry_captured__' in error;\n\t}\n\n\t// Deno network errors start with specific text\n\tif (message.startsWith('error sending request for url')) {\n\t\treturn true;\n\t}\n\n\t// Chrome: exact \"Failed to fetch\" or with hostname: \"Failed to fetch (example.com)\"\n\tif (message === 'Failed to fetch' || (message.startsWith('Failed to fetch (') && message.endsWith(')'))) {\n\t\treturn true;\n\t}\n\n\t// Standard network error messages\n\treturn errorMessages.has(message);\n}\n", "import type {KyError} from '../errors/KyError.js';\nimport {HTTPError} from '../errors/HTTPError.js';\nimport {NetworkError} from '../errors/NetworkError.js';\nimport {TimeoutError} from '../errors/TimeoutError.js';\nimport {ForceRetryError} from '../errors/ForceRetryError.js';\n\n// Handles cross-realm cases (e.g., iframes, different JS contexts) where `instanceof` fails.\nconst isErrorType = (error: unknown, cls: {name: string}): boolean =>\n\terror instanceof (cls as any) || (error as any)?.name === cls.name;\n\n/**\nType guard to check if an error is a `KyError`.\n\nNote: `SchemaValidationError` is intentionally not considered a Ky error. `KyError` covers failures in Ky's HTTP lifecycle (bad status, timeout, retry), while schema validation errors originate from the user-provided schema, not from Ky itself.\n\n@param error - The error to check\n@returns `true` if the error is a Ky error, `false` otherwise\n\n@example\n```\nimport ky, {isKyError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data');\n} catch (error) {\n\tif (isKyError(error)) {\n\t\t// Handle Ky-specific errors\n\t\tconsole.log('Ky error occurred:', error.message);\n\t} else {\n\t\t// Handle other errors\n\t\tconsole.log('Unknown error:', error);\n\t}\n}\n```\n*/\nexport function isKyError(error: unknown): error is KyError {\n\treturn (error as any)?.isKyError === true || isHTTPError(error) || isNetworkError(error) || isTimeoutError(error) || isForceRetryError(error);\n}\n\n/**\nType guard to check if an error is an `HTTPError`.\n\n@param error - The error to check\n@returns `true` if the error is an `HTTPError`, `false` otherwise\n\n@example\n```\nimport ky, {isHTTPError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data');\n} catch (error) {\n\tif (isHTTPError(error)) {\n\t\tconsole.log('HTTP error status:', error.response.status);\n\t}\n}\n```\n*/\nexport function isHTTPError<T = unknown>(error: unknown): error is HTTPError<T> {\n\treturn isErrorType(error, HTTPError);\n}\n\n/**\nType guard to check if an error is a `NetworkError`.\n\n@param error - The error to check\n@returns `true` if the error is a `NetworkError`, `false` otherwise\n\n@example\n```\nimport ky, {isNetworkError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data');\n} catch (error) {\n\tif (isNetworkError(error)) {\n\t\tconsole.log('Network error:', error.request.url);\n\t}\n}\n```\n*/\nexport function isNetworkError(error: unknown): error is NetworkError {\n\treturn isErrorType(error, NetworkError);\n}\n\n/**\nType guard to check if an error is a `TimeoutError`.\n\n@param error - The error to check\n@returns `true` if the error is a `TimeoutError`, `false` otherwise\n\n@example\n```\nimport ky, {isTimeoutError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data', { timeout: 1000 });\n} catch (error) {\n\tif (isTimeoutError(error)) {\n\t\tconsole.log('Request timed out:', error.request.url);\n\t}\n}\n```\n*/\nexport function isTimeoutError(error: unknown): error is TimeoutError {\n\treturn isErrorType(error, TimeoutError);\n}\n\n/**\nType guard to check if an error is a `ForceRetryError`.\n\n@param error - The error to check\n@returns `true` if the error is a `ForceRetryError`, `false` otherwise\n\n@example\n```\nimport ky, {isForceRetryError} from 'ky';\n\nconst api = ky.extend({\n\thooks: {\n\t\tbeforeRetry: [\n\t\t\t({error, retryCount}) => {\n\t\t\t\tif (isForceRetryError(error)) {\n\t\t\t\t\tconsole.log(`Forced retry #${retryCount}: ${error.code}`);\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n});\n```\n*/\nexport function isForceRetryError(error: unknown): error is ForceRetryError {\n\treturn isErrorType(error, ForceRetryError);\n}\n", "import {HTTPError} from '../errors/HTTPError.js';\nimport {NetworkError} from '../errors/NetworkError.js';\nimport {NonError} from '../errors/NonError.js';\nimport {ForceRetryError} from '../errors/ForceRetryError.js';\nimport {SchemaValidationError} from '../errors/SchemaValidationError.js';\nimport {TimeoutError} from '../errors/TimeoutError.js';\nimport type {\n\tInput,\n\tInternalOptions,\n\tNormalizedOptions,\n\tOptions,\n\tSearchParamsInit,\n\tSearchParamsOption,\n} from '../types/options.js';\nimport {type ResponsePromise} from '../types/ResponsePromise.js';\nimport type {StandardSchemaV1} from '../types/standard-schema.js';\nimport {streamRequest, streamResponse} from '../utils/body.js';\nimport {\n\tcloneShallow,\n\tmergeHeaders,\n\tmergeHooks,\n\tdeletedParametersSymbol,\n} from '../utils/merge.js';\nimport type {RetryOptions} from '../types/retry.js';\nimport {normalizeRequestMethod, normalizeRetryOptions} from '../utils/normalize.js';\nimport timeout from '../utils/timeout.js';\nimport delay from '../utils/delay.js';\nimport {type ObjectEntries} from '../utils/types.js';\nimport {findUnknownOptions, hasSearchParameters} from '../utils/options.js';\nimport isRawNetworkError from '../utils/is-network-error.js';\nimport {isHTTPError, isNetworkError, isTimeoutError} from '../utils/type-guards.js';\nimport {\n\tmaxSafeTimeout,\n\tresponseTypes,\n\tstop,\n\tRetryMarker,\n\tsupportsAbortController,\n\tsupportsAbortSignal,\n\tsupportsFormData,\n\tsupportsResponseStreams,\n\tsupportsRequestStreams,\n} from './constants.js';\n\nconst maxErrorResponseBodySize = 10 * 1024 * 1024;\nconst prefixUrlRenamedErrorMessage = 'The `prefixUrl` option has been renamed `prefix` in v2 and enhanced to allow slashes in input. See also the new `baseUrl` option for improved flexibility with standard URL resolution: https://github.com/sindresorhus/ky#baseurl';\nconst timedOutResponseData = Symbol('timedOutResponseData');\n\nconst createTextDecoder = (contentType: string): TextDecoder => {\n\tconst match = /;\\s*charset\\s*=\\s*(?:\"([^\"]+)\"|([^;,\\s]+))/i.exec(contentType);\n\tconst charset = match?.[1] ?? match?.[2];\n\tif (charset) {\n\t\ttry {\n\t\t\treturn new TextDecoder(charset);\n\t\t} catch {}\n\t}\n\n\treturn new TextDecoder();\n};\n\nconst invalidSchemaMessage = 'The `schema` argument must follow the Standard Schema specification';\n\nconst cloneRetryOptions = (retry: RetryOptions | number): RetryOptions | number => {\n\tif (typeof retry !== 'object') {\n\t\treturn retry;\n\t}\n\n\t// Clone nested arrays too so init hooks can mutate retry config without leaking state across requests.\n\treturn {\n\t\t...retry,\n\t\t...(retry.methods && {methods: [...retry.methods]}),\n\t\t...(retry.statusCodes && {statusCodes: [...retry.statusCodes]}),\n\t\t...(retry.afterStatusCodes && {afterStatusCodes: [...retry.afterStatusCodes]}),\n\t};\n};\n\nconst objectToString = Object.prototype.toString;\n\nconst isRequestInstance = (value: unknown): value is Request =>\n\tvalue instanceof globalThis.Request || objectToString.call(value) === '[object Request]';\n\n// Accepted custom responses are treated as full Responses throughout Ky.\n// If a custom fetch returns one, it must behave like a Response for cloning,\n// body consumption, `json()` decoration, and any enabled stream features.\nconst isResponseInstance = (value: unknown): value is Response =>\n\tvalue instanceof globalThis.Response || objectToString.call(value) === '[object Response]';\n\nconst cloneSearchParametersForInitHook = (searchParameters: SearchParamsOption | undefined): SearchParamsOption | undefined => {\n\tif (Array.isArray(searchParameters)) {\n\t\treturn searchParameters.map(parameter => [...parameter]) as SearchParamsOption;\n\t}\n\n\treturn cloneShallow(searchParameters) as SearchParamsOption | undefined;\n};\n\n// Shallow-clone mutable option properties so init hook mutations don't leak across requests.\nfunction cloneInitHookOptions(options: Options): Options {\n\tconst clonedOptions: Options = {\n\t\t...options,\n\t\tjson: cloneShallow(options.json),\n\t\tcontext: cloneShallow(options.context)!,\n\t\theaders: cloneShallow(options.headers)!,\n\t\tsearchParams: cloneSearchParametersForInitHook(options.searchParams),\n\t};\n\n\tif (options.retry !== undefined) {\n\t\tclonedOptions.retry = cloneRetryOptions(options.retry);\n\t}\n\n\treturn clonedOptions;\n}\n\nconst validateJsonWithSchema = async (jsonValue: unknown, schema: StandardSchemaV1): Promise<unknown> => {\n\tif (\n\t\t(\n\t\t\ttypeof schema !== 'object'\n\t\t\t&& typeof schema !== 'function'\n\t\t)\n\t\t|| schema === null\n\t) {\n\t\tthrow new TypeError(invalidSchemaMessage);\n\t}\n\n\tconst standardSchema = schema['~standard'];\n\n\tif (\n\t\ttypeof standardSchema !== 'object'\n\t\t|| standardSchema === null\n\t\t|| typeof standardSchema.validate !== 'function'\n\t) {\n\t\tthrow new TypeError(invalidSchemaMessage);\n\t}\n\n\tconst validationResult = await standardSchema.validate(jsonValue);\n\n\tif (validationResult.issues) {\n\t\tthrow new SchemaValidationError(validationResult.issues);\n\t}\n\n\treturn validationResult.value;\n};\n\nexport class Ky {\n\tstatic create(input: Input, options: Options): ResponsePromise {\n\t\tconst initHooks = options.hooks?.init ?? [];\n\t\tconst initHookOptions = initHooks.length > 0 ? cloneInitHookOptions(options) : options;\n\n\t\tfor (const hook of initHooks) {\n\t\t\thook(initHookOptions);\n\t\t}\n\n\t\tconst ky = new Ky(input, initHookOptions);\n\n\t\tconst function_ = async (): Promise<Response | void> => {\n\t\t\tif (typeof ky.#options.timeout === 'number' && ky.#options.timeout > maxSafeTimeout) {\n\t\t\t\tthrow new RangeError(`The \\`timeout\\` option cannot be greater than ${maxSafeTimeout}`);\n\t\t\t}\n\n\t\t\tif (typeof ky.#options.totalTimeout === 'number' && ky.#options.totalTimeout > maxSafeTimeout) {\n\t\t\t\tthrow new RangeError(`The \\`totalTimeout\\` option cannot be greater than ${maxSafeTimeout}`);\n\t\t\t}\n\n\t\t\t// Delay the fetch so that body method shortcuts can set the Accept header\n\t\t\tawait Promise.resolve();\n\t\t\tconst beforeRequestResponse = await ky.#runBeforeRequestHooks();\n\t\t\tlet response = beforeRequestResponse ?? await ky.#retry(async () => ky.#fetch());\n\t\t\tlet responseFromHook = beforeRequestResponse !== undefined\n\t\t\t\t|| ky.#consumeReturnedResponseFromBeforeRetryHook();\n\n\t\t\tfor (;;) {\n\t\t\t\t// `undefined` means a hook stopped the flow without providing a response.\n\t\t\t\t// Non-native Responses still continue through Ky if they pass `isResponseInstance()`.\n\t\t\t\tif (response === undefined) {\n\t\t\t\t\treturn response;\n\t\t\t\t}\n\n\t\t\t\tif (isResponseInstance(response)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\t\tresponse = await ky.#runAfterResponseHooks(response);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (!(error instanceof ForceRetryError)) {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\t\tconst retriedResponse: Response | void = await ky.#retryFromError(error, async () => ky.#fetch());\n\t\t\t\t\t\tif (retriedResponse === undefined) {\n\t\t\t\t\t\t\treturn retriedResponse;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresponse = retriedResponse;\n\t\t\t\t\t\tresponseFromHook = ky.#consumeReturnedResponseFromBeforeRetryHook();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst currentResponse: Response = response;\n\n\t\t\t\t// Opaque responses (`response.type === 'opaque'`) from `no-cors` requests always have `status: 0` and `ok: false`, but this is not a failure - the actual status is hidden by the browser.\n\t\t\t\tif (!currentResponse.ok && currentResponse.type !== 'opaque' && (\n\t\t\t\t\ttypeof ky.#options.throwHttpErrors === 'function'\n\t\t\t\t\t\t? ky.#options.throwHttpErrors(currentResponse.status)\n\t\t\t\t\t\t: ky.#options.throwHttpErrors\n\t\t\t\t)) {\n\t\t\t\t\t// `request` must reflect the request that actually failed, but `options` stays as Ky's\n\t\t\t\t\t// normalized options snapshot. Replacement `Request` instances do not preserve the\n\t\t\t\t\t// original `BodyInit`, so trying to make `options` mirror arbitrary requests would be lossy.\n\t\t\t\t\tconst httpError: HTTPError = new HTTPError(currentResponse, ky.#getResponseRequest(currentResponse), ky.#getNormalizedOptions());\n\t\t\t\t\tconst errorToThrow: Error = httpError;\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\thttpError.data = await ky.#getResponseData(currentResponse);\n\n\t\t\t\t\tif (responseFromHook) {\n\t\t\t\t\t\tthrow errorToThrow;\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tconst retriedResponse: Response | void = await ky.#retryFromError(httpError, async () => ky.#fetch());\n\t\t\t\t\tif (retriedResponse === undefined) {\n\t\t\t\t\t\treturn retriedResponse;\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = retriedResponse;\n\t\t\t\t\tresponseFromHook = ky.#consumeReturnedResponseFromBeforeRetryHook();\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (!isResponseInstance(response)) {\n\t\t\t\treturn response;\n\t\t\t}\n\n\t\t\tky.#decorateResponse(response);\n\n\t\t\t// If `onDownloadProgress` is passed, it uses the stream API internally\n\t\t\tif (ky.#options.onDownloadProgress) {\n\t\t\t\tif (typeof ky.#options.onDownloadProgress !== 'function') {\n\t\t\t\t\tthrow new TypeError('The `onDownloadProgress` option must be a function');\n\t\t\t\t}\n\n\t\t\t\tif (!supportsResponseStreams) {\n\t\t\t\t\tthrow new Error('Streams are not supported in your environment. `ReadableStream` is missing.');\n\t\t\t\t}\n\n\t\t\t\tconst progressResponse = response.clone();\n\t\t\t\tky.#cancelResponseBody(response);\n\t\t\t\treturn streamResponse(progressResponse, ky.#options.onDownloadProgress);\n\t\t\t}\n\n\t\t\treturn response;\n\t\t};\n\n\t\tconst result = (async () => {\n\t\t\ttry {\n\t\t\t\treturn await function_();\n\t\t\t} catch (error: unknown) {\n\t\t\t\t// Non-Error throws (e.g., thrown strings) pass through unchanged\n\t\t\t\tif (!(error instanceof Error)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\t// Errors thrown by beforeRetry hooks must propagate unchanged.\n\t\t\t\tif (ky.#beforeRetryHookErrors.has(error)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tlet processedError: Error = error;\n\t\t\t\tfor (const hook of ky.#options.hooks.beforeError) {\n\t\t\t\t\t// `request` is the current failing request. `options` intentionally remains the\n\t\t\t\t\t// stable normalized Ky options snapshot for the same reason as `HTTPError` above.\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tconst hookResult: unknown = await hook({\n\t\t\t\t\t\trequest: ky.request,\n\t\t\t\t\t\toptions: ky.#getNormalizedOptions(),\n\t\t\t\t\t\terror: processedError,\n\t\t\t\t\t\tretryCount: ky.#retryCount,\n\t\t\t\t\t});\n\n\t\t\t\t\t// Only overwrite if the hook returns a valid Error instance.\n\t\t\t\t\tif (hookResult instanceof Error) {\n\t\t\t\t\t\tprocessedError = hookResult;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow processedError;\n\t\t\t} finally {\n\t\t\t\tconst originalRequest = ky.#originalRequest;\n\n\t\t\t\t// Ignore cancellation errors from already-locked or already-consumed streams.\n\t\t\t\tky.#cancelBody(originalRequest?.body ?? undefined);\n\t\t\t\t// Only cancel the current request body if it's distinct from the original (i.e. it was cloned for retries).\n\t\t\t\tif (ky.request !== originalRequest) {\n\t\t\t\t\tky.#cancelBody(ky.request.body ?? undefined);\n\t\t\t\t}\n\t\t\t}\n\t\t})() as ResponsePromise;\n\n\t\tfor (const [type, mimeType] of Object.entries(responseTypes) as ObjectEntries<typeof responseTypes>) {\n\t\t\t// Only expose `.bytes()` when the environment implements it.\n\t\t\tif (\n\t\t\t\ttype === 'bytes'\n\t\t\t\t&& typeof (globalThis.Response?.prototype as unknown as {bytes?: unknown})?.bytes !== 'function'\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tresult[type] = async (schema?: StandardSchemaV1) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n\t\t\t\tky.request.headers.set('accept', ky.request.headers.get('accept') || mimeType);\n\n\t\t\t\tconst response = await result;\n\n\t\t\t\tif (type !== 'json') {\n\t\t\t\t\treturn response[type]();\n\t\t\t\t}\n\n\t\t\t\tconst text = await response.text();\n\t\t\t\tif (text === '') {\n\t\t\t\t\tif (schema !== undefined) {\n\t\t\t\t\t\treturn validateJsonWithSchema(undefined, schema);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn JSON.parse(text);\n\t\t\t\t}\n\n\t\t\t\tconst jsonValue = initHookOptions.parseJson\n\t\t\t\t\t? await initHookOptions.parseJson(text, {request: ky.#getResponseRequest(response), response})\n\t\t\t\t\t: JSON.parse(text);\n\n\t\t\t\treturn schema === undefined ? jsonValue : validateJsonWithSchema(jsonValue, schema);\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// eslint-disable-next-line unicorn/prevent-abbreviations\n\tstatic #normalizeSearchParams(searchParams: SearchParamsOption): SearchParamsOption {\n\t\t// Filter out undefined values from plain objects\n\t\tif (searchParams && typeof searchParams === 'object' && !Array.isArray(searchParams) && !(searchParams instanceof URLSearchParams)) {\n\t\t\treturn Object.fromEntries(Object.entries(searchParams).filter(([, value]) => value !== undefined));\n\t\t}\n\n\t\treturn searchParams;\n\t}\n\n\tpublic request: Request;\n\t#abortController?: AbortController;\n\t#retryCount = 0;\n\t// eslint-disable-next-line @typescript-eslint/prefer-readonly -- False positive: #input is reassigned on line 202\n\t#input: Input;\n\treadonly #options: InternalOptions;\n\t#originalRequest?: Request;\n\treadonly #userProvidedAbortSignal?: AbortSignal;\n\treadonly #beforeRetryHookErrors = new WeakSet<Error>();\n\t#cachedNormalizedOptions: NormalizedOptions | undefined;\n\treadonly #startTime: number | undefined;\n\t#returnedResponseFromBeforeRetryHook = false;\n\treadonly #responseRequests = new WeakMap<Response, Request>();\n\n\t// eslint-disable-next-line complexity\n\tconstructor(input: Input, options: Options = {}) {\n\t\tthis.#input = input;\n\t\tif (Object.hasOwn(options, 'prefixUrl')) {\n\t\t\tthrow new Error(prefixUrlRenamedErrorMessage);\n\t\t}\n\n\t\tthis.#options = {\n\t\t\t...options,\n\t\t\theaders: mergeHeaders((this.#input as Request).headers, options.headers),\n\t\t\thooks: mergeHooks({}, options.hooks),\n\t\t\tmethod: normalizeRequestMethod(options.method ?? (this.#input as Request).method ?? 'GET'),\n\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n\t\t\tprefix: String(options.prefix || ''),\n\t\t\tretry: normalizeRetryOptions(options.retry),\n\t\t\tthrowHttpErrors: options.throwHttpErrors ?? true,\n\t\t\ttimeout: options.timeout ?? 10_000,\n\t\t\ttotalTimeout: options.totalTimeout ?? false,\n\t\t\tfetch: options.fetch ?? globalThis.fetch.bind(globalThis),\n\t\t\tcontext: options.context ?? {},\n\t\t};\n\n\t\tif (typeof this.#input !== 'string' && !(this.#input instanceof URL || this.#input instanceof globalThis.Request)) {\n\t\t\tthrow new TypeError('`input` must be a string, URL, or Request');\n\t\t}\n\n\t\tif (typeof this.#input === 'string') {\n\t\t\tif (this.#options.prefix) {\n\t\t\t\tconst normalizedPrefix = this.#options.prefix.replace(/\\/+$/, '');\n\t\t\t\tconst normalizedInput = this.#input.replace(/^\\/+/, '');\n\t\t\t\tthis.#input = `${normalizedPrefix}/${normalizedInput}`;\n\t\t\t}\n\n\t\t\tif (this.#options.baseUrl) {\n\t\t\t\tlet absoluteInput: URL | undefined;\n\t\t\t\ttry {\n\t\t\t\t\tabsoluteInput = new URL(this.#input);\n\t\t\t\t} catch {}\n\n\t\t\t\tif (!absoluteInput) {\n\t\t\t\t\tthis.#input = new URL(this.#input, (new Request(this.#options.baseUrl)).url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (supportsAbortController && supportsAbortSignal) {\n\t\t\tthis.#userProvidedAbortSignal = this.#options.signal ?? (this.#input as Request).signal;\n\t\t\tthis.#abortController = new globalThis.AbortController();\n\t\t\tthis.#options.signal = this.#createManagedSignal();\n\t\t}\n\n\t\tif (supportsRequestStreams) {\n\t\t\t// @ts-expect-error - Types are outdated.\n\t\t\tthis.#options.duplex = 'half';\n\t\t}\n\n\t\tif (this.#options.json !== undefined) {\n\t\t\tthis.#options.body = this.#options.stringifyJson?.(this.#options.json) ?? JSON.stringify(this.#options.json);\n\t\t\tthis.#options.headers.set('content-type', this.#options.headers.get('content-type') ?? 'application/json');\n\t\t}\n\n\t\t// To provide correct form boundary, Content-Type header should be deleted when creating Request from another Request with FormData/URLSearchParams body\n\t\t// Only delete if user didn't explicitly provide a custom content-type\n\t\tconst userProvidedContentType = options.headers && new globalThis.Headers(options.headers as HeadersInit).has('content-type');\n\t\tif (\n\t\t\tthis.#input instanceof globalThis.Request\n\t\t\t&& ((supportsFormData && this.#options.body instanceof globalThis.FormData) || this.#options.body instanceof URLSearchParams)\n\t\t\t&& !userProvidedContentType\n\t\t) {\n\t\t\tthis.#options.headers.delete('content-type');\n\t\t}\n\n\t\tthis.request = new globalThis.Request(this.#input, this.#options);\n\n\t\tif (hasSearchParameters(this.#options.searchParams)) {\n\t\t\tconst url = new URL(this.request.url);\n\t\t\tconst deleted = (this.#options.searchParams as any)?.[deletedParametersSymbol] as Set<string> | undefined;\n\n\t\t\tif (deleted) {\n\t\t\t\t// Remove keys from the input URL first so later searchParams entries can intentionally re-add them.\n\t\t\t\tfor (const key of deleted) {\n\t\t\t\t\turl.searchParams.delete(key);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof this.#options.searchParams === 'string') {\n\t\t\t\tconst stringSearchParameters = this.#options.searchParams.replace(/^\\?/, '');\n\t\t\t\tif (stringSearchParameters !== '') {\n\t\t\t\t\turl.search = url.search ? `${url.search}&${stringSearchParameters}` : `?${stringSearchParameters}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst optionsSearchParameters = new URLSearchParams(Ky.#normalizeSearchParams(this.#options.searchParams) as unknown as SearchParamsInit);\n\n\t\t\t\tfor (const [key, value] of optionsSearchParameters.entries()) {\n\t\t\t\t\turl.searchParams.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.#options.searchParams\n\t\t\t\t&& typeof this.#options.searchParams === 'object'\n\t\t\t\t&& !Array.isArray(this.#options.searchParams)\n\t\t\t\t&& !(this.#options.searchParams instanceof URLSearchParams)\n\t\t\t) {\n\t\t\t\tfor (const [key, value] of Object.entries(this.#options.searchParams)) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\turl.searchParams.delete(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Recreate request with the updated URL. We already have all options in this.#options, including duplex.\n\t\t\tthis.request = new globalThis.Request(url, this.#options as RequestInit);\n\t\t}\n\n\t\tif (this.#options.onUploadProgress && typeof this.#options.onUploadProgress !== 'function') {\n\t\t\tthrow new TypeError('The `onUploadProgress` option must be a function');\n\t\t}\n\n\t\t// `totalTimeout` starts when the request pipeline is created, so it also includes\n\t\t// Ky's internal scheduling and user hook time before the first fetch attempt.\n\t\tthis.#startTime = typeof this.#options.totalTimeout === 'number' ? this.#getCurrentTime() : undefined;\n\t}\n\n\t#calculateDelay(): number {\n\t\tconst retryDelay = this.#options.retry.delay(this.#retryCount + 1);\n\n\t\tlet jitteredDelay = retryDelay;\n\t\tif (this.#options.retry.jitter === true) {\n\t\t\tjitteredDelay = Math.random() * retryDelay;\n\t\t} else if (typeof this.#options.retry.jitter === 'function') {\n\t\t\tjitteredDelay = this.#options.retry.jitter(retryDelay);\n\n\t\t\tif (!Number.isFinite(jitteredDelay) || jitteredDelay < 0) {\n\t\t\t\tjitteredDelay = retryDelay;\n\t\t\t}\n\t\t}\n\n\t\treturn Math.min(this.#options.retry.backoffLimit, jitteredDelay);\n\t}\n\n\tasync #calculateRetryDelay(error: unknown) {\n\t\tif (this.#retryCount >= this.#options.retry.limit) {\n\t\t\tthrow error;\n\t\t}\n\n\t\t// Wrap non-Error throws to ensure consistent error handling\n\t\tconst errorObject = error instanceof Error ? error : new NonError(error);\n\n\t\t// Handle forced retry from afterResponse hook - skip method check and shouldRetry\n\t\tif (errorObject instanceof ForceRetryError) {\n\t\t\treturn errorObject.customDelay ?? this.#calculateDelay();\n\t\t}\n\n\t\t// Check if method is retriable for non-forced retries\n\t\tif (!this.#options.retry.methods.includes(this.request.method.toLowerCase())) {\n\t\t\tthrow error;\n\t\t}\n\n\t\t// User-provided shouldRetry function takes precedence over default checks (retryOnTimeout, status codes, etc.)\n\t\tif (this.#options.retry.shouldRetry !== undefined) {\n\t\t\tconst result = await this.#options.retry.shouldRetry({error: errorObject, retryCount: this.#retryCount + 1});\n\n\t\t\t// Strict boolean checking - only exact true/false are handled specially\n\t\t\tif (result === false) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (result === true) {\n\t\t\t\t// Force retry - skip all other validation and return delay\n\t\t\t\treturn this.#calculateDelay();\n\t\t\t}\n\n\t\t\t// If undefined or any other value, fall through to default behavior\n\t\t}\n\n\t\t// Default timeout behavior\n\t\tif (isTimeoutError(error)) {\n\t\t\tif (!this.#options.retry.retryOnTimeout) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn this.#calculateDelay();\n\t\t}\n\n\t\tif (isHTTPError(error)) {\n\t\t\tif (!this.#options.retry.statusCodes.includes(error.response.status)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tconst retryAfter = error.response.headers.get('Retry-After')\n\t\t\t\t?? error.response.headers.get('RateLimit-Reset')\n\t\t\t\t?? error.response.headers.get('X-RateLimit-Retry-After') // Symfony-based services\n\t\t\t\t?? error.response.headers.get('X-RateLimit-Reset') // GitHub\n\t\t\t\t?? error.response.headers.get('X-Rate-Limit-Reset'); // Twitter\n\t\t\tif (retryAfter && this.#options.retry.afterStatusCodes.includes(error.response.status)) {\n\t\t\t\tlet after = Number(retryAfter) * 1000;\n\t\t\t\tif (Number.isNaN(after)) {\n\t\t\t\t\tafter = Date.parse(retryAfter) - Date.now();\n\t\t\t\t} else if (after >= Date.parse('2024-01-01')) {\n\t\t\t\t\t// A large number is treated as a timestamp (fixed threshold protects against clock skew)\n\t\t\t\t\tafter -= Date.now();\n\t\t\t\t}\n\n\t\t\t\tif (!Number.isFinite(after)) {\n\t\t\t\t\treturn Math.min(this.#options.retry.maxRetryAfter, this.#calculateDelay());\n\t\t\t\t}\n\n\t\t\t\tafter = Math.max(0, after);\n\n\t\t\t\t// Don't apply jitter when server provides explicit retry timing\n\t\t\t\treturn Math.min(this.#options.retry.maxRetryAfter, after);\n\t\t\t}\n\n\t\t\tif (error.response.status === 413) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn this.#calculateDelay();\n\t\t}\n\n\t\t// Only retry known retriable error types. Unknown errors (e.g., programming bugs) are not retried.\n\t\tif (!isNetworkError(error)) {\n\t\t\tthrow error;\n\t\t}\n\n\t\treturn this.#calculateDelay();\n\t}\n\n\t#decorateResponse(response: Response): Response {\n\t\tconst request = this.#getResponseRequest(response);\n\n\t\tif (this.#options.parseJson) {\n\t\t\tresponse.json = async () => {\n\t\t\t\tconst text = await response.text();\n\t\t\t\tif (text === '') {\n\t\t\t\t\treturn JSON.parse(text);\n\t\t\t\t}\n\n\t\t\t\treturn this.#options.parseJson!(text, {request, response});\n\t\t\t};\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tasync #getResponseData(response: Response): Promise<unknown> {\n\t\t// Even with request timeouts disabled, bound error-body reads so retries and error propagation\n\t\t// cannot be stalled indefinitely by never-ending response streams.\n\t\tconst text = await this.#readResponseText(response, this.#getErrorDataTimeout());\n\t\tif (text === timedOutResponseData) {\n\t\t\tthis.#throwIfTotalTimeoutExhausted();\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (!text) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (!this.#isJsonContentType(response.headers.get('content-type') ?? '')) {\n\t\t\treturn text;\n\t\t}\n\n\t\tconst data = await this.#parseJson(text, response, this.#getErrorDataTimeout(), this.#getResponseRequest(response));\n\t\tif (data === timedOutResponseData) {\n\t\t\tthis.#throwIfTotalTimeoutExhausted();\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t#getErrorDataTimeout(): number {\n\t\tconst errorDataTimeout = this.#options.timeout === false ? 10_000 : this.#options.timeout;\n\t\tconst remainingTotal = this.#getRemainingTotalTimeout();\n\t\tif (remainingTotal === undefined) {\n\t\t\treturn errorDataTimeout;\n\t\t}\n\n\t\tif (remainingTotal <= 0) {\n\t\t\tthrow new TimeoutError(this.request);\n\t\t}\n\n\t\treturn Math.min(errorDataTimeout, remainingTotal);\n\t}\n\n\t#isJsonContentType(contentType: string): boolean {\n\t\t// Match JSON subtypes like `json`, `problem+json`, and `vnd.api+json`.\n\t\tconst mimeType = (contentType.split(';', 1)[0] ?? '').trim().toLowerCase();\n\t\treturn /\\/(?:.*[.+-])?json$/.test(mimeType);\n\t}\n\n\tasync #readResponseText(response: Response, timeoutMs: number): Promise<string | typeof timedOutResponseData | undefined> {\n\t\tconst {body} = response;\n\t\tif (!body) {\n\t\t\ttry {\n\t\t\t\treturn await response.text();\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tlet reader: ReadableStreamDefaultReader<Uint8Array>;\n\t\ttry {\n\t\t\treader = body.getReader();\n\t\t} catch {\n\t\t\t// Another consumer already locked the stream.\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst decoder = createTextDecoder(response.headers.get('content-type') ?? '');\n\t\tconst chunks: string[] = [];\n\t\tlet totalBytes = 0;\n\n\t\tconst readAll = (async (): Promise<string | undefined> => {\n\t\t\ttry {\n\t\t\t\tfor (;;) {\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tconst {done, value} = await reader.read();\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\ttotalBytes += value.byteLength;\n\t\t\t\t\tif (totalBytes > maxErrorResponseBodySize) {\n\t\t\t\t\t\tvoid reader.cancel().catch(() => undefined);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tchunks.push(decoder.decode(value, {stream: true}));\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tchunks.push(decoder.decode());\n\t\t\treturn chunks.join('');\n\t\t})();\n\n\t\tconst timeoutPromise = new Promise<typeof timedOutResponseData>(resolve => {\n\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\tresolve(timedOutResponseData);\n\t\t\t}, timeoutMs);\n\t\t\tvoid readAll.finally(() => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t});\n\t\t});\n\n\t\tconst result = await Promise.race([readAll, timeoutPromise]);\n\t\tif (result === timedOutResponseData) {\n\t\t\tvoid reader.cancel().catch(() => undefined);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync #parseJson(text: string, response: Response, timeoutMs: number, request: Request): Promise<unknown> {\n\t\tlet timeoutId: ReturnType<typeof setTimeout> | undefined;\n\t\ttry {\n\t\t\treturn await Promise.race([\n\t\t\t\tPromise.resolve().then(() => this.#options.parseJson\n\t\t\t\t\t? this.#options.parseJson(text, {request, response})\n\t\t\t\t\t: JSON.parse(text),\n\t\t\t\t),\n\t\t\t\tnew Promise<typeof timedOutResponseData>(resolve => {\n\t\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\t\tresolve(timedOutResponseData);\n\t\t\t\t\t}, timeoutMs);\n\t\t\t\t}),\n\t\t\t]);\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t} finally {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t}\n\n\t#cancelBody(body: ReadableStream | undefined): void {\n\t\tif (!body) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ignore cancellation failures from already-locked or already-consumed streams.\n\t\tvoid body.cancel().catch(() => undefined);\n\t}\n\n\t#cancelResponseBody(response: Response): void {\n\t\t// Ignore cancellation failures from already-locked or already-consumed streams.\n\t\tthis.#cancelBody(response.body ?? undefined);\n\t}\n\n\t#createManagedSignal(): AbortSignal {\n\t\treturn this.#userProvidedAbortSignal\n\t\t\t? AbortSignal.any([this.#userProvidedAbortSignal, this.#abortController!.signal])\n\t\t\t: this.#abortController!.signal;\n\t}\n\n\t#throwIfTotalTimeoutExhausted(): void {\n\t\tconst remaining = this.#getRemainingTotalTimeout();\n\t\tif (remaining !== undefined && remaining <= 0) {\n\t\t\tthrow new TimeoutError(this.request);\n\t\t}\n\t}\n\n\tasync #runBeforeRequestHooks(): Promise<Response | undefined> {\n\t\tfor (const hook of this.#options.hooks.beforeRequest) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tconst result = await hook({\n\t\t\t\trequest: this.request,\n\t\t\t\toptions: this.#getNormalizedOptions(),\n\t\t\t\tretryCount: 0,\n\t\t\t});\n\n\t\t\tif (isRequestInstance(result)) {\n\t\t\t\tthis.#assignRequest(result);\n\t\t\t} else if (isResponseInstance(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tasync #runAfterResponseHooks(response: Response): Promise<Response> {\n\t\tconst responseRequest = this.#getResponseRequest(response);\n\n\t\tfor (const hook of this.#options.hooks.afterResponse) {\n\t\t\tconst hookResponse = this.#setResponseRequest(response.clone(), responseRequest);\n\t\t\tthis.#decorateResponse(hookResponse);\n\n\t\t\tlet modifiedResponse;\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tmodifiedResponse = await hook({\n\t\t\t\t\trequest: this.request,\n\t\t\t\t\toptions: this.#getNormalizedOptions(),\n\t\t\t\t\tresponse: hookResponse,\n\t\t\t\t\tretryCount: this.#retryCount,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\t// Cancel both responses to prevent memory leaks when hook throws\n\t\t\t\tif (hookResponse !== response) {\n\t\t\t\t\tthis.#cancelResponseBody(hookResponse);\n\t\t\t\t}\n\n\t\t\t\tthis.#cancelResponseBody(response);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (modifiedResponse instanceof RetryMarker) {\n\t\t\t\t// Cancel both the cloned response passed to the hook and the current response to prevent resource leaks (especially important in Deno/Bun).\n\t\t\t\t// Do not await cancellation since hooks can clone the response, leaving extra tee branches that keep cancel promises pending per the Streams spec.\n\t\t\t\tif (hookResponse !== response) {\n\t\t\t\t\tthis.#cancelResponseBody(hookResponse);\n\t\t\t\t}\n\n\t\t\t\tthis.#cancelResponseBody(response);\n\t\t\t\tthrow new ForceRetryError(modifiedResponse.options);\n\t\t\t}\n\n\t\t\tconst nextResponse = isResponseInstance(modifiedResponse)\n\t\t\t\t? this.#setResponseRequest(modifiedResponse, responseRequest)\n\t\t\t\t: response;\n\n\t\t\t// Cancel any response bodies we won't use to prevent memory leaks.\n\t\t\t// Uses fire-and-forget since hooks may have cloned the response, creating tee branches that block cancellation.\n\t\t\t// If the hook wrapped an existing body into a new Response, both Response objects can still point at the same stream.\n\t\t\tif (hookResponse !== response && hookResponse !== nextResponse && hookResponse.body !== nextResponse.body) {\n\t\t\t\tthis.#cancelResponseBody(hookResponse);\n\t\t\t}\n\n\t\t\tif (response !== nextResponse && response.body !== nextResponse.body) {\n\t\t\t\tthis.#cancelResponseBody(response);\n\t\t\t}\n\n\t\t\tresponse = nextResponse;\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tasync #retry<T extends (...arguments_: any) => Promise<any>>(function_: T): Promise<ReturnType<T> | Response | void> {\n\t\ttry {\n\t\t\treturn await function_();\n\t\t} catch (error) {\n\t\t\treturn this.#retryFromError(error, function_);\n\t\t}\n\t}\n\n\tasync #retryFromError<T extends (...arguments_: any) => Promise<any>>(error: unknown, function_: T): Promise<ReturnType<T> | Response | void> {\n\t\tthis.#returnedResponseFromBeforeRetryHook = false;\n\n\t\tconst retryDelay = Math.min(await this.#calculateRetryDelay(error), maxSafeTimeout);\n\t\tconst delayOptions = {signal: this.#userProvidedAbortSignal};\n\n\t\tconst remainingTimeout = this.#getRemainingTotalTimeout();\n\t\tif (remainingTimeout !== undefined) {\n\t\t\tif (remainingTimeout <= 0) {\n\t\t\t\tthrow new TimeoutError(this.request);\n\t\t\t}\n\n\t\t\t// If waiting would consume all remaining budget, time out without starting another request.\n\t\t\tif (retryDelay >= remainingTimeout) {\n\t\t\t\tawait delay(remainingTimeout, delayOptions);\n\t\t\t\tthrow new TimeoutError(this.request);\n\t\t\t}\n\t\t}\n\n\t\t// Only use user-provided signal for delay, not our internal abortController\n\t\tawait delay(retryDelay, delayOptions);\n\n\t\tthis.#throwIfTotalTimeoutExhausted();\n\n\t\t// Apply custom request from forced retry before beforeRetry hooks\n\t\t// Ensure the custom request has the correct managed signal for timeouts and user aborts\n\t\tif (error instanceof ForceRetryError && error.customRequest) {\n\t\t\tconst customRequest = new globalThis.Request(error.customRequest, this.#options.signal ? {signal: this.#options.signal} : undefined);\n\t\t\t// Replacement Requests are authoritative by design. Do not rewrite headers here,\n\t\t\t// even for cross-origin retries. Callers using `ky.retry({request})` explicitly\n\t\t\t// opted into the exact Request they constructed.\n\t\t\tthis.#assignRequest(customRequest);\n\t\t}\n\n\t\tfor (const hook of this.#options.hooks.beforeRetry) {\n\t\t\tlet hookResult: Awaited<ReturnType<typeof hook>>;\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\thookResult = await hook({\n\t\t\t\t\trequest: this.request,\n\t\t\t\t\toptions: this.#getNormalizedOptions(),\n\t\t\t\t\terror: error as Error,\n\t\t\t\t\tretryCount: this.#retryCount + 1,\n\t\t\t\t});\n\t\t\t} catch (hookError) {\n\t\t\t\t// Preserve the original request error path (`throw error`) so beforeError hooks can still run.\n\t\t\t\tif (hookError instanceof Error && hookError !== error) {\n\t\t\t\t\tthis.#beforeRetryHookErrors.add(hookError);\n\t\t\t\t}\n\n\t\t\t\tthrow hookError;\n\t\t\t}\n\n\t\t\tif (isRequestInstance(hookResult)) {\n\t\t\t\t// Same contract as `ky.retry({request})`: a Request returned from `beforeRetry`\n\t\t\t\t// is used as-is rather than being sanitized or otherwise rewritten by Ky.\n\t\t\t\tthis.#assignRequest(hookResult);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (isResponseInstance(hookResult)) {\n\t\t\t\tthis.#returnedResponseFromBeforeRetryHook = true;\n\t\t\t\tthis.#retryCount++;\n\t\t\t\treturn hookResult;\n\t\t\t}\n\n\t\t\t// If `stop` is returned from the hook, the retry process is stopped\n\t\t\tif (hookResult === stop) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis.#throwIfTotalTimeoutExhausted();\n\n\t\tthis.#retryCount++;\n\t\treturn this.#retry(function_);\n\t}\n\n\t#consumeReturnedResponseFromBeforeRetryHook(): boolean {\n\t\tconst value = this.#returnedResponseFromBeforeRetryHook;\n\t\tthis.#returnedResponseFromBeforeRetryHook = false;\n\t\treturn value;\n\t}\n\n\tasync #fetch(): Promise<Response> {\n\t\t// Reset abortController if it was aborted (happens on timeout retry)\n\t\tif (this.#abortController?.signal.aborted) {\n\t\t\tthis.#abortController = new globalThis.AbortController();\n\t\t\tthis.#options.signal = this.#createManagedSignal();\n\t\t\t// Recreate request with new signal\n\t\t\tthis.request = new globalThis.Request(this.request, {signal: this.#options.signal});\n\t\t}\n\n\t\tconst nonRequestOptions = findUnknownOptions(this.#options);\n\t\tconst retryRequest = this.#options.retry.limit > 0 ? this.request.clone() : undefined;\n\t\tconst request = this.#wrapRequestWithUploadProgress(this.request, this.#options.body ?? undefined);\n\n\t\t// Cloning is done here to prepare in advance for retries.\n\t\t// Skip cloning when retries are disabled - cloning a streaming body calls ReadableStream#tee()\n\t\t// which buffers the entire stream in memory, causing excessive memory usage for large uploads.\n\t\tthis.#originalRequest = request;\n\t\tif (retryRequest) {\n\t\t\tthis.request = retryRequest;\n\t\t}\n\n\t\ttry {\n\t\t\tconst remainingTotal = this.#getRemainingTotalTimeout();\n\t\t\tif (remainingTotal !== undefined && remainingTotal <= 0) {\n\t\t\t\tthrow new TimeoutError(this.request);\n\t\t\t}\n\n\t\t\tconst effectiveTimeout: number | undefined = this.#options.timeout === false\n\t\t\t\t? remainingTotal\n\t\t\t\t: (remainingTotal === undefined\n\t\t\t\t\t? this.#options.timeout\n\t\t\t\t\t: Math.min(this.#options.timeout, remainingTotal));\n\n\t\t\tconst response = effectiveTimeout === undefined\n\t\t\t\t? await this.#options.fetch(request, nonRequestOptions)\n\t\t\t\t: await timeout(request, nonRequestOptions, this.#abortController, {\n\t\t\t\t\ttimeout: effectiveTimeout,\n\t\t\t\t\tfetch: this.#options.fetch,\n\t\t\t\t});\n\n\t\t\treturn this.#setResponseRequest(response, request);\n\t\t} catch (error) {\n\t\t\tif (isRawNetworkError(error)) {\n\t\t\t\tthrow new NetworkError(this.request, {cause: error as Error});\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t#getRemainingTotalTimeout(): number | undefined {\n\t\tif (this.#startTime === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst elapsed = this.#getCurrentTime() - this.#startTime;\n\t\treturn Math.max(0, (this.#options.totalTimeout as number) - elapsed);\n\t}\n\n\t#getCurrentTime(): number {\n\t\treturn globalThis.performance?.now() ?? Date.now();\n\t}\n\n\t#getNormalizedOptions(): NormalizedOptions {\n\t\tif (!this.#cachedNormalizedOptions) {\n\t\t\t// Exclude Ky-specific options that are not part of `RequestInit`.\n\t\t\tconst {\n\t\t\t\thooks,\n\t\t\t\tjson,\n\t\t\t\tparseJson,\n\t\t\t\tstringifyJson,\n\t\t\t\tsearchParams,\n\t\t\t\ttimeout,\n\t\t\t\ttotalTimeout,\n\t\t\t\tthrowHttpErrors,\n\t\t\t\tfetch,\n\t\t\t\t...normalizedOptions\n\t\t\t} = this.#options;\n\n\t\t\tthis.#cachedNormalizedOptions = Object.freeze(normalizedOptions) as NormalizedOptions;\n\t\t}\n\n\t\treturn this.#cachedNormalizedOptions;\n\t}\n\n\t#assignRequest(request: Request): void {\n\t\tthis.#cachedNormalizedOptions = undefined;\n\t\tthis.request = request;\n\t}\n\n\t#getResponseRequest(response: Response): Request {\n\t\treturn this.#responseRequests.get(response) ?? this.request;\n\t}\n\n\t#setResponseRequest(response: Response, request: Request): Response {\n\t\tthis.#responseRequests.set(response, request);\n\t\treturn response;\n\t}\n\n\t#wrapRequestWithUploadProgress(request: Request, originalBody?: BodyInit): Request {\n\t\tif (!this.#options.onUploadProgress || !request.body || !supportsRequestStreams) {\n\t\t\treturn request;\n\t\t}\n\n\t\treturn streamRequest(request, this.#options.onUploadProgress, originalBody ?? this.#options.body ?? undefined);\n\t}\n}\n", "/*! MIT License © Sindre Sorhus */\n\nimport {Ky} from './core/Ky.js';\nimport {requestMethods, stop, retry} from './core/constants.js';\nimport type {KyInstance} from './types/ky.js';\nimport type {Input, Options} from './types/options.js';\nimport {validateAndMerge} from './utils/merge.js';\nimport {type Mutable} from './utils/types.js';\n\nconst createInstance = (defaults?: Partial<Options>): KyInstance => {\n\t// eslint-disable-next-line @typescript-eslint/promise-function-async\n\tconst ky: Partial<Mutable<KyInstance>> = (input: Input, options?: Options) => Ky.create(input, validateAndMerge(defaults, options));\n\n\tfor (const method of requestMethods) {\n\t\t// eslint-disable-next-line @typescript-eslint/promise-function-async\n\t\tky[method] = (input: Input, options?: Options) => Ky.create(input, validateAndMerge(defaults, options, {method}));\n\t}\n\n\tky.create = (newDefaults?: Partial<Options>) => createInstance(validateAndMerge(newDefaults));\n\tky.extend = (newDefaults?: Partial<Options> | ((parentDefaults: Partial<Options>) => Partial<Options>)) => {\n\t\tif (typeof newDefaults === 'function') {\n\t\t\tnewDefaults = newDefaults(defaults ?? {});\n\t\t}\n\n\t\treturn createInstance(validateAndMerge(defaults, newDefaults));\n\t};\n\n\tky.stop = stop;\n\tky.retry = retry;\n\n\treturn ky as KyInstance;\n};\n\nconst ky = createInstance();\n\nexport default ky;\n\nexport type {KyInstance} from './types/ky.js';\n\nexport type {\n\tInput,\n\tOptions,\n\tNormalizedOptions,\n\tRetryOptions,\n\tShouldRetryState,\n\tSearchParamsOption,\n\tProgress,\n} from './types/options.js';\n\nexport type {\n\tHooks,\n\tInitHook,\n\tBeforeRequestHook,\n\tBeforeRequestState,\n\tBeforeRetryHook,\n\tBeforeRetryState,\n\tBeforeErrorHook,\n\tBeforeErrorState,\n\tAfterResponseHook,\n\tAfterResponseState,\n} from './types/hooks.js';\n\nexport type {ResponsePromise} from './types/ResponsePromise.js';\nexport type {\n\tStandardSchemaV1,\n\tStandardSchemaV1InferOutput,\n\tStandardSchemaV1Issue,\n} from './types/standard-schema.js';\nexport type {KyRequest} from './types/request.js';\nexport type {KyResponse} from './types/response.js';\nexport {KyError} from './errors/KyError.js';\nexport {HTTPError} from './errors/HTTPError.js';\nexport {SchemaValidationError} from './errors/SchemaValidationError.js';\nexport {NetworkError} from './errors/NetworkError.js';\nexport {TimeoutError} from './errors/TimeoutError.js';\nexport {ForceRetryError} from './errors/ForceRetryError.js';\nexport {\n\tisKyError,\n\tisHTTPError,\n\tisNetworkError,\n\tisTimeoutError,\n\tisForceRetryError,\n} from './utils/type-guards.js';\nexport {replaceOption} from './utils/merge.js';\n\n// Intentionally not exporting this for now as it's just an implementation detail and we don't want to commit to a certain API yet at least.\n// export {NonError} from './errors/NonError.js';\n", "import moment from 'moment';\n\nimport type { Bookmark } from './types';\n\nexport type AppData = {\n bmarks: Bookmark[];\n bmark: Bookmark;\n isowner: boolean;\n suggestTags?: boolean;\n};\n\nexport type App = {\n csrfHeaderName: string;\n csrfCookieName: string;\n csrfParamName: string;\n csrfToken: string;\n homeR: string;\n authRlogoutR: string;\n userR: string | null;\n noteR: string | null;\n dat: AppData;\n};\n\ndeclare global {\n // Provided by the server in a <script> tag.\n\n var app: App;\n}\n\nexport function app(): App {\n return globalThis.app;\n}\n\nexport function moment8601(s: string): [string, string] {\n const m = moment(s, moment.ISO_8601);\n const s1 = m.fromNow();\n const s2 = `${m.format('MMMM D YYYY, h:mm a')} (${m.format()}) `;\n return [s1, s2];\n}\n\nexport function mmoment8601(s: string): [string, string] | null {\n try {\n return moment8601(s);\n } catch {\n return null;\n }\n}\n\nexport function closeWindow(win: Window): void {\n win.close();\n}\n\nexport type RawHTML = string;\n\nexport function setFocus(elemId: string): void {\n document.getElementById(elemId)?.focus();\n}\n\nexport function toLocaleDateString(dateString: string): string {\n // Keep the output human-readable and locale-aware (similar intent to PS version),\n // but avoid relying on `dateStyle` typings for older lib targets.\n return new Date(dateString).toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n}\n", "import ky from 'ky';\n\nimport { app } from './globals';\nimport type {\n AccountSettings,\n Bookmark,\n Note,\n TagCloud,\n TagCloudMode,\n TagSuggestionRequest,\n TagSuggestionResponse,\n} from './types';\n\nexport type StarAction = 'star' | 'unstar';\n\nfunction withCsrf(headers?: HeadersInit): HeadersInit {\n const a = app();\n const h = new Headers(headers);\n h.set(a.csrfHeaderName, a.csrfToken);\n return h;\n}\n\nfunction urlFor(path: string): string {\n // Preserve PureScript semantics: simple string concatenation.\n return `${app().homeR}${path}`;\n}\n\nfunction toRelativePath(urlOrPath: string): string {\n try {\n const u = new URL(urlOrPath, window.location.origin);\n const rel = `${u.pathname}${u.search}${u.hash}`;\n return rel.startsWith('/') ? rel.slice(1) : rel;\n } catch {\n return urlOrPath.replace(/^\\/+/, '');\n }\n}\n\nasync function request(\n method: string,\n path: string,\n opts: { headers?: HeadersInit; body?: BodyInit | null } = {},\n) {\n const res = await ky(urlFor(path), {\n method,\n headers: withCsrf(opts.headers),\n body: opts.body ?? undefined,\n throwHttpErrors: false,\n });\n return res;\n}\n\nexport async function toggleStar(bid: number, action: StarAction): Promise<void> {\n await request('POST', `bm/${bid.toString()}/${action}`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function destroy(bid: number): Promise<void> {\n await request('DELETE', `bm/${bid.toString()}`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function markRead(bid: number): Promise<void> {\n await request('POST', `bm/${bid.toString()}/read`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function editBookmark(\n bm: Bookmark,\n): Promise<{ ok: boolean; status: number; bodyText: string }> {\n const res = await request('POST', 'api/add', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(bm),\n });\n return { ok: res.ok, status: res.status, bodyText: await res.text() };\n}\n\nexport async function editNote(\n note: Note,\n): Promise<{ ok: boolean; status: number; bodyText: string }> {\n const res = await request('POST', 'api/note/add', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(note),\n });\n return { ok: res.ok, status: res.status, bodyText: await res.text() };\n}\n\nexport async function lookupTitle(bm: Bookmark): Promise<string | null> {\n const res = await request('POST', 'api/lookuptitle', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(bm),\n });\n if (res.status === 200) return await res.text();\n return null;\n}\n\nexport async function getTagCloud(mode: TagCloudMode): Promise<TagCloud | null> {\n const res = await request('POST', 'api/tagcloud', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(mode),\n });\n if (!res.ok) return null;\n try {\n return await res.json();\n } catch {\n return null;\n }\n}\n\nexport async function updateTagCloudMode(mode: TagCloudMode): Promise<void> {\n await request('POST', 'api/tagcloudmode', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(mode),\n });\n}\n\nexport async function fetchTagSuggestions(\n data: TagSuggestionRequest,\n): Promise<TagSuggestionResponse | null> {\n const res = await request('POST', 'api/tagSuggestions', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(data),\n });\n if (!res.ok) return null;\n try {\n return await res.json<TagSuggestionResponse>();\n } catch {\n return null;\n }\n}\n\nexport async function destroyNote(nid: number): Promise<void> {\n await request('DELETE', `api/note/${nid.toString()}`, {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n });\n}\n\nexport async function editAccountSettings(us: AccountSettings): Promise<void> {\n await request('POST', 'api/accountSettings', {\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(us),\n });\n}\n\nexport async function logout(): Promise<void> {\n const a = app();\n await request('POST', toRelativePath(a.authRlogoutR));\n window.location.reload();\n}\n", "import React from 'react';\n\nimport { editAccountSettings } from '../api';\nimport type { AccountSettings } from '../types';\n\nexport function AccountSettingsView({ initial }: { initial: AccountSettings }) {\n const [us, setUs] = React.useState<AccountSettings>(initial);\n\n async function update(next: AccountSettings) {\n setUs(next);\n await editAccountSettings(next);\n }\n\n return (\n <div className=\"settings-form\">\n <div className=\"fw7 mb2\">Account Settings</div>\n\n <div className=\"flex items-center mb2\">\n <input\n type=\"checkbox\"\n className=\"pointer mr2\"\n id=\"archiveDefault\"\n name=\"archiveDefault\"\n checked={us.archiveDefault}\n onChange={(e) => void update({ ...us, archiveDefault: e.target.checked })}\n />\n <label htmlFor=\"archiveDefault\" className=\"lh-copy\">\n Archive Non-Private Bookmarks (archive.li)\n </label>\n </div>\n\n <div className=\"flex items-center mb2\">\n <input\n type=\"checkbox\"\n className=\"pointer mr2\"\n id=\"privateDefault\"\n name=\"privateDefault\"\n checked={us.privateDefault}\n onChange={(e) => void update({ ...us, privateDefault: e.target.checked })}\n />\n <label htmlFor=\"privateDefault\" className=\"lh-copy\">\n Default new bookmarks to Private\n </label>\n </div>\n\n <div className=\"flex items-center mb2\">\n <input\n type=\"checkbox\"\n className=\"pointer mr2\"\n id=\"suggestTags\"\n name=\"suggestTags\"\n checked={us.suggestTags}\n onChange={(e) => void update({ ...us, suggestTags: e.target.checked })}\n />\n <label htmlFor=\"suggestTags\" className=\"lh-copy\">\n Enable tag suggestions\n </label>\n </div>\n\n <div className=\"flex items-center mb2\">\n <input\n type=\"checkbox\"\n className=\"pointer mr2\"\n id=\"privacyLock\"\n name=\"privacyLock\"\n checked={us.privacyLock}\n onChange={(e) => void update({ ...us, privacyLock: e.target.checked })}\n />\n <label htmlFor=\"privacyLock\" className=\"lh-copy\">\n Privacy Lock (Private Account)\n </label>\n </div>\n </div>\n );\n}\n", "import React from 'react';\n\nimport { destroy, editBookmark, lookupTitle } from '../api';\nimport { app, closeWindow, mmoment8601 } from '../globals';\nimport { useTagSuggestions } from '../hooks/useTagSuggestions';\nimport type { Bookmark } from '../types';\nimport { curQuerystring, lookupQueryStringValue } from '../util';\nimport { TagSuggestionsDropdown } from './TagSuggestionsDropdown';\n\nexport function AddForm({ initial }: { initial: Bookmark }) {\n const a = app();\n const [bm, setBm] = React.useState<Bookmark>(initial);\n const [editBm, setEditBm] = React.useState<Bookmark>(initial);\n const [deleteAsk, setDeleteAsk] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [destroyed, setDestroyed] = React.useState(false);\n const [apiError, setApiError] = React.useState<string | null>(null);\n const suggestEnabled = a.dat.suggestTags === true;\n\n const {\n tagInputRef,\n suggestionState,\n closeSuggestions,\n onTagsChange,\n onTagsKeyDown,\n onTagsSelect,\n onSuggestionHover,\n onSuggestionPick,\n } = useTagSuggestions({\n enabled: suggestEnabled,\n tags: editBm.tags,\n maxSuggestions: 4,\n onTagsUpdate: (tags) => {\n setEditBm((x) => ({ ...x, tags }));\n },\n });\n\n const mm = mmoment8601(bm.time);\n\n async function onFetchTitle() {\n setLoading(true);\n try {\n const title = await lookupTitle(editBm);\n if (title != null) setEditBm((x) => ({ ...x, title }));\n } finally {\n setLoading(false);\n }\n }\n\n async function onDestroy() {\n await destroy(bm.bid);\n setDestroyed(true);\n }\n\n const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {\n e.preventDefault();\n setApiError(null);\n const res = await editBookmark(editBm);\n if (res.ok && res.status >= 200 && res.status < 300) {\n setBm(editBm);\n\n const qs = curQuerystring();\n const next = lookupQueryStringValue(qs, 'next');\n const ref = document.referrer;\n const org = window.location.origin;\n\n if (next === 'closeWindow') closeWindow(window);\n else if (next === 'back') {\n if (ref.startsWith(org)) window.location.href = ref;\n else window.location.href = org;\n } else {\n closeWindow(window);\n }\n } else {\n setApiError(res.bodyText);\n }\n };\n\n if (destroyed) return <p className=\"red\">you killed this bookmark</p>;\n\n return (\n <form\n onSubmit={(e) => {\n void onSubmit(e);\n }}\n >\n <table className=\"w-100\">\n <tbody>\n <tr>\n <td className=\"w1\" />\n <td>\n {bm.bid > 0 ? (\n <div className=\"alert\">\n previously saved \n <span className=\"link f7 dib gray pr3\" title={mm?.[1] ?? bm.time}>\n {mm?.[0] ?? '\\u00a0'}\n </span>\n <div className=\"edit_links dib ml1\">\n <div className=\"delete_link di\">\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(true);\n }}\n className=\"delete\"\n hidden={deleteAsk}\n >\n delete\n </button>\n <span className=\"confirm red\" hidden={!deleteAsk}>\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(false);\n }}\n >\n cancel / \n </button>\n <button type=\"button\" onClick={() => void onDestroy()} className=\"red\">\n destroy\n </button>\n </span>\n </div>\n </div>\n </div>\n ) : null}\n {apiError ? <div className=\"alert alert-err\">{apiError}</div> : null}\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"url\">URL</label>\n </td>\n <td>\n <input\n type=\"url\"\n id=\"url\"\n className=\"w-100 mv1\"\n required\n name=\"url\"\n autoFocus={bm.url === ''}\n value={editBm.url}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, url: e.target.value }));\n }}\n />\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"title\">title</label>\n </td>\n <td className=\"flex\">\n <input\n type=\"text\"\n id=\"title\"\n className=\"w-100 mv1 flex-auto\"\n name=\"title\"\n value={editBm.title}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, title: e.target.value }));\n }}\n />\n <button\n disabled={loading}\n type=\"button\"\n onClick={() => void onFetchTitle()}\n className={`ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0${loading ? 'bg-light-silver' : ''}`}\n >\n fetch\n </button>\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"description\">description</label>\n </td>\n <td>\n <textarea\n className=\"w-100 mt1 mid-gray\"\n id=\"description\"\n name=\"description\"\n rows={4}\n value={editBm.description}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, description: e.target.value }));\n }}\n />\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"tags\">tags</label>\n </td>\n <td>\n <div className=\"relative\">\n <input\n ref={tagInputRef}\n type=\"text\"\n id=\"tags\"\n className=\"w-100 mv1\"\n name=\"tags\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoFocus={bm.url !== ''}\n value={editBm.tags}\n onChange={onTagsChange}\n onKeyDown={onTagsKeyDown}\n onClick={onTagsSelect}\n onSelect={onTagsSelect}\n onBlur={() => {\n window.setTimeout(() => {\n closeSuggestions();\n }, 0);\n }}\n />\n {suggestionState != null ? (\n <TagSuggestionsDropdown\n suggestionState={suggestionState}\n onHover={onSuggestionHover}\n onPick={onSuggestionPick}\n />\n ) : null}\n </div>\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"private\">private</label>\n </td>\n <td>\n <input\n type=\"checkbox\"\n id=\"private\"\n className=\"private pointer\"\n name=\"private\"\n checked={editBm.private}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, private: e.target.checked }));\n }}\n />\n </td>\n </tr>\n\n <tr>\n <td>\n <label htmlFor=\"toread\">read later</label>\n </td>\n <td>\n <input\n type=\"checkbox\"\n id=\"toread\"\n className=\"toread pointer\"\n name=\"toread\"\n checked={editBm.toread}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, toread: e.target.checked }));\n }}\n />\n </td>\n </tr>\n\n <tr>\n <td />\n <td>\n <input\n type=\"submit\"\n className=\"ph3 pv2 input-reset black ba b--navy bg-transparent pointer f6 dib mt1 dim\"\n value={bm.bid > 0 ? 'update bookmark' : 'add bookmark'}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </form>\n );\n}\n", "import React from 'react';\n\nimport { fetchTagSuggestions } from '../api';\nimport type { TagSuggestionRequest, TSuggestion } from '../types';\n\nexport type SuggestionState = {\n items: TSuggestion[];\n selectedIndex: number;\n tokenRange: TagTokenRange;\n anchorLeft: number;\n anchorTop: number;\n};\n\ntype TagTokenRange = {\n token: string;\n start: number;\n end: number;\n};\n\nconst TAG_SUGGESTION_DEBOUNCE_MS = 180;\n\nexport function useTagSuggestions({\n enabled,\n tags,\n onTagsUpdate,\n maxSuggestions = 10,\n}: {\n enabled: boolean;\n tags: string;\n onTagsUpdate: (next: string) => void;\n maxSuggestions?: number;\n}) {\n const [suggestionState, setSuggestionState] = React.useState<SuggestionState | null>(null);\n const tagSuggestionRequestId = React.useRef(0);\n const tagSuggestionDebounceRef = React.useRef<number | null>(null);\n const tagInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const cancelPendingSuggestions = React.useCallback(() => {\n if (tagSuggestionDebounceRef.current != null) {\n window.clearTimeout(tagSuggestionDebounceRef.current);\n tagSuggestionDebounceRef.current = null;\n }\n tagSuggestionRequestId.current += 1;\n }, []);\n\n const closeSuggestions = React.useCallback(() => {\n cancelPendingSuggestions();\n setSuggestionState(null);\n }, [cancelPendingSuggestions]);\n\n React.useEffect(() => {\n return () => {\n cancelPendingSuggestions();\n };\n }, [cancelPendingSuggestions]);\n\n React.useEffect(() => {\n if (!enabled) closeSuggestions();\n }, [enabled, closeSuggestions]);\n\n const onTagsChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const { value, selectionStart, selectionEnd } = e.target;\n\n onTagsUpdate(value);\n\n if (!enabled) {\n closeSuggestions();\n return;\n }\n\n if (selectionStart == null || selectionEnd == null || selectionStart !== selectionEnd) {\n closeSuggestions();\n return;\n }\n\n if (isWhitespaceOnlyEdit(tags, value)) {\n closeSuggestions();\n return;\n }\n\n const activeToken = getActiveTagToken(value, selectionStart);\n if (activeToken == null || activeToken.token.length < 2) {\n closeSuggestions();\n return;\n }\n\n const normalizedTagTerms = getNormalizedTagTerms(value);\n const activeTokenNormalized = activeToken.token.toLowerCase();\n const activeTokenOccurrences = normalizedTagTerms.filter(\n (tag) => tag === activeTokenNormalized,\n ).length;\n const shouldExcludeActiveToken = activeTokenOccurrences > 1;\n const payload: TagSuggestionRequest = {\n query: activeToken.token,\n currentTags: Array.from(\n new Set(\n normalizedTagTerms.filter(\n (tag) => shouldExcludeActiveToken || tag !== activeTokenNormalized,\n ),\n ),\n ),\n };\n\n cancelPendingSuggestions();\n tagSuggestionDebounceRef.current = window.setTimeout(() => {\n const requestId = tagSuggestionRequestId.current + 1;\n tagSuggestionRequestId.current = requestId;\n\n void (async () => {\n const response = await fetchTagSuggestions(payload);\n\n if (\n requestId !== tagSuggestionRequestId.current ||\n response == null ||\n tagInputRef.current == null\n ) {\n return;\n }\n\n const items = response.suggestions.slice(0, maxSuggestions);\n if (items.length === 0) {\n closeSuggestions();\n return;\n }\n\n const anchor = measureCaretPosition(tagInputRef.current, selectionStart);\n\n setSuggestionState({\n items,\n selectedIndex: 0,\n tokenRange: activeToken,\n anchorLeft: anchor.left,\n anchorTop: anchor.top,\n });\n })();\n }, TAG_SUGGESTION_DEBOUNCE_MS);\n },\n [cancelPendingSuggestions, closeSuggestions, enabled, maxSuggestions, onTagsUpdate],\n );\n\n const applySuggestion = React.useCallback(\n (term: string) => {\n const input = tagInputRef.current;\n if (input == null || suggestionState == null) return;\n\n const next = replaceTokenAtRange(tags, suggestionState.tokenRange, term);\n onTagsUpdate(next.value);\n closeSuggestions();\n\n requestAnimationFrame(() => {\n input.focus();\n input.setSelectionRange(next.caret, next.caret);\n });\n },\n [closeSuggestions, onTagsUpdate, suggestionState, tags],\n );\n\n const onTagsKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape') {\n if (suggestionState != null) {\n e.preventDefault();\n closeSuggestions();\n }\n return;\n }\n\n if (e.key === ' ') {\n closeSuggestions();\n return;\n }\n\n if (suggestionState == null) return;\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n setSuggestionState((current) => {\n if (current == null) return current;\n return {\n ...current,\n selectedIndex: (current.selectedIndex + 1) % current.items.length,\n };\n });\n return;\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n setSuggestionState((current) => {\n if (current == null) return current;\n return {\n ...current,\n selectedIndex:\n (current.selectedIndex - 1 + current.items.length) % current.items.length,\n };\n });\n return;\n }\n\n if (e.key === 'Enter' || e.key === 'Tab') {\n e.preventDefault();\n const selected = suggestionState.items[suggestionState.selectedIndex];\n applySuggestion(selected.term);\n }\n },\n [applySuggestion, closeSuggestions, suggestionState],\n );\n\n const onTagsSelect = React.useCallback(\n (e: React.SyntheticEvent<HTMLInputElement>) => {\n if (suggestionState == null) return;\n\n const input = e.currentTarget;\n const { selectionStart, selectionEnd, value } = input;\n if (selectionStart == null || selectionEnd == null || selectionStart !== selectionEnd) {\n closeSuggestions();\n return;\n }\n\n const activeToken = getActiveTagToken(value, selectionStart);\n if (activeToken == null) {\n closeSuggestions();\n return;\n }\n\n if (activeToken.start !== suggestionState.tokenRange.start) {\n closeSuggestions();\n }\n },\n [closeSuggestions, suggestionState],\n );\n\n const onSuggestionHover = React.useCallback((index: number) => {\n setSuggestionState((current) => {\n if (current == null) return current;\n return { ...current, selectedIndex: index };\n });\n }, []);\n\n return {\n tagInputRef,\n suggestionState,\n closeSuggestions,\n onTagsChange,\n onTagsKeyDown,\n onTagsSelect,\n onSuggestionHover,\n onSuggestionPick: applySuggestion,\n };\n}\n\nfunction getActiveTagToken(value: string, caret: number): TagTokenRange | null {\n const boundedCaret = Math.max(0, Math.min(caret, value.length));\n\n let start = boundedCaret;\n while (start > 0 && value[start - 1] !== ' ') {\n start -= 1;\n }\n\n let end = boundedCaret;\n while (end < value.length && value[end] !== ' ') {\n end += 1;\n }\n\n const token = value.slice(start, end).trim();\n return token === '' ? null : { token, start, end };\n}\n\nfunction measureCaretPosition(\n input: HTMLInputElement,\n caret: number,\n): { left: number; top: number } {\n const style = window.getComputedStyle(input);\n const mirror = document.createElement('div');\n mirror.style.position = 'absolute';\n mirror.style.visibility = 'hidden';\n mirror.style.whiteSpace = 'pre';\n mirror.style.top = '0';\n mirror.style.left = '0';\n mirror.style.font = style.font;\n mirror.style.fontKerning = style.fontKerning;\n mirror.style.fontFeatureSettings = style.fontFeatureSettings;\n mirror.style.fontVariantLigatures = style.fontVariantLigatures;\n mirror.style.letterSpacing = style.letterSpacing;\n mirror.style.textTransform = style.textTransform;\n mirror.style.textIndent = style.textIndent;\n mirror.style.boxSizing = style.boxSizing;\n mirror.style.padding = style.padding;\n mirror.style.border = style.border;\n mirror.style.width = `${String(input.clientWidth)}px`;\n\n const prefix = document.createElement('span');\n prefix.textContent = input.value.slice(0, caret);\n mirror.appendChild(prefix);\n\n const marker = document.createElement('span');\n marker.textContent = '\\u200b';\n mirror.appendChild(marker);\n\n document.body.appendChild(mirror);\n const left = marker.offsetLeft - input.scrollLeft + 1;\n const top = marker.offsetTop - input.scrollTop + input.offsetHeight + 4;\n document.body.removeChild(mirror);\n\n return { left, top };\n}\n\nfunction replaceTokenAtRange(\n value: string,\n range: TagTokenRange,\n replacement: string,\n): { value: string; caret: number } {\n const prefix = value.slice(0, range.start);\n // Consume any existing leading space from the suffix so we always own the\n // separator. This lets us unconditionally append a trailing space and place\n // the caret after it, whether the accepted tag is in the middle or at the end.\n const suffix = value.slice(range.end).replace(/^ /, '');\n const inserted = `${replacement} `;\n return {\n value: `${prefix}${inserted}${suffix}`,\n caret: prefix.length + inserted.length,\n };\n}\n\nfunction isWhitespaceOnlyEdit(previous: string, next: string): boolean {\n if (previous === next) return false;\n\n let start = 0;\n while (start < previous.length && start < next.length && previous[start] === next[start]) {\n start += 1;\n }\n\n let prevEnd = previous.length;\n let nextEnd = next.length;\n while (prevEnd > start && nextEnd > start && previous[prevEnd - 1] === next[nextEnd - 1]) {\n prevEnd -= 1;\n nextEnd -= 1;\n }\n\n const removed = previous.slice(start, prevEnd);\n const added = next.slice(start, nextEnd);\n if (removed === '' && added === '') return false;\n return isSpacesOnly(removed) && isSpacesOnly(added);\n}\n\nfunction isSpacesOnly(value: string): boolean {\n return value === '' || /^ *$/.test(value);\n}\n\nfunction getNormalizedTagTerms(value: string): string[] {\n return value\n .split(' ')\n .map((tag) => tag.trim().toLowerCase())\n .filter((tag) => tag !== '');\n}\n", "export type QueryStringArray = Array<[string, string | null]>;\n\nfunction unsafeDecode(str: string): string {\n return decodeURIComponent(str);\n}\n\nexport function parseQueryString(searchOrHash: string): QueryStringArray {\n const first = searchOrHash.slice(0, 1);\n const qs = first === '#' || first === '?' ? searchOrHash.slice(1) : searchOrHash;\n const parts = qs.split('&').filter((x) => x !== '');\n\n const decode = (s: string) => unsafeDecode(s.replace(/\\+/g, ' '));\n\n const out: QueryStringArray = [];\n for (const kv of parts) {\n const [k, ...rest] = kv.split('=');\n if (!k) continue;\n if (rest.length === 0) out.push([decode(k), null]);\n else if (rest.length === 1) out.push([decode(k), decode(rest[0] ?? '')]);\n }\n return out;\n}\n\nexport function curQuerystring(): QueryStringArray {\n return parseQueryString(window.location.search);\n}\n\nexport function lookupQueryStringValue(qs: QueryStringArray, k: string): string | null {\n for (const [key, val] of qs) {\n if (key === k) return val;\n }\n return null;\n}\n\nexport function encodeTag(tag: string): string {\n return encodeURIComponent(tag.replace(/\\+/g, '%2B'));\n}\n\nexport function fromNullableStr(s: string | null | undefined): string {\n return s ?? '';\n}\n\nexport function normalizeTags(tags: string): string {\n return tags.replace(/,/g, ' ').replace(/\\s+/g, ' ').trim();\n}\n", "import React from 'react';\n\nimport type { SuggestionState } from '../hooks/useTagSuggestions';\n\nconst MAX_SUGGESTION_TERM_RENDER_LENGTH = 80;\n\nexport function TagSuggestionsDropdown({\n suggestionState,\n onHover,\n onPick,\n}: {\n suggestionState: SuggestionState;\n onHover: (index: number) => void;\n onPick: (term: string) => void;\n}) {\n return (\n <div\n className=\"absolute z-5 bg-near-white dark-gray ba b--moon-gray br2 shadow-4 overflow-hidden f6\"\n style={{\n left: suggestionState.anchorLeft,\n top: suggestionState.anchorTop,\n width: 'max-content',\n maxWidth: '22rem',\n }}\n >\n {suggestionState.items.map((item, index) => {\n const selected = index === suggestionState.selectedIndex;\n const displayTerm = truncateSuggestionTerm(item.term);\n return (\n <button\n key={`${item.term}-${item.count.toString()}`}\n type=\"button\"\n className={`flex items-center justify-between w-100 bn bg-transparent tl ph2 pv1 pointer nowrap dark-gray hover-blue ${selected ? 'bg-light-blue dark-blue' : ''}`}\n onMouseEnter={() => {\n onHover(index);\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n }}\n onClick={() => {\n onPick(item.term);\n }}\n title={item.term}\n >\n <span className=\"mr2\">\n {renderHighlightedSuggestion(displayTerm, suggestionState.tokenRange.token)}\n </span>\n <span className=\"gray f6 tr\" style={{ minWidth: '3ch' }}>\n {item.count}\n </span>\n </button>\n );\n })}\n </div>\n );\n}\n\nfunction renderHighlightedSuggestion(term: string, query: string): React.ReactNode {\n const lowerTerm = term.toLocaleLowerCase();\n const lowerQuery = query.toLocaleLowerCase();\n const idx = lowerTerm.indexOf(lowerQuery);\n if (idx < 0) return term;\n\n const before = term.slice(0, idx);\n const match = term.slice(idx, idx + query.length);\n const after = term.slice(idx + query.length);\n\n return (\n <>\n {before}\n <strong>{match}</strong>\n {after}\n </>\n );\n}\n\nfunction truncateSuggestionTerm(term: string): string {\n if (term.length <= MAX_SUGGESTION_TERM_RENDER_LENGTH) return term;\n return `${term.slice(0, MAX_SUGGESTION_TERM_RENDER_LENGTH)}...`;\n}\n", "import React from 'react';\n\nimport { useBookmarksStore } from '../stores/bookmarksStore';\nimport type { Bookmark } from '../types';\nimport { BMark } from './BMark';\n\nexport function BList({ initial }: { initial: Bookmark[] }) {\n const bmarks = useBookmarksStore((s) => s.bmarks);\n const setAll = useBookmarksStore((s) => s.setAll);\n const removeById = useBookmarksStore((s) => s.removeById);\n const upsert = useBookmarksStore((s) => s.upsert);\n\n React.useEffect(() => {\n setAll(initial);\n }, [initial, setAll]);\n\n return (\n <div>\n {bmarks.map((b) => (\n <BMark\n key={b.bid}\n initial={b}\n onNotifyRemove={() => {\n removeById(b.bid);\n }}\n onUpdated={(bm) => {\n upsert(bm);\n }}\n />\n ))}\n </div>\n );\n}\n", "const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n", "import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n", "import { create } from 'zustand';\n\nimport type { Bookmark } from '../types';\n\nexport type BookmarksState = {\n bmarks: Bookmark[];\n setAll: (bmarks: Bookmark[]) => void;\n removeById: (bid: number) => void;\n upsert: (bm: Bookmark) => void;\n};\n\nexport const useBookmarksStore = create<BookmarksState>((set) => ({\n bmarks: [],\n setAll: (bmarks) => {\n set({ bmarks });\n },\n removeById: (bid) => {\n set((s) => ({ bmarks: s.bmarks.filter((b) => b.bid !== bid) }));\n },\n upsert: (bm) => {\n set((s) => ({ bmarks: s.bmarks.map((b) => (b.bid === bm.bid ? bm : b)) }));\n },\n}));\n", "import React from 'react';\n\nimport { destroy, editBookmark, lookupTitle, markRead, toggleStar } from '../api';\nimport { app, setFocus, toLocaleDateString } from '../globals';\nimport { useTagSuggestions } from '../hooks/useTagSuggestions';\nimport type { Bookmark } from '../types';\nimport { encodeTag, fromNullableStr, normalizeTags } from '../util';\nimport { Markdown } from './Markdown';\nimport { TagSuggestionsDropdown } from './TagSuggestionsDropdown';\n\nexport function BMark({\n initial,\n onNotifyRemove,\n onUpdated,\n}: {\n initial: Bookmark;\n onNotifyRemove: () => void;\n onUpdated: (bm: Bookmark) => void;\n}) {\n const a = app();\n const [bm, setBm] = React.useState<Bookmark>(initial);\n const [editBm, setEditBm] = React.useState<Bookmark>(initial);\n const [deleteAsk, setDeleteAsk] = React.useState(false);\n const [edit, setEdit] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [apiError, setApiError] = React.useState<string | null>(null);\n\n const tagInputId = `${bm.bid.toString()}_tags`;\n\n const linkToFilterSingle = (slug: string) => `${fromNullableStr(a.userR)}/b:${slug}`;\n const linkToFilterTag = (tag: string) => `${fromNullableStr(a.userR)}/t:${encodeTag(tag)}`;\n\n const shdate = toLocaleDateString(bm.time);\n const shdatetime = `${bm.time.slice(0, 16)}Z`;\n const suggestEnabled = a.dat.suggestTags === true;\n\n const {\n tagInputRef,\n suggestionState,\n closeSuggestions,\n onTagsChange,\n onTagsKeyDown,\n onTagsSelect,\n onSuggestionHover,\n onSuggestionPick,\n } = useTagSuggestions({\n enabled: suggestEnabled,\n tags: editBm.tags,\n onTagsUpdate: (tags) => {\n setEditBm((x) => ({ ...x, tags }));\n },\n });\n\n async function onStar(next: boolean) {\n await toggleStar(bm.bid, next ? 'star' : 'unstar');\n const updated = { ...bm, selected: next };\n setBm(updated);\n setEditBm((x) => ({ ...x, selected: next }));\n onUpdated(updated);\n }\n\n async function onDestroy() {\n await destroy(bm.bid);\n onNotifyRemove();\n }\n\n async function onMarkRead() {\n await markRead(bm.bid);\n const updated = { ...bm, toread: false };\n setBm(updated);\n onUpdated(updated);\n }\n\n function startEdit(next: boolean) {\n setEditBm(bm);\n setEdit(next);\n setApiError(null);\n closeSuggestions();\n if (next) setFocus(tagInputId);\n }\n\n async function onFetchTitle() {\n setLoading(true);\n try {\n const title = await lookupTitle(editBm);\n if (title != null) setEditBm((x) => ({ ...x, title }));\n } finally {\n setLoading(false);\n }\n }\n\n const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {\n e.preventDefault();\n setApiError(null);\n const editBm2 = { ...editBm, tags: normalizeTags(editBm.tags) };\n\n const res = await editBookmark(editBm2);\n if (res.ok && res.status >= 200 && res.status < 300) {\n setBm(editBm2);\n setEdit(false);\n onUpdated(editBm2);\n } else {\n setApiError(res.bodyText);\n // match PS behavior: log error\n // eslint-disable-next-line no-console\n console.log(res.bodyText);\n }\n };\n\n return (\n <div\n id={String(bm.bid)}\n className={`bookmark w-100 mw7 pa1 mb3${bm.private ? ' private' : ''}`}\n >\n {a.dat.isowner ? (\n <div className={`star fl pointer${bm.selected ? ' selected' : ''}`}>\n <button className=\"moon-gray\" onClick={() => void onStar(!bm.selected)} type=\"button\">\n \u272D\n </button>\n </div>\n ) : null}\n\n {!edit ? (\n <div className=\"display\">\n <a\n href={bm.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className={`link f5 lh-title${bm.toread ? ' unread' : ''}`}\n >\n {bm.title === '' ? '[no title]' : bm.title}\n </a>\n <br />\n <a href={bm.url} className=\"link f7 gray hover-blue\">\n {bm.url}\n </a>\n <a\n href={bm.archiveUrl ?? `http://archive.is/${bm.url}`}\n className={`link f7 gray hover-blue ml2${bm.archiveUrl ? ' green' : ''}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n title=\"archive link\"\n >\n {bm.archiveUrl ? '\u2611' : '\u2610'}\n </a>\n <br />\n <div className=\"description mt1 mid-gray\">\n <Markdown text={bm.description} />\n </div>\n <div className=\"tags\">\n {bm.tags !== ''\n ? bm.tags.split(' ').map((tag) => (\n <a\n key={tag}\n className={`link tag mr1${tag.slice(0, 1) === '.' ? ' private' : ''}`}\n href={linkToFilterTag(tag)}\n >\n {tag}\n </a>\n ))\n : null}\n </div>\n\n <a className=\"link f7 dib gray w4\" href={linkToFilterSingle(bm.slug)} title={shdatetime}>\n {shdate}\n </a>\n\n {a.dat.isowner ? (\n <div className=\"edit_links di\">\n <button\n type=\"button\"\n onClick={() => {\n startEdit(true);\n }}\n className=\"edit light-silver hover-blue\"\n >\n edit \n </button>\n <div className=\"delete_link di\">\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(true);\n }}\n className={`delete light-silver hover-blue${deleteAsk ? ' dn' : ''}`}\n >\n delete\n </button>\n <span className={`confirm red${!deleteAsk ? ' dn' : ''}`}>\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(false);\n }}\n >\n cancel / \n </button>\n <button type=\"button\" onClick={() => void onDestroy()} className=\"red\">\n destroy\n </button>\n </span>\n </div>\n </div>\n ) : null}\n\n {a.dat.isowner && bm.toread ? (\n <div className=\"read di\">\n \n <button onClick={() => void onMarkRead()} className=\"mark_read\" type=\"button\">\n mark as read\n </button>\n </div>\n ) : null}\n </div>\n ) : (\n <div className=\"edit_bookmark_form pa2 pt0 bg-white\">\n {apiError ? <div className=\"alert alert-err\">{apiError}</div> : null}\n <form onSubmit={(e) => void onSubmit(e)}>\n <div>url</div>\n <input\n type=\"url\"\n className=\"url w-100 mb2 pt1 edit_form_input\"\n required\n name=\"url\"\n value={editBm.url}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, url: e.target.value }));\n }}\n />\n <div>title</div>\n <div className=\"flex\">\n <input\n type=\"text\"\n className=\"title w-100 mb2 pt1 edit_form_input\"\n name=\"title\"\n value={editBm.title}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, title: e.target.value }));\n }}\n />\n <button\n disabled={loading}\n type=\"button\"\n onClick={() => void onFetchTitle()}\n className={`ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7${\n loading ? 'bg-light-silver' : ''\n }`}\n >\n fetch\n </button>\n </div>\n <div>description</div>\n <textarea\n className=\"description w-100 mb1 pt1 edit_form_input\"\n name=\"description\"\n rows={5}\n value={editBm.description}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, description: e.target.value }));\n }}\n />\n <div id=\"tags_input_box\">\n <div>tags</div>\n <div className=\"relative\">\n <input\n id={tagInputId}\n ref={tagInputRef}\n type=\"text\"\n className=\"tags w-100 mb1 pt1 edit_form_input\"\n name=\"tags\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n value={editBm.tags}\n onChange={onTagsChange}\n onKeyDown={onTagsKeyDown}\n onClick={onTagsSelect}\n onSelect={onTagsSelect}\n onBlur={() => {\n window.setTimeout(() => {\n closeSuggestions();\n }, 0);\n }}\n />\n {suggestionState != null ? (\n <TagSuggestionsDropdown\n suggestionState={suggestionState}\n onHover={onSuggestionHover}\n onPick={onSuggestionPick}\n />\n ) : null}\n </div>\n </div>\n <div className=\"edit_form_checkboxes mv3\">\n <input\n type=\"checkbox\"\n className=\"private pointer\"\n id=\"edit_private\"\n name=\"private\"\n checked={editBm.private}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, private: e.target.checked }));\n }}\n />{' '}\n <label htmlFor=\"edit_private\" className=\"mr2\">\n private\n </label>{' '}\n <input\n type=\"checkbox\"\n className=\"toread pointer\"\n id=\"edit_toread\"\n name=\"toread\"\n checked={editBm.toread}\n onChange={(e) => {\n setEditBm((x) => ({ ...x, toread: e.target.checked }));\n }}\n />{' '}\n <label htmlFor=\"edit_toread\">to-read</label>\n </div>\n <input\n type=\"submit\"\n className=\"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"\n value=\"save\"\n />{' '}\n <input\n type=\"reset\"\n className=\"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"\n value=\"cancel\"\n onClick={() => {\n startEdit(false);\n }}\n />\n </form>\n </div>\n )}\n </div>\n );\n}\n", null, null, null, null, null, "import type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Gets the original marked default options.\n */\nexport function _getDefaults<ParserOutput = string, RendererOutput = string>(): MarkedOptions<ParserOutput, RendererOutput> {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let _defaults: MarkedOptions<any, any> = _getDefaults();\n\nexport function changeDefaults<ParserOutput = string, RendererOutput = string>(newDefaults: MarkedOptions<ParserOutput, RendererOutput>) {\n _defaults = newDefaults;\n}\n", "const noopTest = { exec: () => null } as unknown as RegExp;\n\nfunction edit(regex: string | RegExp, opt = '') {\n let source = typeof regex === 'string' ? regex : regex.source;\n const obj = {\n replace: (name: string | RegExp, val: string | RegExp) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(other.caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n },\n };\n return obj;\n}\n\n// use a default variable to ensure the regex is evaluated on client an not removed by minifiers\nconst supportsLookbehind = ((a = '') => {\ntry {\n return !!new RegExp('(?<=1)(?<!1)' + a);\n} catch {\n // See browser support here:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Lookbehind_assertion\n return false;\n}\n})();\n\nexport const other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] +\\S/,\n listReplaceTask: /^\\[[ xX]\\] +/,\n listTaskCheckbox: /\\[[ xX]\\]/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^<a /i,\n endATag: /^<\\/a>/i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^</,\n endAngleBracket: />$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull: string) => new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: (indent: number) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`),\n hrRegex: (indent: number) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n fencesBeginRegex: (indent: number) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`),\n headingBeginRegex: (indent: number) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),\n htmlBeginRegex: (indent: number) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, 'i'),\n blockquoteBeginRegex: (indent: number) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}>`),\n};\n\n/**\n * Block-Level Grammar\n */\n\nconst newline = /^(?:[ \\t]*(?:\\n|$))+/;\nconst blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = / {0,3}(?:[*+-]|\\d{1,9}[.)])/;\nconst lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nconst lheading = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/\\|table/g, '') // table not in commonmark\n .getRegex();\nconst lheadingGfm = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/) // table can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\n\nconst list = edit(/^(bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\n\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nconst html = edit(\n '^ {0,3}(?:' // optional indentation\n+ '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n+ '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n+ '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n+ '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n+ '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n+ '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (6)\n+ '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) open tag\n+ '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) closing tag\n+ ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText,\n};\n\ntype BlockKeys = keyof typeof blockNormal;\n\n/**\n * GFM Block Grammar\n */\n\nconst gfmTable = edit(\n '^ *([^\\\\n ].*)\\\\n' // Header\n+ ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n+ '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', '(?: {4}| {0,3}\\t)[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nconst blockGfm: Record<BlockKeys, RegExp> = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex(),\n};\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nconst blockPedantic: Record<BlockKeys, RegExp> = {\n ...blockNormal,\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex(),\n};\n\n/**\n * Inline-Level Grammar\n */\n\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\n\n// list of unicode punctuation marks, plus any missing characters from CommonMark spec\nconst _punctuation = /[\\p{P}\\p{S}]/u;\nconst _punctuationOrSpace = /[\\s\\p{P}\\p{S}]/u;\nconst _notPunctuationOrSpace = /[^\\s\\p{P}\\p{S}]/u;\nconst punctuation = edit(/^((?![*_])punctSpace)/, 'u')\n .replace(/punctSpace/g, _punctuationOrSpace).getRegex();\n\n// GFM allows ~ inside strong and em for strikethrough\nconst _punctuationGfmStrongEm = /(?!~)[\\p{P}\\p{S}]/u;\nconst _punctuationOrSpaceGfmStrongEm = /(?!~)[\\s\\p{P}\\p{S}]/u;\nconst _notPunctuationOrSpaceGfmStrongEm = /(?:[^\\s\\p{P}\\p{S}]|~)/u;\n\n// sequences em should skip over [title](link), `code`, <html>\nconst blockSkip = edit(/link|precode-code|html/, 'g')\n .replace('link', /\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/)\n .replace('precode-', supportsLookbehind ? '(?<!`)()' : '(^^|[^`])')\n .replace('code', /(?<b>`+)[^`]+\\k<b>(?!`)/)\n .replace('html', /<(?! )[^<>]*?>/)\n .getRegex();\n\nconst emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/;\n\nconst emStrongLDelim = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongLDelimGfm = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n\nconst emStrongRDelimAstCore =\n '^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n+ '|[^*]+(?=[^*])' // Consume to delim\n+ '|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)' // (2) a***#, a*** can only be a Right Delimiter\n+ '|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)' // (3) #***a, ***a can only be Left Delimiter\n+ '|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)' // (4) ***# can only be Left Delimiter\n+ '|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)' // (5) #***# can be either Left or Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?=notPunctSpace)'; // (6) a***a can be either Left or Right Delimiter\n\nconst emStrongRDelimAst = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm)\n .replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm)\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit(\n '^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n+ '|[^_]+(?=[^_])' // Consume to delim\n+ '|(?!_)punct(_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n+ '|notPunctSpace(_+)(?!_)(?=punctSpace|$)' // (2) a___#, a___ can only be a Right Delimiter\n+ '|(?!_)punctSpace(_+)(?=notPunctSpace)' // (3) #___a, ___a can only be Left Delimiter\n+ '|[\\\\s](_+)(?!_)(?=punct)' // (4) ___# can only be Left Delimiter\n+ '|(?!_)punct(_+)(?!_)(?=punct)', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Tilde left delimiter for strikethrough (similar to emStrongLDelim for asterisk)\nconst delLDelim = edit(/^~~?(?:((?!~)punct)|[^\\s~])/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Tilde delimiter patterns for strikethrough (similar to asterisk)\nconst delRDelimCore =\n '^[^~]+(?=[^~])' // Consume to delim\n+ '|(?!~)punct(~~?)(?=[\\\\s]|$)' // (1) #~~ can only be a Right Delimiter\n+ '|notPunctSpace(~~?)(?!~)(?=punctSpace|$)' // (2) a~~#, a~~ can only be a Right Delimiter\n+ '|(?!~)punctSpace(~~?)(?=notPunctSpace)' // (3) #~~a, ~~a can only be Left Delimiter\n+ '|[\\\\s](~~?)(?!~)(?=punct)' // (4) ~~# can only be Left Delimiter\n+ '|(?!~)punct(~~?)(?!~)(?=punct)' // (5) #~~# can be either Left or Right Delimiter\n+ '|notPunctSpace(~~?)(?=notPunctSpace)'; // (6) a~~a can be either Left or Right Delimiter\n\nconst delRDelim = edit(delRDelimCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst anyPunctuation = edit(/\\\\(punct)/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\n\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit(\n '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nconst _inlineLabel = /(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/;\n\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\n\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\n\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\n\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n\nconst _caseInsensitiveProtocol = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/;\n\n/**\n * Normal Inline Grammar\n */\n\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n delLDelim: noopTest,\n delRDelim: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest,\n};\n\ntype InlineKeys = keyof typeof inlineNormal;\n\n/**\n * Pedantic Inline Grammar\n */\n\nconst inlinePedantic: Record<InlineKeys, RegExp> = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex(),\n};\n\n/**\n * GFM Inline Grammar\n */\n\nconst inlineGfm: Record<InlineKeys, RegExp> = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n delLDelim,\n delRDelim,\n url: edit(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/)\n .replace('protocol', _caseInsensitiveProtocol)\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: edit(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/)\n .replace('protocol', _caseInsensitiveProtocol)\n .getRegex(),\n};\n\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\nconst inlineBreaks: Record<InlineKeys, RegExp> = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex(),\n};\n\n/**\n * exports\n */\n\nexport const block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic,\n};\n\nexport const inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic,\n};\n\nexport interface Rules {\n other: typeof other\n block: Record<BlockKeys, RegExp>\n inline: Record<InlineKeys, RegExp>\n}\n", "import { other } from './rules.ts';\n\n/**\n * Helpers\n */\nconst escapeReplacements: { [index: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n};\nconst getEscapeReplacement = (ch: string) => escapeReplacements[ch];\n\nexport function escapeHtmlEntities(html: string, encode?: boolean) {\n if (encode) {\n if (other.escapeTest.test(html)) {\n return html.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html)) {\n return html.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nexport function cleanUrl(href: string) {\n try {\n href = encodeURI(href).replace(other.percentDecode, '%');\n } catch {\n return null;\n }\n return href;\n}\n\nexport function splitCells(tableRow: string, count?: number) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(other.splitPipe);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(other.slashPipe, '|');\n }\n return cells;\n}\n\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nexport function rtrim(str: string, c: string, invert?: boolean) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.slice(0, l - suffLen);\n}\n\nexport function trimTrailingBlankLines(str: string) {\n const lines = str.split('\\n');\n let end = lines.length - 1;\n while (end >= 0 && other.blankLine.test(lines[end])) {\n end--;\n }\n if (lines.length - end <= 2) {\n // we want to keep single trailing blank lines\n return str;\n }\n\n return lines.slice(0, end + 1).join('\\n');\n}\n\nexport function findClosingBracket(str: string, b: string) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n\n return -1;\n}\n\nexport function expandTabs(line: string, indent = 0) {\n let col = indent;\n let expanded = '';\n for (const char of line) {\n if (char === '\\t') {\n const added = 4 - (col % 4);\n expanded += ' '.repeat(added);\n col += added;\n } else {\n expanded += char;\n col++;\n }\n }\n\n return expanded;\n}\n", "import { _defaults } from './defaults.ts';\nimport {\n rtrim,\n splitCells,\n findClosingBracket,\n expandTabs,\n trimTrailingBlankLines,\n} from './helpers.ts';\nimport type { Rules } from './rules.ts';\nimport type { _Lexer } from './Lexer.ts';\nimport type { Links, Tokens, Token } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\nfunction outputLink(cap: string[], link: Pick<Tokens.Link, 'href' | 'title'>, raw: string, lexer: _Lexer, rules: Rules): Tokens.Link | Tokens.Image {\n const href = link.href;\n const title = link.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, '$1');\n\n lexer.state.inLink = true;\n const token: Tokens.Link | Tokens.Image = {\n type: cap[0].charAt(0) === '!' ? 'image' : 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text),\n };\n lexer.state.inLink = false;\n return token;\n}\n\nfunction indentCodeCompensation(raw: string, text: string, rules: Rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nexport class _Tokenizer<ParserOutput = string, RendererOutput = string> {\n options: MarkedOptions<ParserOutput, RendererOutput>;\n rules!: Rules; // set by the lexer\n lexer!: _Lexer<ParserOutput, RendererOutput>; // set by the lexer\n\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n this.options = options || _defaults;\n }\n\n space(src: string): Tokens.Space | undefined {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0],\n };\n }\n }\n\n code(src: string): Tokens.Code | undefined {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const raw = this.options.pedantic\n ? cap[0]\n : trimTrailingBlankLines(cap[0]);\n const text = raw.replace(this.rules.other.codeRemoveIndent, '');\n return {\n type: 'code',\n raw,\n codeBlockStyle: 'indented',\n text,\n };\n }\n }\n\n fences(src: string): Tokens.Code | undefined {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '', this.rules);\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text,\n };\n }\n }\n\n heading(src: string): Tokens.Heading | undefined {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n return {\n type: 'heading',\n raw: rtrim(cap[0], '\\n'),\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n hr(src: string): Tokens.Hr | undefined {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: rtrim(cap[0], '\\n'),\n };\n }\n }\n\n blockquote(src: string): Tokens.Blockquote | undefined {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], '\\n').split('\\n');\n let raw = '';\n let text = '';\n const tokens: Token[] = [];\n\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n\n let i;\n for (i = 0; i < lines.length; i++) {\n // get lines up to a continuation\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n\n const currentRaw = currentLines.join('\\n');\n const currentText = currentRaw\n // precede setext continuation with 4 spaces so it isn't a setext\n .replace(this.rules.other.blockquoteSetextReplace, '\\n $1')\n .replace(this.rules.other.blockquoteSetextReplace2, '');\n raw = raw ? `${raw}\\n${currentRaw}` : currentRaw;\n text = text ? `${text}\\n${currentText}` : currentText;\n\n // parse blockquote lines as top level tokens\n // merge paragraphs if this is a continuation\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n\n // if there is no continuation then we are done\n if (lines.length === 0) {\n break;\n }\n\n const lastToken = tokens.at(-1);\n\n if (lastToken?.type === 'code') {\n // blockquote continuation cannot be preceded by a code block\n break;\n } else if (lastToken?.type === 'blockquote') {\n // include continuation in nested blockquote\n const oldToken = lastToken as Tokens.Blockquote;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.blockquote(newText)!;\n tokens[tokens.length - 1] = newToken;\n\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === 'list') {\n // include continuation in nested list\n const oldToken = lastToken as Tokens.List;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.list(newText)!;\n tokens[tokens.length - 1] = newToken;\n\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1)!.raw.length).split('\\n');\n continue;\n }\n }\n\n return {\n type: 'blockquote',\n raw,\n tokens,\n text,\n };\n }\n }\n\n list(src: string): Tokens.List | undefined {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list: Tokens.List = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: [],\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n let raw = '';\n let itemContents = '';\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n let line = expandTabs(cap[2].split('\\n', 1)[0], cap[1].length);\n let nextLine = src.split('\\n', 1)[0];\n let blankLine = !line.trim();\n\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = line.search(this.rules.other.nonSpaceChar); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n if (blankLine && this.rules.other.blankLine.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n const blockquoteBeginRegex = this.rules.other.blockquoteBeginRegex(indent);\n\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, ' ');\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, ' ');\n }\n\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of html block\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of blockquote\n if (blockquoteBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n\n // Horizontal rule found\n if (hrRegex.test(nextLine)) {\n break;\n }\n\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLineWithoutTabs.slice(indent);\n } else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n\n // paragraph continuation unless last line was a different block level element\n if (line.replace(this.rules.other.tabCharGlobal, ' ').search(this.rules.other.nonSpaceChar) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n\n itemContents += '\\n' + nextLine;\n }\n\n blankLine = !nextLine.trim();\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw,\n task: !!this.options.gfm && this.rules.other.listIsTask.test(itemContents),\n loose: false,\n text: itemContents,\n tokens: [],\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n const lastItem = list.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n // not a list since there were no items\n return;\n }\n list.raw = list.raw.trimEnd();\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (const item of list.items) {\n this.lexer.state.top = false;\n item.tokens = this.lexer.blockTokens(item.text, []);\n if (item.task) {\n // Remove checkbox markdown from item tokens\n item.text = item.text.replace(this.rules.other.listReplaceTask, '');\n if (item.tokens[0]?.type === 'text' || item.tokens[0]?.type === 'paragraph') {\n item.tokens[0].raw = item.tokens[0].raw.replace(this.rules.other.listReplaceTask, '');\n item.tokens[0].text = item.tokens[0].text.replace(this.rules.other.listReplaceTask, '');\n for (let i = this.lexer.inlineQueue.length - 1; i >= 0; i--) {\n if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[i].src)) {\n this.lexer.inlineQueue[i].src = this.lexer.inlineQueue[i].src.replace(this.rules.other.listReplaceTask, '');\n break;\n }\n }\n }\n\n const taskRaw = this.rules.other.listTaskCheckbox.exec(item.raw);\n if (taskRaw) {\n const checkboxToken: Tokens.Checkbox = {\n type: 'checkbox',\n raw: taskRaw[0] + ' ',\n checked: taskRaw[0] !== '[ ]',\n };\n item.checked = checkboxToken.checked;\n if (list.loose) {\n if (item.tokens[0] && ['paragraph', 'text'].includes(item.tokens[0].type) && 'tokens' in item.tokens[0] && item.tokens[0].tokens) {\n item.tokens[0].raw = checkboxToken.raw + item.tokens[0].raw;\n item.tokens[0].text = checkboxToken.raw + item.tokens[0].text;\n item.tokens[0].tokens.unshift(checkboxToken);\n } else {\n item.tokens.unshift({\n type: 'paragraph',\n raw: checkboxToken.raw,\n text: checkboxToken.raw,\n tokens: [checkboxToken],\n });\n }\n } else {\n item.tokens.unshift(checkboxToken);\n }\n }\n }\n\n if (!list.loose) {\n // Check if list should be loose\n const spacers = item.tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => this.rules.other.anyLine.test(t.raw));\n\n list.loose = hasMultipleLineBreaks;\n }\n }\n\n // Set all items to loose if list is loose\n if (list.loose) {\n for (const item of list.items) {\n item.loose = true;\n for (const token of item.tokens) {\n if (token.type === 'text') {\n token.type = 'paragraph';\n }\n }\n }\n }\n\n return list;\n }\n }\n\n html(src: string): Tokens.HTML | undefined {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const raw = trimTrailingBlankLines(cap[0]);\n const token: Tokens.HTML = {\n type: 'html',\n block: true,\n raw,\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: raw,\n };\n return token;\n }\n }\n\n def(src: string): Tokens.Def | undefined {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, ' ');\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: rtrim(cap[0], '\\n'),\n href,\n title,\n };\n }\n }\n\n table(src: string): Tokens.Table | undefined {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, '').split('|');\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, '').split('\\n') : [];\n\n const item: Tokens.Table = {\n type: 'table',\n raw: rtrim(cap[0], '\\n'),\n header: [],\n align: [],\n rows: [],\n };\n\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push('right');\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push('center');\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push('left');\n } else {\n item.align.push(null);\n }\n }\n\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i],\n });\n }\n\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i],\n };\n }));\n }\n\n return item;\n }\n\n lheading(src: string): Tokens.Heading | undefined {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const text = cap[1].trim();\n return {\n type: 'heading',\n raw: rtrim(cap[0], '\\n'),\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n paragraph(src: string): Tokens.Paragraph | undefined {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n text(src: string): Tokens.Text | undefined {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0]),\n };\n }\n }\n\n escape(src: string): Tokens.Escape | undefined {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: cap[1],\n };\n }\n }\n\n tag(src: string): Tokens.Tag | undefined {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0],\n };\n }\n }\n\n link(src: string): Tokens.Link | Tokens.Image | undefined {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex === -2) {\n // more open parens than closed\n return;\n }\n\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = this.rules.other.pedanticHrefTitle.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title,\n }, cap[0], this.lexer, this.rules);\n }\n }\n\n reflink(src: string, links: Links): Tokens.Link | Tokens.Image | Tokens.Text | undefined {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text,\n };\n }\n return outputLink(cap, link, cap[0], this.lexer, this.rules);\n }\n }\n\n emStrong(src: string, maskedSrc: string, prevChar = ''): Tokens.Em | Tokens.Strong | undefined {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (!match[1] && !match[2] && !match[3] && !match[4]) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[4] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n\n const nextChar = match[1] || match[3] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) !== null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = [...rDelim].length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n\n codespan(src: string): Tokens.Codespan | undefined {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, ' ');\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: 'codespan',\n raw: cap[0],\n text,\n };\n }\n }\n\n br(src: string): Tokens.Br | undefined {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0],\n };\n }\n }\n\n del(src: string, maskedSrc: string, prevChar = ''): Tokens.Del | undefined {\n let match = this.rules.inline.delLDelim.exec(src);\n if (!match) return;\n\n const nextChar = match[1] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength;\n\n const endReg = this.rules.inline.delRDelim;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) !== null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue;\n\n rLength = [...rDelim].length;\n\n if (rLength !== lLength) continue;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters\n rLength = Math.min(rLength, rLength + delimTotal);\n // char length can be >1 for unicode characters\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n\n // Create del token - only single ~ or double ~~ supported\n const text = raw.slice(lLength, -lLength);\n return {\n type: 'del',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n\n autolink(src: string): Tokens.Link | undefined {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[1];\n href = 'mailto:' + text;\n } else {\n text = cap[1];\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n\n url(src: string): Tokens.Link | undefined {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[0];\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n\n inlineText(src: string): Tokens.Text | undefined {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n escaped,\n };\n }\n }\n}\n", "import { _Tokenizer } from './Tokenizer.ts';\nimport { _defaults } from './defaults.ts';\nimport { other, block, inline } from './rules.ts';\nimport type { Token, TokensList, Tokens } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Block Lexer\n */\nexport class _Lexer<ParserOutput = string, RendererOutput = string> {\n tokens: TokensList;\n options: MarkedOptions<ParserOutput, RendererOutput>;\n state: {\n inLink: boolean;\n inRawBlock: boolean;\n top: boolean;\n };\n\n public inlineQueue: { src: string, tokens: Token[] }[];\n\n private tokenizer: _Tokenizer<ParserOutput, RendererOutput>;\n\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n // TokenList cannot be created in one go\n this.tokens = [] as unknown as TokensList;\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer<ParserOutput, RendererOutput>();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true,\n };\n\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal,\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline,\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex<ParserOutput = string, RendererOutput = string>(src: string, options?: MarkedOptions<ParserOutput, RendererOutput>) {\n const lexer = new _Lexer<ParserOutput, RendererOutput>(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline<ParserOutput = string, RendererOutput = string>(src: string, options?: MarkedOptions<ParserOutput, RendererOutput>) {\n const lexer = new _Lexer<ParserOutput, RendererOutput>(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src: string) {\n src = src.replace(other.carriageReturn, '\\n');\n\n this.blockTokens(src, this.tokens);\n\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src: string, tokens?: Token[], lastParagraphClipped?: boolean): Token[];\n blockTokens(src: string, tokens?: TokensList, lastParagraphClipped?: boolean): TokensList;\n blockTokens(src: string, tokens: Token[] = [], lastParagraphClipped = false) {\n this.tokenizer.lexer = this;\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, ' ').replace(other.spaceLine, '');\n }\n\n let srcLength = Infinity;\n while (src) {\n if (src.length < srcLength) {\n srcLength = src.length;\n } else {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n\n let token: Tokens.Generic | undefined;\n\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== undefined) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n lastToken.raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title,\n };\n tokens.push(token);\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === 'paragraph') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src: string, tokens: Token[] = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src: string, tokens: Token[] = []): Token[] {\n this.tokenizer.lexer = this;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match: RegExpExecArray | null = null;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) !== null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index)\n + '[' + 'a'.repeat(match[0].length - 2) + ']'\n + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) !== null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n\n // Mask out other blocks\n let offset;\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) !== null) {\n offset = match[2] ? match[2].length : 0;\n maskedSrc = maskedSrc.slice(0, match.index + offset) + '[' + 'a'.repeat(match[0].length - offset - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out blocks from extensions\n maskedSrc = this.options.hooks?.emStrongMask?.call({ lexer: this }, maskedSrc) ?? maskedSrc;\n\n let keepPrevChar = false;\n let prevChar = '';\n let srcLength = Infinity;\n while (src) {\n if (src.length < srcLength) {\n srcLength = src.length;\n } else {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n let token: Tokens.Generic | undefined;\n\n // extensions\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === 'text' && lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n }\n\n return tokens;\n }\n\n private infiniteLoopError(byte: number) {\n const errMsg = 'Infinite loop on byte: ' + byte;\n if (this.options.silent) {\n console.error(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n}\n", "import { _defaults } from './defaults.ts';\nimport {\n cleanUrl,\n escapeHtmlEntities,\n} from './helpers.ts';\nimport { other } from './rules.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\nimport type { Tokens } from './Tokens.ts';\nimport type { _Parser } from './Parser.ts';\n\n/**\n * Renderer\n */\nexport class _Renderer<ParserOutput = string, RendererOutput = string> {\n options: MarkedOptions<ParserOutput, RendererOutput>;\n parser!: _Parser<ParserOutput, RendererOutput>; // set by the parser\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n this.options = options || _defaults;\n }\n\n space(token: Tokens.Space): RendererOutput {\n return '' as RendererOutput;\n }\n\n code({ text, lang, escaped }: Tokens.Code): RendererOutput {\n const langString = (lang || '').match(other.notSpaceStart)?.[0];\n\n const code = text.replace(other.endingNewline, '') + '\\n';\n\n if (!langString) {\n return '<pre><code>'\n + (escaped ? code : escapeHtmlEntities(code, true))\n + '</code></pre>\\n' as RendererOutput;\n }\n\n return '<pre><code class=\"language-'\n + escapeHtmlEntities(langString)\n + '\">'\n + (escaped ? code : escapeHtmlEntities(code, true))\n + '</code></pre>\\n' as RendererOutput;\n }\n\n blockquote({ tokens }: Tokens.Blockquote): RendererOutput {\n const body = this.parser.parse(tokens);\n return `<blockquote>\\n${body}</blockquote>\\n` as RendererOutput;\n }\n\n html({ text }: Tokens.HTML | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n def(token: Tokens.Def): RendererOutput {\n return '' as RendererOutput;\n }\n\n heading({ tokens, depth }: Tokens.Heading): RendererOutput {\n return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\\n` as RendererOutput;\n }\n\n hr(token: Tokens.Hr): RendererOutput {\n return '<hr>\\n' as RendererOutput;\n }\n\n list(token: Tokens.List): RendererOutput {\n const ordered = token.ordered;\n const start = token.start;\n\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n\n const type = ordered ? 'ol' : 'ul';\n const startAttr = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startAttr + '>\\n' + body + '</' + type + '>\\n' as RendererOutput;\n }\n\n listitem(item: Tokens.ListItem): RendererOutput {\n return `<li>${this.parser.parse(item.tokens)}</li>\\n` as RendererOutput;\n }\n\n checkbox({ checked }: Tokens.Checkbox): RendererOutput {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"> ' as RendererOutput;\n }\n\n paragraph({ tokens }: Tokens.Paragraph): RendererOutput {\n return `<p>${this.parser.parseInline(tokens)}</p>\\n` as RendererOutput;\n }\n\n table(token: Tokens.Table): RendererOutput {\n let header = '';\n\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell as ParserOutput });\n\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n\n body += this.tablerow({ text: cell as ParserOutput });\n }\n if (body) body = `<tbody>${body}</tbody>`;\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n' as RendererOutput;\n }\n\n tablerow({ text }: Tokens.TableRow<ParserOutput>): RendererOutput {\n return `<tr>\\n${text}</tr>\\n` as RendererOutput;\n }\n\n tablecell(token: Tokens.TableCell): RendererOutput {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? 'th' : 'td';\n const tag = token.align\n ? `<${type} align=\"${token.align}\">`\n : `<${type}>`;\n return tag + content + `</${type}>\\n` as RendererOutput;\n }\n\n /**\n * span level renderer\n */\n strong({ tokens }: Tokens.Strong): RendererOutput {\n return `<strong>${this.parser.parseInline(tokens)}</strong>` as RendererOutput;\n }\n\n em({ tokens }: Tokens.Em): RendererOutput {\n return `<em>${this.parser.parseInline(tokens)}</em>` as RendererOutput;\n }\n\n codespan({ text }: Tokens.Codespan): RendererOutput {\n return `<code>${escapeHtmlEntities(text, true)}</code>` as RendererOutput;\n }\n\n br(token: Tokens.Br): RendererOutput {\n return '<br>' as RendererOutput;\n }\n\n del({ tokens }: Tokens.Del): RendererOutput {\n return `<del>${this.parser.parseInline(tokens)}</del>` as RendererOutput;\n }\n\n link({ href, title, tokens }: Tokens.Link): RendererOutput {\n const text = this.parser.parseInline(tokens) as string;\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text as RendererOutput;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + (escapeHtmlEntities(title)) + '\"';\n }\n out += '>' + text + '</a>';\n return out as RendererOutput;\n }\n\n image({ href, title, text, tokens }: Tokens.Image): RendererOutput {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer) as string;\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escapeHtmlEntities(text) as RendererOutput;\n }\n href = cleanHref;\n\n let out = `<img src=\"${href}\" alt=\"${escapeHtmlEntities(text)}\"`;\n if (title) {\n out += ` title=\"${escapeHtmlEntities(title)}\"`;\n }\n out += '>';\n return out as RendererOutput;\n }\n\n text(token: Tokens.Text | Tokens.Escape): RendererOutput {\n return 'tokens' in token && token.tokens\n ? this.parser.parseInline(token.tokens) as unknown as RendererOutput\n : ('escaped' in token && token.escaped ? token.text as RendererOutput : escapeHtmlEntities(token.text) as RendererOutput);\n }\n}\n", "import type { Tokens } from './Tokens.ts';\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nexport class _TextRenderer<RendererOutput = string> {\n // no need for block level renderers\n strong({ text }: Tokens.Strong): RendererOutput {\n return text as RendererOutput;\n }\n\n em({ text }: Tokens.Em): RendererOutput {\n return text as RendererOutput;\n }\n\n codespan({ text }: Tokens.Codespan): RendererOutput {\n return text as RendererOutput;\n }\n\n del({ text }: Tokens.Del): RendererOutput {\n return text as RendererOutput;\n }\n\n html({ text }: Tokens.HTML | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n text({ text }: Tokens.Text | Tokens.Escape | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n link({ text }: Tokens.Link): RendererOutput {\n return '' + text as RendererOutput;\n }\n\n image({ text }: Tokens.Image): RendererOutput {\n return '' + text as RendererOutput;\n }\n\n br(): RendererOutput {\n return '' as RendererOutput;\n }\n\n checkbox({ raw }: Tokens.Checkbox): RendererOutput {\n return raw as RendererOutput;\n }\n}\n", "import { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _defaults } from './defaults.ts';\nimport type { MarkedToken, Token, Tokens } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Parsing & Compiling\n */\nexport class _Parser<ParserOutput = string, RendererOutput = string> {\n options: MarkedOptions<ParserOutput, RendererOutput>;\n renderer: _Renderer<ParserOutput, RendererOutput>;\n textRenderer: _TextRenderer<RendererOutput>;\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer<ParserOutput, RendererOutput>();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer<RendererOutput>();\n }\n\n /**\n * Static Parse Method\n */\n static parse<ParserOutput = string, RendererOutput = string>(tokens: Token[], options?: MarkedOptions<ParserOutput, RendererOutput>) {\n const parser = new _Parser<ParserOutput, RendererOutput>(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline<ParserOutput = string, RendererOutput = string>(tokens: Token[], options?: MarkedOptions<ParserOutput, RendererOutput>) {\n const parser = new _Parser<ParserOutput, RendererOutput>(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens: Token[]): ParserOutput {\n this.renderer.parser = this;\n let out = '';\n\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken as Tokens.Generic;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'def', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n\n const token = anyToken as MarkedToken;\n\n switch (token.type) {\n case 'space': {\n out += this.renderer.space(token);\n break;\n }\n case 'hr': {\n out += this.renderer.hr(token);\n break;\n }\n case 'heading': {\n out += this.renderer.heading(token);\n break;\n }\n case 'code': {\n out += this.renderer.code(token);\n break;\n }\n case 'table': {\n out += this.renderer.table(token);\n break;\n }\n case 'blockquote': {\n out += this.renderer.blockquote(token);\n break;\n }\n case 'list': {\n out += this.renderer.list(token);\n break;\n }\n case 'checkbox': {\n out += this.renderer.checkbox(token);\n break;\n }\n case 'html': {\n out += this.renderer.html(token);\n break;\n }\n case 'def': {\n out += this.renderer.def(token);\n break;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(token);\n break;\n }\n case 'text': {\n out += this.renderer.text(token);\n break;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '' as ParserOutput;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out as ParserOutput;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens: Token[], renderer: _Renderer<ParserOutput, RendererOutput> | _TextRenderer<RendererOutput> = this.renderer): ParserOutput {\n this.renderer.parser = this;\n let out = '';\n\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(anyToken.type)) {\n out += ret || '';\n continue;\n }\n }\n\n const token = anyToken as MarkedToken;\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token);\n break;\n }\n case 'html': {\n out += renderer.html(token);\n break;\n }\n case 'link': {\n out += renderer.link(token);\n break;\n }\n case 'image': {\n out += renderer.image(token);\n break;\n }\n case 'checkbox': {\n out += renderer.checkbox(token);\n break;\n }\n case 'strong': {\n out += renderer.strong(token);\n break;\n }\n case 'em': {\n out += renderer.em(token);\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token);\n break;\n }\n case 'br': {\n out += renderer.br(token);\n break;\n }\n case 'del': {\n out += renderer.del(token);\n break;\n }\n case 'text': {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '' as ParserOutput;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out as ParserOutput;\n }\n}\n", "import { _defaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, TokensList } from './Tokens.ts';\n\nexport class _Hooks<ParserOutput = string, RendererOutput = string> {\n options: MarkedOptions<ParserOutput, RendererOutput>;\n block?: boolean;\n\n constructor(options?: MarkedOptions<ParserOutput, RendererOutput>) {\n this.options = options || _defaults;\n }\n\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n 'emStrongMask',\n ]);\n\n static passThroughHooksRespectAsync = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n ]);\n\n /**\n * Process markdown before marked\n */\n preprocess(markdown: string) {\n return markdown;\n }\n\n /**\n * Process HTML after marked is finished\n */\n postprocess(html: ParserOutput) {\n return html;\n }\n\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens: Token[] | TokensList) {\n return tokens;\n }\n\n /**\n * Mask contents that should not be interpreted as em/strong delimiters\n */\n emStrongMask(src: string) {\n return src;\n }\n\n /**\n * Provide function to tokenize markdown\n */\n provideLexer(block = this.block) {\n return block ? _Lexer.lex : _Lexer.lexInline;\n }\n\n /**\n * Provide function to parse tokens\n */\n provideParser(block = this.block) {\n return block ? _Parser.parse<ParserOutput, RendererOutput> : _Parser.parseInline<ParserOutput, RendererOutput>;\n }\n}\n", "import { _getDefaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { escapeHtmlEntities } from './helpers.ts';\nimport type { MarkedExtension, MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, Tokens, TokensList } from './Tokens.ts';\n\nexport type MaybePromise = void | Promise<void>;\n\ntype UnknownFunction = (...args: unknown[]) => unknown;\ntype GenericRendererFunction = (...args: unknown[]) => string | false;\n\nexport class Marked<ParserOutput = string, RendererOutput = string> {\n defaults = _getDefaults<ParserOutput, RendererOutput>();\n options = this.setOptions;\n\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n\n Parser = _Parser<ParserOutput, RendererOutput>;\n Renderer = _Renderer<ParserOutput, RendererOutput>;\n TextRenderer = _TextRenderer<RendererOutput>;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer<ParserOutput, RendererOutput>;\n Hooks = _Hooks<ParserOutput, RendererOutput>;\n\n constructor(...args: MarkedExtension<ParserOutput, RendererOutput>[]) {\n this.use(...args);\n }\n\n /**\n * Run callback for every token\n */\n walkTokens(tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) {\n let values: MaybePromise[] = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token as Tokens.Table;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token as Tokens.List;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token as Tokens.Generic;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity) as Token[] | TokensList;\n values = values.concat(this.walkTokens(tokens, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n\n use(...args: MarkedExtension<ParserOutput, RendererOutput>[]) {\n const extensions: MarkedOptions<ParserOutput, RendererOutput>['extensions'] = this.defaults.extensions || { renderers: {}, childTokens: {} };\n\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack } as MarkedOptions<ParserOutput, RendererOutput>;\n\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer<ParserOutput, RendererOutput>(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (['options', 'parser'].includes(prop)) {\n // ignore options property\n continue;\n }\n const rendererProp = prop as Exclude<keyof _Renderer<ParserOutput, RendererOutput>, 'options' | 'parser'>;\n const rendererFunc = pack.renderer[rendererProp] as GenericRendererFunction;\n const prevRenderer = renderer[rendererProp] as GenericRendererFunction;\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args: unknown[]) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return (ret || '') as RendererOutput;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer<ParserOutput, RendererOutput>(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop as Exclude<keyof _Tokenizer<ParserOutput, RendererOutput>, 'options' | 'rules' | 'lexer'>;\n const tokenizerFunc = pack.tokenizer[tokenizerProp] as UnknownFunction;\n const prevTokenizer = tokenizer[tokenizerProp] as UnknownFunction;\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args: unknown[]) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks<ParserOutput, RendererOutput>();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (['options', 'block'].includes(prop)) {\n // ignore options and block properties\n continue;\n }\n const hooksProp = prop as Exclude<keyof _Hooks<ParserOutput, RendererOutput>, 'options' | 'block'>;\n const hooksFunc = pack.hooks[hooksProp] as UnknownFunction;\n const prevHook = hooks[hooksProp] as UnknownFunction;\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg: unknown) => {\n if (this.defaults.async && _Hooks.passThroughHooksRespectAsync.has(prop)) {\n return (async() => {\n const ret = await hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n })();\n }\n\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args: unknown[]) => {\n if (this.defaults.async) {\n return (async() => {\n let ret = await hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = await prevHook.apply(hooks, args);\n }\n return ret;\n })();\n }\n\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values: MaybePromise[] = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n\n this.defaults = { ...this.defaults, ...opts };\n });\n\n return this;\n }\n\n setOptions(opt: MarkedOptions<ParserOutput, RendererOutput>) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n\n lexer(src: string, options?: MarkedOptions<ParserOutput, RendererOutput>) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n\n parser(tokens: Token[], options?: MarkedOptions<ParserOutput, RendererOutput>) {\n return _Parser.parse<ParserOutput, RendererOutput>(tokens, options ?? this.defaults);\n }\n\n private parseMarkdown(blockType: boolean) {\n type overloadedParse = {\n (src: string, options: MarkedOptions<ParserOutput, RendererOutput> & { async: true }): Promise<ParserOutput>;\n (src: string, options: MarkedOptions<ParserOutput, RendererOutput> & { async: false }): ParserOutput;\n (src: string, options?: MarkedOptions<ParserOutput, RendererOutput> | null): ParserOutput | Promise<ParserOutput>;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parse: overloadedParse = (src: string, options?: MarkedOptions<ParserOutput, RendererOutput> | null): any => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n\n const throwError = this.onError(!!opt.silent, !!opt.async);\n\n // throw error if an extension set async to true but parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error('marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.'));\n }\n\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n\n if (opt.async) {\n return (async() => {\n const processedSrc = opt.hooks ? await opt.hooks.preprocess(src) : src;\n const lexer = opt.hooks ? await opt.hooks.provideLexer(blockType) : (blockType ? _Lexer.lex : _Lexer.lexInline);\n const tokens = await lexer(processedSrc, opt);\n const processedTokens = opt.hooks ? await opt.hooks.processAllTokens(tokens) : tokens;\n if (opt.walkTokens) {\n await Promise.all(this.walkTokens(processedTokens, opt.walkTokens));\n }\n const parser = opt.hooks ? await opt.hooks.provideParser(blockType) : (blockType ? _Parser.parse : _Parser.parseInline);\n const html = await parser(processedTokens, opt);\n return opt.hooks ? await opt.hooks.postprocess(html) : html;\n })().catch(throwError);\n }\n\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src) as string;\n }\n const lexer = opt.hooks ? opt.hooks.provideLexer(blockType) : (blockType ? _Lexer.lex : _Lexer.lexInline);\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n const parser = opt.hooks ? opt.hooks.provideParser(blockType) : (blockType ? _Parser.parse : _Parser.parseInline);\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n } catch(e) {\n return throwError(e as Error);\n }\n };\n\n return parse;\n }\n\n private onError(silent: boolean, async: boolean) {\n return (e: Error): string | Promise<string> => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (silent) {\n const msg = '<p>An error occurred:</p><pre>'\n + escapeHtmlEntities(e.message + '', true)\n + '</pre>';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n", "import { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { Marked } from './Instance.ts';\nimport {\n _getDefaults,\n changeDefaults,\n _defaults,\n} from './defaults.ts';\nimport type { MarkedExtension, MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, TokensList } from './Tokens.ts';\nimport type { MaybePromise } from './Instance.ts';\n\nconst markedInstance = new Marked();\n\n/**\n * Compiles markdown to HTML asynchronously.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options, having async: true\n * @return Promise of string of compiled HTML\n */\nexport function marked(src: string, options: MarkedOptions & { async: true }): Promise<string>;\n\n/**\n * Compiles markdown to HTML.\n *\n * @param src String of markdown source to be compiled\n * @param options Optional hash of options\n * @return String of compiled HTML. Will be a Promise of string if async is set to true by any extensions.\n */\nexport function marked(src: string, options: MarkedOptions & { async: false }): string;\nexport function marked(src: string, options: MarkedOptions & { async: true }): Promise<string>;\nexport function marked(src: string, options?: MarkedOptions | null): string | Promise<string>;\nexport function marked(src: string, opt?: MarkedOptions | null): string | Promise<string> {\n return markedInstance.parse(src, opt);\n}\n\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function(options: MarkedOptions) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\n\nmarked.defaults = _defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args: MarkedExtension[]) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) {\n return markedInstance.walkTokens(tokens, callback);\n};\n\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\n\nexport const options = marked.options;\nexport const setOptions = marked.setOptions;\nexport const use = marked.use;\nexport const walkTokens = marked.walkTokens;\nexport const parseInline = marked.parseInline;\nexport const parse = marked;\nexport const parser = _Parser.parse;\nexport const lexer = _Lexer.lex;\nexport { _defaults as defaults, _getDefaults as getDefaults } from './defaults.ts';\nexport { _Lexer as Lexer } from './Lexer.ts';\nexport { _Parser as Parser } from './Parser.ts';\nexport { _Tokenizer as Tokenizer } from './Tokenizer.ts';\nexport { _Renderer as Renderer } from './Renderer.ts';\nexport { _TextRenderer as TextRenderer } from './TextRenderer.ts';\nexport { _Hooks as Hooks } from './Hooks.ts';\nexport { Marked } from './Instance.ts';\nexport type * from './MarkedOptions.ts';\nexport type * from './Tokens.ts';\n", "import DOMPurify from 'dompurify';\nimport { marked } from 'marked';\nimport React from 'react';\n\nmarked.setOptions({\n pedantic: false,\n gfm: true,\n});\n\nexport function Markdown({ text, className }: { text: string; className?: string }) {\n const html = React.useMemo(() => {\n if (!text) return '';\n const parsed = marked.parse(text, { async: false });\n return DOMPurify.sanitize(typeof parsed === 'string' ? parsed : '');\n }, [text]);\n\n return <div className={className} dangerouslySetInnerHTML={{ __html: html }} />;\n}\n", "import React from 'react';\n\nimport { app, mmoment8601 } from '../globals';\nimport type { Note } from '../types';\nimport { fromNullableStr } from '../util';\n\nfunction toTextareaPreview(input: string) {\n const lines = input.split('\\n');\n return (\n <>\n {lines[0]}\n {lines.slice(1).map((x, idx) => (\n <React.Fragment key={idx}>\n <br />\n {x}\n </React.Fragment>\n ))}\n </>\n );\n}\n\nexport function NList({ initial }: { initial: Note[] }) {\n const a = app();\n const linkToFilterSingle = (slug: string) => `${fromNullableStr(a.userR)}/notes/${slug}`;\n\n return (\n <div>\n {initial.map((note) => {\n const mm = mmoment8601(note.created);\n return (\n <div\n key={note.id}\n id={String(note.id)}\n className={`note w-100 mw7 pa1 mb2${note.shared ? '' : ' private'}`}\n >\n <div className=\"display\">\n <a href={linkToFilterSingle(note.slug)} className=\"link f5 lh-title\">\n {note.title === '' ? '[no title]' : note.title}\n </a>\n <br />\n <div className=\"description mt1 mid-gray\">\n {toTextareaPreview(note.text.slice(0, 200))}\n </div>\n <a\n className=\"link f7 dib gray w4\"\n title={mm?.[1] ?? note.created}\n href={linkToFilterSingle(note.slug)}\n >\n {mm?.[0] ?? '\\u00a0'}\n </a>\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n", "import React from 'react';\n\nimport { destroyNote, editNote } from '../api';\nimport { app, closeWindow, mmoment8601, setFocus } from '../globals';\nimport type { Note } from '../types';\nimport { curQuerystring, fromNullableStr, lookupQueryStringValue } from '../util';\nimport { Markdown } from './Markdown';\n\nfunction toTextarea(input: string) {\n const lines = input.split('\\n');\n return (\n <>\n {lines[0]}\n {lines.slice(1).map((x, idx) => (\n <React.Fragment key={idx}>\n <br />\n {x}\n </React.Fragment>\n ))}\n </>\n );\n}\n\nexport function NNote({ initial }: { initial: Note }) {\n const a = app();\n\n const [note, setNote] = React.useState<Note>(initial);\n const [editNoteState, setEditNoteState] = React.useState<Note>(initial);\n const [deleteAsk, setDeleteAsk] = React.useState(false);\n const [edit, setEdit] = React.useState(initial.id <= 0);\n const [destroyed, setDestroyed] = React.useState(false);\n const [apiError, setApiError] = React.useState<string | null>(null);\n\n const notetextid = `${note.id.toString()}_text`;\n const mm = mmoment8601(note.created);\n\n function startEdit(next: boolean) {\n setEditNoteState(note);\n setEdit(next);\n const qs = curQuerystring();\n const q = lookupQueryStringValue(qs, 'next');\n if (!next && q === 'closeWindow') closeWindow(window);\n else if (next) setFocus(notetextid);\n }\n\n async function onDestroy() {\n await destroyNote(note.id);\n setDestroyed(true);\n }\n\n const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {\n e.preventDefault();\n setApiError(null);\n\n const res = await editNote(editNoteState);\n if (res.ok && res.status >= 200 && res.status < 300) {\n const qs = curQuerystring();\n const next = lookupQueryStringValue(qs, 'next');\n const ref = document.referrer;\n const org = window.location.origin;\n\n if (next === 'closeWindow') closeWindow(window);\n else if (next === 'back') {\n if (ref.startsWith(org)) window.location.href = ref;\n else window.location.href = org;\n } else if (editNoteState.id === 0) {\n window.location.href = fromNullableStr(a.noteR);\n } else {\n setNote(editNoteState);\n setEdit(false);\n }\n } else {\n setApiError(res.bodyText);\n // eslint-disable-next-line no-console\n console.log(res.bodyText);\n }\n };\n\n if (destroyed) return <p className=\"red\">you killed this note</p>;\n\n return (\n <div id={String(note.id)} className=\"note w-100 mw7 pa1 mb2\">\n {!edit ? (\n <>\n <div className=\"display\">\n <div className=\"link f5 lh-title\">{note.title === '' ? '[no title]' : note.title}</div>\n <br />\n {note.isMarkdown ? (\n <div className=\"description mt1\">\n <Markdown text={note.text} />\n </div>\n ) : (\n <div className=\"description mt1 mid-gray\">{toTextarea(note.text)}</div>\n )}\n <div className=\"link f7 dib gray w4\">\n <span title={mm?.[1] ?? note.created}>{mm?.[0] ?? '\\u00a0'}</span>\n {' - '}\n <span className=\"gray\">{note.shared ? 'public' : 'private'}</span>\n </div>\n </div>\n\n {a.dat.isowner ? (\n <div className=\"edit_links db mt3\">\n <button\n type=\"button\"\n onClick={() => {\n startEdit(true);\n }}\n className=\"edit light-silver hover-blue\"\n >\n edit \n </button>\n <div className=\"delete_link di\">\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(true);\n }}\n className={`delete light-silver hover-blue${deleteAsk ? ' dn' : ''}`}\n >\n delete\n </button>\n <span className={`confirm red${!deleteAsk ? ' dn' : ''}`}>\n <button\n type=\"button\"\n onClick={() => {\n setDeleteAsk(false);\n }}\n >\n cancel / \n </button>\n <button type=\"button\" onClick={() => void onDestroy()} className=\"red\">\n destroy\n </button>\n </span>\n </div>\n </div>\n ) : null}\n </>\n ) : (\n <form\n onSubmit={(e) => {\n void onSubmit(e);\n }}\n >\n {apiError ? <div className=\"alert alert-err\">{apiError}</div> : null}\n <p className=\"mt2 mb1\">title:</p>\n <input\n type=\"text\"\n className=\"title w-100 mb1 pt1 edit_form_input\"\n name=\"title\"\n value={editNoteState.title}\n onChange={(e) => {\n setEditNoteState((x) => ({ ...x, title: e.target.value }));\n }}\n autoFocus={editNoteState.title === ''}\n />\n <br />\n <p className=\"mt2 mb1\">description:</p>\n <textarea\n id={notetextid}\n className=\"description w-100 mb1 pt1 edit_form_input\"\n name=\"text\"\n rows={25}\n value={editNoteState.text}\n onChange={(e) => {\n setEditNoteState((x) => ({ ...x, text: e.target.value }));\n }}\n />\n <div className=\"edit_form_checkboxes mb3\">\n <input\n type=\"checkbox\"\n className=\"is-markdown pointer\"\n id=\"edit_ismarkdown\"\n name=\"ismarkdown\"\n checked={editNoteState.isMarkdown}\n onChange={(e) => {\n setEditNoteState((x) => ({ ...x, isMarkdown: e.target.checked }));\n }}\n />{' '}\n <label htmlFor=\"edit_ismarkdown\" className=\"mr2\">\n use markdown?\n </label>\n <br />\n </div>\n <div className=\"edit_form_checkboxes mb3\">\n <input\n type=\"checkbox\"\n className=\"is-markdown pointer\"\n id=\"edit_shared\"\n name=\"shared\"\n checked={editNoteState.shared}\n onChange={(e) => {\n setEditNoteState((x) => ({ ...x, shared: e.target.checked }));\n }}\n />{' '}\n <label htmlFor=\"edit_shared\" className=\"mr2\">\n public?\n </label>\n <br />\n </div>\n <input\n type=\"submit\"\n className=\"mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"\n value=\"save\"\n />{' '}\n <input\n type=\"reset\"\n className=\"pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim\"\n value=\"cancel\"\n onClick={() => {\n startEdit(false);\n }}\n />\n </form>\n )}\n </div>\n );\n}\n", "import React from 'react';\n\nimport { getTagCloud, updateTagCloudMode } from '../api';\nimport { app } from '../globals';\nimport { useTagCloudStore } from '../stores/tagCloudStore';\nimport {\n isExpanded,\n isRelated,\n setExpanded,\n type TagCloud as TagCloudT,\n type TagCloudModeF,\n tagCloudModeFromF,\n} from '../types';\nimport { encodeTag, fromNullableStr } from '../util';\n\nfunction rescale(\n f: (x: number) => number,\n v: number,\n n: number,\n m: number,\n l: number,\n h: number,\n): number {\n const denom = f(m - n);\n const ratio = m - n < 0.01 || denom === 0 ? 1.0 : f(v - n) / denom;\n return ratio * (h - l) + l;\n}\n\nfunction toArray(curtags: string[], n: number, m: number, tagcloud: TagCloudT) {\n const a = app();\n const cur = curtags.map((t) => t.toLowerCase());\n const entries: Array<[string, number]> = Object.entries(tagcloud).sort((x, y) =>\n x[0].toLowerCase().localeCompare(y[0].toLowerCase()),\n );\n\n const linkToFilterTag = (rest: string) =>\n `${fromNullableStr(a.userR)}${rest === '' ? '' : `/t:${rest}`}`;\n\n const out: Array<React.ReactNode> = [];\n for (const [k, v] of entries) {\n const kLower = k.toLowerCase();\n const fontsize = rescale((x) => x, v, n, m, 100.0, 150.0);\n const opacity = rescale((x) => Math.log(1.0 + x), v, n, m, 0.6, 1.0);\n const style: React.CSSProperties = { fontSize: `${fontsize.toString()}%`, opacity };\n\n const includeExclude =\n cur.length === 0 ? null : !cur.includes(kLower) ? (\n <a\n href={linkToFilterTag(cur.concat([kLower]).map(encodeTag).join('+'))}\n className=\"link mr2 tag-include\"\n >\n \u2295\n </a>\n ) : (\n <a\n href={linkToFilterTag(\n cur\n .filter((t) => t !== kLower)\n .map(encodeTag)\n .join('+'),\n )}\n className=\"link mr2 tag-exclude\"\n >\n \u2296\n </a>\n );\n\n out.push(\n <a\n key={`${k}-tag`}\n href={linkToFilterTag(encodeTag(k))}\n className=\"link tag mr1\"\n style={style}\n >\n {k}\n </a>,\n );\n if (includeExclude) out.push(<React.Fragment key={`${k}-ie`}>{includeExclude}</React.Fragment>);\n }\n return out;\n}\n\nexport function TagCloud({ initialMode }: { initialMode: TagCloudModeF }) {\n const mode = useTagCloudStore((s) => s.mode);\n const tagcloud = useTagCloudStore((s) => s.tagcloud);\n const setMode = useTagCloudStore((s) => s.setMode);\n const setTagCloud = useTagCloudStore((s) => s.setTagCloud);\n\n React.useEffect(() => {\n setMode(initialMode);\n }, [initialMode]);\n\n React.useEffect(() => {\n async function fetchTagCloud(m: TagCloudModeF) {\n if (m.kind === 'none') return;\n const tc = await getTagCloud(tagCloudModeFromF(m));\n setTagCloud(tc ?? {});\n }\n void fetchTagCloud(mode);\n }, [mode, setTagCloud]);\n\n if (mode.kind === 'none') return <div className=\"tag_cloud\" />;\n\n const modetop: TagCloudModeF = { kind: 'top', expanded: isExpanded(mode), value: 200 };\n const modelb1: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 1 };\n const modelb2: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 2 };\n const modelb5: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 5 };\n const modelb10: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 10 };\n const modelb20: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 20 };\n\n const values = Object.values(tagcloud);\n const n = values.length ? Math.min(...values) : 1;\n const m = values.length ? Math.max(...values) : 1;\n\n async function onExpanded(expanded: boolean) {\n const next = setExpanded(mode, expanded);\n setMode(next);\n await updateTagCloudMode(tagCloudModeFromF(next));\n }\n\n async function onChangeMode(next: TagCloudModeF) {\n if (JSON.stringify(mode) === JSON.stringify(next)) {\n await onExpanded(!isExpanded(mode));\n } else {\n setMode(setExpanded(next, true));\n }\n }\n\n return (\n <div className=\"tag_cloud mv3\">\n <div className=\"tag_cloud_header mb2\">\n {isRelated(mode) ? (\n <button\n type=\"button\"\n className=\"pa1 f7 link hover-blue mr1 b\"\n onClick={() => void onExpanded(!isExpanded(mode))}\n >\n Related Tags\n </button>\n ) : (\n <>\n <button\n type=\"button\"\n className={`pa1 f7 link hover-blue mr1${JSON.stringify(mode) === JSON.stringify(modetop) ? ' b' : ''}`}\n title=\"show a cloud of your most-used tags\"\n onClick={() => void onChangeMode(modetop)}\n >\n Top Tags\n </button>\n <button\n type=\"button\"\n className={`pa1 f7 link hover-blue ml2 ${JSON.stringify(mode) === JSON.stringify(modelb1) ? ' b' : ''}`}\n title=\"show all tags\"\n onClick={() => void onChangeMode(modelb1)}\n >\n all\n </button>\n {'\u2027'}\n <button\n type=\"button\"\n className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb2) ? ' b' : ''}`}\n title=\"show tags with at least 2 bookmarks\"\n onClick={() => void onChangeMode(modelb2)}\n >\n 2\n </button>\n {'\u2027'}\n <button\n type=\"button\"\n className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb5) ? ' b' : ''}`}\n title=\"show tags with at least 5 bookmarks\"\n onClick={() => void onChangeMode(modelb5)}\n >\n 5\n </button>\n {'\u2027'}\n <button\n type=\"button\"\n className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb10) ? ' b' : ''}`}\n title=\"show tags with at least 10 bookmarks\"\n onClick={() => void onChangeMode(modelb10)}\n >\n 10\n </button>\n {'\u2027'}\n <button\n type=\"button\"\n className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb20) ? ' b' : ''}`}\n title=\"show tags with at least 20 bookmarks\"\n onClick={() => void onChangeMode(modelb20)}\n >\n 20\n </button>\n </>\n )}\n <button\n type=\"button\"\n className=\"pa1 ml2 f7 link silver hover-blue\"\n onClick={() => void onExpanded(!isExpanded(mode))}\n >\n {isExpanded(mode) ? 'hide' : 'show'}\n </button>\n </div>\n\n {isExpanded(mode) ? (\n <div className=\"tag_cloud_body\">\n {mode.kind === 'related'\n ? toArray(mode.value, n, m, tagcloud)\n : toArray([], n, m, tagcloud)}\n </div>\n ) : null}\n </div>\n );\n}\n", "import { create } from 'zustand';\n\nimport type { TagCloud, TagCloudModeF } from '../types';\n\nexport type TagCloudState = {\n mode: TagCloudModeF;\n tagcloud: TagCloud;\n setMode: (mode: TagCloudModeF) => void;\n setTagCloud: (tagcloud: TagCloud) => void;\n};\n\nexport const useTagCloudStore = create<TagCloudState>((set) => ({\n mode: { kind: 'none' },\n tagcloud: {},\n setMode: (mode) => {\n set({ mode });\n },\n setTagCloud: (tagcloud) => {\n set({ tagcloud });\n },\n}));\n", "export type BookmarkId = number;\nexport type TagId = number;\n\nexport type Bookmark = {\n url: string;\n title: string;\n description: string;\n tags: string;\n private: boolean;\n toread: boolean;\n bid: BookmarkId;\n slug: string;\n selected: boolean;\n time: string;\n archiveUrl: string | null;\n};\n\nexport type NoteId = number;\nexport type NoteSlug = string;\n\nexport type Note = {\n id: NoteId;\n slug: NoteSlug;\n title: string;\n text: string;\n length: number;\n isMarkdown: boolean;\n shared: boolean;\n created: string;\n updated: string;\n};\n\nexport type AccountSettings = {\n archiveDefault: boolean;\n privateDefault: boolean;\n suggestTags: boolean;\n privacyLock: boolean;\n};\n\nexport type TagCloudMode = {\n mode: string;\n value: unknown;\n expanded: boolean;\n};\n\nexport type TagCloud = Record<string, number>;\n\nexport type TSuggestion = {\n term: string;\n count: number;\n};\n\nexport type TagSuggestionRequest = {\n query: string;\n currentTags: string[];\n};\n\nexport type TagSuggestionResponse = {\n suggestions: TSuggestion[];\n};\n\nexport type TagCloudModeF =\n | { kind: 'top'; expanded: boolean; value: number }\n | { kind: 'lowerBound'; expanded: boolean; value: number }\n | { kind: 'related'; expanded: boolean; value: string[] }\n | { kind: 'none' };\n\nexport function tagCloudModeToF(mode: TagCloudMode): TagCloudModeF {\n switch (mode.mode) {\n case 'top': {\n const n = typeof mode.value === 'number' ? mode.value : Number(mode.value);\n return Number.isFinite(n)\n ? { kind: 'top', expanded: mode.expanded, value: n }\n : { kind: 'none' };\n }\n case 'lowerBound': {\n const n = typeof mode.value === 'number' ? mode.value : Number(mode.value);\n return Number.isFinite(n)\n ? { kind: 'lowerBound', expanded: mode.expanded, value: n }\n : { kind: 'none' };\n }\n case 'related': {\n const s = typeof mode.value === 'string' ? mode.value : '';\n const tags = s ? s.split(' ') : [];\n return { kind: 'related', expanded: mode.expanded, value: tags };\n }\n default:\n return { kind: 'none' };\n }\n}\n\nexport function tagCloudModeFromF(mode: TagCloudModeF): TagCloudMode {\n switch (mode.kind) {\n case 'top':\n return { mode: 'top', value: mode.value, expanded: mode.expanded };\n case 'lowerBound':\n return { mode: 'lowerBound', value: mode.value, expanded: mode.expanded };\n case 'related':\n return { mode: 'related', value: mode.value.join(' '), expanded: mode.expanded };\n case 'none':\n return { mode: 'none', value: '', expanded: false };\n }\n}\n\nexport function isExpanded(mode: TagCloudModeF): boolean {\n return mode.kind === 'none' ? false : mode.expanded;\n}\n\nexport function isRelated(mode: TagCloudModeF): boolean {\n return mode.kind === 'related';\n}\n\nexport function setExpanded(mode: TagCloudModeF, expanded: boolean): TagCloudModeF {\n return mode.kind === 'none' ? mode : { ...mode, expanded };\n}\n\nexport function showMode(mode: TagCloudModeF): string {\n switch (mode.kind) {\n case 'top':\n return 'top';\n case 'lowerBound':\n return 'lowerBound';\n case 'related':\n return 'related';\n case 'none':\n return '';\n }\n}\n"],- "mappings": "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,EACA0G,EACAC,EACAP,CACF,EACAtG,GAA0B,EAAGE,CAAY,EACzC,MACF,IAAK,IACH,MACF,IAAK,IACH,IAAIjf,EAAWif,EAAa,UACnBA,EAAa,gBAAtB,KACIjf,EAAS,YAAc,EACrBkmB,GACEnE,EACA9C,EACA0G,EACAC,EACAP,CACF,EACAY,GACElE,EACA9C,CACF,GACAjf,EAAS,aAAe,EAC1BkmB,GACEnE,EACA9C,EACA0G,EACAC,EACAP,CACF,GACJA,GACErG,EAAQ,MACRuG,GACEtG,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHiH,GACEnE,EACA9C,EACA0G,EACAC,EACAP,CACF,EACAA,GACErG,EAAQ,MACRyG,GAA8BxG,EAAa,UAAWA,CAAY,EACpE,MACF,QACEiH,GACEnE,EACA9C,EACA0G,EACAC,EACAP,CACF,CACJ,CACAzB,EAAcA,EAAY,OAC5B,CACF,CACA,SAASqC,GACPb,EACAxB,EACA,CACA,GAAIA,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI7B,EAAeqD,EACjBnG,EAAe2E,EACf5E,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAK,CACxB,IAAK,IACHgH,GAAwClE,EAAc9C,CAAY,EAClED,EAAQ,MACNuG,GACEtG,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHgH,GAAwClE,EAAc9C,CAAY,EAClED,EAAQ,MACNyG,GAA8BxG,EAAa,UAAWA,CAAY,EACpE,MACF,QACEgH,GAAwClE,EAAc9C,CAAY,CACtE,CACA2E,EAAcA,EAAY,OAC5B,CACJ,CACA,IAAIyC,GAAsB,KAC1B,SAASC,GACP1C,EACA+B,EACAY,EACA,CACA,GAAI3C,EAAY,aAAeyC,GAC7B,IAAKzC,EAAcA,EAAY,MAAgBA,IAAT,MACpC4C,GACE5C,EACA+B,EACAY,CACF,EACG3C,EAAcA,EAAY,OACnC,CACA,SAAS4C,GACPtlC,EACAykC,EACAY,EACA,CACA,OAAQrlC,EAAM,IAAK,CACjB,IAAK,IACHolC,GACEplC,EACAykC,EACAY,CACF,EACArlC,EAAM,MAAQmlC,IACHnlC,EAAM,gBAAf,MACAulC,GACEF,EACAzC,GACA5iC,EAAM,cACNA,EAAM,aACR,EACF,MACF,IAAK,GACHolC,GACEplC,EACAykC,EACAY,CACF,EACA,MACF,IAAK,GACL,IAAK,GACH,IAAIG,EAAwB5C,GAC5BA,GAAuBS,GAAiBrjC,EAAM,UAAU,aAAa,EACrEolC,GACEplC,EACAykC,EACAY,CACF,EACAzC,GAAuB4C,EACvB,MACF,IAAK,IACMxlC,EAAM,gBAAf,OACIwlC,EAAwBxlC,EAAM,UACvBwlC,IAAT,MACSA,EAAsB,gBAA/B,MACMA,EAAwBL,GACzBA,GAAsB,SACvBC,GACEplC,EACAykC,EACAY,CACF,EACCF,GAAsBK,GACvBJ,GACEplC,EACAykC,EACAY,CACF,GACN,MACF,QACED,GACEplC,EACAykC,EACAY,CACF,CACJ,CACF,CACA,SAASI,GAAwB/C,EAAa,CAC5C,IAAIgD,EAAgBhD,EAAY,UAChC,GACWgD,IAAT,OACEhD,EAAcgD,EAAc,MAAiBhD,IAAT,MACtC,CACAgD,EAAc,MAAQ,KACtB,GACGA,EAAgBhD,EAAY,QAC1BA,EAAY,QAAU,KACtBA,EAAcgD,QACHhD,IAAT,KACT,CACF,CACA,SAASiD,GAAyCjD,EAAa,CAC7D,IAAInd,EAAYmd,EAAY,UAC5B,IAAWA,EAAY,MAAQ,MAA3B,EAAgC,CAClC,GAAand,IAAT,KACF,QAAS3lB,EAAI,EAAGA,EAAI2lB,EAAU,OAAQ3lB,IAAK,CACzC,IAAI0lB,EAAgBC,EAAU3lB,CAAC,EAC/BkgC,GAAaxa,EACbsgB,GACEtgB,EACAod,CACF,CACF,CACF+C,GAAwB/C,CAAW,CACrC,CACA,GAAIA,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MACpCmD,GAA4BnD,CAAW,EACpCA,EAAcA,EAAY,OACnC,CACA,SAASmD,GAA4B9H,EAAc,CACjD,OAAQA,EAAa,IAAK,CACxB,IAAK,GACL,IAAK,IACL,IAAK,IACH4H,GAAyC5H,CAAY,EACrDA,EAAa,MAAQ,MACnBI,GAA4B,EAAGJ,EAAcA,EAAa,MAAM,EAClE,MACF,IAAK,GACH4H,GAAyC5H,CAAY,EACrD,MACF,IAAK,IACH4H,GAAyC5H,CAAY,EACrD,MACF,IAAK,IACH,IAAIjf,EAAWif,EAAa,UACnBA,EAAa,gBAAtB,MACAjf,EAAS,YAAc,IACbif,EAAa,SAAtB,MAAuCA,EAAa,OAAO,MAA3B,KAC3Bjf,EAAS,aAAe,GAC1BgnB,GAA4C/H,CAAY,GACxD4H,GAAyC5H,CAAY,EACzD,MACF,QACE4H,GAAyC5H,CAAY,CACzD,CACF,CACA,SAAS+H,GAA4CpD,EAAa,CAChE,IAAInd,EAAYmd,EAAY,UAC5B,IAAWA,EAAY,MAAQ,MAA3B,EAAgC,CAClC,GAAand,IAAT,KACF,QAAS3lB,EAAI,EAAGA,EAAI2lB,EAAU,OAAQ3lB,IAAK,CACzC,IAAI0lB,EAAgBC,EAAU3lB,CAAC,EAC/BkgC,GAAaxa,EACbsgB,GACEtgB,EACAod,CACF,CACF,CACF+C,GAAwB/C,CAAW,CACrC,CACA,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAE5D,OADAnd,EAAYmd,EACJnd,EAAU,IAAK,CACrB,IAAK,GACL,IAAK,IACL,IAAK,IACH4Y,GAA4B,EAAG5Y,EAAWA,EAAU,MAAM,EAC1DugB,GAA4CvgB,CAAS,EACrD,MACF,IAAK,IACH3lB,EAAI2lB,EAAU,UACd3lB,EAAE,YAAc,IACZA,EAAE,aAAe,GACnBkmC,GAA4CvgB,CAAS,GACvD,MACF,QACEugB,GAA4CvgB,CAAS,CACzD,CACAmd,EAAcA,EAAY,OAC5B,CACF,CACA,SAASkD,GACPG,EACAzH,EACA,CACA,KAAgBwB,KAAT,MAAuB,CAC5B,IAAI9/B,EAAQ8/B,GACZ,OAAQ9/B,EAAM,IAAK,CACjB,IAAK,GACL,IAAK,IACL,IAAK,IACHm+B,GAA4B,EAAGn+B,EAAOs+B,CAAsB,EAC5D,MACF,IAAK,IACL,IAAK,IACH,GACWt+B,EAAM,gBAAf,MACSA,EAAM,cAAc,YAA7B,KACA,CACA,IAAIgiB,EAAQhiB,EAAM,cAAc,UAAU,KAClCgiB,GAAR,MAAiBA,EAAM,UACzB,CACA,MACF,IAAK,IACHD,GAAa/hB,EAAM,cAAc,KAAK,CAC1C,CAEA,GADAgiB,EAAQhiB,EAAM,MACDgiB,IAAT,KAAiBA,EAAM,OAAShiB,EAAS8/B,GAAa9d,OAExDvhB,EAAG,IAAKT,EAAQ+lC,EAA6BjG,KAAT,MAAuB,CACzD9d,EAAQ8d,GACR,IAAIkG,EAAUhkB,EAAM,QAClBiD,EAAcjD,EAAM,OAEtB,GADAsf,GAAwBtf,CAAK,EACzBA,IAAUhiB,EAAO,CACnB8/B,GAAa,KACb,MAAMr/B,CACR,CACA,GAAaulC,IAAT,KAAkB,CACpBA,EAAQ,OAAS/gB,EACjB6a,GAAakG,EACb,MAAMvlC,CACR,CACAq/B,GAAa7a,CACf,CACJ,CACF,CACA,IAAIghB,GAAyB,CACzB,gBAAiB,SAAUC,EAAc,CACvC,IAAIlkB,EAAQb,GAAYU,EAAY,EAClCskB,EAAenkB,EAAM,KAAK,IAAIkkB,CAAY,EAC5C,OAAWC,IAAX,SACIA,EAAeD,EAAa,EAC9BlkB,EAAM,KAAK,IAAIkkB,EAAcC,CAAY,GACpCA,CACT,EACA,YAAa,UAAY,CACvB,OAAOhlB,GAAYU,EAAY,EAAE,WAAW,MAC9C,CACF,EACAukB,GAAiC,OAAO,SAAtB,WAAgC,QAAU,IAC5Dpe,GAAmB,EACnB3E,GAAqB,KACrBxd,GAAiB,KACjBwjB,GAAgC,EAChCgd,GAAgC,EAChCC,GAA4B,KAC5BC,GAA6C,GAC7CC,GAAmC,GACnCC,GAA0C,GAC1C3c,GAAuB,EACvB8N,GAA+B,EAC/BtO,GAAiC,EACjCod,GAA4C,EAC5CC,GAAgC,EAChCxM,GAA6B,EAC7BuC,GAAoC,EACpC3E,GAAqC,KACrClY,GAAsC,KACtC+mB,GAAoD,GACpDrD,GAA+B,EAC/BtgB,GAAiC,EACjCwa,GAAqC,IACrCoJ,GAA4B,KAC5BtP,GAAyC,KACzCuP,GAAuB,EACvBC,GAAqB,KACrBC,GAAsB,KACtBC,GAAsB,EACtBC,GAA+B,EAC/BC,GAA4B,KAC5BC,GAA2B,KAC3B9rB,GAAoB,EACpBC,GAAwB,KAC1B,SAAS2Y,IAAoB,CAC3B,OAAclM,GAAmB,KAA1B,GAAsCqB,KAAN,EACnCA,GAAgC,CAACA,GACxB3mB,EAAqB,IAA9B,KACE+f,GAAsB,EACtBjY,GAAsB,CAC9B,CACA,SAASkpB,IAAsB,CAC7B,GAAUyG,KAAN,EACF,IAAW9Q,GAAgC,aAAvC,GAAqDxa,GAAa,CACpE,IAAIpG,EAAOjB,GACXA,KAA+B,GACxBA,GAA6B,WAApC,IACGA,GAA6B,QAChC2yB,GAA6B1xB,CAC/B,MAAO0xB,GAA6B,UACtC,OAAA1xB,EAAOwhB,GAA2B,QACzBxhB,IAAT,OAAkBA,EAAK,OAAS,IACzB0xB,EACT,CACA,SAASzK,GAAsB5nB,EAAM9H,EAAOyI,EAAM,EAE7CX,IAASub,KACDgjB,KAAN,GACOA,KAAN,IACKv+B,EAAK,sBAAd,QAEAu/B,GAAkBv/B,EAAM,CAAC,EACvBw/B,GACEx/B,EACAuhB,GACA8Q,GACA,EACF,GACJpxB,GAAkBjB,EAAMW,CAAI,IACjBuf,GAAmB,KAA1B,GAAgClgB,IAASub,MAC3Cvb,IAASub,MACC2E,GAAmB,KAA1B,IACE0e,IAA6Cj+B,GAC1CmvB,KAAN,GACE0P,GACEx/B,EACAuhB,GACA8Q,GACA,EACF,GACFoN,GAAsBz/B,CAAI,EAChC,CACA,SAAS0/B,GAAkB/E,EAAe96B,EAAO8/B,EAAW,CAC1D,IAAWzf,GAAmB,KAA1B,EAA8B,MAAM,MAAMvoB,EAAuB,GAAG,CAAC,EACzE,IAAIioC,EACC,CAACD,IACO9/B,EAAQ,OAAf,IACOA,EAAQ86B,EAAc,gBAA7B,GACFn6B,GAA0Bm6B,EAAe96B,CAAK,EAChDggC,EAAaD,EACTE,GAAqBnF,EAAe96B,CAAK,EACzCkgC,GAAepF,EAAe96B,EAAO,EAAE,EAC3CmgC,EAAsBJ,EACxB,EAAG,CACD,GAAUC,IAAN,EAAkB,CACpBnB,IACE,CAACkB,GACDJ,GAAkB7E,EAAe96B,EAAO,EAAG,EAAE,EAC/C,KACF,KAAO,CAEL,GADA8/B,EAAYhF,EAAc,QAAQ,UAEhCqF,GACA,CAACC,GAAqCN,CAAS,EAC/C,CACAE,EAAaE,GAAepF,EAAe96B,EAAO,EAAE,EACpDmgC,EAAsB,GACtB,QACF,CACA,GAAUH,IAAN,EAAkB,CAEpB,GADAG,EAAsBngC,EAClB86B,EAAc,2BAA6BqF,EAC7C,IAAI9jC,EAA2B,OAE9BA,EAA2By+B,EAAc,aAAe,WACtDz+B,EACOA,IAAN,EACIA,EACAA,EAA2B,UACzB,UACA,EACZ,GAAUA,IAAN,EAAgC,CAClC2D,EAAQ3D,EACRvD,EAAG,CACD,IAAIqH,EAAO26B,EACXkF,EAAa5P,GACb,IAAIiQ,EAAoBlgC,EAAK,QAAQ,cAAc,aAQnD,GAPAkgC,IACGX,GAAkBv/B,EAAM9D,CAAwB,EAAE,OAAS,KAC9DA,EAA2B6jC,GACzB//B,EACA9D,EACA,EACF,EACUA,IAAN,EAAgC,CAClC,GACEyiC,IACA,CAACuB,EACD,CACAlgC,EAAK,4BAA8BggC,EACnCpB,IACEoB,EACFH,EAAa,EACb,MAAMlnC,CACR,CACAqnC,EAAsBjoB,GACtBA,GAAsC8nB,EAC7BG,IAAT,OACYjoB,KAAT,KACIA,GAAsCioB,EACvCjoB,GAAoC,KAAK,MACvCA,GACAioB,CACF,EACR,CACAH,EAAa3jC,CACf,CAEA,GADA8jC,EAAsB,GACZH,IAAN,EAAkB,QACxB,CACF,CACA,GAAUA,IAAN,EAAkB,CACpBN,GAAkB5E,EAAe,CAAC,EAClC6E,GAAkB7E,EAAe96B,EAAO,EAAG,EAAE,EAC7C,KACF,CACAlH,EAAG,CAGD,OAFAinC,EAAkBjF,EAClBqF,EAAsBH,EACdG,EAAqB,CAC3B,IAAK,GACL,IAAK,GACH,MAAM,MAAMroC,EAAuB,GAAG,CAAC,EACzC,IAAK,GACH,IAAKkI,EAAQ,WAAaA,EAAO,MACnC,IAAK,GACH2/B,GACEI,EACA//B,EACAwyB,GACA,CAACoM,EACH,EACA,MAAM9lC,EACR,IAAK,GACHof,GAAsC,KACtC,MACF,IAAK,GACL,IAAK,GACH,MACF,QACE,MAAM,MAAMpgB,EAAuB,GAAG,CAAC,CAC3C,CACA,IACGkI,EAAQ,YAAcA,IACrBggC,EAAapE,GAA+B,IAAMl9B,GAAI,EACxD,GAAKshC,GACL,CAOA,GANAL,GACEI,EACA//B,EACAwyB,GACA,CAACoM,EACH,EACU1+B,GAAa6/B,EAAiB,EAAG,EAAE,IAAzC,EAA4C,MAAMjnC,EACtDwmC,GAAsBt/B,EACtB+/B,EAAgB,cAAgBO,GAC9BC,GAAoB,KAClB,KACAR,EACAD,EACA5nB,GACAgnB,GACAD,GACAj/B,EACAwyB,GACAuM,GACAhK,GACA6J,GACAuB,EACA,YACA,GACA,CACF,EACAH,CACF,EACA,MAAMlnC,CACR,CACAynC,GACER,EACAD,EACA5nB,GACAgnB,GACAD,GACAj/B,EACAwyB,GACAuM,GACAhK,GACA6J,GACAuB,EACA,KACA,GACA,CACF,CACF,CACF,CACA,KACF,OAAS,IACTP,GAAsB9E,CAAa,CACrC,CACA,SAASyF,GACPpgC,EACAi2B,EACAoK,EACAC,EACAC,EACA1gC,EACAyB,EACAC,EACAC,EACAg/B,EACAX,EACAY,EACAC,EACAC,EACA,CAGA,GAFA3gC,EAAK,cAAgB,GACrBygC,EAAwBxK,EAAa,aAEnCwK,EAAwB,OACVA,EAAwB,YAAtC,SACA,CACAA,EAAwB,CACtB,YAAa,KACb,MAAO,EACP,SAAU,EACV,SAAU,EACV,gBAAiB,CAAC,EAClB,iBAAkB,GAClB,yBAA0B,GAC1B,UAAWh4B,EACb,EACA+0B,GACEvH,EACAp2B,EACA4gC,CACF,EACA,IAAIG,GACD/gC,EAAQ,YAAcA,EACnB47B,GAA+Bl9B,GAAI,GAClCsB,EAAQ,WAAaA,EACpBsb,GAAiC5c,GAAI,EACrC,EAKR,GAJAqiC,EAAgBC,GACdJ,EACAG,CACF,EACaA,IAAT,KAAwB,CAC1BzB,GAAsBt/B,EACtBG,EAAK,oBAAsB4gC,EACzBE,GAAW,KACT,KACA9gC,EACAi2B,EACAp2B,EACAwgC,EACAC,EACAC,EACAj/B,EACAC,EACAC,EACAq+B,EACAY,EACA,KACAC,EACAC,CACF,CACF,EACAnB,GAAkBx/B,EAAMH,EAAOyB,EAAa,CAACk/B,CAAwB,EACrE,MAC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B,EAAW,gBAAgBrqB,CAAG,EAClC,MACF,IAAK,UACL,IAAK,QACKvR,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACA,MAAMA,CAAK,EACP47B,EAAW,gBAAgBrqB,CAAG,EAC9BqqB,EAAW,aAAarqB,EAAKvR,CAAK,EACtC,MACF,IAAK,UACH2b,GAA0B,eAAgBigB,CAAU,EACpDjgB,GAA0B,SAAUigB,CAAU,EAC9ClyB,GAAqBkyB,EAAY,UAAW57B,CAAK,EACjD,MACF,IAAK,eACH6J,GACE+xB,EACA,+BACA,gBACA57B,CACF,EACA,MACF,IAAK,eACH6J,GACE+xB,EACA,+BACA,gBACA57B,CACF,EACA,MACF,IAAK,YACH6J,GACE+xB,EACA,+BACA,aACA57B,CACF,EACA,MACF,IAAK,YACH6J,GACE+xB,EACA,+BACA,aACA57B,CACF,EACA,MACF,IAAK,aACH6J,GACE+xB,EACA,+BACA,cACA57B,CACF,EACA,MACF,IAAK,YACH6J,GACE+xB,EACA,+BACA,aACA57B,CACF,EACA,MACF,IAAK,UACH6J,GACE+xB,EACA,uCACA,WACA57B,CACF,EACA,MACF,IAAK,UACH6J,GACE+xB,EACA,uCACA,WACA57B,CACF,EACA,MACF,IAAK,WACH6J,GACE+xB,EACA,uCACA,YACA57B,CACF,EACA,MACF,IAAK,KACH0J,GAAqBkyB,EAAY,KAAM57B,CAAK,EAC5C,MACF,IAAK,YACL,IAAK,cACH,MACF,SAEI,EAAE,EAAIuR,EAAI,SACDA,EAAI,CAAC,IAAb,KAA0BA,EAAI,CAAC,IAAb,KACVA,EAAI,CAAC,IAAb,KAA0BA,EAAI,CAAC,IAAb,OAElBA,EAAMvE,GAAQ,IAAIuE,CAAG,GAAKA,EACzB7H,GAAqBkyB,EAAYrqB,EAAKvR,CAAK,EACnD,CACF,CACA,SAAS+uC,GAAuBnT,EAAYh+B,EAAK2T,EAAKvR,EAAO4N,EAAO4iB,EAAW,CAC7E,OAAQjf,EAAK,CACX,IAAK,QACH9E,GAAkBmvB,EAAY57B,EAAOwwB,CAAS,EAC9C,MACF,IAAK,0BACH,GAAY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OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,KAAK,CACG,EAEG8F,GAAM9F,GAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,OAAO,CACC,EAEG+F,GAAa/F,GAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,cAAc,CACN,EAMGgG,GAAgBhG,GAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,KAAK,CACG,EAEGiG,GAASjG,GAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,aAAa,CACL,EAIGkG,GAAmBlG,GAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,MAAM,CACE,EAEGmG,GAAOnG,GAAO,CAAC,OAAO,CAAU,EC1RhC6F,GAAO7F,GAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,OAAO,CACC,EAEG8F,GAAM9F,GAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,YACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,YAAY,CACJ,EAEGiG,GAASjG,GAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,cACA,cACA,gBACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,OAAO,CACR,EAEYoG,GAAMpG,GAAO,CACxB,aACA,SACA,cACA,YACA,aAAa,CACL,ECpXGqG,GAAgBpG,GAAK,2BAA2B,EAChDqG,GAAWrG,GAAK,uBAAuB,EACvCsG,GAActG,GAAK,eAAe,EAClCuG,GAAYvG,GAAK,8BAA8B,EAC/CwG,GAAYxG,GAAK,gBAAgB,EACjCyG,GAAiBzG,GAC5B,oGAEW0G,GAAoB1G,GAAK,uBAAuB,EAChD2G,GAAkB3G,GAC7B,+DAEW4G,GAAe5G,GAAK,SAAS,EAC7B6G,GAAiB7G,GAAK,0BAA0B,uMCyBvD8G,GAAY,CAChBvC,QAAS,EAET2B,KAAM,EAINa,uBAAwB,EACxBC,QAAS,EACTC,SAAU,CAAA,EAMNC,GAAY,UAAA,CAChB,OAAO,OAAOC,OAAW,IAAc,KAAOA,MAChD,EAUMC,GAA4B,SAChCC,EACAC,EAAo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",- "names": ["require_scheduler_production", "__commonJSMin", "exports", "push", "heap", "node", "index", "a", "parentIndex", "parent", "compare", "peek", "pop", "first", "last", "length", "halfLength", "leftIndex", "left", "rightIndex", "right", "b", "diff", "localPerformance", "localDate", "initialTime", "taskQueue", "timerQueue", "taskIdCounter", "currentTask", "currentPriorityLevel", "isPerformingWork", "isHostCallbackScheduled", "isHostTimeoutScheduled", "needsPaint", "localSetTimeout", "localClearTimeout", "localSetImmediate", "advanceTimers", "currentTime", "timer", "handleTimeout", "isMessageLoopRunning", "schedulePerformWorkUntilDeadline", "firstTimer", "requestHostTimeout", "taskTimeoutID", "frameInterval", "startTime", "shouldYieldToHost", "performWorkUntilDeadline", "hasMoreWork", "previousPriorityLevel", "callback", "continuationCallback", "channel", "port", "ms", "task", "fps", "eventHandler", "priorityLevel", "options", "timeout", "parentPriorityLevel", "require_scheduler", "__commonJSMin", "exports", "module", "require_react_production", "__commonJSMin", "exports", "REACT_ELEMENT_TYPE", "REACT_PORTAL_TYPE", "REACT_FRAGMENT_TYPE", "REACT_STRICT_MODE_TYPE", "REACT_PROFILER_TYPE", "REACT_CONSUMER_TYPE", "REACT_CONTEXT_TYPE", "REACT_FORWARD_REF_TYPE", "REACT_SUSPENSE_TYPE", "REACT_MEMO_TYPE", "REACT_LAZY_TYPE", "REACT_ACTIVITY_TYPE", "MAYBE_ITERATOR_SYMBOL", "getIteratorFn", "maybeIterable", "ReactNoopUpdateQueue", "assign", "emptyObject", "Component", "props", "context", "updater", "partialState", "callback", "ComponentDummy", "PureComponent", "pureComponentPrototype", "isArrayImpl", "noop", "ReactSharedInternals", "hasOwnProperty", "ReactElement", "type", "key", "refProp", "cloneAndReplaceKey", "oldElement", "newKey", "isValidElement", "object", "escape", "escaperLookup", "match", "userProvidedKeyEscapeRegex", "getElementKey", "element", "index", "resolveThenable", "thenable", "fulfilledValue", "error", "mapIntoArray", "children", "array", "escapedPrefix", "nameSoFar", "invokeCallback", "c", "nextNamePrefix", "i", "mapChildren", "func", "result", "count", "child", "lazyInitializer", "payload", "ctor", "moduleObject", "reportGlobalError", "event", "Children", "forEachFunc", "forEachContext", "n", "size", "fn", "config", "propName", "childArray", "defaultValue", "childrenLength", "render", "compare", "scope", "prevTransition", "currentTransition", "returnValue", "onStartTransitionFinish", "usable", "action", "initialState", "permalink", "deps", "Context", "value", "initialValue", "create", "ref", "passthrough", "reducer", "initialArg", "init", "subscribe", "getSnapshot", "getServerSnapshot", "require_react", "__commonJSMin", "exports", "module", "require_react_dom_production", "__commonJSMin", "exports", "React", "formatProdErrorMessage", "code", "url", "i", "noop", "Internals", "REACT_PORTAL_TYPE", "createPortal$1", "children", "containerInfo", "implementation", "key", "ReactSharedInternals", "getCrossOriginStringAs", "as", "input", "container", "fn", "previousTransition", "previousUpdatePriority", "href", "options", "crossOrigin", "integrity", "fetchPriority", "form", "a", "action", "initialState", "permalink", "require_react_dom", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_react_dom_client_production", "__commonJSMin", "exports", "Scheduler", "React", "ReactDOM", "formatProdErrorMessage", "code", "url", "i", "isValidContainer", "node", "getNearestMountedFiber", "fiber", "nearestMounted", "getSuspenseInstanceFromFiber", "suspenseState", "getActivityInstanceFromFiber", "activityState", "assertIsMounted", "findCurrentFiberUsingSlowPath", "alternate", "a", "b", "parentA", "parentB", "didFindChild", "child$0", "findCurrentHostFiberImpl", "tag", "assign", "REACT_LEGACY_ELEMENT_TYPE", "REACT_ELEMENT_TYPE", "REACT_PORTAL_TYPE", "REACT_FRAGMENT_TYPE", "REACT_STRICT_MODE_TYPE", "REACT_PROFILER_TYPE", "REACT_CONSUMER_TYPE", "REACT_CONTEXT_TYPE", "REACT_FORWARD_REF_TYPE", "REACT_SUSPENSE_TYPE", "REACT_SUSPENSE_LIST_TYPE", "REACT_MEMO_TYPE", "REACT_LAZY_TYPE", "REACT_ACTIVITY_TYPE", "REACT_MEMO_CACHE_SENTINEL", "MAYBE_ITERATOR_SYMBOL", "getIteratorFn", "maybeIterable", "REACT_CLIENT_REFERENCE", "getComponentNameFromType", "type", "innerType", "x", "isArrayImpl", "ReactSharedInternals", "ReactDOMSharedInternals", "sharedNotPendingObject", "valueStack", "index", "createCursor", "defaultValue", "pop", "cursor", "push", "value", "contextStackCursor", "contextFiberStackCursor", "rootInstanceStackCursor", "hostTransitionProviderCursor", "pushHostContainer", "nextRootInstance", "getOwnHostContext", "getChildHostContextProd", "popHostContainer", "pushHostContext", "context", "JSCompiler_inline_result", "popHostContext", "HostTransitionContext", "prefix", "suffix", "describeBuiltInComponentFrame", "name", "match", "reentry", "describeNativeComponentFrame", "fn", "construct", "previousPrepareStackTrace", "RunInRootFrame", "Fake", "control", "x$1", "x$2", "sample", "namePropDescriptor", "_RunInRootFrame$Deter", "sampleStack", "controlStack", "sampleLines", "controlLines", "frame", "describeFiber", "childFiber", "getStackByFiberInDevAndProd", "workInProgress", "info", "previous", "hasOwnProperty", "scheduleCallback$3", "cancelCallback$1", "shouldYield", "requestPaint", "now", "getCurrentPriorityLevel", "ImmediatePriority", "UserBlockingPriority", "NormalPriority$1", "LowPriority", "IdlePriority", "log$1", "unstable_setDisableYieldValue", "rendererID", "injectedHook", "setIsStrictModeForDevtools", "newIsStrictMode", "err", "clz32", "clz32Fallback", "log", "LN2", "nextTransitionUpdateLane", "nextTransitionDeferredLane", "nextRetryLane", "getHighestPriorityLanes", "lanes", "pendingSyncLanes", "getNextLanes", "root", "wipLanes", "rootHasPendingCommit", "pendingLanes", "nextLanes", "suspendedLanes", "pingedLanes", "nonIdlePendingLanes", "checkIfRootIsPrerendering", "renderLanes", "computeExpirationTime", "lane", "currentTime", "claimNextRetryLane", "createLaneMap", "initial", "laneMap", "markRootUpdated$1", "updateLane", "markRootFinished", "finishedLanes", "remainingLanes", "spawnedLane", "updatedLanes", "suspendedRetryLanes", "previouslyPendingLanes", "entanglements", "expirationTimes", "hiddenUpdates", "index$7", "hiddenUpdatesForLane", "update", "markSpawnedDeferredLane", "entangledLanes", "spawnedLaneIndex", "markRootEntangled", "rootEntangledLanes", "index$8", "getBumpedLaneForHydration", "renderLane", "getBumpedLaneForHydrationByLane", "lanesToEventPriority", "resolveUpdatePriority", "updatePriority", "getEventPriority", "runWithPriority", "priority", "previousPriority", "randomKey", "internalInstanceKey", "internalPropsKey", "internalContainerInstanceKey", "internalEventHandlersKey", "internalEventHandlerListenersKey", "internalEventHandlesSetKey", "internalRootNodeResourcesKey", "internalHoistableMarker", "detachDeletedInstance", "getClosestInstanceFromNode", "targetNode", "targetInst", "parentNode", "getParentHydrationBoundary", "getInstanceFromNode", "getNodeFromInstance", "inst", "getResourcesFromRoot", "resources", "markNodeAsHoistable", "allNativeEvents", "registrationNameDependencies", "registerTwoPhaseEvent", "registrationName", "dependencies", "registerDirectEvent", "VALID_ATTRIBUTE_NAME_REGEX", "illegalAttributeNameCache", "validatedAttributeNameCache", "isAttributeNameSafe", "attributeName", "setValueForAttribute", "prefix$10", "setValueForKnownAttribute", "setValueForNamespacedAttribute", "namespace", "getToStringValue", "isCheckable", "elem", "trackValueOnNode", "valueField", "currentValue", "descriptor", "get", "set", "track", "updateValueIfChanged", "tracker", "lastValue", "getActiveElement", "doc", "e", "escapeSelectorAttributeValueInsideDoubleQuotesRegex", "escapeSelectorAttributeValueInsideDoubleQuotes", "ch", "updateInput", "element", "lastDefaultValue", "checked", "defaultChecked", "setDefaultValue", "initInput", "isHydrating", "updateOptions", "multiple", "propValue", "setDefaultSelected", "updateTextarea", "initTextarea", "children", "setTextContent", "text", "firstChild", "unitlessNumbers", "setValueForStyle", "style", "styleName", "isCustomProperty", "setValueForStyles", "styles", "prevStyles", "styleName$16", "styleName$17", "isCustomElement", "tagName", "aliases", "isJavaScriptProtocol", "sanitizeURL", "noop$1", "currentReplayingEvent", "getEventTarget", "nativeEvent", "restoreTarget", "restoreQueue", "restoreStateOfTarget", "target", "internalInstance", "props", "otherNode", "otherProps", "isInsideEventHandler", "batchedUpdates$1", "flushSyncWork$1", "getListener", "stateNode", "canUseDOM", "passiveBrowserEventsSupported", "options", "startText", "fallbackText", "getData", "start", "startValue", "startLength", "end", "endValue", "endLength", "minEnd", "getEventCharCode", "keyCode", "functionThatReturnsTrue", "functionThatReturnsFalse", "createSyntheticEvent", "Interface", "SyntheticBaseEvent", "reactName", "reactEventType", "nativeEventTarget", "propName", "event", "EventInterface", "SyntheticEvent", "UIEventInterface", "SyntheticUIEvent", "lastMovementX", "lastMovementY", "lastMouseEvent", "MouseEventInterface", "getEventModifierState", "SyntheticMouseEvent", "DragEventInterface", "SyntheticDragEvent", "FocusEventInterface", "SyntheticFocusEvent", "AnimationEventInterface", "SyntheticAnimationEvent", "ClipboardEventInterface", "SyntheticClipboardEvent", "CompositionEventInterface", "SyntheticCompositionEvent", "normalizeKey", "translateToKey", "modifierKeyToProp", "modifierStateGetter", "keyArg", "KeyboardEventInterface", "key", "SyntheticKeyboardEvent", "PointerEventInterface", "SyntheticPointerEvent", "TouchEventInterface", "SyntheticTouchEvent", "TransitionEventInterface", "SyntheticTransitionEvent", "WheelEventInterface", "SyntheticWheelEvent", "ToggleEventInterface", "SyntheticToggleEvent", "END_KEYCODES", "canUseCompositionEvent", "documentMode", "canUseTextInputEvent", "useFallbackCompositionData", "SPACEBAR_CHAR", "hasSpaceKeypress", "isFallbackCompositionEnd", "domEventName", "getDataFromCustomEvent", "isComposing", "getNativeBeforeInputChars", "getFallbackBeforeInputChars", "supportedInputTypes", "isTextInputElement", "nodeName", "createAndAccumulateChangeEvent", "dispatchQueue", "accumulateTwoPhaseListeners", "activeElement$1", "activeElementInst$1", "runEventInBatch", "processDispatchQueue", "getInstIfValueChanged", "getTargetInstForChangeEvent", "isInputEventSupported", "isSupported$jscomp$inline_427", "element$jscomp$inline_428", "JSCompiler_inline_result$jscomp$286", "stopWatchingForValueChange", "handlePropertyChange", "handleEventsForInputEventPolyfill", "getTargetInstForInputEventPolyfill", "getTargetInstForClickEvent", "getTargetInstForInputOrChangeEvent", "is", "y", "objectIs", "shallowEqual", "objA", "objB", "keysA", "keysB", "currentKey", "getLeafNode", "getNodeForCharacterOffset", "offset", "nodeEnd", "containsNode", "outerNode", "innerNode", "getActiveElementDeep", "containerInfo", "hasSelectionCapabilities", "skipSelectionChangeEvent", "activeElement", "activeElementInst", "lastSelection", "mouseDown", "constructSelectEvent", "makePrefixMap", "styleProp", "eventName", "prefixes", "vendorPrefixes", "prefixedEventNames", "getVendorPrefixedEventName", "prefixMap", "ANIMATION_END", "ANIMATION_ITERATION", "ANIMATION_START", "TRANSITION_RUN", "TRANSITION_START", "TRANSITION_CANCEL", "TRANSITION_END", "topLevelEventsToReactNames", "simpleEventPluginEvents", "registerSimpleEvent", "reportGlobalError", "error", "concurrentQueues", "concurrentQueuesIndex", "concurrentlyUpdatedLanes", "finishQueueingConcurrentUpdates", "endIndex", "queue", "pending", "markUpdateLaneFromFiberToRoot", "enqueueUpdate$1", "enqueueConcurrentHookUpdate", "getRootForUpdatedFiber", "enqueueConcurrentRenderForLane", "sourceFiber", "isHidden", "parent", "nestedUpdateCount", "rootWithNestedUpdates", "emptyContextObject", "FiberNode", "pendingProps", "mode", "createFiberImplClass", "shouldConstruct", "Component", "createWorkInProgress", "current", "resetWorkInProgress", "createFiberFromTypeAndProps", "owner", "fiberTag", "isHostHoistableType", "createFiberFromFragment", "elements", "createFiberFromText", "content", "createFiberFromDehydratedFragment", "dehydratedNode", "createFiberFromPortal", "portal", "CapturedStacks", "createCapturedValueAtFiber", "source", "existing", "forkStack", "forkStackIndex", "treeForkProvider", "treeForkCount", "idStack", "idStackIndex", "treeContextProvider", "treeContextId", "treeContextOverflow", "pushTreeFork", "totalChildren", "pushTreeId", "baseIdWithLeadingBit", "baseLength", "length", "numberOfOverflowBits", "pushMaterializedTreeId", "popTreeContext", "restoreSuspendedTreeContext", "suspendedContext", "hydrationParentFiber", "nextHydratableInstance", "hydrationErrors", "rootOrSingletonContext", "HydrationMismatchException", "throwOnHydrationMismatch", "queueHydrationError", "prepareToHydrateHostInstance", "instance", "listenToNonDelegatedEvent", "mediaEventTypes", "checkForUnmatchedText", "popToNextHostParent", "popHydrationState", "JSCompiler_temp", "shouldSetTextContent", "getNextHydratableInstanceAfterHydrationBoundary", "isSingletonScope", "previousHydratableOnEnteringScopedSingleton", "getNextHydratable", "resetHydrationState", "upgradeHydrationErrorsToRecoverable", "queuedErrors", "workInProgressRootRecoverableErrors", "valueCursor", "currentlyRenderingFiber$1", "lastContextDependency", "pushProvider", "providerFiber", "nextValue", "popProvider", "scheduleContextWorkOnParentPath", "propagationRoot", "propagateContextChanges", "contexts", "forcePropagateEntireTree", "list", "nextFiber", "dependency", "propagateParentContextChanges", "isInsidePropagationBailout", "currentParent", "checkIfContextChanged", "currentDependencies", "prepareToReadContext", "readContext", "readContextForConsumer", "readContextDuringReconciliation", "consumer", "AbortControllerLocal", "listeners", "signal", "listener", "scheduleCallback$2", "NormalPriority", "CacheContext", "createCache", "releaseCache", "cache", "currentEntangledListeners", "currentEntangledPendingCount", "currentEntangledLane", "currentEntangledActionThenable", "entangleAsyncAction", "transition", "thenable", "entangledListeners", "requestTransitionLane", "resolve", "pingEngtangledActionScope", "chainThenableValue", "result", "thenableWithOverride", "prevOnStartTransitionFinish", "returnValue", "globalMostRecentTransitionTime", "resumedCache", "peekCacheFromPool", "cacheResumedFromPreviousRender", "workInProgressRoot", "pushTransition", "offscreenWorkInProgress", "prevCachePool", "getSuspendedCache", "cacheFromPool", "SuspenseException", "SuspenseyCommitException", "SuspenseActionException", "noopSuspenseyCommitThenable", "isThenableResolved", "trackUsedThenable", "thenableState", "checkIfUseWrappedInAsyncCatch", "fulfilledValue", "fulfilledThenable", "rejectedThenable", "suspendedThenable", "resolveLazy", "lazyType", "init", "getSuspendedThenable", "rejectedReason", "thenableState$1", "thenableIndexCounter$1", "unwrapThenable", "coerceRef", "throwOnInvalidObjectTypeImpl", "returnFiber", "newChild", "createChildReconciler", "shouldTrackSideEffects", "deleteChild", "childToDelete", "deletions", "deleteRemainingChildren", "currentFirstChild", "mapRemainingChildren", "existingChildren", "useFiber", "placeChild", "newFiber", "lastPlacedIndex", "newIndex", "placeSingleChild", "updateTextNode", "textContent", "updateElement", "elementType", "updateFragment", "updatePortal", "fragment", "createChild", "updateSlot", "oldFiber", "updateFromMap", "newIdx", "reconcileChildrenArray", "newChildren", "resultingFirstChild", "previousNewFiber", "nextOldFiber", "child", "reconcileChildrenIterator", "step", "reconcileChildFibersImpl", "firstChildFiber", "reconcileChildFibers", "mountChildFibers", "hasForceUpdate", "initializeUpdateQueue", "cloneUpdateQueue", "createUpdate", "enqueueUpdate", "updateQueue", "executionContext", "entangleTransitions", "queueLanes", "enqueueCapturedUpdate", "capturedUpdate", "newFirst", "newLast", "clone", "didReadFromEntangledAsyncAction", "suspendIfUpdateReadFromEntangledAsyncAction", "entangledActionThenable", "processUpdateQueue", "workInProgress$jscomp$0", "instance$jscomp$0", "firstBaseUpdate", "lastBaseUpdate", "pendingQueue", "lastPendingUpdate", "firstPendingUpdate", "newState", "isHiddenUpdate", "workInProgressRootRenderLanes", "workInProgressRootSkippedLanes", "callCallback", "callback", "commitCallbacks", "callbacks", "currentTreeHiddenStackCursor", "prevEntangledRenderLanesCursor", "pushHiddenContext", "entangledRenderLanes", "reuseHiddenContextOnStack", "popHiddenContext", "suspenseHandlerStackCursor", "shellBoundary", "pushPrimaryTreeSuspenseHandler", "handler", "suspenseStackCursor", "pushDehydratedActivitySuspenseHandler", "pushOffscreenSuspenseHandler", "reuseSuspenseHandlerOnStack", "popSuspenseHandler", "findFirstSuspended", "row", "state", "isSuspenseInstancePending", "isSuspenseInstanceFallback", "currentlyRenderingFiber", "currentHook", "workInProgressHook", "didScheduleRenderPhaseUpdate", "didScheduleRenderPhaseUpdateDuringThisPass", "shouldDoubleInvokeUserFnsInHooksDEV", "localIdCounter", "thenableIndexCounter", "globalClientIdCounter", "throwInvalidHookError", "areHookInputsEqual", "nextDeps", "prevDeps", "renderWithHooks", "secondArg", "nextRenderLanes", "HooksDispatcherOnMount", "HooksDispatcherOnUpdate", "renderWithHooksAgain", "finishRenderingHooks", "ContextOnlyDispatcher", "didRenderTooFewHooks", "didReceiveUpdate", "numberOfReRenders", "HooksDispatcherOnRerender", "TransitionAwareHostComponent", "dispatcher", "maybeThenable", "useThenable", "checkDidRenderIdHook", "didRenderIdHook", "bailoutHooks", "resetHooksOnUnwind", "mountWorkInProgressHook", "hook", "updateWorkInProgressHook", "nextCurrentHook", "nextWorkInProgressHook", "createFunctionComponentUpdateQueue", "use", "usable", "useMemoCache", "size", "memoCache", "array", "basicStateReducer", "action", "updateReducer", "reducer", "updateReducerImpl", "baseQueue", "baseFirst", "newBaseQueueFirst", "newBaseQueueLast", "didReadFromEntangledAsyncAction$60", "revertLane", "rerenderReducer", "dispatch", "lastRenderPhaseUpdate", "updateSyncExternalStore", "subscribe", "getSnapshot", "getServerSnapshot", "isHydrating$jscomp$0", "snapshotChanged", "updateEffect", "subscribeToStore", "pushSimpleEffect", "updateStoreInstance", "pushStoreConsistencyCheck", "renderedSnapshot", "nextSnapshot", "checkIfSnapshotChanged", "forceStoreRerender", "latestGetSnapshot", "scheduleUpdateOnFiber", "mountStateImpl", "initialState", "initialStateInitializer", "updateOptimisticImpl", "passthrough", "dispatchActionState", "actionQueue", "setPendingState", "setState", "payload", "isRenderPhaseUpdate", "actionNode", "runActionStateAction", "prevState", "prevTransition", "currentTransition", "onStartTransitionFinish", "handleActionReturnValue", "onActionError", "error$66", "nextState", "onActionSuccess", "notifyActionListeners", "last", "actionStateReducer", "oldState", "mountActionState", "initialStateProp", "ssrFormState", "JSCompiler_inline_result$jscomp$0", "inRootOrSingleton", "dispatchSetState", "dispatchOptimisticSetState", "updateActionState", "stateHook", "updateActionStateImpl", "currentStateHook", "actionStateActionEffect", "rerenderActionState", "create", "deps", "updateRef", "mountEffectImpl", "fiberFlags", "hookFlags", "updateEffectImpl", "mountEffect", "useEffectEventImpl", "componentUpdateQueue", "events", "updateEvent", "ref", "updateInsertionEffect", "updateLayoutEffect", "imperativeHandleEffect", "refCleanup", "updateImperativeHandle", "mountDebugValue", "updateCallback", "updateMemo", "nextCreate", "mountDeferredValueImpl", "initialValue", "requestDeferredLane", "updateDeferredValueImpl", "prevValue", "startTransition", "pendingState", "finishedState", "thenableForFinishedState", "dispatchSetStateInternal", "requestUpdateLane", "noop", "startHostTransition", "formFiber", "formData", "ensureFormComponentIsStateful", "requestFormReset$1", "existingStateHook", "initialResetState", "useHostTransitionStatus", "updateId", "updateRefresh", "refreshCache", "provider", "root$69", "dispatchReducerAction", "enqueueRenderPhaseUpdate", "entangleTransitionUpdate", "currentState", "eagerState", "throwIfDuringRender", "initialArg", "identifierPrefix", "idWithLeadingBit", "booleanOrThenable", "applyDerivedStateFromProps", "ctor", "getDerivedStateFromProps", "nextProps", "classComponentUpdater", "checkShouldComponentUpdate", "oldProps", "newProps", "nextContext", "callComponentWillReceiveProps", "resolveClassComponentProps", "baseProps", "propName$73", "defaultOnUncaughtError", "defaultOnCaughtError", "defaultOnRecoverableError", "logUncaughtError", "errorInfo", "onUncaughtError", "e$74", "logCaughtError", "boundary", "onCaughtError", "e$75", "createRootErrorUpdate", "createClassErrorUpdate", "initializeClassErrorUpdate", "getDerivedStateFromError", "legacyErrorBoundariesThatAlreadyFailed", "stack", "throwException", "rootRenderLanes", "renderDidSuspendDelayIfPossible", "workInProgressRootExitStatus", "attachPingListener", "wrapperError", "workInProgressRootConcurrentErrors", "SelectiveHydrationException", "reconcileChildren", "nextChildren", "updateForwardRef", "propsWithoutRef", "bailoutOnAlreadyFinishedWork", "updateMemoComponent", "updateSimpleMemoComponent", "checkScheduledUpdateOrContext", "prevProps", "updateFunctionComponent", "updateOffscreenComponent", "deferHiddenOffscreenComponent", "bailoutOffscreenComponent", "nextBaseLanes", "remainingChildLanes", "mountActivityChildren", "mountWorkInProgressOffscreenFiber", "retryActivityComponentWithoutHydrating", "updateActivityComponent", "didSuspend", "canHydrateHydrationBoundary", "dehydrated", "markRef", "replayFunctionComponent", "updateClassComponent", "contextType", "unresolvedOldProps", "oldContext", "contextType$jscomp$0", "mountHostRootWithoutHydrating", "SUSPENDED_MARKER", "mountSuspenseOffscreenState", "getRemainingWorkInPrimaryTree", "primaryTreeDidDefer", "workInProgressDeferredLane", "updateSuspenseComponent", "showFallback", "nextPrimaryChildren", "mountSuspensePrimaryChildren", "retrySuspenseComponentWithoutHydrating", "digest", "primaryChildren", "offscreenProps", "scheduleSuspenseWorkOnFiber", "initSuspenseListRenderState", "isBackwards", "tail", "lastContentRow", "tailMode", "renderState", "updateSuspenseListComponent", "revealOrder", "suspenseContext", "shouldForceFallback", "attemptEarlyBailoutIfNoScheduledUpdate", "state$102", "didSuspendBefore", "beginWork", "$$typeof", "getResource", "getOwnerDocumentFromRootContainer", "setInitialProperties", "resolveSingletonInstance", "canHydrateInstance", "canHydrateTextInstance", "markUpdate", "preloadInstanceAndSuspendIfNeeded", "shouldRemainOnPreviousScreen", "preloadResourceAndSuspendIfNeeded", "resource", "preloadResource", "scheduleRetryEffect", "retryQueue", "workInProgressSuspendedRetryLanes", "cutOffTailIfNeeded", "hasRenderedATailFallback", "lastTailNode", "lastTailNode$106", "bubbleProperties", "completedWork", "didBailout", "newChildLanes", "subtreeFlags", "child$107", "completeWork", "nextResource", "ownerDocument", "listenToAllSupportedEvents", "workInProgressRootRenderTargetTime", "unwindWork", "unwindInterruptedWork", "interruptedWork", "commitHookEffectListMount", "flags", "finishedWork", "lastEffect", "firstEffect", "captureCommitPhaseError", "commitHookEffectListUnmount", "nearestMountedAncestor$jscomp$0", "destroy", "nearestMountedAncestor", "destroy_", "commitClassCallbacks", "safelyCallComponentWillUnmount", "safelyAttachRef", "instanceToUse", "safelyDetachRef", "error$140", "commitHostMount", "commitHostUpdate", "domElement", "updateProperties", "isHostParent", "getHostSibling", "insertOrAppendPlacementNodeIntoContainer", "before", "insertOrAppendPlacementNode", "commitHostSingletonAcquisition", "singleton", "attributes", "offscreenSubtreeIsHidden", "offscreenSubtreeWasHidden", "needsFormReset", "PossiblyWeakSet", "nextEffect", "commitBeforeMutationEffects", "eventsEnabled", "_enabled", "selection", "anchorOffset", "focusNode", "e$20", "indexWithinAnchor", "indexWithinFocus", "next", "selectionInformation", "resolvedPrevProps", "clearContainerSparingly", "commitLayoutEffectOnFiber", "finishedRoot", "recursivelyTraverseLayoutEffects", "error$139", "commitActivityHydrationCallbacks", "commitSuspenseHydrationCallbacks", "retryDehydratedSuspenseBoundary", "registerSuspenseInstanceRetry", "prevOffscreenSubtreeWasHidden", "recursivelyTraverseReappearLayoutEffects", "detachFiberAfterEffects", "hostParent", "hostParentIsContainer", "recursivelyTraverseDeletionEffects", "commitDeletionEffectsOnFiber", "deletedFiber", "prevHostParent", "prevHostParentIsContainer", "releaseSingletonInstance", "clearHydrationBoundary", "retryIfBlockedOn", "getRetryCache", "retryCache", "attachSuspenseRetryListeners", "wakeables", "wakeable", "retry", "resolveRetryWakeable", "recursivelyTraverseMutationEffects", "root$jscomp$0", "parentFiber", "commitMutationEffectsOnFiber", "currentHoistableRoot", "commitReconciliationEffects", "hoistableRoot", "currentResource", "maybeNodes", "getHydratableHoistableCache", "mountHoistable", "acquireResource", "tagCaches", "getHoistableRoot", "recursivelyResetForms", "globalMostRecentFallbackTime", "wasHidden", "prevOffscreenSubtreeIsHidden", "recursivelyTraverseDisappearLayoutEffects", "display", "hideOrUnhideDehydratedBoundary", "hostParentFiber", "parent$141", "before$142", "parent$143", "before$144", "finishedRoot$jscomp$0", "includeWorkInProgressEffects", "hiddenCallbacks", "commitOffscreenPassiveMountEffects", "previousCache", "commitCachePassiveMountEffect", "recursivelyTraversePassiveMountEffects", "committedLanes", "committedTransitions", "commitPassiveMountOnFiber", "_finishedWork$memoize2", "id", "onPostCommit", "recursivelyTraverseAtomicPassiveEffects", "recursivelyTraverseReconnectPassiveEffects", "committedLanes$jscomp$0", "committedTransitions$jscomp$0", "suspenseyCommitFlag", "recursivelyAccumulateSuspenseyCommit", "suspendedState", "accumulateSuspenseyCommitOnFiber", "suspendResource", "previousHoistableRoot", "detachAlternateSiblings", "previousFiber", "recursivelyTraversePassiveUnmountEffects", "commitPassiveUnmountEffectsInsideOfDeletedTree_begin", "commitPassiveUnmountOnFiber", "recursivelyTraverseDisconnectPassiveEffects", "deletedSubtreeRoot", "sibling", "DefaultAsyncDispatcher", "resourceType", "cacheForType", "PossiblyWeakMap", "workInProgressSuspendedReason", "workInProgressThrownValue", "workInProgressRootDidSkipSuspendedSiblings", "workInProgressRootIsPrerendering", "workInProgressRootDidAttachPingListener", "workInProgressRootInterleavedUpdatedLanes", "workInProgressRootPingedLanes", "workInProgressRootDidIncludeRecursiveRenderUpdate", "workInProgressTransitions", "pendingEffectsStatus", "pendingEffectsRoot", "pendingFinishedWork", "pendingEffectsLanes", "pendingEffectsRemainingLanes", "pendingPassiveTransitions", "pendingRecoverableErrors", "prepareFreshStack", "markRootSuspended", "ensureRootIsScheduled", "performWorkOnRoot", "forceSync", "shouldTimeSlice", "exitStatus", "renderRootConcurrent", "renderRootSync", "renderWasConcurrent", "isRenderConsistentWithExternalStores", "wasRootDehydrated", "scheduleTimeout", "commitRootWhenReady", "recoverableErrors", "transitions", "didIncludeRenderPhaseUpdate", "didSkipSuspendedSiblings", "suspendedCommitReason", "completedRenderStartTime", "completedRenderEndTime", "timeoutOffset", "waitForCommitToBeReady", "commitRoot", "check", "didAttemptEntireTree", "index$6", "flushSyncWorkAcrossRoots_impl", "resetWorkInProgressStack", "timeoutHandle", "cancelTimeout", "allEntangledLanes", "index$4", "handleThrow", "thrownValue", "pushDispatcher", "prevDispatcher", "pushAsyncDispatcher", "prevAsyncDispatcher", "shouldYieldForPrerendering", "prevExecutionContext", "unitOfWork", "reason", "throwAndUnwindWorkLoop", "workLoopSync", "thrownValue$165", "performUnitOfWork", "replaySuspendedUnitOfWork", "hostFiber", "completeUnitOfWork", "workLoopConcurrentByScheduler", "thrownValue$167", "suspendedReason", "unwindUnitOfWork", "skipSiblings", "flushPendingEffects", "scheduleCallback$1", "flushPassiveEffects", "flushMutationEffects", "flushLayoutEffects", "flushSpawnedWork", "rootMutationHasEffect", "priorSelectionInformation", "curFocusedElem", "priorFocusedElem", "priorSelectionRange", "win", "start$jscomp$0", "end$jscomp$0", "startMarker", "endMarker", "range", "rootHasLayoutEffect", "releaseRootPooledCache", "onRecoverableError", "recoverableError", "renderPriority", "captureCommitPhaseErrorOnRoot", "rootFiber", "pingCache", "threadIDs", "pingSuspendedRoot", "retryTimedOutBoundary", "boundaryFiber", "retryLane", "priorityLevel", "firstScheduledRoot", "lastScheduledRoot", "didScheduleMicrotask", "mightHavePendingSyncWork", "isFlushingWork", "currentEventTransitionLane", "scheduleImmediateRootScheduleTask", "syncTransitionLanes", "onlyLegacy", "didPerformSomeWork", "root$170", "performSyncWorkOnRoot", "processRootScheduleInImmediateTask", "processRootScheduleInMicrotask", "shouldAttemptEagerTransition", "prev", "scheduleTaskForRootDuringMicrotask", "index$5", "expirationTime", "performWorkOnRootViaSchedulerTask", "didTimeout", "originalCallbackNode", "workInProgressRootRenderLanes$jscomp$0", "scheduleMicrotask", "actionScopeLane", "coerceFormActionProp", "actionProp", "createFormDataWithSubmitter", "form", "submitter", "temp", "extractEvents$1", "maybeTargetInst", "i$jscomp$inline_1577", "eventName$jscomp$inline_1578", "domEventName$jscomp$inline_1579", "capitalizedEvent$jscomp$inline_1580", "nonDelegatedEvents", "eventSystemFlags", "_dispatchQueue$i", "previousInstance", "i$jscomp$0", "_dispatchListeners$i", "currentTarget", "targetElement", "listenerSetKey", "addTrappedEventListener", "listenToNativeEvent", "isCapturePhaseListener", "listeningMarker", "rootContainerElement", "targetContainer", "listenerWrapper", "dispatchDiscreteEvent", "dispatchContinuousEvent", "dispatchEvent", "dispatchEventForPluginEventSystem", "targetInst$jscomp$0", "ancestorInst", "nodeTag", "container", "grandTag", "SyntheticEventCtor", "inCapturePhase", "accumulateTargetOnly", "reactEventName", "lastHostComponent", "_instance", "createDispatchListener", "getParent", "tempB", "accumulateEnterLeaveListenersForEvent", "getTargetInstFunc", "handleEventFunc", "fallbackData", "eventType", "targetFiber", "captureName", "_instance2", "common", "_instance3", "NORMALIZE_NEWLINES_REGEX", "NORMALIZE_NULL_AND_REPLACEMENT_REGEX", "normalizeMarkupForTextOrAttribute", "markup", "serverText", "clientText", "setProp", "setPropOnCustomElement", "hasSrc", "hasSrcSet", "propKey", "propValue$184", "lastProps", "lastProp", "propKey$201", "propKey$217", "propKey$222", "propKey$227", "propKey$232", "isLikelyStaticResource", "initiatorType", "estimateBandwidth", "count", "bits", "resourceEntries", "entry", "transferSize", "duration", "overlapEntry", "overlapStartTime", "overlapTransferSize", "overlapInitiatorType", "namespaceURI", "parentNamespace", "currentPopstateTransitionEvent", "localPromise", "handleErrorInNextTick", "parentInstance", "hydrationInstance", "depth", "nextNode", "node$jscomp$0", "nextNode$jscomp$0", "suspenseInstance", "anyProps", "nodeType", "data", "targetInstance", "rootContainerInstance", "preloadPropsMap", "preconnectsSet", "previousDispatcher", "flushSyncWork", "requestFormReset", "prefetchDNS", "preconnect", "preload", "preloadModule", "preinitScript", "preinitStyle", "preinitModuleScript", "previousWasRendering", "wasRendering", "formInst", "globalDocument", "preconnectAs", "rel", "href", "crossOrigin", "limitedEscapedHref", "as", "preloadSelector", "getStyleKey", "getScriptKey", "getStylesheetSelectorFromKey", "getScriptSelectorFromKey", "precedence", "adoptPreloadPropsForStylesheet", "link", "reject", "insertStylesheet", "src", "scripts", "adoptPreloadPropsForScript", "currentProps", "styles$243", "resource$244", "preloadStylesheet", "stylesheetPropsFromRawProps", "rawProps", "preloadProps", "styleProps", "instance$249", "linkInstance", "nodes", "prior", "stylesheetProps", "scriptProps", "keyAttribute", "caches", "nodeKey", "hostContext", "onUnsuspend", "estimatedBytesWithinLimit", "insertSuspendedStylesheets", "commit", "stylesheetTimer", "unsuspend", "imgTimer", "precedencesByRoot", "insertStylesheetIntoRoot", "precedences", "FiberRootNode", "hydrate", "onDefaultTransitionIndicator", "formState", "createFiberRoot", "initialChildren", "hydrationCallbacks", "isStrictMode", "getContextForSubtree", "parentComponent", "updateContainerImpl", "markRetryLaneImpl", "markRetryLaneIfNotHydrated", "attemptContinuousHydration", "attemptHydrationAtCurrentPriority", "blockedOn", "findInstanceBlockingEvent", "return_targetInst", "clearIfContinuousEvent", "queueIfContinuousEvent", "discreteReplayableEvents", "findInstanceBlockingTarget", "hasScheduledReplayAttempt", "queuedFocus", "queuedDrag", "queuedMouse", "queuedPointers", "queuedPointerCaptures", "queuedExplicitHydrationTargets", "accumulateOrCreateContinuousQueuedReplayableEvent", "existingQueuedEvent", "pointerId", "attemptExplicitHydrationTarget", "queuedTarget", "attemptReplayContinuousQueuedEvent", "queuedEvent", "targetContainers", "nextBlockedOn", "nativeEventClone", "attemptReplayContinuousQueuedEventInMap", "map", "replayUnblockedEvents", "scheduleCallbackIfUnblocked", "unblocked", "lastScheduledReplayQueue", "scheduleReplayQueueIfNeeded", "formReplayingQueue", "submitterOrAction", "unblock", "formProps", "defaultOnDefaultTransitionIndicator", "handleNavigate", "pendingResolve", "handleNavigateComplete", "isCancelled", "startFakeNavigation", "currentEntry", "ReactDOMRoot", "internalRoot", "ReactDOMHydrationRoot", "isomorphicReactPackageVersion$jscomp$inline_1840", "componentOrElement", "internals$jscomp$inline_2347", "hook$jscomp$inline_2348", "require_client", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_moment", "__commonJSMin", "exports", "module", "global", "factory", "hookCallback", "hooks", "setHookCallback", "callback", "isArray", "input", "isObject", "hasOwnProp", "a", "b", "isObjectEmpty", "obj", "k", "isUndefined", "isNumber", "isDate", "map", "arr", "fn", "res", "i", "arrLen", "extend", "createUTC", "format", "locale", "strict", "createLocalOrUTC", "defaultParsingFlags", "getParsingFlags", "m", "some", "fun", "t", "len", "isValid", "flags", "parsedParts", "isNowValid", "createInvalid", "momentProperties", "updateInProgress", "copyConfig", "to", "from", "prop", "val", "momentPropertiesLen", "Moment", "config", "isMoment", "warn", "msg", "deprecate", "firstTime", "args", "arg", "key", "argLen", "deprecations", "deprecateSimple", "name", "isFunction", "set", "mergeConfigs", "parentConfig", "childConfig", "Locale", "keys", "defaultCalendar", "calendar", "mom", "now", "output", "zeroFill", "number", "targetLength", "forceSign", "absNumber", "zerosToFill", "sign", "formattingTokens", "localFormattingTokens", "formatFunctions", "formatTokenFunctions", "addFormatToken", "token", "padded", "ordinal", "func", "removeFormattingTokens", "makeFormatFunction", "array", "length", "formatMoment", "expandFormat", "replaceLongDateFormatTokens", "defaultLongDateFormat", "longDateFormat", "formatUpper", "tok", "defaultInvalidDate", "invalidDate", "defaultOrdinal", "defaultDayOfMonthOrdinalParse", "defaultRelativeTime", "relativeTime", "withoutSuffix", "string", "isFuture", "pastFuture", "diff", "aliases", "normalizeUnits", "units", "normalizeObjectUnits", "inputObject", "normalizedInput", "normalizedProp", "priorities", "getPrioritizedUnits", "unitsObj", "u", "match1", "match2", "match3", "match4", "match6", "match1to2", "match3to4", "match5to6", "match1to3", "match1to4", "match1to6", "matchUnsigned", "matchSigned", "matchOffset", "matchShortOffset", "matchTimestamp", "matchWord", "match1to2NoLeadingZero", "match1to2HasZero", "regexes", "addRegexToken", "regex", "strictRegex", "isStrict", "localeData", "getParseRegexForToken", "unescapeFormat", "s", "regexEscape", "matched", "p1", "p2", "p3", "p4", "absFloor", "toInt", "argumentForCoercion", "coercedNumber", "value", "tokens", "addParseToken", "tokenLen", "addWeekParseToken", "addTimeToArrayFromToken", "isLeapYear", "year", "YEAR", "MONTH", "DATE", "HOUR", "MINUTE", "SECOND", "MILLISECOND", "WEEK", "WEEKDAY", "y", "daysInYear", "getSetYear", "makeGetSet", "getIsLeapYear", "unit", "keepTime", "set$1", "get", "d", "isUTC", "month", "date", "stringGet", "stringSet", "prioritized", "prioritizedLen", "mod", "n", "x", "indexOf", "o", "daysInMonth", "modMonth", "defaultLocaleMonths", "defaultLocaleMonthsShort", "MONTHS_IN_FORMAT", "defaultMonthsShortRegex", "defaultMonthsRegex", "localeMonths", "localeMonthsShort", "handleStrictParse", "monthName", "ii", "llc", "localeMonthsParse", "setMonth", "getSetMonth", "getDaysInMonth", "monthsShortRegex", "computeMonthsParse", "monthsRegex", "cmpLenRev", "shortPieces", "longPieces", "mixedPieces", "shortP", "longP", "createDate", "h", "M", "ms", "createUTCDate", "firstWeekOffset", "dow", "doy", "fwd", "fwdlw", "dayOfYearFromWeeks", "week", "weekday", "localWeekday", "weekOffset", "dayOfYear", "resYear", "resDayOfYear", "weekOfYear", "resWeek", "weeksInYear", "weekOffsetNext", "localeWeek", "defaultLocaleWeek", "localeFirstDayOfWeek", "localeFirstDayOfYear", "getSetWeek", "getSetISOWeek", "parseWeekday", "parseIsoWeekday", "shiftWeekdays", "ws", "defaultLocaleWeekdays", "defaultLocaleWeekdaysShort", "defaultLocaleWeekdaysMin", "defaultWeekdaysRegex", "defaultWeekdaysShortRegex", "defaultWeekdaysMinRegex", "localeWeekdays", "weekdays", "localeWeekdaysShort", "localeWeekdaysMin", "handleStrictParse$1", "weekdayName", "localeWeekdaysParse", "getSetDayOfWeek", "day", "getSetLocaleDayOfWeek", "getSetISODayOfWeek", "weekdaysRegex", "computeWeekdaysParse", "weekdaysShortRegex", "weekdaysMinRegex", "minPieces", "minp", "shortp", "longp", "hFormat", "kFormat", "meridiem", "lowercase", "matchMeridiem", "kInput", "pos", "pos1", "pos2", "localeIsPM", "defaultLocaleMeridiemParse", "getSetHour", "localeMeridiem", "hours", "minutes", "isLower", "baseConfig", "locales", "localeFamilies", "globalLocale", "commonPrefix", "arr1", "arr2", "minl", "normalizeLocale", "chooseLocale", "names", "j", "next", "split", "loadLocale", "isLocaleNameSane", "oldLocale", "aliasedRequire", "__require", "getSetGlobalLocale", "e", "values", "data", "getLocale", "defineLocale", "updateLocale", "tmpLocale", "listLocales", "checkOverflow", "overflow", "extendedIsoRegex", "basicIsoRegex", "tzRegex", "isoDates", "isoTimes", "aspNetJsonRegex", "rfc2822", "obsOffsets", "configFromISO", "l", "match", "allowTime", "dateFormat", "timeFormat", "tzFormat", "isoDatesLen", "isoTimesLen", "configFromStringAndFormat", "extractFromRFC2822Strings", "yearStr", "monthStr", "dayStr", "hourStr", "minuteStr", "secondStr", "result", "untruncateYear", "preprocessRFC2822", "checkWeekday", "weekdayStr", "parsedInput", "weekdayProvided", "weekdayActual", "calculateOffset", "obsOffset", "militaryOffset", "numOffset", "hm", "configFromRFC2822", "parsedArray", "configFromString", "defaults", "c", "currentDateArray", "nowValue", "configFromArray", "currentDate", "expectedWeekday", "yearToUse", "dayOfYearFromWeekInfo", "w", "weekYear", "temp", "weekdayOverflow", "curWeek", "createLocal", "skipped", "stringLength", "totalParsedInputLength", "era", "meridiemFixWrap", "hour", "isPm", "configFromStringAndArray", "tempConfig", "bestMoment", "scoreToBeat", "currentScore", "validFormatFound", "bestFormatIsValid", "configfLen", "configFromObject", "dayOrDate", "createFromConfig", "prepareConfig", "configFromInput", "prototypeMin", "other", "prototypeMax", "pickBy", "moments", "min", "max", "ordering", "isDurationValid", "unitHasDecimal", "orderLen", "isValid$1", "createInvalid$1", "createDuration", "Duration", "duration", "years", "quarters", "months", "weeks", "days", "seconds", "milliseconds", "isDuration", "absRound", "compareArrays", "array1", "array2", "dontConvert", "lengthDiff", "diffs", "offset", "separator", "offsetFromString", "chunkOffset", "matcher", "matches", "chunk", "parts", "cloneWithOffset", "model", "getDateOffset", "getSetOffset", "keepLocalTime", "keepMinutes", "localAdjust", "addSubtract", "getSetZone", "setOffsetToUTC", "setOffsetToLocal", "setOffsetToParsedOffset", "tZone", "hasAlignedHourOffset", "isDaylightSavingTime", "isDaylightSavingTimeShifted", "isLocal", "isUtcOffset", "isUtc", "aspNetRegex", "isoRegex", "ret", "diffRes", "parseIso", "momentsDifference", "inp", "positiveMomentsDifference", "base", "createAdder", "direction", "period", "dur", "tmp", "isAdding", "updateOffset", "add", "subtract", "isString", "isMomentInput", "isNumberOrStringArray", "isMomentInputObject", "objectTest", "propertyTest", "properties", "property", "propertyLen", "arrayTest", "dataTypeTest", "item", "isCalendarSpec", "getCalendarFormat", "myMoment", "calendar$1", "time", "formats", "sod", "clone", "isAfter", "localInput", "isBefore", "isBetween", "inclusivity", "localFrom", "localTo", "isSame", "inputMs", "isSameOrAfter", "isSameOrBefore", "asFloat", "that", "zoneDelta", "monthDiff", "wholeMonthDiff", "anchor", "anchor2", "adjust", "toString", "toISOString", "keepOffset", "utc", "inspect", "zone", "prefix", "datetime", "suffix", "inputString", "fromNow", "toNow", "newLocaleData", "lang", "MS_PER_SECOND", "MS_PER_MINUTE", "MS_PER_HOUR", "MS_PER_400_YEARS", "mod$1", "dividend", "divisor", "localStartOfDate", "utcStartOfDate", "startOf", "startOfDate", "endOf", "valueOf", "unix", "toDate", "toArray", "toObject", "toJSON", "isValid$2", "parsingFlags", "invalidAt", "creationData", "matchEraAbbr", "matchEraName", "matchEraNarrow", "matchEraYearOrdinal", "localeEras", "eras", "localeErasParse", "eraName", "abbr", "narrow", "localeErasConvertYear", "dir", "getEraName", "getEraNarrow", "getEraAbbr", "getEraYear", "erasNameRegex", "computeErasParse", "erasAbbrRegex", "erasNarrowRegex", "abbrPieces", "namePieces", "narrowPieces", "erasName", "erasAbbr", "erasNarrow", "addWeekYearFormatToken", "getter", "getSetWeekYear", "getSetWeekYearHelper", "getSetISOWeekYear", "getISOWeeksInYear", "getISOWeeksInISOWeekYear", "getWeeksInYear", "weekInfo", "getWeeksInWeekYear", "weeksTarget", "setWeekAll", "dayOfYearData", "getSetQuarter", "getSetDayOfMonth", "getSetDayOfYear", "getSetMinute", "getSetSecond", "getSetMillisecond", "parseMs", "getZoneAbbr", "getZoneName", "proto", "createUnix", "createInZone", "preParsePostFormat", "proto$1", "get$1", "index", "field", "setter", "listMonthsImpl", "out", "listWeekdaysImpl", "localeSorted", "shift", "listMonths", "listMonthsShort", "listWeekdays", "listWeekdaysShort", "listWeekdaysMin", "mathAbs", "abs", "addSubtract$1", "add$1", "subtract$1", "absCeil", "bubble", "monthsFromDays", "monthsToDays", "daysToMonths", "as", "makeAs", "alias", "asMilliseconds", "asSeconds", "asMinutes", "asHours", "asDays", "asWeeks", "asMonths", "asQuarters", "asYears", "valueOf$1", "clone$1", "get$2", "makeGetter", "round", "thresholds", "substituteTimeAgo", "relativeTime$1", "posNegDuration", "getSetRelativeTimeRounding", "roundingFunction", "getSetRelativeTimeThreshold", "threshold", "limit", "humanize", "argWithSuffix", "argThresholds", "withSuffix", "th", "abs$1", "toISOString$1", "total", "totalSign", "ymSign", "daysSign", "hmsSign", "proto$2", "require_react_jsx_runtime_production", "__commonJSMin", "exports", "REACT_ELEMENT_TYPE", "REACT_FRAGMENT_TYPE", "jsxProd", "type", "config", "maybeKey", "key", "propName", "require_jsx_runtime", "__commonJSMin", "exports", "module", "import_client", "KyError", "__publicField", "HTTPError", "KyError", "response", "request", "options", "_a", "code", "title", "status", "reason", "__publicField", "NetworkError", "KyError", "request", "options", "__publicField", "NonError", "value", "message", "e", "__publicField", "ForceRetryError", "KyError", "options", "cause", "NonError", "__publicField", "SchemaValidationError", "issues", "__publicField", "TimeoutError", "KyError", "request", "__publicField", "supportsRequestStreams", "duplexAccessed", "hasContentType", "supportsReadableStream", "supportsRequest", "error", "supportsAbortController", "supportsAbortSignal", "supportsResponseStreams", "supportsFormData", "requestMethods", "validate", "responseTypes", "maxSafeTimeout", "usualFormBoundarySize", "stop", "RetryMarker", "options", "__publicField", "retry", "kyOptionKeys", "requestOptionsRegistry", "encoder", "getBodySize", "body", "size", "key", "value", "usualFormBoundarySize", "withProgress", "stream", "totalBytes", "onProgress", "previousChunk", "transferredBytes", "currentChunk", "controller", "percent", "streamResponse", "response", "onDownloadProgress", "responseInit", "streamRequest", "request", "onUploadProgress", "originalBody", "isObject", "value", "replaceSymbol", "getReplaceState", "value", "isObject", "validateAndMerge", "sources", "source", "isObject", "deepMerge", "mergeHeaders", "source1", "source2", "result", "isHeadersInstance", "key", "value", "isPlainObject", "prototype", "cloneShallow", "copy", "deleted", "deletedParametersSymbol", "__spreadValues", "normalizeHeaderObject", "headers", "entry", "mergeHeaderContainers", "newHookValue", "original", "incoming", "property", "_a", "_b", "mergeHooks", "appendSearchParameters", "target", "input", "inputDeleted", "pair", "parameters", "returnValue", "hooks", "searchParameters", "signals", "replaceState", "getReplaceState", "isReplace", "__spreadProps", "hookValue", "headerValue", "supportsAbortSignal", "normalizeRequestMethod", "input", "requestMethods", "retryMethods", "retryStatusCodes", "retryAfterStatusCodes", "defaultRetryOptions", "attemptCount", "normalizeRetryOptions", "retry", "_a", "__spreadProps", "__spreadValues", "normalizedRetry", "method", "value", "timeout", "request", "init", "abortController", "options", "resolve", "reject", "timeoutId", "TimeoutError", "delay", "ms", "signal", "resolve", "reject", "abortHandler", "timeoutId", "findUnknownOptions", "options", "unknownOptions", "key", "requestOptionsRegistry", "kyOptionKeys", "hasSearchParameters", "search", "_a", "deletedParametersSymbol", "objectToString", "isError", "value", "errorMessages", "isRawNetworkError", "error", "message", "stack", "isErrorType", "error", "cls", "isHTTPError", "error", "isErrorType", "HTTPError", "isNetworkError", "NetworkError", "isTimeoutError", "TimeoutError", "maxErrorResponseBodySize", "prefixUrlRenamedErrorMessage", "timedOutResponseData", "createTextDecoder", "contentType", "_a", "match", "charset", "e", "invalidSchemaMessage", "cloneRetryOptions", "retry", "__spreadValues", "objectToString", "isRequestInstance", "value", "isResponseInstance", "cloneSearchParametersForInitHook", "searchParameters", "parameter", "cloneShallow", "cloneInitHookOptions", "options", "clonedOptions", "__spreadProps", "validateJsonWithSchema", "jsonValue", "schema", "standardSchema", "validationResult", "SchemaValidationError", "_Ky_static", "normalizeSearchParams_fn", "_abortController", "_retryCount", "_input", "_options", "_originalRequest", "_userProvidedAbortSignal", "_beforeRetryHookErrors", "_cachedNormalizedOptions", "_startTime", "_returnedResponseFromBeforeRetryHook", "_responseRequests", "_Ky_instances", "calculateDelay_fn", "calculateRetryDelay_fn", "decorateResponse_fn", "getResponseData_fn", "getErrorDataTimeout_fn", "isJsonContentType_fn", "readResponseText_fn", "parseJson_fn", "cancelBody_fn", "cancelResponseBody_fn", "createManagedSignal_fn", "throwIfTotalTimeoutExhausted_fn", "runBeforeRequestHooks_fn", "runAfterResponseHooks_fn", "retry_fn", "retryFromError_fn", "consumeReturnedResponseFromBeforeRetryHook_fn", "fetch_fn", "getRemainingTotalTimeout_fn", "getCurrentTime_fn", "getNormalizedOptions_fn", "assignRequest_fn", "getResponseRequest_fn", "setResponseRequest_fn", "wrapRequestWithUploadProgress_fn", "_Ky", "input", "__privateAdd", "__publicField", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "_j", "_k", "_l", "_m", "_n", "__privateSet", "mergeHeaders", "__privateGet", "mergeHooks", "normalizeRequestMethod", "normalizeRetryOptions", "normalizedPrefix", "normalizedInput", "absoluteInput", "supportsAbortController", "supportsAbortSignal", "__privateMethod", "supportsRequestStreams", "userProvidedContentType", "supportsFormData", "hasSearchParameters", "url", "deleted", "deletedParametersSymbol", "key", "stringSearchParameters", "optionsSearchParameters", "initHooks", "initHookOptions", "hook", "ky", "function_", "maxSafeTimeout", "beforeRequestResponse", "response", "responseFromHook", "error", "ForceRetryError", "retriedResponse", "currentResponse", "httpError", "HTTPError", "errorToThrow", "supportsResponseStreams", "progressResponse", "streamResponse", "result", "processedError", "hookResult", "originalRequest", "type", "mimeType", "responseTypes", "text", "searchParams", "retryDelay", "jitteredDelay", "errorObject", "NonError", "isTimeoutError", "isHTTPError", "retryAfter", "after", "isNetworkError", "request", "data", "errorDataTimeout", "remainingTotal", "TimeoutError", "timeoutMs", "body", "reader", "decoder", "chunks", "totalBytes", "readAll", "done", "timeoutPromise", "resolve", "timeoutId", "remaining", "responseRequest", "hookResponse", "modifiedResponse", "RetryMarker", "nextResponse", "delayOptions", "remainingTimeout", "delay", "customRequest", "hookError", "__privateWrapper", "stop", "nonRequestOptions", "findUnknownOptions", "retryRequest", "effectiveTimeout", "timeout", "isRawNetworkError", "NetworkError", "elapsed", "hooks", "json", "parseJson", "stringifyJson", "totalTimeout", "throwHttpErrors", "fetch", "normalizedOptions", "__objRest", "originalBody", "streamRequest", "Ky", "createInstance", "defaults", "ky", "input", "options", "Ky", "validateAndMerge", "method", "requestMethods", "newDefaults", "stop", "retry", "distribution_default", "import_moment", "app", "moment8601", "s", "m", "moment", "s1", "s2", "mmoment8601", "e", "closeWindow", "win", "setFocus", "elemId", "_a", "toLocaleDateString", "dateString", "withCsrf", "headers", "a", "app", "h", "urlFor", "path", "toRelativePath", "urlOrPath", "u", "rel", "e", "request", "method", "opts", "_a", "distribution_default", "toggleStar", "bid", "action", "destroy", "markRead", "editBookmark", "bm", "res", "editNote", "note", "lookupTitle", "getTagCloud", "mode", "updateTagCloudMode", "fetchTagSuggestions", "data", "destroyNote", "nid", "editAccountSettings", "us", "logout", "import_react", "import_jsx_runtime", "AccountSettingsView", "initial", "us", "setUs", "React", "update", "next", "editAccountSettings", "e", "__spreadProps", "__spreadValues", "import_react", "import_react", "TAG_SUGGESTION_DEBOUNCE_MS", "useTagSuggestions", "enabled", "tags", "onTagsUpdate", "maxSuggestions", "suggestionState", "setSuggestionState", "React", "tagSuggestionRequestId", "tagSuggestionDebounceRef", "tagInputRef", "cancelPendingSuggestions", "closeSuggestions", "onTagsChange", "e", "value", "selectionStart", "selectionEnd", "isWhitespaceOnlyEdit", "activeToken", "getActiveTagToken", "normalizedTagTerms", "getNormalizedTagTerms", "activeTokenNormalized", "shouldExcludeActiveToken", "tag", "payload", "requestId", "response", "fetchTagSuggestions", "items", "anchor", "measureCaretPosition", "applySuggestion", "term", "input", "next", "replaceTokenAtRange", "onTagsKeyDown", "current", "__spreadProps", "__spreadValues", "selected", "onTagsSelect", "onSuggestionHover", "index", "caret", "boundedCaret", "start", "end", "token", "style", "mirror", "prefix", "marker", "left", "top", "range", "replacement", "suffix", "inserted", "previous", "prevEnd", "nextEnd", "removed", "added", "isSpacesOnly", "unsafeDecode", "str", "parseQueryString", "searchOrHash", "_a", "first", "parts", "x", "decode", "s", "out", "kv", "k", "rest", "curQuerystring", "lookupQueryStringValue", "qs", "key", "val", "encodeTag", "tag", "fromNullableStr", "normalizeTags", "tags", "import_react", "import_jsx_runtime", "MAX_SUGGESTION_TERM_RENDER_LENGTH", "TagSuggestionsDropdown", "suggestionState", "onHover", "onPick", "item", "index", "selected", "displayTerm", "truncateSuggestionTerm", "e", "renderHighlightedSuggestion", "term", "query", "lowerTerm", "lowerQuery", "idx", "before", "match", "after", "import_jsx_runtime", "AddForm", "initial", "_a", "_b", "a", "app", "bm", "setBm", "React", "editBm", "setEditBm", "deleteAsk", "setDeleteAsk", "loading", "setLoading", "destroyed", "setDestroyed", "apiError", "setApiError", "suggestEnabled", "tagInputRef", "suggestionState", "closeSuggestions", "onTagsChange", "onTagsKeyDown", "onTagsSelect", "onSuggestionHover", "onSuggestionPick", "useTagSuggestions", "tags", "x", "__spreadProps", "__spreadValues", "mm", "mmoment8601", "onFetchTitle", "title", "lookupTitle", "onDestroy", "destroy", "onSubmit", "e", "res", "editBookmark", "qs", "curQuerystring", "next", "lookupQueryStringValue", "ref", "org", "closeWindow", "TagSuggestionsDropdown", "import_react", "createStoreImpl", "createState", "state", "listeners", "setState", "partial", "replace", "nextState", "previousState", "listener", "getState", "api", "initialState", "createStore", "import_react", "identity", "arg", "useStore", "api", "selector", "slice", "React", "createImpl", "createState", "createStore", "useBoundStore", "create", "useBookmarksStore", "create", "set", "bmarks", "bid", "s", "b", "bm", "import_react", "entries", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "Object", "freeze", "seal", "create", "apply", "construct", "Reflect", "x", "func", "thisArg", "_len", "arguments", "length", "args", "Array", "_key", "Func", "_len2", "_key2", "arrayForEach", "unapply", "prototype", "forEach", "arrayLastIndexOf", "lastIndexOf", "arrayPop", "pop", "arrayPush", "push", "arraySplice", "splice", "arrayIsArray", "isArray", "stringToLowerCase", "String", "toLowerCase", "stringToString", "toString", "stringMatch", "match", "stringReplace", "replace", "stringIndexOf", "indexOf", "stringTrim", "trim", "numberToString", "Number", "booleanToString", "Boolean", "bigintToString", "BigInt", "symbolToString", "Symbol", "objectHasOwnProperty", "hasOwnProperty", "objectToString", "regExpTest", "RegExp", "test", "typeErrorCreate", "unconstruct", "TypeError", "lastIndex", "_len3", "_key3", "_len4", "_key4", "addToSet", "set", "array", "transformCaseFunc", "l", "element", "lcElement", "cleanArray", "index", "clone", "object", "newObject", "property", "value", "constructor", "stringifyValue", "valueAsRecord", "valueToString", "lookupGetter", "stringified", "prop", "desc", "get", "fallbackValue", "isRegex", "_unused", "html", "svg", "svgFilters", "svgDisallowed", "mathMl", "mathMlDisallowed", "text", "xml", "MUSTACHE_EXPR", "ERB_EXPR", "TMPLIT_EXPR", "DATA_ATTR", "ARIA_ATTR", "IS_ALLOWED_URI", "IS_SCRIPT_OR_DATA", "ATTR_WHITESPACE", "DOCTYPE_NAME", "CUSTOM_ELEMENT", "NODE_TYPE", "progressingInstruction", "comment", "document", "getGlobal", "window", "_createTrustedTypesPolicy", "trustedTypes", "purifyHostElement", "createPolicy", "suffix", "ATTR_NAME", "hasAttribute", "getAttribute", "policyName", "createHTML", "createScriptURL", "scriptUrl", "_", "console", "warn", "_createHooksMap", "afterSanitizeAttributes", "afterSanitizeElements", "afterSanitizeShadowDOM", "beforeSanitizeAttributes", "beforeSanitizeElements", "beforeSanitizeShadowDOM", "uponSanitizeAttribute", "uponSanitizeElement", "uponSanitizeShadowNode", "createDOMPurify", "undefined", "DOMPurify", "root", "version", "VERSION", "removed", "nodeType", "Element", "isSupported", "originalDocument", "currentScript", "DocumentFragment", "HTMLTemplateElement", "Node", "NodeFilter", "NamedNodeMap", "MozNamedAttrMap", "HTMLFormElement", "DOMParser", "ElementPrototype", "cloneNode", "remove", "getNextSibling", "getChildNodes", "getParentNode", "template", "createElement", "content", "ownerDocument", "trustedTypesPolicy", "emptyHTML", "implementation", "createNodeIterator", "createDocumentFragment", "getElementsByTagName", "importNode", "hooks", "createHTMLDocument", "EXPRESSIONS", "ALLOWED_TAGS", "DEFAULT_ALLOWED_TAGS", "TAGS", "ALLOWED_ATTR", "DEFAULT_ALLOWED_ATTR", "ATTRS", "CUSTOM_ELEMENT_HANDLING", "tagNameCheck", "writable", "configurable", "enumerable", "attributeNameCheck", "allowCustomizedBuiltInElements", "FORBID_TAGS", "FORBID_ATTR", "EXTRA_ELEMENT_HANDLING", "tagCheck", "attributeCheck", "ALLOW_ARIA_ATTR", "ALLOW_DATA_ATTR", "ALLOW_UNKNOWN_PROTOCOLS", "ALLOW_SELF_CLOSE_IN_ATTR", "SAFE_FOR_TEMPLATES", "SAFE_FOR_XML", "WHOLE_DOCUMENT", "SET_CONFIG", "FORCE_BODY", "RETURN_DOM", "RETURN_DOM_FRAGMENT", "RETURN_TRUSTED_TYPE", "SANITIZE_DOM", "SANITIZE_NAMED_PROPS", "SANITIZE_NAMED_PROPS_PREFIX", "KEEP_CONTENT", "IN_PLACE", "USE_PROFILES", "FORBID_CONTENTS", "DEFAULT_FORBID_CONTENTS", "DATA_URI_TAGS", "DEFAULT_DATA_URI_TAGS", "URI_SAFE_ATTRIBUTES", "DEFAULT_URI_SAFE_ATTRIBUTES", "MATHML_NAMESPACE", "SVG_NAMESPACE", "HTML_NAMESPACE", "NAMESPACE", "IS_EMPTY_INPUT", "ALLOWED_NAMESPACES", "DEFAULT_ALLOWED_NAMESPACES", "MATHML_TEXT_INTEGRATION_POINTS", "HTML_INTEGRATION_POINTS", "COMMON_SVG_AND_HTML_ELEMENTS", "PARSER_MEDIA_TYPE", "SUPPORTED_PARSER_MEDIA_TYPES", "DEFAULT_PARSER_MEDIA_TYPE", "CONFIG", "formElement", "isRegexOrFunction", "testValue", "Function", "_parseConfig", "cfg", "ADD_URI_SAFE_ATTR", "ADD_DATA_URI_TAGS", "ALLOWED_URI_REGEXP", "customElementHandling", "ADD_TAGS", "ADD_ATTR", "ADD_FORBID_CONTENTS", "table", "tbody", "TRUSTED_TYPES_POLICY", "ALL_SVG_TAGS", "ALL_MATHML_TAGS", "_checkValidNamespace", "parent", "tagName", "namespaceURI", "parentTagName", "_forceRemove", "node", "removeChild", "_removeAttribute", "name", "attribute", "getAttributeNode", "from", "removeAttribute", "setAttribute", "_initDocument", "dirty", "doc", "leadingWhitespace", "matches", "dirtyPayload", "parseFromString", "documentElement", "createDocument", "innerHTML", "body", "insertBefore", "createTextNode", "childNodes", "call", "_createNodeIterator", "SHOW_ELEMENT", "SHOW_COMMENT", "SHOW_TEXT", "SHOW_PROCESSING_INSTRUCTION", "SHOW_CDATA_SECTION", "_isClobbered", "nodeName", "textContent", "attributes", "hasChildNodes", "_isNode", "_executeHooks", "currentNode", "data", "hook", "_sanitizeElements", "allowedTags", "firstElementChild", "_isBasicCustomElement", "parentNode", "childCount", "i", "childClone", "expr", "_isValidAttribute", "lcTag", "lcName", "RESERVED_CUSTOM_ELEMENT_NAMES", "_sanitizeAttributes", "hookEvent", "attrName", "attrValue", "keepAttr", "allowedAttributes", "forceKeepAttr", "attr", "initValue", "getAttributeType", "setAttributeNS", "_sanitizeShadowDOM", "fragment", "shadowNode", "shadowIterator", "nextNode", "sanitize", "importedNode", "returnNode", "nn", "appendChild", "firstChild", "nodeIterator", "normalize", "shadowroot", "shadowrootmode", "serializedHTML", "outerHTML", "doctype", "setConfig", "clearConfig", "isValidAttribute", "tag", "addHook", "entryPoint", "hookFunction", "removeHook", "removeHooks", "removeAllHooks", "purify", "_getDefaults", "_defaults", "changeDefaults", "newDefaults", "noopTest", "edit", "regex", "opt", "source", "obj", "name", "val", "valSource", "other", "supportsLookbehind", "a", "e", "bull", "indent", "newline", "blockCode", "fences", "hr", "heading", "bullet", "lheadingCore", "lheading", "lheadingGfm", "_paragraph", "blockText", "_blockLabel", "def", "list", "_tag", "_comment", "html", "paragraph", "blockquote", "blockNormal", "gfmTable", "blockGfm", "__spreadProps", "__spreadValues", "blockPedantic", "escape", "inlineCode", "br", "inlineText", "_punctuation", "_punctuationOrSpace", "_notPunctuationOrSpace", "punctuation", "_punctuationGfmStrongEm", "_punctuationOrSpaceGfmStrongEm", "_notPunctuationOrSpaceGfmStrongEm", "blockSkip", "emStrongLDelimCore", "emStrongLDelim", "emStrongLDelimGfm", "emStrongRDelimAstCore", "emStrongRDelimAst", "emStrongRDelimAstGfm", "emStrongRDelimUnd", "delLDelim", "delRDelimCore", "delRDelim", "anyPunctuation", "autolink", "_inlineComment", "tag", "_inlineLabel", "link", "reflink", "nolink", "reflinkSearch", "_caseInsensitiveProtocol", "inlineNormal", "inlinePedantic", "inlineGfm", "inlineBreaks", "block", "inline", "escapeReplacements", "getEscapeReplacement", "ch", "escapeHtmlEntities", "encode", "cleanUrl", "href", "splitCells", "tableRow", "count", "row", "match", "offset", "str", "escaped", "curr", "cells", "i", "rtrim", "c", "invert", "l", "suffLen", "currChar", "trimTrailingBlankLines", "lines", "end", "findClosingBracket", "b", "level", "expandTabs", "line", "col", "expanded", "char", "added", "outputLink", "cap", "raw", "lexer", "rules", "title", "text", "token", "indentCodeCompensation", "matchIndentToCode", "indentToCode", "node", "matchIndentInNode", "indentInNode", "_Tokenizer", "options", "__publicField", "src", "trimmed", "tokens", "inBlockquote", "currentLines", "currentRaw", "currentText", "top", "lastToken", "oldToken", "newText", "newToken", "isordered", "itemRegex", "endsWithBlankLine", "endEarly", "itemContents", "nextLine", "blankLine", "nextBulletRegex", "hrRegex", "fencesBeginRegex", "headingBeginRegex", "htmlBeginRegex", "blockquoteBeginRegex", "rawLine", "nextLineWithoutTabs", "lastItem", "item", "taskRaw", "checkboxToken", "spacers", "t", "hasMultipleLineBreaks", "headers", "aligns", "rows", "align", "cell", "trimmedUrl", "rtrimSlash", "lastParenIndex", "linkLen", "links", "linkString", "maskedSrc", "prevChar", "lLength", "rDelim", "rLength", "delimTotal", "midDelimTotal", "endReg", "lastCharLength", "hasNonSpaceChars", "hasSpaceCharsOnBothEnds", "prevCapZero", "_b", "_a", "_Lexer", "__Lexer", "next", "lastParagraphClipped", "srcLength", "extTokenizer", "cutSrc", "_c", "startIndex", "tempSrc", "tempStart", "getStartIndex", "keepPrevChar", "_e", "_d", "_f", "byte", "errMsg", "_Renderer", "lang", "langString", "code", "depth", "ordered", "start", "body", "j", "type", "startAttr", "checked", "header", "k", "content", "cleanHref", "out", "_TextRenderer", "_Parser", "__Parser", "anyToken", "genericToken", "ret", "renderer", "_Hooks", "markdown", "Marked", "args", "callback", "values", "tableToken", "listToken", "childTokens", "extensions", "pack", "opts", "ext", "prevRenderer", "extLevel", "prop", "rendererProp", "rendererFunc", "tokenizer", "tokenizerProp", "tokenizerFunc", "prevTokenizer", "hooks", "hooksProp", "hooksFunc", "prevHook", "arg", "walkTokens", "packWalktokens", "blockType", "origOpt", "throwError", "processedSrc", "processedTokens", "silent", "async", "msg", "markedInstance", "marked", "setOptions", "use", "parseInline", "parser", "_Parser", "lexer", "_Lexer", "import_react", "import_jsx_runtime", "g", "Markdown", "text", "className", "html", "React", "parsed", "purify", "import_jsx_runtime", "BMark", "initial", "onNotifyRemove", "onUpdated", "_a", "app", "bm", "setBm", "React", "editBm", "setEditBm", "deleteAsk", "setDeleteAsk", "edit", "setEdit", "loading", "setLoading", "apiError", "setApiError", "tagInputId", "linkToFilterSingle", "slug", "fromNullableStr", "linkToFilterTag", "tag", "encodeTag", "shdate", "toLocaleDateString", "shdatetime", "suggestEnabled", "tagInputRef", "suggestionState", "closeSuggestions", "onTagsChange", "onTagsKeyDown", "onTagsSelect", "onSuggestionHover", "onSuggestionPick", "useTagSuggestions", "tags", "x", "__spreadProps", "__spreadValues", "onStar", "next", "toggleStar", "updated", "onDestroy", "destroy", "onMarkRead", "markRead", "startEdit", "setFocus", "onFetchTitle", "title", "lookupTitle", "onSubmit", "e", "editBm2", "normalizeTags", "res", "editBookmark", "TagSuggestionsDropdown", "Markdown", "import_jsx_runtime", "BList", "initial", "bmarks", "useBookmarksStore", "s", "setAll", "removeById", "upsert", "React", "b", "BMark", "bm", "import_react", "import_jsx_runtime", "toTextareaPreview", "input", "lines", "x", "idx", "React", "NList", "initial", "a", "app", "linkToFilterSingle", "slug", "fromNullableStr", "note", "_a", "_b", "mm", "mmoment8601", "import_react", "import_jsx_runtime", "toTextarea", "input", "lines", "x", "idx", "React", "NNote", "initial", "_a", "_b", "a", "app", "note", "setNote", "editNoteState", "setEditNoteState", "deleteAsk", "setDeleteAsk", "edit", "setEdit", "destroyed", "setDestroyed", "apiError", "setApiError", "notetextid", "mm", "mmoment8601", "startEdit", "next", "qs", "curQuerystring", "q", "lookupQueryStringValue", "closeWindow", "setFocus", "onDestroy", "destroyNote", "onSubmit", "e", "res", "editNote", "ref", "org", "fromNullableStr", "__spreadProps", "__spreadValues", "Markdown", "import_react", "useTagCloudStore", "create", "set", "mode", "tagcloud", "tagCloudModeToF", "mode", "n", "s", "tags", "tagCloudModeFromF", "isExpanded", "isRelated", "setExpanded", "expanded", "__spreadProps", "__spreadValues", "import_jsx_runtime", "rescale", "f", "v", "m", "h", "denom", "toArray", "curtags", "n", "tagcloud", "a", "app", "cur", "t", "entries", "x", "y", "linkToFilterTag", "rest", "fromNullableStr", "out", "k", "kLower", "fontsize", "opacity", "style", "includeExclude", "encodeTag", "React", "TagCloud", "initialMode", "mode", "useTagCloudStore", "s", "setMode", "setTagCloud", "fetchTagCloud", "tc", "getTagCloud", "tagCloudModeFromF", "modetop", "isExpanded", "modelb1", "modelb2", "modelb5", "modelb10", "modelb20", "values", "onExpanded", "expanded", "next", "setExpanded", "updateTagCloudMode", "onChangeMode", "isRelated", "import_jsx_runtime", "selectEl", "selector", "viewRendered", "el", "logoutE", "logout", "renderBookmarks", "renderElSelector", "bmarks", "BList", "renderTagCloud", "tagCloudMode", "TagCloud", "tagCloudModeToF", "renderAddForm", "bmark", "AddForm", "renderNotes", "notes", "NList", "renderNote", "note", "NNote", "renderAccountSettings", "accountSettings", "AccountSettingsView"]-}
− static/js/app-OTQLPXA7.min.js.map.gz
binary file changed (375230 → absent bytes)
static/js/manifest.json view
@@ -1,1 +1,1 @@-{"appBundle":"app-OTQLPXA7.min.js"}+{"appBundle":"app-F6AR6563.min.js"}
templates/change-password.hamlet view
@@ -1,7 +1,7 @@ <main #main_column .pv2.ph3.mh1> <div .w-100.mw8.center> - <div .measure.center.pa3.bg-white.ba.br2.b--black-10>+ <div .measure.center.pa3.login-div.ba.br2.thm-border-pwd-box> <form method="post" action="@{ChangePasswordR}"> $maybe token <- reqToken req@@ -9,10 +9,10 @@ <div> <label .db.fw6.lh-copy.f6 for="oldpassword">Old Password- <input #oldpasword .w-100.pa1.mb2.ba.b--black-20 autofocus required name="oldpassword" type="password" value="">+ <input #oldpasword .w-100.pa1.mb2.ba.thm-border-pwd autofocus required name="oldpassword" type="password" value=""> <div> <label .db.fw6.lh-copy.f6 for="newpassword">New Password- <input #newpassword .w-100.pa1.mb2.ba.b--black-20 required name="newpassword" type="password">+ <input #newpassword .w-100.pa1.mb2.ba.thm-border-pwd required name="newpassword" type="password"> - <input class="ph3 pv2 input-reset black ba b--navy bg-transparent pointer f6 dib mt3 dim" type="submit" value="Save Changes">+ <input class="ph3 pv2 input-reset post-input ba bg-transparent pointer f6 dib mt3 dim" type="submit" value="Save Changes">
templates/default-layout-wrapper.hamlet view
@@ -15,6 +15,19 @@ $maybe sourceCodeUri <- msourceCodeUri <meta name="source" content="#{ sourceCodeUri }"> + <script>+ try {+ var storedColorScheme = window.localStorage.getItem('espial-color-scheme');+ if (storedColorScheme === 'light' || storedColorScheme === 'dark') {+ document.documentElement.dataset.colorScheme = storedColorScheme;+ } else {+ document.documentElement.dataset.colorScheme =+ window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches+ ? 'dark'+ : 'light';+ }+ } catch (_) {}+ ^{pageHead pc} <script>document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, 'js');@@ -30,9 +43,10 @@ , userFilterRFilterSingle: "" , dat: {bmarks : [], bmark: {}, isowner: false, notes: []} };- <body .f6.dark-gray.helvetica>+ <body .f6.thm-text-primary.helvetica> ^{pageBody pc} <script type="module">- import { logoutE } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}';+ import { initColorSchemeToggle, logoutE } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}';+ initColorSchemeToggle(); Array.from(document.getElementsByClassName('logout-btn')).forEach(_ => _.addEventListener('click', (e) => logoutE(e)()));
templates/default-layout.hamlet view
@@ -1,8 +1,8 @@ <div #content> <header #banner .pv2.ph3.mh1>- <div .mw8.center.pb2.bb.br-0.bl-0.bt-0.b--dotted.b--light-silver>- <div #logo .fl.light-silver>- <a #espial_name .link.f4>espial+ <div .mw8.center.pb2.bb.br-0.bl-0.bt-0.b--dotted.thm-border-dotted>+ <div #logo .fl.logo-div>+ <span #espial_name .f4>espial $maybe userName <- musername <span> (<a class="link" data-username="#{userName}" href="@{UserR (UserNameP userName)}">#{userName}</a>)@@ -13,6 +13,11 @@ <!-- <div #timer>#{pageLoadTime} s --> <div .top_menu.fr> + <a .link href="#" #color-scheme-toggle>+ <span .color-scheme-toggle-dark-label>+ dark mode + <span .color-scheme-toggle-light-label>+ light mode $maybe userName <- musername <a .link href="@?{(AddViewR, [("next","back")])}">add url <a .link href="@{AddNoteViewR (UserNameP userName)}">add note @@ -27,7 +32,7 @@ $maybe msg <- mmsg <div .pv2.ph3.mh1>- <div .pa2.mw8.center.flex.items-center.justify-center.navy.bg-washed-yellow.ba.b--navy>+ <div .pa2.mw8.center.flex.items-center.justify-center.ba.layout-msg> #{preEscapedToMarkup msg} ^{widget}
templates/docs-search.hamlet view
@@ -5,82 +5,82 @@ <p .ml3>Searches are scoped to the currently selected page filter. <br> <span>So, given the possible page filters</span>- <br><span class="code fw9 bg-light-gray">all ‧ private ‧ public ‧ unread ‧ untagged ‧ starred</span>- <br><span>If <span class="code fw9 bg-light-gray">all</span> is currently selected, the search includes <span class="code fw9 bg-light-gray">all</span> bookmarks</span>- <br><span>If <span class="code fw9 bg-light-gray">private</span> is currently selected, the search only includes <span class="code fw9 bg-light-gray">private</span> bookmarks, etc..</span>+ <br><span class="code fw9 docs-item-bg">all ‧ private ‧ public ‧ unread ‧ untagged ‧ starred</span>+ <br><span>If <span class="code fw9 docs-item-bg">all</span> is currently selected, the search includes <span class="code fw9 docs-item-bg">all</span> bookmarks</span>+ <br><span>If <span class="code fw9 docs-item-bg">private</span> is currently selected, the search only includes <span class="code fw9 docs-item-bg">private</span> bookmarks, etc..</span> <h3>Combine Searches (AND) <p .ml3>Separate terms by a space.- <br>For example, <span class="code fw9 bg-light-gray">marathon race</span>+ <br>For example, <span class="code fw9 docs-item-bg">marathon race</span> <h3>Combine Searches (OR)- <p .ml3>Put <span class="code fw9 bg-light-gray">|</span> between each search query. - <br>For example, <span class="code fw9 bg-light-gray">marathon|race</span>+ <p .ml3>Put <span class="code fw9 docs-item-bg">|</span> between each search query. + <br>For example, <span class="code fw9 docs-item-bg">marathon|race</span> <h3>Exclude words from your search- <p .ml3>Put <span class="code fw9 bg-light-gray">-</span> in front of a word you want to leave out. - <br>For example, <span class="code fw9 bg-light-gray">-car</span>+ <p .ml3>Put <span class="code fw9 docs-item-bg">-</span> in front of a word you want to leave out. + <br>For example, <span class="code fw9 docs-item-bg">-car</span> <h3>Search for an exact match <p .ml3>Put a word or phrase inside quotes. - <br>For example, <span class="code fw9 bg-light-gray">"tallest building"</span>+ <br>For example, <span class="code fw9 docs-item-bg">"tallest building"</span> <h3>Search on a specific field <p .ml3>- Put <span class="code fw9 bg-light-gray"><span class="i">field</span>:</span> in front of the term,- where <span class="code fw9 bg-light-gray"><span class="i">field</span></span> is one of the options below+ Put <span class="code fw9 docs-item-bg"><span class="i">field</span>:</span> in front of the term,+ where <span class="code fw9 docs-item-bg"><span class="i">field</span></span> is one of the options below <div .ml3> <div .f5.fw6.pb3.underline>Bookmark Search- <table .collapse.ba.br2.b--black-10.pv2.ph3>+ <table .collapse.ba.br2.thm-border-doc-table.pv2.ph3> <tbody>- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3>FIELD <td .pv2.ph3>EXAMPLE- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">url <td .pv2.ph3><span class="code fw9">url:youtube.com- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">title <td .pv2.ph3><span class="code fw9">title:"hacker news"- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">description <td .pv2.ph3><span class="code fw9">description:surveys- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">tags <td .pv2.ph3><span class="code fw9">tags:learning- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">after <td .pv2.ph3><span class="code fw9">after:12/31/2018<br>after:2018-12-31- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">before <td .pv2.ph3><span class="code fw9">before:12/31/2019<br>before:2019-12-31 <div .f5.fw6.pv3.underline>Note Search- <table .collapse.ba.br2.b--black-10.pv2.ph3>+ <table .collapse.ba.br2.thm-border-doc-table.pv2.ph3> <tbody>- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3>FIELD <td .pv2.ph3>EXAMPLE- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">title <td .pv2.ph3><span class="code fw9">title:"hacker news"- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">description <td .pv2.ph3><span class="code fw9">description:surveys- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">after <td .pv2.ph3><span class="code fw9">after:12/31/2018<br>after:2018-12-31- <tr .striped--light-gray>+ <tr .docs-striped-item> <td .pv2.ph3><span class="code fw9">before <td .pv2.ph3><span class="code fw9">before:12/31/2019<br>before:2019-12-31 <h3 .mb0>More Complex Examples <div .ml3.pt3> <span>"youtube" in url, and title of "haskell" or title of "python" and after 12/31/2017- <br><span class="mw6 overflow-x-scroll nowrap db mt1 pa2 code fw9 bg-light-gray">url:youtube title:haskell|title:python after:12/31/2017+ <br><span class="mw6 overflow-x-scroll nowrap db mt1 pa2 code fw9 docs-item-bg">url:youtube title:haskell|title:python after:12/31/2017 <div .ml3.pt3> <span>"hacker news" not in title, and "news", "cnn", "npr" anywhere, or "the guardian" in the description- <br><span class="mw6 overflow-x-scroll nowrap db mt1 pa2 code fw9 bg-light-gray">-title:"hacker news" news|cnn|npr|description:"the guardian"+ <br><span class="mw6 overflow-x-scroll nowrap db mt1 pa2 code fw9 docs-item-bg">-title:"hacker news" news|cnn|npr|description:"the guardian"
templates/login.hamlet view
@@ -1,7 +1,7 @@ <main #main_column .pv2.ph3.mh1> <div .w-100.mw8.center> - <div .measure.center.pa3.bg-white>+ <div .measure.center.pa3.login-div> <form method="post" action="@{toParent dbLoginR}"> $maybe token <- reqToken req@@ -9,12 +9,12 @@ <div> <label .db.fw6.lh-copy.f6 for="username">Username- <input #username .w-100.pa1.mb2.ba.b--black-20 autofocus name="username" type="text" value="">+ <input #username .w-100.pa1.mb2.ba.thm-border-pwd autofocus name="username" type="text" value=""> <div> <label .db.fw6.lh-copy.f6 for="password">Password- <input #password .w-100.pa1.mb2.ba.b--black-20 name="password" type="password">+ <input #password .w-100.pa1.mb2.ba.thm-border-pwd name="password" type="password"> - <input class="ph3 pv2 input-reset black ba b--navy bg-transparent pointer f6 dib mt3 dim" type="submit" value="Log In">+ <input class="ph3 pv2 input-reset post-input ba bg-transparent pointer f6 dib mt3 dim" type="submit" value="Log In"> -<script> document.body.classList.add("bg-near-white");+<script> document.body.classList.add("login-bg");
templates/notes.hamlet view
@@ -4,7 +4,7 @@ ^{search} <div .di> <div .fr.f6.pr3.dib.mb2>- <a .link.gold.hover-orange+ <a .link.rss href="@{NotesFeedR unamep}">RSS <span .db .mb3>#{T.append "" (maybe "You have" (const "Found") mquery)} #{bcount} notes:@@ -24,8 +24,8 @@ $maybe route <- mroute <div .dib.ml5> <span .silver.mr1>per page:- <a .link.light-silver :limit == 20:.nav-active href="@?{(route, [("count", "20")])}"‧>20</a> ‧ - <a .link.light-silver :limit == 40:.nav-active href="@?{(route, [("count", "40")])}"‧>40</a> ‧ - <a .link.light-silver :limit == 80:.nav-active href="@?{(route, [("count", "80")])}"‧>80</a> ‧ - <a .link.light-silver :limit == 120:.nav-active href="@?{(route, [("count", "120")])}"‧>120</a> ‧ - <a .link.light-silver :limit == 160:.nav-active href="@?{(route, [("count", "160")])}"‧>160</a>+ <a .link.pager-link :limit == 20:.nav-active href="@?{(route, [("count", "20")])}"‧>20</a> ‧ + <a .link.pager-link :limit == 40:.nav-active href="@?{(route, [("count", "40")])}"‧>40</a> ‧ + <a .link.pager-link :limit == 80:.nav-active href="@?{(route, [("count", "80")])}"‧>80</a> ‧ + <a .link.pager-link :limit == 120:.nav-active href="@?{(route, [("count", "120")])}"‧>120</a> ‧ + <a .link.pager-link :limit == 160:.nav-active href="@?{(route, [("count", "160")])}"‧>160</a>
templates/pager.hamlet view
@@ -1,13 +1,13 @@ $maybe route <- mroute- <div #nextprev style="border:0px solid orange">+ <div #nextprev style="border:0px solid"> <table style="float:left" border="0"> <tbody> <tr> $if fromIntegral bcount >= (limit * page) <td width="80">- <a .link.gray #top_earlier href="@?{(route, catMaybes [Just ("page", pack (show (page + 1))), mqueryp])}">+ <a .link.pager-arrow #top_earlier href="@?{(route, catMaybes [Just ("page", pack (show (page + 1))), mqueryp])}"> « earlier $if page > 1 <td width="80">- <a .link.gray #top_later href="@?{(route, catMaybes [Just ("page", pack (show (page - 1))), mqueryp])}">+ <a .link.pager-arrow #top_later href="@?{(route, catMaybes [Just ("page", pack (show (page - 1))), mqueryp])}"> later »
templates/popup-layout.hamlet view
@@ -4,6 +4,11 @@ $maybe userName <- musername - (#{userName}) <div .fr>+ <a .link href="#" #color-scheme-toggle>+ <span .color-scheme-toggle-dark-label>+ dark mode + <span .color-scheme-toggle-light-label>+ light mode $maybe userName <- musername <a .link.logout-btn href="@{AuthR LogoutR}"> [log out]
templates/search.hamlet view
@@ -8,7 +8,7 @@ <div .relative.fl> <input #queryInput type="text" name="query" placeholder="search" value="#{fromMaybe "" mquery}" class="queryInput #{T.append "search-" (maybe "inactive" (const "active") mquery)}" />- <button .queryIcon.hover-blue.gray type="submit" title="submit search">+ <button .queryIcon.hover-alt.search-icon type="submit" title="submit search"> <svg focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z">- <a .query-info-icon.fr.blue href="@{DocsSearchR}" title="search syntax" target=_blank>?+ <a .query-info-icon.fr href="@{DocsSearchR}" title="search syntax" target=_blank>?
templates/user-settings.hamlet view
@@ -1,7 +1,7 @@ <main #main_column .pv2.ph3.mh1> <div .w-100.mw8.center> <div .pa3>- <a .bookmarklet.link.ba.b--dotted.b--light-silver href="javascript:q=location.href;if(document.getSelection){d=document.getSelection();}else{d='';};p=document.title;void(open('@{AddViewR}?_hasdata&url='+encodeURIComponent(q)+'&description='+encodeURIComponent(d)+'&title='+encodeURIComponent(p),'Espial','toolbar=no,width=700,height=360'));">add url bookmarklet+ <a .bookmarklet.link.ba.b--dotted.thm-border-dotted href="javascript:q=location.href;if(document.getSelection){d=document.getSelection();}else{d='';};p=document.title;void(open('@{AddViewR}?_hasdata&url='+encodeURIComponent(q)+'&description='+encodeURIComponent(d)+'&title='+encodeURIComponent(p),'Espial','toolbar=no,width=700,height=360'));">add url bookmarklet <a .pa3 href="@{ChangePasswordR}">Change Password
templates/user.hamlet view
@@ -14,36 +14,36 @@ <span .f7.silver>#{bcount}</span> $if isowner <div .fl.pr3.dib.mb2>- <a .link.silver.hover-blue :isAll:.nav-active + <a .link.silver.hover-alt :isAll:.nav-active href="@{UserR unamep}">all ‧ - <a .link.silver.hover-blue :sharedp == SharedPrivate:.nav-active + <a .link.silver.hover-alt :sharedp == SharedPrivate:.nav-active href="@{UserSharedR unamep SharedPrivate}">private ‧ - <a .link.silver.hover-blue :sharedp == SharedPublic:.nav-active + <a .link.silver.hover-alt :sharedp == SharedPublic:.nav-active href="@{UserSharedR unamep SharedPublic}">public ‧ - <a .link.silver.hover-blue :filterp == FilterUnread:.nav-active + <a .link.silver.hover-alt :filterp == FilterUnread:.nav-active href="@{UserFilterR unamep FilterUnread}">unread ‧ - <a .link.silver.hover-blue :filterp == FilterUntagged:.nav-active + <a .link.silver.hover-alt :filterp == FilterUntagged:.nav-active href="@{UserFilterR unamep FilterUntagged}">untagged ‧ - <a .link.silver.hover-blue :filterp == FilterStarred:.nav-active + <a .link.silver.hover-alt :filterp == FilterStarred:.nav-active href="@{UserFilterR unamep FilterStarred}">starred <div .fr.f6.pr3.dib.mb2> $if sharedp == SharedPrivate- <a .link.gold.hover-orange href="@?{(UserFeedSharedR unamep SharedPrivate, catMaybes [mqueryp])}">RSS+ <a .link.rss href="@?{(UserFeedSharedR unamep SharedPrivate, catMaybes [mqueryp])}">RSS $elseif sharedp == SharedPublic- <a .link.gold.hover-orange href="@?{(UserFeedSharedR unamep SharedPublic, catMaybes [mqueryp])}">RSS+ <a .link.rss href="@?{(UserFeedSharedR unamep SharedPublic, catMaybes [mqueryp])}">RSS $elseif filterp == FilterUnread- <a .link.gold.hover-orange href="@?{(UserFeedFilterR unamep FilterUnread, catMaybes [mqueryp])}">RSS+ <a .link.rss href="@?{(UserFeedFilterR unamep FilterUnread, catMaybes [mqueryp])}">RSS $elseif filterp == FilterUntagged- <a .link.gold.hover-orange href="@?{(UserFeedFilterR unamep FilterUntagged, catMaybes [mqueryp])}">RSS+ <a .link.rss href="@?{(UserFeedFilterR unamep FilterUntagged, catMaybes [mqueryp])}">RSS $elseif filterp == FilterStarred- <a .link.gold.hover-orange href="@?{(UserFeedFilterR unamep FilterStarred, catMaybes [mqueryp])}">RSS+ <a .link.rss href="@?{(UserFeedFilterR unamep FilterStarred, catMaybes [mqueryp])}">RSS $else- <a .link.gold.hover-orange href="@?{(UserFeedR unamep, catMaybes [mqueryp])}">RSS+ <a .link.rss href="@?{(UserFeedR unamep, catMaybes [mqueryp])}">RSS <div .cf> @@ -63,9 +63,9 @@ $if (fromIntegral bcount >= limit) || (page > 1) <div .dib.ml5> <span .silver.mr1>per page:- <a .link.light-silver :limit == 20:.nav-active href="@?{(route, catMaybes [Just ("count", "20"), mqueryp])}"‧>20</a> ‧ - <a .link.light-silver :limit == 40:.nav-active href="@?{(route, catMaybes [Just ("count", "40"), mqueryp])}"‧>40</a> ‧ - <a .link.light-silver :limit == 80:.nav-active href="@?{(route, catMaybes [Just ("count", "80"), mqueryp])}"‧>80</a> ‧ - <a .link.light-silver :limit == 120:.nav-active href="@?{(route, catMaybes [Just ("count", "120"), mqueryp])}"‧>120</a> ‧ - <a .link.light-silver :limit == 160:.nav-active href="@?{(route, catMaybes [Just ("count", "160"), mqueryp])}"‧>160</a>+ <a .link.pager-link :limit == 20:.nav-active href="@?{(route, catMaybes [Just ("count", "20"), mqueryp])}"‧>20</a> ‧ + <a .link.pager-link :limit == 40:.nav-active href="@?{(route, catMaybes [Just ("count", "40"), mqueryp])}"‧>40</a> ‧ + <a .link.pager-link :limit == 80:.nav-active href="@?{(route, catMaybes [Just ("count", "80"), mqueryp])}"‧>80</a> ‧ + <a .link.pager-link :limit == 120:.nav-active href="@?{(route, catMaybes [Just ("count", "120"), mqueryp])}"‧>120</a> ‧ + <a .link.pager-link :limit == 160:.nav-active href="@?{(route, catMaybes [Just ("count", "160"), mqueryp])}"‧>160</a>