packages feed

espial 0.0.20 → 0.0.26

raw patch · 85 files changed

+8859/−2959 lines, 85 filesdep ~base64dep ~bytestringdep ~esqueletobinary-addedPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base64, bytestring, esqueleto, persistent, warp

API changes (from Hackage documentation)

- Import.NoFoundation: (!=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- Import.NoFoundation: ($!!) :: NFData a => (a -> b) -> a -> b
- Import.NoFoundation: ($!) :: forall (r :: RuntimeRep) a (b :: TYPE r). (a -> b) -> a -> b
- Import.NoFoundation: ($$) :: Monad m => Source m a -> Sink a m b -> m b
- Import.NoFoundation: ($$+) :: Monad m => ConduitT () a m () -> ConduitT a Void m b -> m (SealedConduitT () a m (), b)
- Import.NoFoundation: ($$++) :: Monad m => SealedConduitT () a m () -> ConduitT a Void m b -> m (SealedConduitT () a m (), b)
- Import.NoFoundation: ($$+-) :: Monad m => SealedConduitT () a m () -> ConduitT a Void m b -> m b
- Import.NoFoundation: ($) :: forall (r :: RuntimeRep) a (b :: TYPE r). (a -> b) -> a -> b
- Import.NoFoundation: ($=) :: forall (m :: Type -> Type) a b c r. Monad m => Conduit a m b -> ConduitT b c m r -> ConduitT a c m r
- Import.NoFoundation: ($=+) :: forall (m :: Type -> Type) a b. Monad m => SealedConduitT () a m () -> ConduitT a b m () -> SealedConduitT () b m ()
- Import.NoFoundation: ($>) :: Functor f => f a -> b -> f b
- Import.NoFoundation: (&&&) :: Arrow a => a b c -> a b c' -> a b (c, c')
- Import.NoFoundation: (&&) :: Bool -> Bool -> Bool
- Import.NoFoundation: (*) :: Num a => a -> a -> a
- Import.NoFoundation: (**) :: Floating a => a -> a -> a
- Import.NoFoundation: (***) :: Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
- Import.NoFoundation: (*=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- Import.NoFoundation: (*>) :: Applicative f => f a -> f b -> f b
- Import.NoFoundation: (+) :: Num a => a -> a -> a
- Import.NoFoundation: (++) :: Monoid m => m -> m -> m
- Import.NoFoundation: (+=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- Import.NoFoundation: (-) :: Num a => a -> a -> a
- Import.NoFoundation: (-=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- Import.NoFoundation: (.) :: forall (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c
- Import.NoFoundation: (.:) :: FromJSON a => Object -> Key -> Parser a
- Import.NoFoundation: (.=) :: (KeyValue e kv, ToJSON v) => Key -> v -> kv
- Import.NoFoundation: (.|) :: forall (m :: Type -> Type) a b c r. Monad m => ConduitT a b m () -> ConduitT b c m r -> ConduitT a c m r
- Import.NoFoundation: (/) :: Fractional a => a -> a -> a
- Import.NoFoundation: (/<-.) :: forall v typ. PersistField typ => EntityField v typ -> [typ] -> Filter v
- Import.NoFoundation: (/=) :: Eq a => a -> a -> Bool
- Import.NoFoundation: (/=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- Import.NoFoundation: (:#:) :: a -> b -> Fragment a b
- Import.NoFoundation: (<$) :: Functor f => a -> f b -> f a
- Import.NoFoundation: (<$>) :: Functor f => (a -> b) -> f a -> f b
- Import.NoFoundation: (<&&>) :: Applicative a => a Bool -> a Bool -> a Bool
- Import.NoFoundation: (<&>) :: Functor f => f a -> (a -> b) -> f b
- Import.NoFoundation: (<) :: Ord a => a -> a -> Bool
- Import.NoFoundation: (<*) :: Applicative f => f a -> f b -> f a
- Import.NoFoundation: (<**>) :: Applicative f => f a -> f (a -> b) -> f b
- Import.NoFoundation: (<*>) :: Applicative f => f (a -> b) -> f a -> f b
- Import.NoFoundation: (<-.) :: forall v typ. PersistField typ => EntityField v typ -> [typ] -> Filter v
- Import.NoFoundation: (<.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- Import.NoFoundation: (<.>) :: FilePath -> String -> FilePath
- Import.NoFoundation: (</>) :: FilePath -> FilePath -> FilePath
- Import.NoFoundation: (<=) :: Ord a => a -> a -> Bool
- Import.NoFoundation: (<=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- Import.NoFoundation: (<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
- Import.NoFoundation: (<>) :: Semigroup a => a -> a -> a
- Import.NoFoundation: (<|) :: SemiSequence seq => Element seq -> NonNull seq -> NonNull seq
- Import.NoFoundation: (<|>) :: Alternative f => f a -> f a -> f a
- Import.NoFoundation: (<||>) :: Applicative a => a Bool -> a Bool -> a Bool
- Import.NoFoundation: (=$$+) :: forall (m :: Type -> Type) a b r. Monad m => ConduitT a b m () -> ConduitT b Void m r -> ConduitT a Void m (SealedConduitT a b m (), r)
- Import.NoFoundation: (=$$++) :: forall (m :: Type -> Type) i o r. Monad m => SealedConduitT i o m () -> ConduitT o Void m r -> ConduitT i Void m (SealedConduitT i o m (), r)
- Import.NoFoundation: (=$$+-) :: forall (m :: Type -> Type) i o r. Monad m => SealedConduitT i o m () -> ConduitT o Void m r -> ConduitT i Void m r
- Import.NoFoundation: (=$) :: forall (m :: Type -> Type) a b c r. Monad m => Conduit a m b -> ConduitT b c m r -> ConduitT a c m r
- Import.NoFoundation: (=$=) :: forall (m :: Type -> Type) a b c r. Monad m => Conduit a m b -> ConduitT b c m r -> ConduitT a c m r
- Import.NoFoundation: (=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Update v
- Import.NoFoundation: (=<<) :: Monad m => (a -> m b) -> m a -> m b
- Import.NoFoundation: (==) :: Eq a => a -> a -> Bool
- Import.NoFoundation: (==.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- Import.NoFoundation: (>) :: Ord a => a -> a -> Bool
- Import.NoFoundation: (>.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- Import.NoFoundation: (>=) :: Ord a => a -> a -> Bool
- Import.NoFoundation: (>=.) :: forall v typ. PersistField typ => EntityField v typ -> typ -> Filter v
- Import.NoFoundation: (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
- Import.NoFoundation: (>>) :: Monad m => m a -> m b -> m b
- Import.NoFoundation: (>>=) :: Monad m => m a -> (a -> m b) -> m b
- Import.NoFoundation: (\\) :: SetContainer a => a -> a -> a
- Import.NoFoundation: (^) :: (Num a, Integral b) => a -> b -> a
- Import.NoFoundation: (^^) :: (Fractional a, Integral b) => a -> b -> a
- Import.NoFoundation: (||) :: Bool -> Bool -> Bool
- Import.NoFoundation: (||.) :: [Filter v] -> [Filter v] -> [Filter v]
- Import.NoFoundation: --
- Import.NoFoundation: -- </pre>
- Import.NoFoundation: -- <a>EntityField</a> values polymorphically. See the documentation on
- Import.NoFoundation: -- <a>SymbolToField</a> for more information.
- Import.NoFoundation: -- <pre>
- Import.NoFoundation: -- <tt>OverloadedLabels</tt> language extension to refer to
- Import.NoFoundation: -- As of <tt>persistent-2.11.0.0</tt>, it's possible to use the
- Import.NoFoundation: -- AuthEntity MySite ~ User
- Import.NoFoundation: -- Since 0.2.0
- Import.NoFoundation: -- belongs to and the additional type of that field.
- Import.NoFoundation: -- can specify a Primary key made up of unique values.
- Import.NoFoundation: -- container, much like <a>PrimState</a> from primitive.
- Import.NoFoundation: -- e.g., the <a>IsMap</a> instance of associated lists.
- Import.NoFoundation: -- give the value for that entity. E.g.:
- Import.NoFoundation: -- reference.
- Import.NoFoundation: -- type AuthId MySite = UserId
- Import.NoFoundation: -- | If the <tt>AuthId</tt> for a given site is a persistent ID, this will
- Import.NoFoundation: AForm :: ((HandlerSite m, [Text]) -> Maybe (Env, FileEnv) -> Ints -> m (FormResult a, [FieldView (HandlerSite m)] -> [FieldView (HandlerSite m)], Ints, Enctype)) -> AForm (m :: Type -> Type) a
- Import.NoFoundation: AbsoluteSeek :: SeekMode
- Import.NoFoundation: AccountSettingsForm :: Bool -> Bool -> Bool -> AccountSettingsForm
- Import.NoFoundation: Active :: Checkmark
- Import.NoFoundation: Add :: PersistUpdate
- Import.NoFoundation: ApiKey :: Text -> ApiKey
- Import.NoFoundation: 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
- Import.NoFoundation: AppendMode :: IOMode
- Import.NoFoundation: ApprootMaster :: !master -> Text -> Approot master
- Import.NoFoundation: ApprootRelative :: Approot master
- Import.NoFoundation: ApprootRequest :: !master -> Request -> Text -> Approot master
- Import.NoFoundation: ApprootStatic :: !Text -> Approot master
- Import.NoFoundation: Array :: !Array -> Value
- Import.NoFoundation: Asc :: EntityField record typ -> SelectOpt record
- Import.NoFoundation: Assign :: PersistUpdate
- Import.NoFoundation: AsyncCancelled :: AsyncCancelled
- Import.NoFoundation: AsyncExceptionWrapper :: e -> AsyncExceptionWrapper
- Import.NoFoundation: AuthPlugin :: Text -> (Method -> [Piece] -> AuthHandler master TypedContent) -> ((Route Auth -> Route master) -> WidgetFor master ()) -> AuthPlugin master
- Import.NoFoundation: Authenticated :: AuthId master -> AuthenticationResult master
- Import.NoFoundation: AuthenticationRequired :: AuthResult
- Import.NoFoundation: Authorized :: AuthResult
- Import.NoFoundation: BCrypt :: Text -> BCrypt
- Import.NoFoundation: BackendFilter :: BackendSpecificFilter (PersistEntityBackend record) record -> Filter record
- Import.NoFoundation: BackendSpecificFilter :: Text -> PersistFilter
- Import.NoFoundation: BackendSpecificUpdate :: Text -> PersistUpdate
- Import.NoFoundation: BackendUpdate :: BackendSpecificUpdate (PersistEntityBackend record) record -> Update record
- Import.NoFoundation: BadMethod :: !Method -> ErrorResponse
- Import.NoFoundation: BlockBuffering :: Maybe Int -> BufferMode
- Import.NoFoundation: BmSlug :: Text -> BmSlug
- Import.NoFoundation: Bookmark :: !UserId -> !BmSlug -> !Text -> !Text -> !Text -> !UTCTime -> !Bool -> !Bool -> !Bool -> !Maybe Text -> Bookmark
- Import.NoFoundation: BookmarkForm :: Text -> Maybe Text -> Maybe Textarea -> Maybe Text -> Maybe Bool -> Maybe Bool -> Maybe Int64 -> Maybe BmSlug -> Maybe Bool -> Maybe UTCTimeStr -> Maybe Text -> BookmarkForm
- Import.NoFoundation: BookmarkTag :: !UserId -> !Text -> !BookmarkId -> !Int -> BookmarkTag
- Import.NoFoundation: Bool :: !Bool -> Value
- Import.NoFoundation: BottomOfBody :: ScriptLoadPosition master
- Import.NoFoundation: BottomOfHeadAsync :: !BottomOfHeadAsync master -> ScriptLoadPosition master
- Import.NoFoundation: BottomOfHeadBlocking :: ScriptLoadPosition master
- Import.NoFoundation: ByMaybeAttr :: WhyNullable
- Import.NoFoundation: ByNullableAttr :: WhyNullable
- Import.NoFoundation: ByteRangeFrom :: !Integer -> ByteRange
- Import.NoFoundation: ByteRangeFromTo :: !Integer -> !Integer -> ByteRange
- Import.NoFoundation: ByteRangeSuffix :: !Integer -> ByteRange
- Import.NoFoundation: CONNECT :: StdMethod
- Import.NoFoundation: Cascade :: CascadeAction
- Import.NoFoundation: Chunk :: a -> Flush a
- Import.NoFoundation: CompositeDef :: !NonEmpty FieldDef -> ![Attr] -> CompositeDef
- Import.NoFoundation: Concurrently :: m a -> Concurrently (m :: Type -> Type) a
- Import.NoFoundation: ConnectionClosed :: HttpExceptionContent
- Import.NoFoundation: ConnectionFailure :: SomeException -> HttpExceptionContent
- Import.NoFoundation: ConnectionTimeout :: HttpExceptionContent
- Import.NoFoundation: ConstraintNameDB :: Text -> ConstraintNameDB
- Import.NoFoundation: ConstraintNameHS :: Text -> ConstraintNameHS
- Import.NoFoundation: ContentBuilder :: !Builder -> !Maybe Int -> Content
- Import.NoFoundation: ContentDontEvaluate :: !Content -> Content
- Import.NoFoundation: ContentFile :: !FilePath -> !Maybe FilePart -> Content
- Import.NoFoundation: ContentSource :: !ConduitT () (Flush Builder) (ResourceT IO) () -> Content
- Import.NoFoundation: Cookie :: ByteString -> ByteString -> UTCTime -> ByteString -> ByteString -> UTCTime -> UTCTime -> Bool -> Bool -> Bool -> Bool -> Cookie
- Import.NoFoundation: Created :: a -> UpsertResult a
- Import.NoFoundation: Creds :: Text -> Text -> [(Text, Text)] -> Creds master
- Import.NoFoundation: CssBuilder :: Builder -> CssBuilder
- Import.NoFoundation: DBRunner :: (forall a. () => YesodDB site a -> HandlerFor site a) -> DBRunner site
- Import.NoFoundation: DELETE :: StdMethod
- Import.NoFoundation: DbSpecific :: LiteralType
- Import.NoFoundation: Desc :: EntityField record typ -> SelectOpt record
- Import.NoFoundation: Divide :: PersistUpdate
- Import.NoFoundation: DontFullyEvaluate :: a -> DontFullyEvaluate a
- Import.NoFoundation: Down :: a -> Down a
- Import.NoFoundation: EQ :: Ordering
- Import.NoFoundation: EmbedEntityDef :: EntityNameHS -> [EmbedFieldDef] -> EmbedEntityDef
- Import.NoFoundation: EmbedFieldDef :: FieldNameDB -> Maybe (Either SelfEmbed EntityNameHS) -> EmbedFieldDef
- Import.NoFoundation: EmbedRef :: EntityNameHS -> ReferenceDef
- Import.NoFoundation: EmptyWithNoAlternative :: ConcException
- Import.NoFoundation: Entity :: Key record -> record -> Entity record
- Import.NoFoundation: EntityIdField :: !FieldDef -> EntityIdDef
- Import.NoFoundation: EntityIdNaturalKey :: !CompositeDef -> EntityIdDef
- Import.NoFoundation: EntityJSON :: Name -> Name -> EntityJSON
- Import.NoFoundation: EntityNameDB :: Text -> EntityNameDB
- Import.NoFoundation: EntityNameHS :: Text -> EntityNameHS
- Import.NoFoundation: EntryCategory :: Maybe Text -> Maybe Text -> Text -> EntryCategory
- Import.NoFoundation: EntryEnclosure :: url -> Int -> Text -> EntryEnclosure url
- Import.NoFoundation: Eq :: PersistFilter
- Import.NoFoundation: Escaped :: LiteralType
- Import.NoFoundation: FFBookmarkNode :: Maybe [FFBookmarkNode] -> !POSIXTime -> !Text -> !Maybe Text -> !Int -> !Int -> !POSIXTime -> !Maybe Text -> !Text -> !Text -> !Int -> !Maybe Text -> FFBookmarkNode
- Import.NoFoundation: FTApp :: FieldType -> FieldType -> FieldType
- Import.NoFoundation: FTList :: FieldType -> FieldType
- Import.NoFoundation: FTLit :: FieldTypeLit -> FieldType
- Import.NoFoundation: FTTypeCon :: Maybe Text -> Text -> FieldType
- Import.NoFoundation: FTTypePromoted :: Text -> FieldType
- Import.NoFoundation: Failed :: String -> UpsertResult a
- Import.NoFoundation: False :: Bool
- Import.NoFoundation: Feed :: Text -> url -> url -> Text -> Html -> Text -> UTCTime -> Maybe (url, Text) -> [FeedEntry url] -> Feed url
- Import.NoFoundation: FeedEntry :: url -> UTCTime -> Text -> Html -> Maybe (EntryEnclosure url) -> [EntryCategory] -> FeedEntry url
- Import.NoFoundation: Field :: ([Text] -> [FileInfo] -> m (Either (SomeMessage (HandlerSite m)) (Maybe a))) -> FieldViewFunc m a -> Enctype -> Field (m :: Type -> Type) a
- Import.NoFoundation: FieldAttrConstraint :: Text -> FieldAttr
- Import.NoFoundation: FieldAttrDefault :: Text -> FieldAttr
- Import.NoFoundation: FieldAttrMaxlen :: Integer -> FieldAttr
- Import.NoFoundation: FieldAttrMaybe :: FieldAttr
- Import.NoFoundation: FieldAttrMigrationOnly :: FieldAttr
- Import.NoFoundation: FieldAttrNoreference :: FieldAttr
- Import.NoFoundation: FieldAttrNullable :: FieldAttr
- Import.NoFoundation: FieldAttrOther :: Text -> FieldAttr
- Import.NoFoundation: FieldAttrReference :: Text -> FieldAttr
- Import.NoFoundation: FieldAttrSafeToRemove :: FieldAttr
- Import.NoFoundation: FieldAttrSql :: Text -> FieldAttr
- Import.NoFoundation: FieldAttrSqltype :: Text -> FieldAttr
- Import.NoFoundation: FieldCascade :: !Maybe CascadeAction -> !Maybe CascadeAction -> FieldCascade
- Import.NoFoundation: FieldDef :: !FieldNameHS -> !FieldNameDB -> !FieldType -> !SqlType -> ![FieldAttr] -> !Bool -> !ReferenceDef -> !FieldCascade -> !Maybe Text -> !Maybe Text -> !Bool -> FieldDef
- Import.NoFoundation: FieldNameDB :: Text -> FieldNameDB
- Import.NoFoundation: FieldNameHS :: Text -> FieldNameHS
- Import.NoFoundation: FieldSettings :: SomeMessage master -> Maybe (SomeMessage master) -> Maybe Text -> Maybe Text -> [(Text, Text)] -> FieldSettings master
- Import.NoFoundation: FieldView :: Markup -> Maybe Markup -> Text -> WidgetFor site () -> Maybe Markup -> Bool -> FieldView site
- Import.NoFoundation: FileBookmark :: !Text -> !Text -> !Text -> !UTCTime -> !Bool -> !Bool -> !Maybe Bool -> !Maybe Text -> !Text -> FileBookmark
- Import.NoFoundation: FileNote :: !Text -> !Text -> !Text -> !Int -> !UTCTime -> !UTCTime -> FileNote
- Import.NoFoundation: FileUploadDisk :: !InternalState -> BackEnd FilePath -> FileUpload
- Import.NoFoundation: FileUploadMemory :: !BackEnd ByteString -> FileUpload
- Import.NoFoundation: FileUploadSource :: !BackEnd (ConduitT () ByteString (ResourceT IO) ()) -> FileUpload
- Import.NoFoundation: Filter :: EntityField record typ -> FilterValue typ -> PersistFilter -> Filter record
- Import.NoFoundation: FilterAll :: FilterP
- Import.NoFoundation: FilterAnd :: [Filter record] -> Filter record
- Import.NoFoundation: FilterOr :: [Filter record] -> Filter record
- Import.NoFoundation: FilterSingle :: BmSlug -> FilterP
- Import.NoFoundation: FilterStarred :: FilterP
- Import.NoFoundation: FilterUnread :: FilterP
- Import.NoFoundation: FilterUntagged :: FilterP
- Import.NoFoundation: Flush :: Flush a
- Import.NoFoundation: ForeignDef :: !EntityNameHS -> !EntityNameDB -> !ConstraintNameHS -> !ConstraintNameDB -> !FieldCascade -> ![(ForeignFieldDef, ForeignFieldDef)] -> ![Attr] -> Bool -> Bool -> ForeignDef
- Import.NoFoundation: ForeignRef :: !EntityNameHS -> ReferenceDef
- Import.NoFoundation: FormFailure :: [Text] -> FormResult a
- Import.NoFoundation: FormInput :: (HandlerSite m -> [Text] -> Env -> FileEnv -> m (Either DText a)) -> FormInput (m :: Type -> Type) a
- Import.NoFoundation: FormMissing :: FormResult a
- Import.NoFoundation: FormSuccess :: a -> FormResult a
- Import.NoFoundation: GET :: StdMethod
- Import.NoFoundation: GT :: Ordering
- Import.NoFoundation: Ge :: PersistFilter
- Import.NoFoundation: Gt :: PersistFilter
- Import.NoFoundation: HEAD :: StdMethod
- Import.NoFoundation: HashedApiKey :: Text -> HashedApiKey
- Import.NoFoundation: HttpExceptionRequest :: Request -> HttpExceptionContent -> HttpException
- Import.NoFoundation: HttpVersion :: !Int -> !Int -> HttpVersion
- Import.NoFoundation: HttpZlibException :: ZlibException -> HttpExceptionContent
- Import.NoFoundation: Identity :: a -> Identity a
- Import.NoFoundation: In :: PersistFilter
- Import.NoFoundation: Inactive :: Checkmark
- Import.NoFoundation: IncompleteHeaders :: HttpExceptionContent
- Import.NoFoundation: IntCons :: Int -> Ints -> Ints
- Import.NoFoundation: IntSingle :: Int -> Ints
- Import.NoFoundation: InternalError :: !Text -> ErrorResponse
- Import.NoFoundation: InternalException :: SomeException -> HttpExceptionContent
- Import.NoFoundation: InvalidArgs :: ![Text] -> ErrorResponse
- Import.NoFoundation: InvalidChunkHeaders :: HttpExceptionContent
- Import.NoFoundation: InvalidDestinationHost :: ByteString -> HttpExceptionContent
- Import.NoFoundation: InvalidFacebookResponse :: AuthException
- Import.NoFoundation: InvalidHeader :: ByteString -> HttpExceptionContent
- Import.NoFoundation: InvalidProxyEnvironmentVariable :: Text -> Text -> HttpExceptionContent
- Import.NoFoundation: InvalidProxySettings :: Text -> HttpExceptionContent
- Import.NoFoundation: InvalidRequestHeader :: ByteString -> HttpExceptionContent
- Import.NoFoundation: InvalidStatusLine :: ByteString -> HttpExceptionContent
- Import.NoFoundation: InvalidUrlException :: String -> String -> HttpException
- Import.NoFoundation: Javascript :: Builder -> Javascript
- Import.NoFoundation: Just :: a -> Maybe a
- Import.NoFoundation: KeyNotFound :: String -> UpdateException
- Import.NoFoundation: LT :: Ordering
- Import.NoFoundation: Le :: PersistFilter
- Import.NoFoundation: Left :: a -> Either a b
- Import.NoFoundation: LevelDebug :: LogLevel
- Import.NoFoundation: LevelError :: LogLevel
- Import.NoFoundation: LevelInfo :: LogLevel
- Import.NoFoundation: LevelOther :: Text -> LogLevel
- Import.NoFoundation: LevelWarn :: LogLevel
- Import.NoFoundation: LimitTo :: Int -> SelectOpt record
- Import.NoFoundation: LineBuffering :: BufferMode
- Import.NoFoundation: LiteApp :: (Method -> [Text] -> Maybe (LiteHandler TypedContent)) -> LiteApp
- Import.NoFoundation: Lt :: PersistFilter
- Import.NoFoundation: MaybeT :: m (Maybe a) -> MaybeT (m :: Type -> Type) a
- Import.NoFoundation: MergedValue :: Value -> MergedValue
- Import.NoFoundation: ModifiedJulianDay :: Integer -> Day
- Import.NoFoundation: MsgBoolNo :: FormMessage
- Import.NoFoundation: MsgBoolYes :: FormMessage
- Import.NoFoundation: MsgCsrfWarning :: FormMessage
- Import.NoFoundation: MsgDelete :: FormMessage
- Import.NoFoundation: MsgInputNotFound :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidBool :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidDatetimeFormat :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidDay :: FormMessage
- Import.NoFoundation: MsgInvalidEmail :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidEntry :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidHexColorFormat :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidHour :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidInteger :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidMinute :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidNumber :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidSecond :: Text -> FormMessage
- Import.NoFoundation: MsgInvalidTimeFormat :: FormMessage
- Import.NoFoundation: MsgInvalidUrl :: Text -> FormMessage
- Import.NoFoundation: MsgSelectNone :: FormMessage
- Import.NoFoundation: MsgValueRequired :: FormMessage
- Import.NoFoundation: Multipart :: Enctype
- Import.NoFoundation: Multiply :: PersistUpdate
- Import.NoFoundation: MutVar :: MutVar# s a -> MutVar s a
- Import.NoFoundation: Ne :: PersistFilter
- Import.NoFoundation: NoBuffering :: BufferMode
- Import.NoFoundation: NoReference :: ReferenceDef
- Import.NoFoundation: NoResponseDataReceived :: HttpExceptionContent
- Import.NoFoundation: NotAuthenticated :: ErrorResponse
- Import.NoFoundation: NotFound :: ErrorResponse
- Import.NoFoundation: NotIn :: PersistFilter
- Import.NoFoundation: NotNullable :: IsNullable
- Import.NoFoundation: Note :: !UserId -> !NtSlug -> !Int -> !Text -> !Text -> !Bool -> !Bool -> !UTCTime -> !UTCTime -> Note
- Import.NoFoundation: Nothing :: Maybe a
- Import.NoFoundation: NtSlug :: Text -> NtSlug
- Import.NoFoundation: Null :: Value
- Import.NoFoundation: Nullable :: !WhyNullable -> IsNullable
- Import.NoFoundation: Number :: !Scientific -> Value
- Import.NoFoundation: OPTIONS :: StdMethod
- Import.NoFoundation: Object :: !Object -> Value
- Import.NoFoundation: OffsetBy :: Int -> SelectOpt record
- Import.NoFoundation: Option :: Text -> a -> Text -> Option a
- Import.NoFoundation: OptionList :: [Option a] -> (Text -> Maybe a) -> OptionList a
- Import.NoFoundation: OptionListGrouped :: [(Text, [Option a])] -> (Text -> Maybe a) -> OptionList a
- Import.NoFoundation: OverflowNatural :: Natural -> OverflowNatural
- Import.NoFoundation: OverlongHeaders :: HttpExceptionContent
- Import.NoFoundation: PATCH :: StdMethod
- Import.NoFoundation: POST :: StdMethod
- Import.NoFoundation: PUT :: StdMethod
- Import.NoFoundation: PageContent :: !Html -> !Maybe Text -> !HtmlUrl url -> !HtmlUrl url -> PageContent url
- Import.NoFoundation: PermissionDenied :: !Text -> ErrorResponse
- Import.NoFoundation: PersistArray :: [PersistValue] -> PersistValue
- Import.NoFoundation: PersistBool :: Bool -> PersistValue
- Import.NoFoundation: PersistByteString :: ByteString -> PersistValue
- Import.NoFoundation: PersistDay :: Day -> PersistValue
- Import.NoFoundation: PersistDouble :: Double -> PersistValue
- Import.NoFoundation: PersistError :: Text -> PersistException
- Import.NoFoundation: PersistForeignConstraintUnmet :: Text -> PersistException
- Import.NoFoundation: PersistInt64 :: Int64 -> PersistValue
- Import.NoFoundation: PersistInvalidField :: Text -> PersistException
- Import.NoFoundation: PersistList :: [PersistValue] -> PersistValue
- Import.NoFoundation: PersistLiteral_ :: LiteralType -> ByteString -> PersistValue
- Import.NoFoundation: PersistMap :: [(Text, PersistValue)] -> PersistValue
- Import.NoFoundation: PersistMarshalError :: Text -> PersistException
- Import.NoFoundation: PersistMongoDBError :: Text -> PersistException
- Import.NoFoundation: PersistMongoDBUnsupported :: Text -> PersistException
- Import.NoFoundation: PersistNull :: PersistValue
- Import.NoFoundation: PersistObjectId :: ByteString -> PersistValue
- Import.NoFoundation: PersistRational :: Rational -> PersistValue
- Import.NoFoundation: PersistText :: Text -> PersistValue
- Import.NoFoundation: PersistTimeOfDay :: TimeOfDay -> PersistValue
- Import.NoFoundation: PersistUTCTime :: UTCTime -> PersistValue
- Import.NoFoundation: Proxy :: ByteString -> Int -> Proxy
- Import.NoFoundation: ProxyConnectException :: ByteString -> Int -> Status -> HttpExceptionContent
- Import.NoFoundation: QE :: ByteString -> EscapeItem
- Import.NoFoundation: QN :: ByteString -> EscapeItem
- Import.NoFoundation: RawJavascript :: Builder -> RawJavascript
- Import.NoFoundation: ReadMode :: IOMode
- Import.NoFoundation: ReadWriteMode :: IOMode
- Import.NoFoundation: ReaderT :: (r -> m a) -> ReaderT r (m :: Type -> Type) a
- Import.NoFoundation: RelativeSeek :: SeekMode
- Import.NoFoundation: ReleaseEarly :: ReleaseType
- Import.NoFoundation: ReleaseExceptionWith :: SomeException -> ReleaseType
- Import.NoFoundation: ReleaseNormal :: ReleaseType
- Import.NoFoundation: RepJson :: Content -> RepJson
- Import.NoFoundation: RepPlain :: Content -> RepPlain
- Import.NoFoundation: RepXml :: Content -> RepXml
- Import.NoFoundation: RequestBodyBS :: ByteString -> RequestBody
- Import.NoFoundation: RequestBodyBuilder :: Int64 -> Builder -> RequestBody
- Import.NoFoundation: RequestBodyIO :: IO RequestBody -> RequestBody
- Import.NoFoundation: RequestBodyLBS :: ByteString -> RequestBody
- Import.NoFoundation: RequestBodyStream :: Int64 -> GivesPopper () -> RequestBody
- Import.NoFoundation: RequestBodyStreamChunked :: GivesPopper () -> RequestBody
- Import.NoFoundation: ResponseBodyTooShort :: Word64 -> Word64 -> HttpExceptionContent
- Import.NoFoundation: ResponseTimeout :: HttpExceptionContent
- Import.NoFoundation: Restrict :: CascadeAction
- Import.NoFoundation: Right :: b -> Either a b
- Import.NoFoundation: SeekFromEnd :: SeekMode
- Import.NoFoundation: SelfReference :: ReferenceDef
- Import.NoFoundation: ServerError :: Text -> AuthenticationResult master
- Import.NoFoundation: SessionBackend :: (Request -> IO (SessionMap, SaveSession)) -> SessionBackend
- Import.NoFoundation: SetDefault :: CascadeAction
- Import.NoFoundation: SetNull :: CascadeAction
- Import.NoFoundation: SharedAll :: SharedP
- Import.NoFoundation: SharedPrivate :: SharedP
- Import.NoFoundation: SharedPublic :: SharedP
- Import.NoFoundation: SomeAsyncException :: e -> SomeAsyncException
- Import.NoFoundation: SomeException :: e -> SomeException
- Import.NoFoundation: SomeMessage :: msg -> SomeMessage master
- Import.NoFoundation: SqlBlob :: SqlType
- Import.NoFoundation: SqlBool :: SqlType
- Import.NoFoundation: SqlDay :: SqlType
- Import.NoFoundation: SqlDayTime :: SqlType
- Import.NoFoundation: SqlInt32 :: SqlType
- Import.NoFoundation: SqlInt64 :: SqlType
- Import.NoFoundation: SqlNumeric :: Word32 -> Word32 -> SqlType
- Import.NoFoundation: SqlOther :: Text -> SqlType
- Import.NoFoundation: SqlReal :: SqlType
- Import.NoFoundation: SqlString :: SqlType
- Import.NoFoundation: SqlTime :: SqlType
- Import.NoFoundation: Static :: StaticSettings -> Static
- Import.NoFoundation: Status :: Int -> ByteString -> Status
- Import.NoFoundation: StatusCodeException :: Response () -> ByteString -> HttpExceptionContent
- Import.NoFoundation: StreamFileStatus :: Int64 -> Int64 -> Int -> StreamFileStatus
- Import.NoFoundation: String :: !Text -> Value
- Import.NoFoundation: StringException :: String -> CallStack -> StringException
- Import.NoFoundation: Subtract :: PersistUpdate
- Import.NoFoundation: SyncExceptionWrapper :: e -> SyncExceptionWrapper
- Import.NoFoundation: TRACE :: StdMethod
- Import.NoFoundation: TagCloudModeLowerBound :: Bool -> Int -> TagCloudMode
- Import.NoFoundation: TagCloudModeNone :: TagCloudMode
- Import.NoFoundation: TagCloudModeRelated :: Bool -> [Tag] -> TagCloudMode
- Import.NoFoundation: TagCloudModeTop :: Bool -> Int -> TagCloudMode
- Import.NoFoundation: TagsP :: [Text] -> TagsP
- Import.NoFoundation: Textarea :: Text -> Textarea
- Import.NoFoundation: TlsNotSupported :: HttpExceptionContent
- Import.NoFoundation: TooManyRedirects :: [Response ByteString] -> HttpExceptionContent
- Import.NoFoundation: True :: Bool
- Import.NoFoundation: TypedContent :: !ContentType -> !Content -> TypedContent
- Import.NoFoundation: UTCTime :: Day -> DiffTime -> UTCTime
- Import.NoFoundation: UTCTimeStr :: UTCTime -> UTCTimeStr
- Import.NoFoundation: Unauthorized :: !Text -> AuthResult
- Import.NoFoundation: Unescaped :: LiteralType
- Import.NoFoundation: UniqueDef :: !ConstraintNameHS -> !ConstraintNameDB -> !NonEmpty (FieldNameHS, FieldNameDB) -> ![Attr] -> UniqueDef
- Import.NoFoundation: UnliftIO :: (forall a. () => m a -> IO a) -> UnliftIO (m :: Type -> Type)
- Import.NoFoundation: UnreadOnly :: Bool -> UnreadOnly
- Import.NoFoundation: Update :: EntityField record typ -> typ -> PersistUpdate -> Update record
- Import.NoFoundation: Updated :: a -> UpsertResult a
- Import.NoFoundation: UpsertError :: String -> UpdateException
- Import.NoFoundation: UrlEncoded :: Enctype
- Import.NoFoundation: User :: !Text -> !BCrypt -> !Maybe HashedApiKey -> !Bool -> !Bool -> !Bool -> User
- Import.NoFoundation: UserError :: AuthMessage -> AuthenticationResult master
- Import.NoFoundation: UserNameP :: Text -> UserNameP
- Import.NoFoundation: WaiSubsite :: Application -> WaiSubsite
- Import.NoFoundation: WaiSubsiteWithAuth :: Application -> WaiSubsiteWithAuth
- Import.NoFoundation: WrappedPoly :: f a -> WrappedPoly (f :: Type -> Type) a
- Import.NoFoundation: WriteMode :: IOMode
- Import.NoFoundation: WrongRequestBodyStreamSize :: Word64 -> Word64 -> HttpExceptionContent
- Import.NoFoundation: YesodRequest :: ![(Text, Text)] -> ![(Text, Text)] -> !Request -> ![Text] -> !Maybe Text -> !SessionMap -> ![ContentType] -> YesodRequest
- Import.NoFoundation: ZipConduit :: ConduitT i o m r -> ZipConduit i o (m :: Type -> Type) r
- Import.NoFoundation: ZipSink :: ConduitT i Void m r -> ZipSink i (m :: Type -> Type) r
- Import.NoFoundation: ZipSource :: ConduitT () o m () -> ZipSource (m :: Type -> Type) o
- Import.NoFoundation: [FilterValue] :: forall typ. typ -> FilterValue typ
- Import.NoFoundation: [FilterValues] :: forall typ. [typ] -> FilterValue typ
- Import.NoFoundation: [UnsafeValue] :: forall a typ. PersistField a => a -> FilterValue typ
- Import.NoFoundation: [WrappedMono] :: forall mono a. Element mono ~ a => mono -> WrappedMono mono a
- Import.NoFoundation: [_archiveDefault] :: AccountSettingsForm -> Bool
- Import.NoFoundation: [_archiveUrl] :: BookmarkForm -> Maybe Text
- Import.NoFoundation: [_bid] :: BookmarkForm -> Maybe Int64
- Import.NoFoundation: [_description] :: BookmarkForm -> Maybe Textarea
- Import.NoFoundation: [_privacyLock] :: AccountSettingsForm -> Bool
- Import.NoFoundation: [_privateDefault] :: AccountSettingsForm -> Bool
- Import.NoFoundation: [_private] :: BookmarkForm -> Maybe Bool
- Import.NoFoundation: [_selected] :: BookmarkForm -> Maybe Bool
- Import.NoFoundation: [_slug] :: BookmarkForm -> Maybe BmSlug
- Import.NoFoundation: [_tags] :: BookmarkForm -> Maybe Text
- Import.NoFoundation: [_time] :: BookmarkForm -> Maybe UTCTimeStr
- Import.NoFoundation: [_title] :: BookmarkForm -> Maybe Text
- Import.NoFoundation: [_toread] :: BookmarkForm -> Maybe Bool
- Import.NoFoundation: [_url] :: BookmarkForm -> Text
- Import.NoFoundation: [apDispatch] :: AuthPlugin master -> Method -> [Piece] -> AuthHandler master TypedContent
- Import.NoFoundation: [apLogin] :: AuthPlugin master -> (Route Auth -> Route master) -> WidgetFor master ()
- Import.NoFoundation: [apName] :: AuthPlugin master -> Text
- Import.NoFoundation: [appAllowNonHttpUrlSchemes] :: AppSettings -> Bool
- Import.NoFoundation: [appAnalytics] :: AppSettings -> Maybe Text
- Import.NoFoundation: [appArchiveSocksProxyHost] :: AppSettings -> Maybe Text
- Import.NoFoundation: [appArchiveSocksProxyPort] :: AppSettings -> Maybe Int
- Import.NoFoundation: [appAuthDummyLogin] :: AppSettings -> Bool
- Import.NoFoundation: [appCopyright] :: AppSettings -> Text
- Import.NoFoundation: [appDatabaseConf] :: AppSettings -> SqliteConf
- Import.NoFoundation: [appDetailedRequestLogging] :: AppSettings -> Bool
- Import.NoFoundation: [appHost] :: AppSettings -> HostPreference
- Import.NoFoundation: [appIpFromHeader] :: AppSettings -> Bool
- Import.NoFoundation: [appMutableStatic] :: AppSettings -> Bool
- Import.NoFoundation: [appPort] :: AppSettings -> Int
- Import.NoFoundation: [appReloadTemplates] :: AppSettings -> Bool
- Import.NoFoundation: [appRoot] :: AppSettings -> Maybe Text
- Import.NoFoundation: [appSSLOnly] :: AppSettings -> Bool
- Import.NoFoundation: [appShouldLogAll] :: AppSettings -> Bool
- Import.NoFoundation: [appSkipCombining] :: AppSettings -> Bool
- Import.NoFoundation: [appSourceCodeUri] :: AppSettings -> Maybe Text
- Import.NoFoundation: [appStaticDir] :: AppSettings -> String
- Import.NoFoundation: [bookmarkArchiveHref] :: Bookmark -> !Maybe Text
- Import.NoFoundation: [bookmarkDescription] :: Bookmark -> !Text
- Import.NoFoundation: [bookmarkExtended] :: Bookmark -> !Text
- Import.NoFoundation: [bookmarkHref] :: Bookmark -> !Text
- Import.NoFoundation: [bookmarkSelected] :: Bookmark -> !Bool
- Import.NoFoundation: [bookmarkShared] :: Bookmark -> !Bool
- Import.NoFoundation: [bookmarkSlug] :: Bookmark -> !BmSlug
- Import.NoFoundation: [bookmarkTagBookmarkId] :: BookmarkTag -> !BookmarkId
- Import.NoFoundation: [bookmarkTagSeq] :: BookmarkTag -> !Int
- Import.NoFoundation: [bookmarkTagTag] :: BookmarkTag -> !Text
- Import.NoFoundation: [bookmarkTagUserId] :: BookmarkTag -> !UserId
- Import.NoFoundation: [bookmarkTime] :: Bookmark -> !UTCTime
- Import.NoFoundation: [bookmarkToRead] :: Bookmark -> !Bool
- Import.NoFoundation: [bookmarkUserId] :: Bookmark -> !UserId
- Import.NoFoundation: [categoryDomain] :: EntryCategory -> Maybe Text
- Import.NoFoundation: [categoryLabel] :: EntryCategory -> Maybe Text
- Import.NoFoundation: [categoryValue] :: EntryCategory -> Text
- Import.NoFoundation: [compositeAttrs] :: CompositeDef -> ![Attr]
- Import.NoFoundation: [compositeFields] :: CompositeDef -> !NonEmpty FieldDef
- Import.NoFoundation: [cookie_creation_time] :: Cookie -> UTCTime
- Import.NoFoundation: [cookie_domain] :: Cookie -> ByteString
- Import.NoFoundation: [cookie_expiry_time] :: Cookie -> UTCTime
- Import.NoFoundation: [cookie_host_only] :: Cookie -> Bool
- Import.NoFoundation: [cookie_http_only] :: Cookie -> Bool
- Import.NoFoundation: [cookie_last_access_time] :: Cookie -> UTCTime
- Import.NoFoundation: [cookie_name] :: Cookie -> ByteString
- Import.NoFoundation: [cookie_path] :: Cookie -> ByteString
- Import.NoFoundation: [cookie_persistent] :: Cookie -> Bool
- Import.NoFoundation: [cookie_secure_only] :: Cookie -> Bool
- Import.NoFoundation: [cookie_value] :: Cookie -> ByteString
- Import.NoFoundation: [credsExtra] :: Creds master -> [(Text, Text)]
- Import.NoFoundation: [credsIdent] :: Creds master -> Text
- Import.NoFoundation: [credsPlugin] :: Creds master -> Text
- Import.NoFoundation: [emFieldDB] :: EmbedFieldDef -> FieldNameDB
- Import.NoFoundation: [emFieldEmbed] :: EmbedFieldDef -> Maybe (Either SelfEmbed EntityNameHS)
- Import.NoFoundation: [embeddedFields] :: EmbedEntityDef -> [EmbedFieldDef]
- Import.NoFoundation: [embeddedHaskell] :: EmbedEntityDef -> EntityNameHS
- Import.NoFoundation: [enclosedMimeType] :: EntryEnclosure url -> Text
- Import.NoFoundation: [enclosedSize] :: EntryEnclosure url -> Int
- Import.NoFoundation: [enclosedUrl] :: EntryEnclosure url -> url
- Import.NoFoundation: [entityFromJSON] :: EntityJSON -> Name
- Import.NoFoundation: [entityKey] :: Entity record -> Key record
- Import.NoFoundation: [entityToJSON] :: EntityJSON -> Name
- Import.NoFoundation: [entityVal] :: Entity record -> record
- Import.NoFoundation: [fcOnDelete] :: FieldCascade -> !Maybe CascadeAction
- Import.NoFoundation: [fcOnUpdate] :: FieldCascade -> !Maybe CascadeAction
- Import.NoFoundation: [feedAuthor] :: Feed url -> Text
- Import.NoFoundation: [feedDescription] :: Feed url -> Html
- Import.NoFoundation: [feedEntries] :: Feed url -> [FeedEntry url]
- Import.NoFoundation: [feedEntryCategories] :: FeedEntry url -> [EntryCategory]
- Import.NoFoundation: [feedEntryContent] :: FeedEntry url -> Html
- Import.NoFoundation: [feedEntryEnclosure] :: FeedEntry url -> Maybe (EntryEnclosure url)
- Import.NoFoundation: [feedEntryLink] :: FeedEntry url -> url
- Import.NoFoundation: [feedEntryTitle] :: FeedEntry url -> Text
- Import.NoFoundation: [feedEntryUpdated] :: FeedEntry url -> UTCTime
- Import.NoFoundation: [feedLanguage] :: Feed url -> Text
- Import.NoFoundation: [feedLinkHome] :: Feed url -> url
- Import.NoFoundation: [feedLinkSelf] :: Feed url -> url
- Import.NoFoundation: [feedLogo] :: Feed url -> Maybe (url, Text)
- Import.NoFoundation: [feedTitle] :: Feed url -> Text
- Import.NoFoundation: [feedUpdated] :: Feed url -> UTCTime
- Import.NoFoundation: [fieldAttrs] :: FieldDef -> ![FieldAttr]
- Import.NoFoundation: [fieldCascade] :: FieldDef -> !FieldCascade
- Import.NoFoundation: [fieldComments] :: FieldDef -> !Maybe Text
- Import.NoFoundation: [fieldDB] :: FieldDef -> !FieldNameDB
- Import.NoFoundation: [fieldEnctype] :: Field (m :: Type -> Type) a -> Enctype
- Import.NoFoundation: [fieldGenerated] :: FieldDef -> !Maybe Text
- Import.NoFoundation: [fieldHaskell] :: FieldDef -> !FieldNameHS
- Import.NoFoundation: [fieldIsImplicitIdColumn] :: FieldDef -> !Bool
- Import.NoFoundation: [fieldParse] :: Field (m :: Type -> Type) a -> [Text] -> [FileInfo] -> m (Either (SomeMessage (HandlerSite m)) (Maybe a))
- Import.NoFoundation: [fieldReference] :: FieldDef -> !ReferenceDef
- Import.NoFoundation: [fieldSqlType] :: FieldDef -> !SqlType
- Import.NoFoundation: [fieldStrict] :: FieldDef -> !Bool
- Import.NoFoundation: [fieldType] :: FieldDef -> !FieldType
- Import.NoFoundation: [fieldView] :: Field (m :: Type -> Type) a -> FieldViewFunc m a
- Import.NoFoundation: [fileBookmarkArchiveHref] :: FileBookmark -> !Maybe Text
- Import.NoFoundation: [fileBookmarkDescription] :: FileBookmark -> !Text
- Import.NoFoundation: [fileBookmarkExtended] :: FileBookmark -> !Text
- Import.NoFoundation: [fileBookmarkHref] :: FileBookmark -> !Text
- Import.NoFoundation: [fileBookmarkSelected] :: FileBookmark -> !Maybe Bool
- Import.NoFoundation: [fileBookmarkShared] :: FileBookmark -> !Bool
- Import.NoFoundation: [fileBookmarkTags] :: FileBookmark -> !Text
- Import.NoFoundation: [fileBookmarkTime] :: FileBookmark -> !UTCTime
- Import.NoFoundation: [fileBookmarkToRead] :: FileBookmark -> !Bool
- Import.NoFoundation: [fileNoteCreatedAt] :: FileNote -> !UTCTime
- Import.NoFoundation: [fileNoteId] :: FileNote -> !Text
- Import.NoFoundation: [fileNoteLength] :: FileNote -> !Int
- Import.NoFoundation: [fileNoteText] :: FileNote -> !Text
- Import.NoFoundation: [fileNoteTitle] :: FileNote -> !Text
- Import.NoFoundation: [fileNoteUpdatedAt] :: FileNote -> !UTCTime
- Import.NoFoundation: [fileSize] :: StreamFileStatus -> Int64
- Import.NoFoundation: [filterField] :: Filter record -> EntityField record typ
- Import.NoFoundation: [filterFilter] :: Filter record -> PersistFilter
- Import.NoFoundation: [filterValue] :: Filter record -> FilterValue typ
- Import.NoFoundation: [firefoxBookmarkChildren] :: FFBookmarkNode -> Maybe [FFBookmarkNode]
- Import.NoFoundation: [firefoxBookmarkDateAdded] :: FFBookmarkNode -> !POSIXTime
- Import.NoFoundation: [firefoxBookmarkGuid] :: FFBookmarkNode -> !Text
- Import.NoFoundation: [firefoxBookmarkIconUri] :: FFBookmarkNode -> !Maybe Text
- Import.NoFoundation: [firefoxBookmarkId] :: FFBookmarkNode -> !Int
- Import.NoFoundation: [firefoxBookmarkIndex] :: FFBookmarkNode -> !Int
- Import.NoFoundation: [firefoxBookmarkLastModified] :: FFBookmarkNode -> !POSIXTime
- Import.NoFoundation: [firefoxBookmarkRoot] :: FFBookmarkNode -> !Maybe Text
- Import.NoFoundation: [firefoxBookmarkTitle] :: FFBookmarkNode -> !Text
- Import.NoFoundation: [firefoxBookmarkTypeCode] :: FFBookmarkNode -> !Int
- Import.NoFoundation: [firefoxBookmarkType] :: FFBookmarkNode -> !Text
- Import.NoFoundation: [firefoxBookmarkUri] :: FFBookmarkNode -> !Maybe Text
- Import.NoFoundation: [foreignAttrs] :: ForeignDef -> ![Attr]
- Import.NoFoundation: [foreignConstraintNameDBName] :: ForeignDef -> !ConstraintNameDB
- Import.NoFoundation: [foreignConstraintNameHaskell] :: ForeignDef -> !ConstraintNameHS
- Import.NoFoundation: [foreignFieldCascade] :: ForeignDef -> !FieldCascade
- Import.NoFoundation: [foreignFields] :: ForeignDef -> ![(ForeignFieldDef, ForeignFieldDef)]
- Import.NoFoundation: [foreignNullable] :: ForeignDef -> Bool
- Import.NoFoundation: [foreignRefTableDBName] :: ForeignDef -> !EntityNameDB
- Import.NoFoundation: [foreignRefTableHaskell] :: ForeignDef -> !EntityNameHS
- Import.NoFoundation: [foreignToPrimary] :: ForeignDef -> Bool
- Import.NoFoundation: [fsAttrs] :: FieldSettings master -> [(Text, Text)]
- Import.NoFoundation: [fsId] :: FieldSettings master -> Maybe Text
- Import.NoFoundation: [fsLabel] :: FieldSettings master -> SomeMessage master
- Import.NoFoundation: [fsName] :: FieldSettings master -> Maybe Text
- Import.NoFoundation: [fsTooltip] :: FieldSettings master -> Maybe (SomeMessage master)
- Import.NoFoundation: [fvErrors] :: FieldView site -> Maybe Markup
- Import.NoFoundation: [fvId] :: FieldView site -> Text
- Import.NoFoundation: [fvInput] :: FieldView site -> WidgetFor site ()
- Import.NoFoundation: [fvLabel] :: FieldView site -> Markup
- Import.NoFoundation: [fvRequired] :: FieldView site -> Bool
- Import.NoFoundation: [fvTooltip] :: FieldView site -> Maybe Markup
- Import.NoFoundation: [getDown] :: Down a -> a
- Import.NoFoundation: [getMergedValue] :: MergedValue -> Value
- Import.NoFoundation: [getZipConduit] :: ZipConduit i o (m :: Type -> Type) r -> ConduitT i o m r
- Import.NoFoundation: [getZipSink] :: ZipSink i (m :: Type -> Type) r -> ConduitT i Void m r
- Import.NoFoundation: [getZipSource] :: ZipSource (m :: Type -> Type) o -> ConduitT () o m ()
- Import.NoFoundation: [httpMajor] :: HttpVersion -> !Int
- Import.NoFoundation: [httpMinor] :: HttpVersion -> !Int
- Import.NoFoundation: [noteCreated] :: Note -> !UTCTime
- Import.NoFoundation: [noteIsMarkdown] :: Note -> !Bool
- Import.NoFoundation: [noteLength] :: Note -> !Int
- Import.NoFoundation: [noteShared] :: Note -> !Bool
- Import.NoFoundation: [noteSlug] :: Note -> !NtSlug
- Import.NoFoundation: [noteText] :: Note -> !Text
- Import.NoFoundation: [noteTitle] :: Note -> !Text
- Import.NoFoundation: [noteUpdated] :: Note -> !UTCTime
- Import.NoFoundation: [noteUserId] :: Note -> !UserId
- Import.NoFoundation: [olOptionsGrouped] :: OptionList a -> [(Text, [Option a])]
- Import.NoFoundation: [olOptions] :: OptionList a -> [Option a]
- Import.NoFoundation: [olReadExternalGrouped] :: OptionList a -> Text -> Maybe a
- Import.NoFoundation: [olReadExternal] :: OptionList a -> Text -> Maybe a
- Import.NoFoundation: [optionDisplay] :: Option a -> Text
- Import.NoFoundation: [optionExternalValue] :: Option a -> Text
- Import.NoFoundation: [optionInternalValue] :: Option a -> a
- Import.NoFoundation: [pageBody] :: PageContent url -> !HtmlUrl url
- Import.NoFoundation: [pageDescription] :: PageContent url -> !Maybe Text
- Import.NoFoundation: [pageHead] :: PageContent url -> !HtmlUrl url
- Import.NoFoundation: [pageTitle] :: PageContent url -> !Html
- Import.NoFoundation: [proxyHost] :: Proxy -> ByteString
- Import.NoFoundation: [proxyPort] :: Proxy -> Int
- Import.NoFoundation: [readSoFar] :: StreamFileStatus -> Int64
- Import.NoFoundation: [reqAccept] :: YesodRequest -> ![ContentType]
- Import.NoFoundation: [reqCookies] :: YesodRequest -> ![(Text, Text)]
- Import.NoFoundation: [reqGetParams] :: YesodRequest -> ![(Text, Text)]
- Import.NoFoundation: [reqLangs] :: YesodRequest -> ![Text]
- Import.NoFoundation: [reqSession] :: YesodRequest -> !SessionMap
- Import.NoFoundation: [reqToken] :: YesodRequest -> !Maybe Text
- Import.NoFoundation: [reqWaiRequest] :: YesodRequest -> !Request
- Import.NoFoundation: [runConcurrently] :: Concurrently (m :: Type -> Type) a -> m a
- Import.NoFoundation: [runDBRunner] :: DBRunner site -> forall a. () => YesodDB site a -> HandlerFor site a
- Import.NoFoundation: [runIdentity] :: Identity a -> a
- Import.NoFoundation: [runMaybeT] :: MaybeT (m :: Type -> Type) a -> m (Maybe a)
- Import.NoFoundation: [runReaderT] :: ReaderT r (m :: Type -> Type) a -> r -> m a
- Import.NoFoundation: [runWaiSubsiteWithAuth] :: WaiSubsiteWithAuth -> Application
- Import.NoFoundation: [runWaiSubsite] :: WaiSubsite -> Application
- Import.NoFoundation: [sbLoadSession] :: SessionBackend -> Request -> IO (SessionMap, SaveSession)
- Import.NoFoundation: [statusCode] :: Status -> Int
- Import.NoFoundation: [statusMessage] :: Status -> ByteString
- Import.NoFoundation: [thisChunkSize] :: StreamFileStatus -> Int
- Import.NoFoundation: [toModifiedJulianDay] :: Day -> Integer
- Import.NoFoundation: [unAForm] :: AForm (m :: Type -> Type) a -> (HandlerSite m, [Text]) -> Maybe (Env, FileEnv) -> Ints -> m (FormResult a, [FieldView (HandlerSite m)] -> [FieldView (HandlerSite m)], Ints, Enctype)
- Import.NoFoundation: [unApiKey] :: ApiKey -> Text
- Import.NoFoundation: [unBCrypt] :: BCrypt -> Text
- Import.NoFoundation: [unBmSlug] :: BmSlug -> Text
- Import.NoFoundation: [unConstraintNameDB] :: ConstraintNameDB -> Text
- Import.NoFoundation: [unConstraintNameHS] :: ConstraintNameHS -> Text
- Import.NoFoundation: [unCssBuilder] :: CssBuilder -> Builder
- Import.NoFoundation: [unDontFullyEvaluate] :: DontFullyEvaluate a -> a
- Import.NoFoundation: [unEntityNameDB] :: EntityNameDB -> Text
- Import.NoFoundation: [unEntityNameHS] :: EntityNameHS -> Text
- Import.NoFoundation: [unFieldNameDB] :: FieldNameDB -> Text
- Import.NoFoundation: [unFieldNameHS] :: FieldNameHS -> Text
- Import.NoFoundation: [unFormInput] :: FormInput (m :: Type -> Type) a -> HandlerSite m -> [Text] -> Env -> FileEnv -> m (Either DText a)
- Import.NoFoundation: [unJavascript] :: Javascript -> Builder
- Import.NoFoundation: [unLiteApp] :: LiteApp -> Method -> [Text] -> Maybe (LiteHandler TypedContent)
- Import.NoFoundation: [unNtSlug] :: NtSlug -> Text
- Import.NoFoundation: [unOverflowNatural] :: OverflowNatural -> Natural
- Import.NoFoundation: [unTagsP] :: TagsP -> [Text]
- Import.NoFoundation: [unTextarea] :: Textarea -> Text
- Import.NoFoundation: [unUTCTimeStr] :: UTCTimeStr -> UTCTime
- Import.NoFoundation: [unUnreadOnly] :: UnreadOnly -> Bool
- Import.NoFoundation: [unUserNameP] :: UserNameP -> Text
- Import.NoFoundation: [uniqueAttrs] :: UniqueDef -> ![Attr]
- Import.NoFoundation: [uniqueDBName] :: UniqueDef -> !ConstraintNameDB
- Import.NoFoundation: [uniqueFields] :: UniqueDef -> !NonEmpty (FieldNameHS, FieldNameDB)
- Import.NoFoundation: [uniqueHaskell] :: UniqueDef -> !ConstraintNameHS
- Import.NoFoundation: [unliftIO] :: UnliftIO (m :: Type -> Type) -> forall a. () => m a -> IO a
- Import.NoFoundation: [unwrapPoly] :: WrappedPoly (f :: Type -> Type) a -> f a
- Import.NoFoundation: [updateField] :: Update record -> EntityField record typ
- Import.NoFoundation: [updateUpdate] :: Update record -> PersistUpdate
- Import.NoFoundation: [updateValue] :: Update record -> typ
- Import.NoFoundation: [userApiToken] :: User -> !Maybe HashedApiKey
- Import.NoFoundation: [userArchiveDefault] :: User -> !Bool
- Import.NoFoundation: [userName] :: User -> !Text
- Import.NoFoundation: [userPasswordHash] :: User -> !BCrypt
- Import.NoFoundation: [userPrivacyLock] :: User -> !Bool
- Import.NoFoundation: [userPrivateDefault] :: User -> !Bool
- Import.NoFoundation: [utctDayTime] :: UTCTime -> DiffTime
- Import.NoFoundation: [utctDay] :: UTCTime -> Day
- Import.NoFoundation: _toBookmark :: UserId -> BookmarkForm -> IO Bookmark
- Import.NoFoundation: _toBookmarkForm :: (Entity Bookmark, [Entity BookmarkTag]) -> BookmarkForm
- Import.NoFoundation: _toBookmarkForm' :: (Entity Bookmark, Maybe Text) -> BookmarkForm
- Import.NoFoundation: aFormToForm :: forall (m :: Type -> Type) site a. (Monad m, HandlerSite m ~ site) => AForm m a -> MForm m (FormResult a, [FieldView site] -> [FieldView site])
- Import.NoFoundation: abs :: Num a => a -> a
- Import.NoFoundation: accepted202 :: Status
- Import.NoFoundation: acceptsJson :: MonadHandler m => m Bool
- Import.NoFoundation: acos :: Floating a => a -> a
- Import.NoFoundation: acosh :: Floating a => a -> a
- Import.NoFoundation: acquireResponse :: forall (n :: Type -> Type) env m i. (MonadIO n, MonadReader env m, HasHttpManager env) => Request -> m (Acquire (Response (ConduitM i ByteString n ())))
- Import.NoFoundation: addClass :: Text -> [(Text, Text)] -> [(Text, Text)]
- Import.NoFoundation: addContentDispositionFileName :: MonadHandler m => Text -> m ()
- Import.NoFoundation: addFieldAttr :: FieldAttr -> FieldDef -> FieldDef
- Import.NoFoundation: addHeader :: MonadHandler m => Text -> Text -> m ()
- Import.NoFoundation: addMessage :: MonadHandler m => Text -> Html -> m ()
- Import.NoFoundation: addMessageI :: (MonadHandler m, RenderMessage (HandlerSite m) msg) => Text -> msg -> m ()
- Import.NoFoundation: addScript :: MonadWidget m => Route (HandlerSite m) -> m ()
- Import.NoFoundation: addScriptAttrs :: MonadWidget m => Route (HandlerSite m) -> [(Text, Text)] -> m ()
- Import.NoFoundation: addScriptEither :: MonadWidget m => Either (Route (HandlerSite m)) Text -> m ()
- Import.NoFoundation: addScriptRemote :: MonadWidget m => Text -> m ()
- Import.NoFoundation: addScriptRemoteAttrs :: MonadWidget m => Text -> [(Text, Text)] -> m ()
- Import.NoFoundation: addStaticContent :: Yesod site => Text -> Text -> ByteString -> HandlerFor site (Maybe (Either Text (Route site, [(Text, Text)])))
- Import.NoFoundation: addStylesheet :: MonadWidget m => Route (HandlerSite m) -> m ()
- Import.NoFoundation: addStylesheetAttrs :: MonadWidget m => Route (HandlerSite m) -> [(Text, Text)] -> m ()
- Import.NoFoundation: addStylesheetEither :: MonadWidget m => Either (Route (HandlerSite m)) Text -> m ()
- Import.NoFoundation: addStylesheetRemote :: MonadWidget m => Text -> m ()
- Import.NoFoundation: addStylesheetRemoteAttrs :: MonadWidget m => Text -> [(Text, Text)] -> m ()
- Import.NoFoundation: adjustMap :: IsMap map => (MapValue map -> MapValue map) -> ContainerKey map -> map -> map
- Import.NoFoundation: adjustWithKey :: IsMap map => (ContainerKey map -> MapValue map -> MapValue map) -> ContainerKey map -> map -> map
- Import.NoFoundation: all :: MonoFoldable mono => (Element mono -> Bool) -> mono -> Bool
- Import.NoFoundation: allC :: forall (m :: Type -> Type) a o. Monad m => (a -> Bool) -> ConduitT a o m Bool
- Import.NoFoundation: allCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono) => (Element mono -> Bool) -> ConduitT mono o m Bool
- Import.NoFoundation: allNewBuffersStrategy :: Int -> BufferAllocStrategy
- Import.NoFoundation: allUserBookmarks :: Key User -> DB [(Entity Bookmark, Text)]
- Import.NoFoundation: allocateAcquire :: MonadResource m => Acquire a -> m (ReleaseKey, a)
- Import.NoFoundation: alreadyExistsErrorType :: IOErrorType
- Import.NoFoundation: alreadyExpired :: MonadHandler m => m ()
- Import.NoFoundation: alreadyInUseErrorType :: IOErrorType
- Import.NoFoundation: alterMap :: IsMap map => (Maybe (MapValue map) -> Maybe (MapValue map)) -> ContainerKey map -> map -> map
- Import.NoFoundation: and :: (MonoFoldable mono, Element mono ~ Bool) => mono -> Bool
- Import.NoFoundation: andC :: forall (m :: Type -> Type) o. Monad m => ConduitT Bool o m Bool
- Import.NoFoundation: andCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono, Element mono ~ Bool) => ConduitT mono o m Bool
- Import.NoFoundation: annotateIOError :: IOError -> String -> Maybe Handle -> Maybe FilePath -> IOError
- Import.NoFoundation: any :: MonoFoldable mono => (Element mono -> Bool) -> mono -> Bool
- Import.NoFoundation: anyC :: forall (m :: Type -> Type) a o. Monad m => (a -> Bool) -> ConduitT a o m Bool
- Import.NoFoundation: anyCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono) => (Element mono -> Bool) -> ConduitT mono o m Bool
- Import.NoFoundation: aopt :: forall (m :: Type -> Type) a. MonadHandler m => Field m a -> FieldSettings (HandlerSite m) -> Maybe (Maybe a) -> AForm m (Maybe a)
- Import.NoFoundation: ap :: Monad m => m (a -> b) -> m a -> m b
- Import.NoFoundation: applyBasicAuth :: ByteString -> ByteString -> Request -> Request
- Import.NoFoundation: applyBasicProxyAuth :: ByteString -> ByteString -> Request -> Request
- Import.NoFoundation: applyBearerAuth :: ByteString -> Request -> Request
- Import.NoFoundation: applyCurrentEnv :: Bool -> Value -> IO Value
- Import.NoFoundation: applyDList :: DList a -> [a] -> [a]
- Import.NoFoundation: applyEnv :: PersistConfig c => c -> IO c
- Import.NoFoundation: applyEnvValue :: Bool -> KeyMap Text -> Value -> Value
- Import.NoFoundation: approot :: Yesod site => Approot site
- Import.NoFoundation: areq :: forall site (m :: Type -> Type) a. (RenderMessage site FormMessage, HandlerSite m ~ site, MonadHandler m) => Field m a -> FieldSettings site -> Maybe a -> AForm m a
- Import.NoFoundation: areqMsg :: forall site msg (m :: Type -> Type) a. (RenderMessage site msg, HandlerSite m ~ site, MonadHandler m) => Field m a -> FieldSettings site -> msg -> Maybe a -> AForm m a
- Import.NoFoundation: array :: ToJSON a => [a] -> Value
- Import.NoFoundation: asBDeque :: BDeque s a -> BDeque s a
- Import.NoFoundation: asBRef :: BRef s a -> BRef s a
- Import.NoFoundation: asByteString :: ByteString -> ByteString
- Import.NoFoundation: asDLList :: DLList s a -> DLList s a
- Import.NoFoundation: asDList :: DList a -> DList a
- Import.NoFoundation: asHashMap :: HashMap k v -> HashMap k v
- Import.NoFoundation: asHashSet :: HashSet a -> HashSet a
- Import.NoFoundation: asHtml :: Html -> Html
- Import.NoFoundation: asIORef :: IORef a -> IORef a
- Import.NoFoundation: asIntMap :: IntMap v -> IntMap v
- Import.NoFoundation: asIntSet :: IntSet -> IntSet
- Import.NoFoundation: asJavascriptUrl :: JavascriptUrl url -> JavascriptUrl url
- Import.NoFoundation: asLByteString :: LByteString -> LByteString
- Import.NoFoundation: asLText :: LText -> LText
- Import.NoFoundation: asList :: [a] -> [a]
- Import.NoFoundation: asMap :: Map k v -> Map k v
- Import.NoFoundation: asMaybe :: Maybe a -> Maybe a
- Import.NoFoundation: asMutVar :: MutVar s a -> MutVar s a
- Import.NoFoundation: asPRef :: PRef s a -> PRef s a
- Import.NoFoundation: asSDeque :: SDeque s a -> SDeque s a
- Import.NoFoundation: asSRef :: SRef s a -> SRef s a
- Import.NoFoundation: asSTRef :: STRef s a -> STRef s a
- Import.NoFoundation: asSVector :: SVector a -> SVector a
- Import.NoFoundation: asSet :: Set a -> Set a
- Import.NoFoundation: asString :: [Char] -> [Char]
- Import.NoFoundation: asText :: Text -> Text
- Import.NoFoundation: asTypeOf :: a -> a -> a
- Import.NoFoundation: asUDeque :: UDeque s a -> UDeque s a
- Import.NoFoundation: asURef :: URef s a -> URef s a
- Import.NoFoundation: asUVector :: UVector a -> UVector a
- Import.NoFoundation: asVector :: Vector a -> Vector a
- Import.NoFoundation: asWidgetT :: forall site (m :: Type -> Type). WidgetT site m () -> WidgetT site m ()
- Import.NoFoundation: asin :: Floating a => a -> a
- Import.NoFoundation: asinh :: Floating a => a -> a
- Import.NoFoundation: ask :: MonadReader r m => m r
- Import.NoFoundation: askFiles :: forall (m :: Type -> Type). Monad m => MForm m (Maybe FileEnv)
- Import.NoFoundation: askParams :: forall (m :: Type -> Type). Monad m => MForm m (Maybe Env)
- Import.NoFoundation: askRunInIO :: MonadUnliftIO m => m (m a -> IO a)
- Import.NoFoundation: askUnliftIO :: MonadUnliftIO m => m (UnliftIO m)
- Import.NoFoundation: asks :: MonadReader r m => (r -> a) -> m a
- Import.NoFoundation: assert :: Bool -> a -> a
- Import.NoFoundation: asum :: (Foldable t, Alternative f) => t (f a) -> f a
- Import.NoFoundation: asumC :: forall (m :: Type -> Type) f a o. (Monad m, Alternative f) => ConduitT (f a) o m (f a)
- Import.NoFoundation: async :: MonadUnliftIO m => m a -> m (Async a)
- Import.NoFoundation: asyncBound :: MonadUnliftIO m => m a -> m (Async a)
- Import.NoFoundation: asyncExceptionFromException :: Exception e => SomeException -> Maybe e
- Import.NoFoundation: asyncExceptionToException :: Exception e => e -> SomeException
- Import.NoFoundation: asyncOn :: MonadUnliftIO m => Int -> m a -> m (Async a)
- Import.NoFoundation: asyncOnWithUnmask :: MonadUnliftIO m => Int -> ((forall b. () => m b -> m b) -> m a) -> m (Async a)
- Import.NoFoundation: asyncWithUnmask :: MonadUnliftIO m => ((forall b. () => m b -> m b) -> m a) -> m (Async a)
- Import.NoFoundation: atan :: Floating a => a -> a
- Import.NoFoundation: atan2 :: RealFloat a => a -> a -> a
- Import.NoFoundation: atanh :: Floating a => a -> a
- Import.NoFoundation: atomicModifyIORef :: MonadIO m => IORef a -> (a -> (a, b)) -> m b
- Import.NoFoundation: atomicModifyIORef' :: MonadIO m => IORef a -> (a -> (a, b)) -> m b
- Import.NoFoundation: atomicModifyMutVar :: PrimMonad m => MutVar (PrimState m) a -> (a -> (a, b)) -> m b
- Import.NoFoundation: atomicModifyMutVar' :: PrimMonad m => MutVar (PrimState m) a -> (a -> (a, b)) -> m b
- Import.NoFoundation: atomicModifyRef :: (MutableAtomicRef c, PrimMonad m, PrimState m ~ MCState c) => c -> (RefElement c -> (RefElement c, a)) -> m a
- Import.NoFoundation: atomicModifyRef' :: (MutableAtomicRef c, PrimMonad m, PrimState m ~ MCState c) => c -> (RefElement c -> (RefElement c, a)) -> m a
- Import.NoFoundation: atomicWriteIORef :: MonadIO m => IORef a -> a -> m ()
- Import.NoFoundation: atomically :: MonadIO m => STM a -> m a
- Import.NoFoundation: authHttpManager :: (YesodAuth master, MonadHandler m, HandlerSite m ~ master) => m Manager
- Import.NoFoundation: authLayout :: (YesodAuth master, MonadHandler m, HandlerSite m ~ master) => WidgetFor master () -> m Html
- Import.NoFoundation: authPlugins :: YesodAuth master => master -> [AuthPlugin master]
- Import.NoFoundation: authRoute :: Yesod site => site -> Maybe (Route site)
- Import.NoFoundation: authenticate :: (YesodAuth master, MonadHandler m, HandlerSite m ~ master) => Creds master -> m (AuthenticationResult master)
- Import.NoFoundation: authenticatePassword :: Text -> Text -> DB (Maybe (Entity User))
- Import.NoFoundation: authorizationCheck :: Yesod site => HandlerFor site ()
- Import.NoFoundation: await :: forall (m :: Type -> Type) i o. Monad m => ConduitT i o m (Maybe i)
- Import.NoFoundation: awaitForever :: forall (m :: Type -> Type) i o r. Monad m => (i -> ConduitT i o m r) -> ConduitT i o m ()
- Import.NoFoundation: awaitNonNull :: forall (m :: Type -> Type) a o. (Monad m, MonoFoldable a) => ConduitT a o m (Maybe (NonNull a))
- Import.NoFoundation: badGateway502 :: Status
- Import.NoFoundation: badMethod :: MonadHandler m => m a
- Import.NoFoundation: badRequest400 :: Status
- Import.NoFoundation: base64md5 :: ByteString -> String
- Import.NoFoundation: belongsTo :: forall ent1 ent2 backend (m :: Type -> Type). (PersistStoreRead backend, PersistEntity ent1, PersistRecordBackend ent2 backend, MonadIO m) => (ent1 -> Maybe (Key ent2)) -> ent1 -> ReaderT backend m (Maybe ent2)
- Import.NoFoundation: belongsToJust :: forall ent1 ent2 backend (m :: Type -> Type). (PersistStoreRead backend, PersistEntity ent1, PersistRecordBackend ent2 backend, MonadIO m) => (ent1 -> Key ent2) -> ent1 -> ReaderT backend m ent2
- Import.NoFoundation: bimap :: Bifunctor p => (a -> b) -> (c -> d) -> p a c -> p b d
- Import.NoFoundation: bodyReaderSource :: forall (m :: Type -> Type) i. MonadIO m => BodyReader -> ConduitM i ByteString m ()
- Import.NoFoundation: bookmarkTofileBookmark :: Bookmark -> Text -> FileBookmark
- Import.NoFoundation: bookmarksTagsQuery :: Key User -> SharedP -> FilterP -> [Tag] -> Maybe Text -> Limit -> Page -> DB (Int, [(Entity Bookmark, Maybe Text)])
- Import.NoFoundation: bool :: a -> a -> Bool -> a
- Import.NoFoundation: boolField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Bool
- Import.NoFoundation: boolFromYesNo :: Text -> Bool
- Import.NoFoundation: boolToYesNo :: Bool -> Text
- Import.NoFoundation: brReadSome :: BodyReader -> Int -> IO ByteString
- Import.NoFoundation: bracket :: MonadUnliftIO m => m a -> (a -> m b) -> (a -> m c) -> m c
- Import.NoFoundation: bracketOnError :: MonadUnliftIO m => m a -> (a -> m b) -> (a -> m c) -> m c
- Import.NoFoundation: bracketOnError_ :: MonadUnliftIO m => m a -> m b -> m c -> m c
- Import.NoFoundation: bracketP :: forall (m :: Type -> Type) a i o r. MonadResource m => IO a -> (a -> IO ()) -> (a -> ConduitT i o m r) -> ConduitT i o m r
- Import.NoFoundation: bracket_ :: MonadUnliftIO m => m a -> m b -> m c -> m c
- Import.NoFoundation: breadcrumb :: YesodBreadcrumbs site => Route site -> HandlerFor site (Text, Maybe (Route site))
- Import.NoFoundation: breadcrumbs :: (YesodBreadcrumbs site, Show (Route site), Eq (Route site)) => HandlerFor site (Text, [(Route site, Text)])
- Import.NoFoundation: break :: IsSequence seq => (Element seq -> Bool) -> seq -> (seq, seq)
- Import.NoFoundation: breakLine :: Textual t => t -> (t, t)
- Import.NoFoundation: breakWord :: Textual t => t -> (t, t)
- Import.NoFoundation: builderToByteString :: forall (m :: Type -> Type). PrimMonad m => ConduitT Builder ByteString m ()
- Import.NoFoundation: builderToByteStringFlush :: forall (m :: Type -> Type). PrimMonad m => ConduitT (Flush Builder) (Flush ByteString) m ()
- Import.NoFoundation: builderToByteStringWith :: forall (m :: Type -> Type). PrimMonad m => BufferAllocStrategy -> ConduitT Builder ByteString m ()
- Import.NoFoundation: builderToByteStringWithFlush :: forall (m :: Type -> Type). PrimMonad m => BufferAllocStrategy -> ConduitT (Flush Builder) (Flush ByteString) m ()
- Import.NoFoundation: builderToLazy :: Builder builder lazy => builder -> lazy
- Import.NoFoundation: cacheByGet :: (MonadHandler m, Typeable a) => ByteString -> m (Maybe a)
- Import.NoFoundation: cacheBySet :: (MonadHandler m, Typeable a) => ByteString -> a -> m ()
- Import.NoFoundation: cacheGet :: (MonadHandler m, Typeable a) => m (Maybe a)
- Import.NoFoundation: cacheSeconds :: MonadHandler m => Int -> m ()
- Import.NoFoundation: cacheSet :: (MonadHandler m, Typeable a) => a -> m ()
- Import.NoFoundation: cached :: (MonadHandler m, Typeable a) => m a -> m a
- Import.NoFoundation: cachedBy :: (MonadHandler m, Typeable a) => ByteString -> m a -> m a
- Import.NoFoundation: cancel :: MonadIO m => Async a -> m ()
- Import.NoFoundation: cancelWith :: (Exception e, MonadIO m) => Async a -> e -> m ()
- Import.NoFoundation: cassius :: QuasiQuoter
- Import.NoFoundation: catMaybes :: (IsSequence (f (Maybe t)), Functor f, Element (f (Maybe t)) ~ Maybe t) => f (Maybe t) -> f t
- Import.NoFoundation: catch :: (MonadUnliftIO m, Exception e) => m a -> (e -> m a) -> m a
- Import.NoFoundation: catchAny :: MonadUnliftIO m => m a -> (SomeException -> m a) -> m a
- Import.NoFoundation: catchAnyDeep :: (NFData a, MonadUnliftIO m) => m a -> (SomeException -> m a) -> m a
- Import.NoFoundation: catchC :: forall (m :: Type -> Type) e i o r. (MonadUnliftIO m, Exception e) => ConduitT i o m r -> (e -> ConduitT i o m r) -> ConduitT i o m r
- Import.NoFoundation: catchCatchC :: forall (m :: Type -> Type) i o r. Monad m => ConduitT i o (CatchT m) r -> (SomeException -> ConduitT i o (CatchT m) r) -> ConduitT i o (CatchT m) r
- Import.NoFoundation: catchDeep :: (MonadUnliftIO m, Exception e, NFData a) => m a -> (e -> m a) -> m a
- Import.NoFoundation: catchExceptC :: forall (m :: Type -> Type) i o e r. Monad m => ConduitT i o (ExceptT e m) r -> (e -> ConduitT i o (ExceptT e m) r) -> ConduitT i o (ExceptT e m) r
- Import.NoFoundation: catchHandlerExceptions :: (Yesod site, MonadUnliftIO m) => site -> m a -> (SomeException -> m a) -> m a
- Import.NoFoundation: catchIO :: MonadUnliftIO m => m a -> (IOException -> m a) -> m a
- Import.NoFoundation: catchJust :: (MonadUnliftIO m, Exception e) => (e -> Maybe b) -> m a -> (b -> m a) -> m a
- Import.NoFoundation: catchSyncOrAsync :: (MonadUnliftIO m, Exception e) => m a -> (e -> m a) -> m a
- Import.NoFoundation: catches :: MonadUnliftIO m => m a -> [Handler m a] -> m a
- Import.NoFoundation: catchesDeep :: (MonadUnliftIO m, NFData a) => m a -> [Handler m a] -> m a
- Import.NoFoundation: ceiling :: (RealFrac a, Integral b) => a -> b
- Import.NoFoundation: charToLower :: Char -> Char
- Import.NoFoundation: charToUpper :: Char -> Char
- Import.NoFoundation: check :: forall (m :: Type -> Type) msg a. (Monad m, RenderMessage (HandlerSite m) msg) => (a -> Either msg a) -> Field m a -> Field m a
- Import.NoFoundation: checkBool :: forall (m :: Type -> Type) msg a. (Monad m, RenderMessage (HandlerSite m) msg) => (a -> Bool) -> msg -> Field m a -> Field m a
- Import.NoFoundation: checkBoxField :: forall (m :: Type -> Type). Monad m => Field m Bool
- Import.NoFoundation: checkCsrfHeaderNamed :: MonadHandler m => CI ByteString -> m ()
- Import.NoFoundation: checkCsrfHeaderOrParam :: (MonadHandler m, MonadLogger m) => CI ByteString -> Text -> m ()
- Import.NoFoundation: checkCsrfParamNamed :: MonadHandler m => Text -> m ()
- Import.NoFoundation: checkM :: (Monad m, RenderMessage (HandlerSite m) msg) => (a -> m (Either msg a)) -> Field m a -> Field m a
- Import.NoFoundation: checkMMap :: (Monad m, RenderMessage (HandlerSite m) msg) => (a -> m (Either msg b)) -> (b -> a) -> Field m a -> Field m b
- Import.NoFoundation: checkSTM :: Bool -> STM ()
- Import.NoFoundation: checkUnique :: forall record backend (m :: Type -> Type). (MonadIO m, PersistRecordBackend record backend, PersistUniqueRead backend) => record -> ReaderT backend m (Maybe (Unique record))
- Import.NoFoundation: checkUniqueUpdateable :: forall record backend (m :: Type -> Type). (MonadIO m, PersistRecordBackend record backend, PersistUniqueRead backend) => Entity record -> ReaderT backend m (Maybe (Unique record))
- Import.NoFoundation: checkboxesField :: Eq a => HandlerFor site (OptionList a) -> Field (HandlerFor site) [a]
- Import.NoFoundation: checkboxesFieldList :: (Eq a, RenderMessage site msg) => [(msg, a)] -> Field (HandlerFor site) [a]
- Import.NoFoundation: chunksOfCE :: forall (m :: Type -> Type) seq. (Monad m, IsSequence seq) => Index seq -> ConduitT seq seq m ()
- Import.NoFoundation: chunksOfExactlyCE :: forall (m :: Type -> Type) seq. (Monad m, IsSequence seq) => Index seq -> ConduitT seq seq m ()
- Import.NoFoundation: class Applicative f => Alternative (f :: Type -> Type)
- Import.NoFoundation: class Functor f => Applicative (f :: Type -> Type)
- Import.NoFoundation: class PersistEntity record => AtLeastOneUniqueKey record
- Import.NoFoundation: class () => BackendCompatible sup sub
- Import.NoFoundation: class () => BiPolyMap (map :: Type -> Type -> Type) where {
- Import.NoFoundation: class forall a. () => Functor p a => Bifunctor (p :: Type -> Type -> Type)
- Import.NoFoundation: class () => Bounded a
- Import.NoFoundation: class Monoid builder => Builder builder lazy | builder -> lazy, lazy -> builder
- Import.NoFoundation: class () => DatabaseName a
- Import.NoFoundation: class () => Default a
- Import.NoFoundation: class () => Enum a
- Import.NoFoundation: class () => Eq a
- Import.NoFoundation: class (Typeable e, Show e) => Exception e
- Import.NoFoundation: class Fractional a => Floating a
- Import.NoFoundation: class () => Foldable (t :: Type -> Type)
- Import.NoFoundation: class Num a => Fractional a
- Import.NoFoundation: class () => FromJSON a
- Import.NoFoundation: class () => Functor (f :: Type -> Type)
- Import.NoFoundation: class () => Generic a
- Import.NoFoundation: class MonoFoldable mono => GrowingAppend mono
- Import.NoFoundation: class HasConstructor (f :: Type -> Type)
- Import.NoFoundation: class ToTypedContent a => HasContentType a
- Import.NoFoundation: class () => HasHttpManager a
- Import.NoFoundation: class SetContainer set => HasKeysSet set where {
- Import.NoFoundation: class () => HasPersistBackend backend where {
- Import.NoFoundation: class Eq a => Hashable a
- Import.NoFoundation: class (Real a, Enum a) => Integral a
- Import.NoFoundation: class (MonoTraversable map, SetContainer map) => IsMap map where {
- Import.NoFoundation: class HasPersistBackend backend => IsPersistBackend backend
- Import.NoFoundation: class (Monoid seq, MonoTraversable seq, SemiSequence seq, MonoPointed seq) => IsSequence seq
- Import.NoFoundation: class (SetContainer set, Element set ~ ContainerKey set) => IsSet set
- Import.NoFoundation: class () => IsString a
- Import.NoFoundation: class (IsSequence lazy, IsSequence strict) => LazySequence lazy strict | lazy -> strict, strict -> lazy
- Import.NoFoundation: class Applicative m => Monad (m :: Type -> Type)
- Import.NoFoundation: class (MonadResource m, MonadLogger m) => MonadHandler (m :: Type -> Type) where {
- Import.NoFoundation: class Monad m => MonadIO (m :: Type -> Type)
- Import.NoFoundation: class Monad m => MonadLogger (m :: Type -> Type)
- Import.NoFoundation: class (Alternative m, Monad m) => MonadPlus (m :: Type -> Type)
- Import.NoFoundation: class Monad m => MonadReader r (m :: Type -> Type) | m -> r
- Import.NoFoundation: class MonadIO m => MonadResource (m :: Type -> Type)
- Import.NoFoundation: class Monad m => MonadThrow (m :: Type -> Type)
- Import.NoFoundation: class forall (m :: Type -> Type). Monad m => Monad t m => MonadTrans (t :: Type -> Type -> Type -> Type)
- Import.NoFoundation: class MonadIO m => MonadUnliftIO (m :: Type -> Type)
- Import.NoFoundation: class MonadHandler m => MonadWidget (m :: Type -> Type)
- Import.NoFoundation: class MonoFunctor mono => MonoComonad mono
- Import.NoFoundation: class () => MonoFoldable mono
- Import.NoFoundation: class () => MonoFunctor mono
- Import.NoFoundation: class () => MonoPointed mono
- Import.NoFoundation: class (MonoFunctor mono, MonoFoldable mono) => MonoTraversable mono
- Import.NoFoundation: class MonoFunctor mono => MonoZip mono
- Import.NoFoundation: class Semigroup a => Monoid a
- Import.NoFoundation: class MutableRef c => MutableAtomicRef c
- Import.NoFoundation: class MutableContainer c => MutableCollection c where {
- Import.NoFoundation: class () => MutableContainer c where {
- Import.NoFoundation: class MutableCollection c => MutablePopBack c
- Import.NoFoundation: class MutableCollection c => MutablePopFront c
- Import.NoFoundation: class MutableCollection c => MutablePushBack c
- Import.NoFoundation: class MutableCollection c => MutablePushFront c
- Import.NoFoundation: class MutableContainer c => MutableRef c where {
- Import.NoFoundation: class () => NFData a
- Import.NoFoundation: class () => Num a
- Import.NoFoundation: class PersistEntity record => OnlyOneUniqueKey record
- Import.NoFoundation: class Eq a => Ord a
- Import.NoFoundation: class RenderRoute a => ParseRoute a
- Import.NoFoundation: class () => PathMultiPiece s
- Import.NoFoundation: class () => PathPiece s
- Import.NoFoundation: class () => PersistConfig c where {
- Import.NoFoundation: class () => PersistCore backend where {
- Import.NoFoundation: class (PersistField Key record, ToJSON Key record, FromJSON Key record, Show Key record, Read Key record, Eq Key record, Ord Key record) => PersistEntity record where {
- Import.NoFoundation: class () => PersistField a
- Import.NoFoundation: class (PersistCore backend, PersistStoreRead backend) => PersistQueryRead backend
- Import.NoFoundation: class (PersistQueryRead backend, PersistStoreWrite backend) => PersistQueryWrite backend
- Import.NoFoundation: class (Show BackendKey backend, Read BackendKey backend, Eq BackendKey backend, Ord BackendKey backend, PersistCore backend, PersistField BackendKey backend, ToJSON BackendKey backend, FromJSON BackendKey backend) => PersistStoreRead backend
- Import.NoFoundation: class (Show BackendKey backend, Read BackendKey backend, Eq BackendKey backend, Ord BackendKey backend, PersistStoreRead backend, PersistField BackendKey backend, ToJSON BackendKey backend, FromJSON BackendKey backend) => PersistStoreWrite backend
- Import.NoFoundation: class PersistStoreRead backend => PersistUniqueRead backend
- Import.NoFoundation: class (PersistUniqueRead backend, PersistStoreWrite backend) => PersistUniqueWrite backend
- Import.NoFoundation: class () => PolyMap (map :: Type -> Type)
- Import.NoFoundation: class () => Prim a
- Import.NoFoundation: class Monad m => PrimMonad (m :: Type -> Type) where {
- Import.NoFoundation: class () => QueryLike a
- Import.NoFoundation: class () => RawJS a
- Import.NoFoundation: class () => Read a
- Import.NoFoundation: class (Num a, Ord a) => Real a
- Import.NoFoundation: class (RealFrac a, Floating a) => RealFloat a
- Import.NoFoundation: class (Real a, Fractional a) => RealFrac a
- Import.NoFoundation: class () => RedirectUrl master a
- Import.NoFoundation: class () => RenderMessage master message
- Import.NoFoundation: class Eq Route a => RenderRoute a where {
- Import.NoFoundation: class RenderRoute a => RouteAttrs a
- Import.NoFoundation: class () => SafeToInsert a
- Import.NoFoundation: class (Integral Index seq, GrowingAppend seq) => SemiSequence seq where {
- Import.NoFoundation: class () => Semigroup a
- Import.NoFoundation: class (Monoid set, Semigroup set, MonoFoldable set, Eq ContainerKey set, GrowingAppend set) => SetContainer set where {
- Import.NoFoundation: class () => Show a
- Import.NoFoundation: class () => Storable a
- Import.NoFoundation: class () => SymbolToField (sym :: Symbol) rec typ | sym rec -> typ
- Import.NoFoundation: class (IsSequence t, IsString t, Element t ~ Char) => Textual t
- Import.NoFoundation: class (PersistEntity record, PersistEntityBackend record ~ backend, PersistCore backend) => ToBackendKey backend record
- Import.NoFoundation: class () => ToBuilder value builder
- Import.NoFoundation: class () => ToContent a
- Import.NoFoundation: class () => ToFlushBuilder a
- Import.NoFoundation: class () => ToJSON a
- Import.NoFoundation: class () => ToJavascript a
- Import.NoFoundation: class () => ToMessage a
- Import.NoFoundation: class ToContent a => ToTypedContent a
- Import.NoFoundation: class () => ToWidget site a
- Import.NoFoundation: class () => ToWidgetBody site a
- Import.NoFoundation: class () => ToWidgetHead site a
- Import.NoFoundation: class () => ToWidgetMedia site a
- Import.NoFoundation: class (Functor t, Foldable t) => Traversable (t :: Type -> Type)
- Import.NoFoundation: class () => Typeable (a :: k)
- Import.NoFoundation: class (Vector Vector a, MVector MVector a) => Unbox a
- Import.NoFoundation: class (Textual textual, IsSequence binary) => Utf8 textual binary | textual -> binary, binary -> textual
- Import.NoFoundation: class RenderRoute site => Yesod site
- Import.NoFoundation: class (Yesod master, PathPiece AuthId master, RenderMessage master FormMessage) => YesodAuth master where {
- Import.NoFoundation: class (YesodAuth master, YesodPersist master) => YesodAuthPersist master where {
- Import.NoFoundation: class () => YesodBreadcrumbs site
- Import.NoFoundation: class Yesod site => YesodDispatch site
- Import.NoFoundation: class Monad YesodDB site => YesodPersist site where {
- Import.NoFoundation: class YesodPersist site => YesodPersistRunner site
- Import.NoFoundation: class () => YesodSubDispatch sub master
- Import.NoFoundation: cleanPath :: Yesod site => site -> [Text] -> Either [Text] [Text]
- Import.NoFoundation: clearCreds :: (MonadHandler m, YesodAuth (HandlerSite m)) => Bool -> m ()
- Import.NoFoundation: clearSession :: MonadHandler m => m ()
- Import.NoFoundation: clearUltDest :: MonadHandler m => m ()
- Import.NoFoundation: clientSessionBackend :: Key -> IO ClientSessionDateCache -> SessionBackend
- Import.NoFoundation: clientSessionDateCacher :: NominalDiffTime -> IO (IO ClientSessionDateCache, IO ())
- Import.NoFoundation: cloneTChan :: TChan a -> STM (TChan a)
- Import.NoFoundation: closeTBMChan :: TBMChan a -> STM ()
- Import.NoFoundation: closeTBMQueue :: TBMQueue a -> STM ()
- Import.NoFoundation: closeTMChan :: TMChan a -> STM ()
- Import.NoFoundation: closeTMQueue :: TMQueue a -> STM ()
- Import.NoFoundation: colorField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Text
- Import.NoFoundation: combineScripts :: Name -> [Route Static] -> Q Exp
- Import.NoFoundation: combineScripts' :: Bool -> CombineSettings -> Name -> [Route Static] -> Q Exp
- Import.NoFoundation: combineSettings :: CombineSettings
- Import.NoFoundation: combineStylesheets :: Name -> [Route Static] -> Q Exp
- Import.NoFoundation: combineStylesheets' :: Bool -> CombineSettings -> Name -> [Route Static] -> Q Exp
- Import.NoFoundation: compare :: Ord a => a -> a -> Ordering
- Import.NoFoundation: compareCookies :: Cookie -> Cookie -> Ordering
- Import.NoFoundation: compareLength :: (MonoFoldable mono, Integral i) => mono -> i -> Ordering
- Import.NoFoundation: comparing :: Ord a => (b -> a) -> b -> b -> Ordering
- Import.NoFoundation: compileTimeAppSettings :: AppSettings
- Import.NoFoundation: computeCookieString :: Request -> CookieJar -> UTCTime -> Bool -> (ByteString, CookieJar)
- Import.NoFoundation: conc :: m a -> Conc m a
- Import.NoFoundation: concat :: (MonoFoldable mono, Monoid (Element mono)) => mono -> Element mono
- Import.NoFoundation: concatC :: forall (m :: Type -> Type) mono. (Monad m, MonoFoldable mono) => ConduitT mono (Element mono) m ()
- Import.NoFoundation: concatMap :: (MonoFoldable mono, Monoid m) => (Element mono -> m) -> mono -> m
- Import.NoFoundation: concatMapAccumC :: forall (m :: Type -> Type) a accum b. Monad m => (a -> accum -> (accum, [b])) -> accum -> ConduitT a b m ()
- Import.NoFoundation: concatMapAccumMC :: Monad m => (a -> accum -> m (accum, [b])) -> accum -> ConduitT a b m ()
- Import.NoFoundation: concatMapC :: forall (m :: Type -> Type) mono a. (Monad m, MonoFoldable mono) => (a -> mono) -> ConduitT a (Element mono) m ()
- Import.NoFoundation: concatMapCE :: forall (m :: Type -> Type) mono w. (Monad m, MonoFoldable mono, Monoid w) => (Element mono -> w) -> ConduitT mono w m ()
- Import.NoFoundation: concatMapMC :: (Monad m, MonoFoldable mono) => (a -> m mono) -> ConduitT a (Element mono) m ()
- Import.NoFoundation: concurrently :: MonadUnliftIO m => m a -> m b -> m (a, b)
- Import.NoFoundation: concurrently_ :: MonadUnliftIO m => m a -> m b -> m ()
- Import.NoFoundation: conduitVector :: forall v a (m :: Type -> Type). (Vector v a, PrimMonad m) => Int -> ConduitT a (v a) m ()
- Import.NoFoundation: configSettingsYml :: FilePath
- Import.NoFoundation: configSettingsYmlBS :: ByteString
- Import.NoFoundation: configSettingsYmlValue :: Value
- Import.NoFoundation: conflict409 :: Status
- Import.NoFoundation: connect :: Monad m => ConduitT () a m () -> ConduitT a Void m r -> m r
- Import.NoFoundation: cons :: SemiSequence seq => Element seq -> seq -> seq
- Import.NoFoundation: const :: a -> b -> a
- Import.NoFoundation: constrName :: (HasConstructor (Rep a), Generic a) => a -> String
- Import.NoFoundation: contentTypeHeaderIsJson :: ByteString -> Bool
- Import.NoFoundation: contentTypeTypes :: ContentType -> (ByteString, ByteString)
- Import.NoFoundation: continue100 :: Status
- Import.NoFoundation: convertField :: forall (m :: Type -> Type) a b. Functor m => (a -> b) -> (b -> a) -> Field m a -> Field m b
- Import.NoFoundation: cos :: Floating a => a -> a
- Import.NoFoundation: cosh :: Floating a => a -> a
- Import.NoFoundation: count :: forall (m :: Type -> Type) record. (PersistQueryRead backend, MonadIO m, PersistRecordBackend record backend) => [Filter record] -> ReaderT backend m Int
- Import.NoFoundation: cpprint :: (MonadIO m, Show a) => a -> m ()
- Import.NoFoundation: cprint :: (MonadIO m, Show a) => a -> m ()
- Import.NoFoundation: createCookieJar :: [Cookie] -> CookieJar
- Import.NoFoundation: createPoolConfig :: PersistConfig c => c -> IO (PersistConfigPool c)
- Import.NoFoundation: created201 :: Status
- Import.NoFoundation: credsKey :: Text
- Import.NoFoundation: csrfCheckMiddleware :: HandlerFor site res -> HandlerFor site Bool -> CI ByteString -> Text -> HandlerFor site res
- Import.NoFoundation: csrfSetCookieMiddleware :: HandlerFor site res -> SetCookie -> HandlerFor site res
- Import.NoFoundation: css_main_css :: StaticRoute
- Import.NoFoundation: css_popup_css :: StaticRoute
- Import.NoFoundation: css_tachyons_min_css :: StaticRoute
- Import.NoFoundation: css_tachyons_min_css_gz :: StaticRoute
- Import.NoFoundation: curry :: ((a, b) -> c) -> a -> b -> c
- Import.NoFoundation: customErrorMessage :: forall (m :: Type -> Type) a. Monad m => SomeMessage (HandlerSite m) -> Field m a -> Field m a
- Import.NoFoundation: customizeSessionCookies :: (SetCookie -> SetCookie) -> SessionBackend -> SessionBackend
- Import.NoFoundation: data AccountSettingsForm
- Import.NoFoundation: data () => Acquire a
- Import.NoFoundation: data AppSettings
- Import.NoFoundation: data () => Approot master
- Import.NoFoundation: data () => Async a
- Import.NoFoundation: data () => AsyncCancelled
- Import.NoFoundation: data () => AsyncExceptionWrapper
- Import.NoFoundation: data () => Auth
- Import.NoFoundation: data () => AuthException
- Import.NoFoundation: data () => AuthPlugin master
- Import.NoFoundation: data () => AuthResult
- Import.NoFoundation: data () => AuthenticationResult master
- Import.NoFoundation: data () => BRef s a
- Import.NoFoundation: data Bookmark
- Import.NoFoundation: data BookmarkForm
- Import.NoFoundation: data BookmarkTag
- Import.NoFoundation: data () => Bool
- Import.NoFoundation: data () => BufferMode
- Import.NoFoundation: data () => ByteRange
- Import.NoFoundation: data () => ByteString
- Import.NoFoundation: data () => CascadeAction
- Import.NoFoundation: data () => Chan a
- Import.NoFoundation: data () => Char
- Import.NoFoundation: data () => Checkmark
- Import.NoFoundation: data () => CombineSettings
- Import.NoFoundation: data () => CompositeDef
- Import.NoFoundation: data () => Conc (m :: Type -> Type) a
- Import.NoFoundation: data () => ConcException
- Import.NoFoundation: data () => ConduitT i o (m :: Type -> Type) r
- Import.NoFoundation: data () => Content
- Import.NoFoundation: data () => Cookie
- Import.NoFoundation: data () => CookieJar
- Import.NoFoundation: data () => Creds master
- Import.NoFoundation: data () => DLList s a
- Import.NoFoundation: data () => DList a
- Import.NoFoundation: data () => Deque (v :: Type -> Type -> Type) s a
- Import.NoFoundation: data () => Double
- Import.NoFoundation: data () => Either a b
- Import.NoFoundation: data () => EmbedEntityDef
- Import.NoFoundation: data () => EmbedFieldDef
- Import.NoFoundation: data () => Enctype
- Import.NoFoundation: data () => Entity record
- Import.NoFoundation: data () => EntityDef
- Import.NoFoundation: data () => EntityIdDef
- Import.NoFoundation: data () => EntityJSON
- Import.NoFoundation: data () => EntryCategory
- Import.NoFoundation: data () => EntryEnclosure url
- Import.NoFoundation: data () => EnvUsage
- Import.NoFoundation: data () => ErrorResponse
- Import.NoFoundation: data () => EscapeItem
- Import.NoFoundation: data FFBookmarkNode
- Import.NoFoundation: data () => Feed url
- Import.NoFoundation: data () => FeedEntry url
- Import.NoFoundation: data () => Field (m :: Type -> Type) a
- Import.NoFoundation: data () => FieldAttr
- Import.NoFoundation: data () => FieldCascade
- Import.NoFoundation: data () => FieldDef
- Import.NoFoundation: data () => FieldSettings master
- Import.NoFoundation: data () => FieldType
- Import.NoFoundation: data () => FieldView site
- Import.NoFoundation: data FileBookmark
- Import.NoFoundation: data () => FileInfo
- Import.NoFoundation: data FileNote
- Import.NoFoundation: data () => FileUpload
- Import.NoFoundation: data () => Filter record
- Import.NoFoundation: data FilterP
- Import.NoFoundation: data () => FilterValue typ
- Import.NoFoundation: data () => Float
- Import.NoFoundation: data () => Flush a
- Import.NoFoundation: data () => ForeignDef
- Import.NoFoundation: data () => FormMessage
- Import.NoFoundation: data () => FormResult a
- Import.NoFoundation: data () => Fragment a b
- Import.NoFoundation: data () => Handle
- Import.NoFoundation: data () => HandlerFor site a
- Import.NoFoundation: data () => HashMap k v
- Import.NoFoundation: data () => HashSet a
- Import.NoFoundation: data () => HistoriedResponse body
- Import.NoFoundation: data () => HttpException
- Import.NoFoundation: data () => HttpExceptionContent
- Import.NoFoundation: data () => HttpVersion
- Import.NoFoundation: data () => IO a
- Import.NoFoundation: data () => IOErrorType
- Import.NoFoundation: data () => IOException
- Import.NoFoundation: data () => IOMode
- Import.NoFoundation: data () => IORef a
- Import.NoFoundation: data () => ImplicitIdDef
- Import.NoFoundation: data () => Int
- Import.NoFoundation: data () => Int32
- Import.NoFoundation: data () => Int64
- Import.NoFoundation: data () => IntMap a
- Import.NoFoundation: data () => IntSet
- Import.NoFoundation: data () => Integer
- Import.NoFoundation: data () => Ints
- Import.NoFoundation: data () => IsNullable
- Import.NoFoundation: data () => LiteralType
- Import.NoFoundation: data () => LogLevel
- Import.NoFoundation: data () => MVar a
- Import.NoFoundation: data () => Manager
- Import.NoFoundation: data () => ManagerSettings
- Import.NoFoundation: data () => Map k a
- Import.NoFoundation: data () => Maybe a
- Import.NoFoundation: data () => Memoized a
- Import.NoFoundation: data () => MkPersistSettings
- Import.NoFoundation: data () => MutVar s a
- Import.NoFoundation: data () => NonNull mono
- Import.NoFoundation: data Note
- Import.NoFoundation: data () => Option a
- Import.NoFoundation: data () => OptionList a
- Import.NoFoundation: data () => Ordering
- Import.NoFoundation: data () => PRef s a
- Import.NoFoundation: data () => PageContent url
- Import.NoFoundation: data () => PersistException
- Import.NoFoundation: data () => PersistFilter
- Import.NoFoundation: data () => PersistUpdate
- Import.NoFoundation: data () => PersistValue
- Import.NoFoundation: data () => ProvidedRep (m :: Type -> Type)
- Import.NoFoundation: data () => Proxy
- Import.NoFoundation: data () => ProxyOverride
- Import.NoFoundation: data () => QSem
- Import.NoFoundation: data () => QSemN
- Import.NoFoundation: data RealWorld
- Import.NoFoundation: data () => ReferenceDef
- Import.NoFoundation: data () => ReleaseType
- Import.NoFoundation: data () => Request
- Import.NoFoundation: data () => RequestBody
- Import.NoFoundation: data () => ResourceT (m :: Type -> Type) a
- Import.NoFoundation: data () => Response body
- Import.NoFoundation: data () => ResponseTimeout
- Import.NoFoundation: data () => RouteOpts
- Import.NoFoundation: data () => SRef s a
- Import.NoFoundation: data () => STM a
- Import.NoFoundation: data () => STRef s a
- Import.NoFoundation: data () => ScriptLoadPosition master
- Import.NoFoundation: data () => SealedConduitT i o (m :: Type -> Type) r
- Import.NoFoundation: data () => SeekMode
- Import.NoFoundation: data () => SelectOpt record
- Import.NoFoundation: data () => Seq a
- Import.NoFoundation: data () => Set a
- Import.NoFoundation: data SharedP
- Import.NoFoundation: data () => SomeAsyncException
- Import.NoFoundation: data () => SomeException
- Import.NoFoundation: data () => SomeMessage master
- Import.NoFoundation: data () => SqlBackend
- Import.NoFoundation: data () => SqlType
- Import.NoFoundation: data () => Status
- Import.NoFoundation: data () => StdMethod
- Import.NoFoundation: data () => StreamFileStatus
- Import.NoFoundation: data () => StringException
- Import.NoFoundation: data () => SubHandlerFor sub master a
- Import.NoFoundation: data () => SyncExceptionWrapper
- Import.NoFoundation: data () => TBChan a
- Import.NoFoundation: data () => TBMChan a
- Import.NoFoundation: data () => TBMQueue a
- Import.NoFoundation: data () => TBQueue a
- Import.NoFoundation: data () => TChan a
- Import.NoFoundation: data () => TMChan a
- Import.NoFoundation: data () => TMQueue a
- Import.NoFoundation: data () => TMVar a
- Import.NoFoundation: data () => TQueue a
- Import.NoFoundation: data () => TVar a
- Import.NoFoundation: data TagCloudMode
- Import.NoFoundation: data () => Text
- Import.NoFoundation: data () => TypedContent
- Import.NoFoundation: data () => URef s a
- Import.NoFoundation: data () => UTCTime
- Import.NoFoundation: data () => UniqueDef
- Import.NoFoundation: data () => Update record
- Import.NoFoundation: data () => UpdateException
- Import.NoFoundation: data UpsertResult a
- Import.NoFoundation: data User
- Import.NoFoundation: data () => Value
- Import.NoFoundation: data () => Vector a
- Import.NoFoundation: data () => Void
- Import.NoFoundation: data () => WhyNullable
- Import.NoFoundation: data () => WidgetFor site a
- Import.NoFoundation: data () => Word
- Import.NoFoundation: data () => Word32
- Import.NoFoundation: data () => Word64
- Import.NoFoundation: data () => Word8
- Import.NoFoundation: data () => WrappedMono mono a
- Import.NoFoundation: data () => WrappedMonoid m
- Import.NoFoundation: data () => YesodRequest
- Import.NoFoundation: data family Route a
- Import.NoFoundation: datetimeLocalField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m LocalTime
- Import.NoFoundation: dayField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Day
- Import.NoFoundation: decodeFloat :: RealFloat a => a -> (Integer, Int)
- Import.NoFoundation: decodePath :: ByteString -> ([Text], Query)
- Import.NoFoundation: decodePathSegments :: ByteString -> [Text]
- Import.NoFoundation: decodeUtf8 :: Utf8 textual binary => binary -> textual
- Import.NoFoundation: decodeUtf8C :: forall (m :: Type -> Type). MonadThrow m => ConduitT ByteString Text m ()
- Import.NoFoundation: decodeUtf8LenientC :: forall (m :: Type -> Type). Monad m => ConduitT ByteString Text m ()
- Import.NoFoundation: deepseq :: NFData a => a -> b -> b
- Import.NoFoundation: def :: Default a => a
- Import.NoFoundation: defaultClientSessionBackend :: Int -> FilePath -> IO SessionBackend
- Import.NoFoundation: defaultCons :: IsSequence seq => Element seq -> seq -> seq
- Import.NoFoundation: defaultCsrfCheckMiddleware :: Yesod site => HandlerFor site res -> HandlerFor site res
- Import.NoFoundation: defaultCsrfCookieName :: ByteString
- Import.NoFoundation: defaultCsrfHeaderName :: CI ByteString
- Import.NoFoundation: defaultCsrfMiddleware :: Yesod site => HandlerFor site res -> HandlerFor site res
- Import.NoFoundation: defaultCsrfParamName :: Text
- Import.NoFoundation: defaultCsrfSetCookieMiddleware :: HandlerFor site res -> HandlerFor site res
- Import.NoFoundation: defaultErrorHandler :: Yesod site => ErrorResponse -> HandlerFor site TypedContent
- Import.NoFoundation: defaultFind :: MonoFoldable seq => (Element seq -> Bool) -> seq -> Maybe (Element seq)
- Import.NoFoundation: defaultFormMessage :: FormMessage -> Text
- Import.NoFoundation: defaultGen :: IO Int
- Import.NoFoundation: defaultGetDBRunner :: (IsSqlBackend backend, YesodPersistBackend site ~ backend) => (site -> Pool backend) -> HandlerFor site (DBRunner site, HandlerFor site ())
- Import.NoFoundation: defaultIntersperse :: IsSequence seq => Element seq -> seq -> seq
- Import.NoFoundation: defaultLayout :: Yesod site => WidgetFor site () -> HandlerFor site Html
- Import.NoFoundation: defaultLayoutJson :: (Yesod site, ToJSON a) => WidgetFor site () -> HandlerFor site a -> HandlerFor site TypedContent
- Import.NoFoundation: defaultLoginHandler :: MonadAuthHandler master m => m Html
- Import.NoFoundation: defaultMakeLogger :: IO Logger
- Import.NoFoundation: defaultManagerSettings :: ManagerSettings
- Import.NoFoundation: defaultMaybeAuthId :: (MonadHandler m, HandlerSite m ~ master, YesodAuthPersist master, Typeable (AuthEntity master)) => m (Maybe (AuthId master))
- Import.NoFoundation: defaultMessageLoggerSource :: (LogSource -> LogLevel -> IO Bool) -> Logger -> Loc -> LogSource -> LogLevel -> LogStr -> IO ()
- Import.NoFoundation: defaultMessageWidget :: Yesod site => Html -> HtmlUrl (Route site) -> WidgetFor site ()
- Import.NoFoundation: defaultMiddlewaresNoLogging :: Middleware
- Import.NoFoundation: defaultOpts :: RouteOpts
- Import.NoFoundation: defaultPath :: Request -> ByteString
- Import.NoFoundation: defaultProxy :: ProxyOverride
- Import.NoFoundation: defaultRequest :: Request
- Import.NoFoundation: defaultReverse :: IsSequence seq => seq -> seq
- Import.NoFoundation: defaultRunDB :: PersistConfig c => (site -> c) -> (site -> PersistConfigPool c) -> PersistConfigBackend c (HandlerFor site) a -> HandlerFor site a
- Import.NoFoundation: defaultShouldLogIO :: LogSource -> LogLevel -> IO Bool
- Import.NoFoundation: defaultSnoc :: IsSequence seq => seq -> Element seq -> seq
- Import.NoFoundation: defaultSortBy :: IsSequence seq => (Element seq -> Element seq -> Ordering) -> seq -> seq
- Import.NoFoundation: defaultSplitWhen :: IsSequence seq => (Element seq -> Bool) -> seq -> [seq]
- Import.NoFoundation: defaultTimeLocale :: TimeLocale
- Import.NoFoundation: defaultYesodMiddleware :: Yesod site => HandlerFor site res -> HandlerFor site res
- Import.NoFoundation: delete :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend) => Key record -> ReaderT backend m ()
- Import.NoFoundation: deleteBy :: forall record (m :: Type -> Type). (PersistUniqueWrite backend, MonadIO m, PersistRecordBackend record backend) => Unique record -> ReaderT backend m ()
- Import.NoFoundation: deleteCookie :: MonadHandler m => Text -> Text -> m ()
- Import.NoFoundation: deleteMap :: IsMap map => ContainerKey map -> map -> map
- Import.NoFoundation: deleteSession :: MonadHandler m => Text -> m ()
- Import.NoFoundation: deleteSet :: IsSet set => Element set -> set -> set
- Import.NoFoundation: deleteWhere :: forall (m :: Type -> Type) record. (PersistQueryWrite backend, MonadIO m, PersistRecordBackend record backend) => [Filter record] -> ReaderT backend m ()
- Import.NoFoundation: derivePersistField :: String -> Q [Dec]
- Import.NoFoundation: derivePersistFieldJSON :: String -> Q [Dec]
- Import.NoFoundation: destroyCookieJar :: CookieJar -> [Cookie]
- Import.NoFoundation: develMainHelper :: IO (Settings, Application) -> IO ()
- Import.NoFoundation: difference :: SetContainer set => set -> set -> set
- Import.NoFoundation: differenceMap :: PolyMap map => map value1 -> map value2 -> map value1
- Import.NoFoundation: discoverEntities :: Q Exp
- Import.NoFoundation: dispatchTo :: ToTypedContent a => LiteHandler a -> Writer LiteApp ()
- Import.NoFoundation: displayException :: Exception e => e -> String
- Import.NoFoundation: div :: Integral a => a -> a -> a
- Import.NoFoundation: divMod :: Integral a => a -> a -> (a, a)
- Import.NoFoundation: doesNotExistErrorType :: IOErrorType
- Import.NoFoundation: domainMatches :: ByteString -> ByteString -> Bool
- Import.NoFoundation: doubleField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Double
- Import.NoFoundation: drop :: IsSequence seq => Index seq -> seq -> seq
- Import.NoFoundation: dropC :: forall (m :: Type -> Type) a o. Monad m => Int -> ConduitT a o m ()
- Import.NoFoundation: dropCE :: forall (m :: Type -> Type) seq o. (Monad m, IsSequence seq) => Index seq -> ConduitT seq o m ()
- Import.NoFoundation: dropEnd :: IsSequence seq => Index seq -> seq -> seq
- Import.NoFoundation: dropPrefix :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> seq
- Import.NoFoundation: dropSuffix :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> seq
- Import.NoFoundation: dropWhile :: IsSequence seq => (Element seq -> Bool) -> seq -> seq
- Import.NoFoundation: dropWhileC :: forall (m :: Type -> Type) a o. Monad m => (a -> Bool) -> ConduitT a o m ()
- Import.NoFoundation: dropWhileCE :: forall (m :: Type -> Type) seq o. (Monad m, IsSequence seq) => (Element seq -> Bool) -> ConduitT seq o m ()
- Import.NoFoundation: dumpMigration :: DB ()
- Import.NoFoundation: dupChan :: MonadIO m => Chan a -> m (Chan a)
- Import.NoFoundation: dupTChan :: TChan a -> STM (TChan a)
- Import.NoFoundation: dupTMChan :: TMChan a -> STM (TMChan a)
- Import.NoFoundation: either :: (a -> c) -> (b -> c) -> Either a b -> c
- Import.NoFoundation: elem :: (MonoFoldable mono, Eq (Element mono)) => Element mono -> mono -> Bool
- Import.NoFoundation: elemC :: forall (m :: Type -> Type) a o. (Monad m, Eq a) => a -> ConduitT a o m Bool
- Import.NoFoundation: elemCE :: forall (m :: Type -> Type) seq o. (Monad m, IsSequence seq, Eq (Element seq)) => Element seq -> ConduitT seq o m Bool
- Import.NoFoundation: emailField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Text
- Import.NoFoundation: embed :: FilePath -> Q Exp
- Import.NoFoundation: embedEntityDefs :: [EntityDef] -> [UnboundEntityDef] -> [UnboundEntityDef]
- Import.NoFoundation: empty :: Alternative f => f a
- Import.NoFoundation: emptyContent :: Content
- Import.NoFoundation: encodeFloat :: RealFloat a => Integer -> Int -> a
- Import.NoFoundation: encodePath :: [Text] -> Query -> Builder
- Import.NoFoundation: encodePathSegments :: [Text] -> Builder
- Import.NoFoundation: encodePathSegmentsRelative :: [Text] -> Builder
- Import.NoFoundation: encodeUtf8 :: Utf8 textual binary => textual -> binary
- Import.NoFoundation: encodeUtf8C :: forall (m :: Type -> Type) text binary. (Monad m, Utf8 text binary) => ConduitT text binary m ()
- Import.NoFoundation: ensurePrefix :: (Eq (Element seq), IsSequence seq) => seq -> seq -> seq
- Import.NoFoundation: ensureSuffix :: (Eq (Element seq), IsSequence seq) => seq -> seq -> seq
- Import.NoFoundation: entitiesPrimary :: EntityDef -> NonEmpty FieldDef
- Import.NoFoundation: entityDef :: PersistEntity record => proxy record -> EntityDef
- Import.NoFoundation: entityDefListFormigrateSchema :: [EntityDef]
- Import.NoFoundation: entityIdFromJSON :: (PersistEntity record, FromJSON record) => Value -> Parser (Entity record)
- Import.NoFoundation: entityIdToJSON :: (PersistEntity record, ToJSON record) => Entity record -> Value
- Import.NoFoundation: entityPrimary :: EntityDef -> Maybe CompositeDef
- Import.NoFoundation: entityValues :: PersistEntity record => Entity record -> [PersistValue]
- Import.NoFoundation: enumFrom :: Enum a => a -> [a]
- Import.NoFoundation: enumFromThen :: Enum a => a -> a -> [a]
- Import.NoFoundation: enumFromThenTo :: Enum a => a -> a -> a -> [a]
- Import.NoFoundation: enumFromTo :: Enum a => a -> a -> [a]
- Import.NoFoundation: enumFromToC :: forall (m :: Type -> Type) a i. (Monad m, Enum a, Ord a) => a -> a -> ConduitT i a m ()
- Import.NoFoundation: envClientSessionBackend :: Int -> String -> IO SessionBackend
- Import.NoFoundation: eofErrorType :: IOErrorType
- Import.NoFoundation: equalCookie :: Cookie -> Cookie -> Bool
- Import.NoFoundation: equalCookieJar :: CookieJar -> CookieJar -> Bool
- Import.NoFoundation: equating :: Eq a => (b -> a) -> b -> b -> Bool
- Import.NoFoundation: equivCookie :: Cookie -> Cookie -> Bool
- Import.NoFoundation: equivCookieJar :: CookieJar -> CookieJar -> Bool
- Import.NoFoundation: error :: forall (r :: RuntimeRep) (a :: TYPE r). HasCallStack => [Char] -> a
- Import.NoFoundation: errorHandler :: Yesod site => ErrorResponse -> HandlerFor site TypedContent
- Import.NoFoundation: escapeWith :: DatabaseName a => (Text -> str) -> a -> str
- Import.NoFoundation: estimateFreeSlotsTBChan :: TBChan a -> STM Int
- Import.NoFoundation: estimateFreeSlotsTBMChan :: TBMChan a -> STM Int
- Import.NoFoundation: estimateFreeSlotsTBMQueue :: TBMQueue a -> STM Int
- Import.NoFoundation: evalRWSC :: forall (m :: Type -> Type) w r s i o res. (Monad m, Monoid w) => r -> s -> ConduitT i o (RWST r w s m) res -> ConduitT i o m (res, w)
- Import.NoFoundation: evalRWSLC :: forall (m :: Type -> Type) w r s i o res. (Monad m, Monoid w) => r -> s -> ConduitT i o (RWST r w s m) res -> ConduitT i o m (res, w)
- Import.NoFoundation: evalStateC :: forall (m :: Type -> Type) s i o r. Monad m => s -> ConduitT i o (StateT s m) r -> ConduitT i o m r
- Import.NoFoundation: evalStateLC :: forall (m :: Type -> Type) s i o r. Monad m => s -> ConduitT i o (StateT s m) r -> ConduitT i o m r
- Import.NoFoundation: evaluate :: MonadIO m => a -> m a
- Import.NoFoundation: evaluateDeep :: (MonadIO m, NFData a) => a -> m a
- Import.NoFoundation: even :: Integral a => a -> Bool
- Import.NoFoundation: evictExpiredCookies :: CookieJar -> UTCTime -> CookieJar
- Import.NoFoundation: exceptC :: forall (m :: Type -> Type) i o e a. Monad m => ConduitT i o m (Either e a) -> ConduitT i o (ExceptT e m) a
- Import.NoFoundation: exceptToMaybeT :: forall (m :: Type -> Type) e a. Functor m => ExceptT e m a -> MaybeT m a
- Import.NoFoundation: execRWSC :: forall (m :: Type -> Type) w r s i o res. (Monad m, Monoid w) => r -> s -> ConduitT i o (RWST r w s m) res -> ConduitT i o m (s, w)
- Import.NoFoundation: execRWSLC :: forall (m :: Type -> Type) w r s i o res. (Monad m, Monoid w) => r -> s -> ConduitT i o (RWST r w s m) res -> ConduitT i o m (s, w)
- Import.NoFoundation: execStateC :: forall (m :: Type -> Type) s i o r. Monad m => s -> ConduitT i o (StateT s m) r -> ConduitT i o m s
- Import.NoFoundation: execStateLC :: forall (m :: Type -> Type) s i o r. Monad m => s -> ConduitT i o (StateT s m) r -> ConduitT i o m s
- Import.NoFoundation: execWriterC :: forall (m :: Type -> Type) w i o r. (Monad m, Monoid w) => ConduitT i o (WriterT w m) r -> ConduitT i o m w
- Import.NoFoundation: execWriterLC :: forall (m :: Type -> Type) w i o r. (Monad m, Monoid w) => ConduitT i o (WriterT w m) r -> ConduitT i o m w
- Import.NoFoundation: exists :: forall (m :: Type -> Type) record. (PersistQueryRead backend, MonadIO m, PersistRecordBackend record backend) => [Filter record] -> ReaderT backend m Bool
- Import.NoFoundation: existsBy :: forall record (m :: Type -> Type). (PersistUniqueRead backend, MonadIO m, PersistRecordBackend record backend) => Unique record -> ReaderT backend m Bool
- Import.NoFoundation: exp :: Floating a => a -> a
- Import.NoFoundation: expectationFailed417 :: Status
- Import.NoFoundation: expiresAt :: MonadHandler m => UTCTime -> m ()
- Import.NoFoundation: exponent :: RealFloat a => a -> Int
- Import.NoFoundation: exportFileBookmarks :: Key User -> FilePath -> DB ()
- Import.NoFoundation: extractPath :: ByteString -> ByteString
- Import.NoFoundation: fetchBookmarkByUrl :: Key User -> Maybe Text -> DB (Maybe (Entity Bookmark, [Entity BookmarkTag]))
- Import.NoFoundation: fieldAttrsContainsNullable :: [FieldAttr] -> IsNullable
- Import.NoFoundation: fieldError :: Text -> Text -> Text -> Text
- Import.NoFoundation: fieldLens :: PersistEntity record => EntityField record field -> forall (f :: Type -> Type). Functor f => (field -> f field) -> Entity record -> f (Entity record)
- Import.NoFoundation: fieldSettingsLabel :: RenderMessage site msg => msg -> FieldSettings site
- Import.NoFoundation: fileAFormOpt :: forall (m :: Type -> Type). MonadHandler m => FieldSettings (HandlerSite m) -> AForm m (Maybe FileInfo)
- Import.NoFoundation: fileAFormReq :: forall (m :: Type -> Type). (MonadHandler m, RenderMessage (HandlerSite m) FormMessage) => FieldSettings (HandlerSite m) -> AForm m FileInfo
- Import.NoFoundation: fileBookmarkToBookmark :: UserId -> FileBookmark -> IO Bookmark
- Import.NoFoundation: fileField :: forall (m :: Type -> Type). Monad m => Field m FileInfo
- Import.NoFoundation: fileNoteToNote :: UserId -> FileNote -> IO Note
- Import.NoFoundation: fileSource :: forall (m :: Type -> Type). MonadResource m => FileInfo -> ConduitT () ByteString m ()
- Import.NoFoundation: fileSourceByteString :: MonadResource m => FileInfo -> m ByteString
- Import.NoFoundation: fileUpload :: Yesod site => site -> RequestBodyLength -> FileUpload
- Import.NoFoundation: filter :: IsSequence seq => (Element seq -> Bool) -> seq -> seq
- Import.NoFoundation: filterC :: forall (m :: Type -> Type) a. Monad m => (a -> Bool) -> ConduitT a a m ()
- Import.NoFoundation: filterCE :: forall seq (m :: Type -> Type). (IsSequence seq, Monad m) => (Element seq -> Bool) -> ConduitT seq seq m ()
- Import.NoFoundation: filterM :: (IsSequence seq, Monad m) => (Element seq -> m Bool) -> seq -> m seq
- Import.NoFoundation: filterMC :: Monad m => (a -> m Bool) -> ConduitT a a m ()
- Import.NoFoundation: filterMCE :: (Monad m, IsSequence seq) => (Element seq -> m Bool) -> ConduitT seq seq m ()
- Import.NoFoundation: filterMap :: IsMap map => (MapValue map -> Bool) -> map -> map
- Import.NoFoundation: filterSet :: IsSet set => (Element set -> Bool) -> set -> set
- Import.NoFoundation: finally :: MonadUnliftIO m => m a -> m b -> m a
- Import.NoFoundation: find :: SemiSequence seq => (Element seq -> Bool) -> seq -> Maybe (Element seq)
- Import.NoFoundation: findC :: forall (m :: Type -> Type) a o. Monad m => (a -> Bool) -> ConduitT a o m (Maybe a)
- Import.NoFoundation: findWithDefault :: IsMap map => MapValue map -> ContainerKey map -> map -> MapValue map
- Import.NoFoundation: firefoxBookmarkNodeToBookmark :: UserId -> FFBookmarkNode -> IO [Bookmark]
- Import.NoFoundation: first :: Bifunctor p => (a -> b) -> p a c -> p b c
- Import.NoFoundation: flip :: (a -> b -> c) -> b -> a -> c
- Import.NoFoundation: floatDigits :: RealFloat a => a -> Int
- Import.NoFoundation: floatRadix :: RealFloat a => a -> Integer
- Import.NoFoundation: floatRange :: RealFloat a => a -> (Int, Int)
- Import.NoFoundation: floor :: (RealFrac a, Integral b) => a -> b
- Import.NoFoundation: flushBuilder :: Builder builder lazy => builder
- Import.NoFoundation: flushTBQueue :: TBQueue a -> STM [a]
- Import.NoFoundation: fmap :: Functor f => (a -> b) -> f a -> f b
- Import.NoFoundation: fold :: (MonoFoldable mono, Monoid (Element mono)) => mono -> Element mono
- Import.NoFoundation: foldC :: forall (m :: Type -> Type) a o. (Monad m, Monoid a) => ConduitT a o m a
- Import.NoFoundation: foldCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono, Monoid (Element mono)) => ConduitT mono o m (Element mono)
- Import.NoFoundation: foldM :: (MonoFoldable mono, Monad m) => (a -> Element mono -> m a) -> a -> mono -> m a
- Import.NoFoundation: foldMC :: Monad m => (a -> b -> m a) -> a -> ConduitT b o m a
- Import.NoFoundation: foldMCE :: (Monad m, MonoFoldable mono) => (a -> Element mono -> m a) -> a -> ConduitT mono o m a
- Import.NoFoundation: foldMap :: (MonoFoldable mono, Monoid m) => (Element mono -> m) -> mono -> m
- Import.NoFoundation: foldMap1Ex :: (MonoFoldable mono, Semigroup m) => (Element mono -> m) -> mono -> m
- Import.NoFoundation: foldMapC :: forall (m :: Type -> Type) b a o. (Monad m, Monoid b) => (a -> b) -> ConduitT a o m b
- Import.NoFoundation: foldMapCE :: forall (m :: Type -> Type) mono w o. (Monad m, MonoFoldable mono, Monoid w) => (Element mono -> w) -> ConduitT mono o m w
- Import.NoFoundation: foldMapMC :: (Monad m, Monoid w) => (a -> m w) -> ConduitT a o m w
- Import.NoFoundation: foldMapMCE :: (Monad m, MonoFoldable mono, Monoid w) => (Element mono -> m w) -> ConduitT mono o m w
- Import.NoFoundation: foldl' :: MonoFoldable mono => (a -> Element mono -> a) -> a -> mono -> a
- Import.NoFoundation: foldl1Ex' :: MonoFoldable mono => (Element mono -> Element mono -> Element mono) -> mono -> Element mono
- Import.NoFoundation: foldlC :: forall (m :: Type -> Type) a b o. Monad m => (a -> b -> a) -> a -> ConduitT b o m a
- Import.NoFoundation: foldlCE :: forall (m :: Type -> Type) mono a o. (Monad m, MonoFoldable mono) => (a -> Element mono -> a) -> a -> ConduitT mono o m a
- Import.NoFoundation: foldlM :: (MonoFoldable mono, Monad m) => (a -> Element mono -> m a) -> a -> mono -> m a
- Import.NoFoundation: foldr :: MonoFoldable mono => (Element mono -> b -> b) -> b -> mono -> b
- Import.NoFoundation: foldr1Ex :: MonoFoldable mono => (Element mono -> Element mono -> Element mono) -> mono -> Element mono
- Import.NoFoundation: for :: (Traversable t, Applicative f) => t a -> (a -> f b) -> f (t b)
- Import.NoFoundation: forConcurrently :: (MonadUnliftIO m, Traversable t) => t a -> (a -> m b) -> m (t b)
- Import.NoFoundation: forConcurrently_ :: (MonadUnliftIO m, Foldable f) => f a -> (a -> m b) -> m ()
- Import.NoFoundation: forM :: (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
- Import.NoFoundation: forM_ :: (MonoFoldable mono, Applicative m) => mono -> (Element mono -> m ()) -> m ()
- Import.NoFoundation: for_ :: (MonoFoldable mono, Applicative f) => mono -> (Element mono -> f b) -> f ()
- Import.NoFoundation: forbidden403 :: Status
- Import.NoFoundation: force :: NFData a => a -> a
- Import.NoFoundation: forever :: Applicative f => f a -> f b
- Import.NoFoundation: forkHandler :: (SomeException -> HandlerFor site ()) -> HandlerFor site () -> HandlerFor site ()
- Import.NoFoundation: formToAForm :: forall (m :: Type -> Type) site a. (HandlerSite m ~ site, Monad m) => MForm m (FormResult a, [FieldView site]) -> AForm m a
- Import.NoFoundation: formatLogMessage :: IO ZonedDate -> Loc -> LogSource -> LogLevel -> LogStr -> IO LogStr
- Import.NoFoundation: formatRFC1123 :: UTCTime -> Text
- Import.NoFoundation: formatRFC822 :: UTCTime -> Text
- Import.NoFoundation: formatTime :: FormatTime t => TimeLocale -> String -> t -> String
- Import.NoFoundation: formatW3 :: UTCTime -> Text
- Import.NoFoundation: found302 :: Status
- Import.NoFoundation: freeSlotsTBChan :: TBChan a -> STM Int
- Import.NoFoundation: freeSlotsTBMChan :: TBMChan a -> STM Int
- Import.NoFoundation: freeSlotsTBMQueue :: TBMQueue a -> STM Int
- Import.NoFoundation: fromBackendKey :: ToBackendKey backend record => BackendKey backend -> Key record
- Import.NoFoundation: fromByteVector :: SVector Word8 -> ByteString
- Import.NoFoundation: fromChunks :: LazySequence lazy strict => [strict] -> lazy
- Import.NoFoundation: fromEither :: (Exception e, MonadIO m) => Either e a -> m a
- Import.NoFoundation: fromEitherIO :: (Exception e, MonadIO m) => IO (Either e a) -> m a
- Import.NoFoundation: fromEitherM :: (Exception e, MonadIO m) => m (Either e a) -> m a
- Import.NoFoundation: fromEnum :: Enum a => a -> Int
- Import.NoFoundation: fromException :: Exception e => SomeException -> Maybe e
- Import.NoFoundation: fromExceptionUnwrap :: Exception e => SomeException -> Maybe e
- Import.NoFoundation: fromGregorian :: Year -> MonthOfYear -> DayOfMonth -> Day
- Import.NoFoundation: fromInteger :: Num a => Integer -> a
- Import.NoFoundation: fromIntegral :: (Integral a, Num b) => a -> b
- Import.NoFoundation: fromList :: IsSequence seq => [Element seq] -> seq
- Import.NoFoundation: fromMaybe :: a -> Maybe a -> a
- Import.NoFoundation: fromNonEmpty :: IsSequence seq => NonEmpty (Element seq) -> NonNull seq
- Import.NoFoundation: fromNullable :: MonoFoldable mono => mono -> Maybe (NonNull mono)
- Import.NoFoundation: fromPathMultiPiece :: PathMultiPiece s => [Text] -> Maybe s
- Import.NoFoundation: fromPathPiece :: PathPiece s => Text -> Maybe s
- Import.NoFoundation: fromPersistValue :: PersistField a => PersistValue -> Either Text a
- Import.NoFoundation: fromPersistValueJSON :: FromJSON a => PersistValue -> Either Text a
- Import.NoFoundation: fromPersistValueText :: PersistValue -> Either Text Text
- Import.NoFoundation: fromPersistValues :: PersistEntity record => [PersistValue] -> Either Text record
- Import.NoFoundation: fromRational :: Fractional a => Rational -> a
- Import.NoFoundation: fromStrict :: LazySequence lazy strict => strict -> lazy
- Import.NoFoundation: fromString :: IsString a => String -> a
- Import.NoFoundation: fst :: (a, b) -> a
- Import.NoFoundation: fullErrorType :: IOErrorType
- Import.NoFoundation: fuse :: forall (m :: Type -> Type) a b c r. Monad m => ConduitT a b m () -> ConduitT b c m r -> ConduitT a c m r
- Import.NoFoundation: fuseBoth :: forall (m :: Type -> Type) a b r1 c r2. Monad m => ConduitT a b m r1 -> ConduitT b c m r2 -> ConduitT a c m (r1, r2)
- Import.NoFoundation: fuseBothMaybe :: forall (m :: Type -> Type) a b r1 c r2. Monad m => ConduitT a b m r1 -> ConduitT b c m r2 -> ConduitT a c m (Maybe r1, r2)
- Import.NoFoundation: fuseLeftovers :: forall (m :: Type -> Type) b a c r. Monad m => ([b] -> [a]) -> ConduitT a b m () -> ConduitT b c m r -> ConduitT a c m r
- Import.NoFoundation: fuseReturnLeftovers :: forall (m :: Type -> Type) a b c r. Monad m => ConduitT a b m () -> ConduitT b c m r -> ConduitT a c m (r, [b])
- Import.NoFoundation: fuseUpstream :: forall (m :: Type -> Type) a b r c. Monad m => ConduitT a b m r -> ConduitT b c m () -> ConduitT a c m r
- Import.NoFoundation: gDefaultFormOptions :: Options
- Import.NoFoundation: gatewayTimeout504 :: Status
- Import.NoFoundation: generateApiKey :: IO ApiKey
- Import.NoFoundation: generateCookie :: SetCookie -> Request -> UTCTime -> Bool -> Maybe Cookie
- Import.NoFoundation: generateFormGet :: MonadHandler m => (Markup -> MForm m a) -> m (a, Enctype)
- Import.NoFoundation: generateFormGet' :: MonadHandler m => (Markup -> MForm m (FormResult a, xml)) -> m (xml, Enctype)
- Import.NoFoundation: generateFormPost :: (RenderMessage (HandlerSite m) FormMessage, MonadHandler m) => (Markup -> MForm m (FormResult a, xml)) -> m (xml, Enctype)
- Import.NoFoundation: genericConstrName :: HasConstructor f => f x -> String
- Import.NoFoundation: get :: forall record (m :: Type -> Type). (PersistStoreRead backend, MonadIO m, PersistRecordBackend record backend) => Key record -> ReaderT backend m (Maybe record)
- Import.NoFoundation: get404 :: forall (m :: Type -> Type) backend val. (MonadIO m, PersistStoreRead backend, PersistRecordBackend val backend) => Key val -> ReaderT backend m val
- Import.NoFoundation: getApiKeyUser :: ApiKey -> DB (Maybe (Entity User))
- Import.NoFoundation: getApprootText :: Approot site -> site -> Request -> Text
- Import.NoFoundation: getArgs :: MonadIO m => m [Text]
- Import.NoFoundation: getAuth :: a -> Auth
- Import.NoFoundation: getAuthEntity :: (YesodAuthPersist master, MonadHandler m, HandlerSite m ~ master) => AuthId master -> m (Maybe (AuthEntity master))
- Import.NoFoundation: getAuthId :: (YesodAuth master, MonadHandler m, HandlerSite m ~ master) => Creds master -> m (Maybe (AuthId master))
- Import.NoFoundation: getBy :: forall record (m :: Type -> Type). (PersistUniqueRead backend, MonadIO m, PersistRecordBackend record backend) => Unique record -> ReaderT backend m (Maybe (Entity record))
- Import.NoFoundation: getBy404 :: forall backend val (m :: Type -> Type). (PersistUniqueRead backend, PersistRecordBackend val backend, MonadIO m) => Unique val -> ReaderT backend m (Entity val)
- Import.NoFoundation: getByValue :: forall record (m :: Type -> Type) backend. (MonadIO m, PersistUniqueRead backend, PersistRecordBackend record backend, AtLeastOneUniqueKey record) => record -> ReaderT backend m (Maybe (Entity record))
- Import.NoFoundation: getChanContents :: MonadIO m => Chan a -> m [a]
- Import.NoFoundation: getChar :: MonadIO m => m Char
- Import.NoFoundation: getContentType :: (HasContentType a, Monad m) => m a -> ContentType
- Import.NoFoundation: getContents :: MonadIO m => m LText
- Import.NoFoundation: getCurrentEnv :: IO (KeyMap Text)
- Import.NoFoundation: getCurrentRoute :: MonadHandler m => m (Maybe (Route (HandlerSite m)))
- Import.NoFoundation: getCurrentTime :: IO UTCTime
- Import.NoFoundation: getDBRunner :: YesodPersistRunner site => HandlerFor site (DBRunner site, HandlerFor site ())
- Import.NoFoundation: getDevSettings :: Settings -> IO Settings
- Import.NoFoundation: getEntity :: forall e backend (m :: Type -> Type). (PersistStoreRead backend, PersistRecordBackend e backend, MonadIO m) => Key e -> ReaderT backend m (Maybe (Entity e))
- Import.NoFoundation: getEntityComments :: EntityDef -> Maybe Text
- Import.NoFoundation: getEntityDBName :: EntityDef -> EntityNameDB
- Import.NoFoundation: getEntityExtra :: EntityDef -> Map Text [[Text]]
- Import.NoFoundation: getEntityFields :: EntityDef -> [FieldDef]
- Import.NoFoundation: getEntityFieldsDatabase :: EntityDef -> [FieldDef]
- Import.NoFoundation: getEntityForeignDefs :: EntityDef -> [ForeignDef]
- Import.NoFoundation: getEntityHaskellName :: EntityDef -> EntityNameHS
- Import.NoFoundation: getEntityId :: EntityDef -> EntityIdDef
- Import.NoFoundation: getEntityIdField :: EntityDef -> Maybe FieldDef
- Import.NoFoundation: getEntityKeyFields :: EntityDef -> NonEmpty FieldDef
- Import.NoFoundation: getEntityUniques :: EntityDef -> [UniqueDef]
- Import.NoFoundation: getEntityUniquesNoPrimaryKey :: EntityDef -> [UniqueDef]
- Import.NoFoundation: getExpires :: MonadIO m => Int -> m UTCTime
- Import.NoFoundation: getFileBookmarks :: Key User -> DB [FileBookmark]
- Import.NoFoundation: getGetMaxExpires :: IO (IO Text)
- Import.NoFoundation: getHttpManager :: HasHttpManager a => a -> Manager
- Import.NoFoundation: getJust :: forall record backend (m :: Type -> Type). (PersistStoreRead backend, PersistRecordBackend record backend, MonadIO m) => Key record -> ReaderT backend m record
- Import.NoFoundation: getJustEntity :: forall record backend (m :: Type -> Type). (PersistEntityBackend record ~ BaseBackend backend, MonadIO m, PersistEntity record, PersistStoreRead backend) => Key record -> ReaderT backend m (Entity record)
- Import.NoFoundation: getLine :: MonadIO m => m Text
- Import.NoFoundation: getMany :: forall record (m :: Type -> Type). (PersistStoreRead backend, MonadIO m, PersistRecordBackend record backend) => [Key record] -> ReaderT backend m (Map (Key record) record)
- Import.NoFoundation: getMessage :: MonadHandler m => m (Maybe Html)
- Import.NoFoundation: getMessageRender :: (MonadHandler m, RenderMessage (HandlerSite m) message) => m (message -> Text)
- Import.NoFoundation: getMessages :: MonadHandler m => m [(Text, Html)]
- Import.NoFoundation: getMonotonicTime :: MonadIO m => m Double
- Import.NoFoundation: getNote :: Key User -> NtSlug -> DB (Maybe (Entity Note))
- Import.NoFoundation: getNoteList :: Key User -> Maybe Text -> SharedP -> Limit -> Page -> DB (Int, [Entity Note])
- Import.NoFoundation: getOriginalRequest :: Response a -> Request
- Import.NoFoundation: getPersistMap :: PersistValue -> Either Text [(Text, PersistValue)]
- Import.NoFoundation: getPostParams :: MonadHandler m => m [(Text, Text)]
- Import.NoFoundation: getRequest :: MonadHandler m => m YesodRequest
- Import.NoFoundation: getRouteToParent :: MonadHandler m => m (Route (SubHandlerSite m) -> Route (HandlerSite m))
- Import.NoFoundation: getSession :: MonadHandler m => m SessionMap
- Import.NoFoundation: getSubCurrentRoute :: MonadHandler m => m (Maybe (Route (SubHandlerSite m)))
- Import.NoFoundation: getSubYesod :: MonadHandler m => m (SubHandlerSite m)
- Import.NoFoundation: getUri :: Request -> URI
- Import.NoFoundation: getUrlRender :: MonadHandler m => m (Route (HandlerSite m) -> Text)
- Import.NoFoundation: getUrlRenderParams :: MonadHandler m => m (Route (HandlerSite m) -> [(Text, Text)] -> Text)
- Import.NoFoundation: getUserByName :: UserNameP -> DB (Maybe (Entity User))
- Import.NoFoundation: getYesod :: MonadHandler m => m (HandlerSite m)
- Import.NoFoundation: getsYesod :: MonadHandler m => (HandlerSite m -> a) -> m a
- Import.NoFoundation: giveUrlRenderer :: MonadHandler m => ((Route (HandlerSite m) -> [(Text, Text)] -> Text) -> output) -> m output
- Import.NoFoundation: gone410 :: Status
- Import.NoFoundation: group :: (IsSequence seq, Eq (Element seq)) => seq -> [seq]
- Import.NoFoundation: groupAll :: (IsSequence seq, Eq (Element seq)) => seq -> [seq]
- Import.NoFoundation: groupAllOn :: (IsSequence seq, Eq b) => (Element seq -> b) -> seq -> [seq]
- Import.NoFoundation: groupBy :: IsSequence seq => (Element seq -> Element seq -> Bool) -> seq -> [seq]
- Import.NoFoundation: guard :: Alternative f => Bool -> f ()
- Import.NoFoundation: guessApproot :: Approot site
- Import.NoFoundation: guessApprootOr :: Approot site -> Approot site
- Import.NoFoundation: hAccept :: HeaderName
- Import.NoFoundation: hAcceptLanguage :: HeaderName
- Import.NoFoundation: hAuthorization :: HeaderName
- Import.NoFoundation: hCacheControl :: HeaderName
- Import.NoFoundation: hClose :: MonadIO m => Handle -> m ()
- Import.NoFoundation: hConnection :: HeaderName
- Import.NoFoundation: hContentEncoding :: HeaderName
- Import.NoFoundation: hContentLength :: HeaderName
- Import.NoFoundation: hContentMD5 :: HeaderName
- Import.NoFoundation: hContentType :: HeaderName
- Import.NoFoundation: hCookie :: HeaderName
- Import.NoFoundation: hDate :: HeaderName
- Import.NoFoundation: hFileSize :: MonadIO m => Handle -> m Integer
- Import.NoFoundation: hFlush :: MonadIO m => Handle -> m ()
- Import.NoFoundation: hGetBuffering :: MonadIO m => Handle -> m BufferMode
- Import.NoFoundation: hGetChunk :: MonadIO m => Handle -> m ByteString
- Import.NoFoundation: hGetContents :: MonadIO m => Handle -> m ByteString
- Import.NoFoundation: hGetEcho :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hIfModifiedSince :: HeaderName
- Import.NoFoundation: hIfRange :: HeaderName
- Import.NoFoundation: hIsClosed :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hIsEOF :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hIsOpen :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hIsReadable :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hIsSeekable :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hIsTerminalDevice :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hIsWritable :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hLastModified :: HeaderName
- Import.NoFoundation: hLocation :: HeaderName
- Import.NoFoundation: hPut :: MonadIO m => Handle -> ByteString -> m ()
- Import.NoFoundation: hRange :: HeaderName
- Import.NoFoundation: hReady :: MonadIO m => Handle -> m Bool
- Import.NoFoundation: hReferer :: HeaderName
- Import.NoFoundation: hSay :: MonadIO m => Handle -> Text -> m ()
- Import.NoFoundation: hSayShow :: (MonadIO m, Show a) => Handle -> a -> m ()
- Import.NoFoundation: hSayString :: MonadIO m => Handle -> String -> m ()
- Import.NoFoundation: hSeek :: MonadIO m => Handle -> SeekMode -> Integer -> m ()
- Import.NoFoundation: hServer :: HeaderName
- Import.NoFoundation: hSetBuffering :: MonadIO m => Handle -> BufferMode -> m ()
- Import.NoFoundation: hSetEcho :: MonadIO m => Handle -> Bool -> m ()
- Import.NoFoundation: hSetFileSize :: MonadIO m => Handle -> Integer -> m ()
- Import.NoFoundation: hTell :: MonadIO m => Handle -> m Integer
- Import.NoFoundation: hUserAgent :: HeaderName
- Import.NoFoundation: hWaitForInput :: MonadIO m => Handle -> Int -> m Bool
- Import.NoFoundation: hamlet :: QuasiQuoter
- Import.NoFoundation: hamletToRepHtml :: MonadHandler m => HtmlUrl (Route (HandlerSite m)) -> m Html
- Import.NoFoundation: handle :: (MonadUnliftIO m, Exception e) => (e -> m a) -> m a -> m a
- Import.NoFoundation: handleAny :: MonadUnliftIO m => (SomeException -> m a) -> m a -> m a
- Import.NoFoundation: handleAnyDeep :: (MonadUnliftIO m, NFData a) => (SomeException -> m a) -> m a -> m a
- Import.NoFoundation: handleC :: forall (m :: Type -> Type) e i o r. (MonadUnliftIO m, Exception e) => (e -> ConduitT i o m r) -> ConduitT i o m r -> ConduitT i o m r
- Import.NoFoundation: handleDeep :: (MonadUnliftIO m, Exception e, NFData a) => (e -> m a) -> m a -> m a
- Import.NoFoundation: handleIO :: MonadUnliftIO m => (IOException -> m a) -> m a -> m a
- Import.NoFoundation: handleJust :: (MonadUnliftIO m, Exception e) => (e -> Maybe b) -> (b -> m a) -> m a -> m a
- Import.NoFoundation: handleSyncOrAsync :: (MonadUnliftIO m, Exception e) => (e -> m a) -> m a -> m a
- Import.NoFoundation: handlerToIO :: MonadIO m => HandlerFor site (HandlerFor site a -> m a)
- Import.NoFoundation: handlerToWidget :: HandlerFor site a -> WidgetFor site a
- Import.NoFoundation: hasValidCsrfHeaderNamed :: MonadHandler m => CI ByteString -> m Bool
- Import.NoFoundation: hasValidCsrfParamNamed :: MonadHandler m => Text -> m Bool
- Import.NoFoundation: hash :: Hashable a => a -> Int
- Import.NoFoundation: hashApiKey :: ApiKey -> HashedApiKey
- Import.NoFoundation: hashNub :: (Hashable a, Eq a) => [a] -> [a]
- Import.NoFoundation: hashPassword :: Text -> IO BCrypt
- Import.NoFoundation: hashWithSalt :: Hashable a => Int -> a -> Int
- Import.NoFoundation: head :: MonoFoldable mono => NonNull mono -> Element mono
- Import.NoFoundation: headC :: forall (m :: Type -> Type) a o. Monad m => ConduitT a o m (Maybe a)
- Import.NoFoundation: headCE :: forall (m :: Type -> Type) seq o. (Monad m, IsSequence seq) => ConduitT seq o m (Maybe (Element seq))
- Import.NoFoundation: headDefC :: forall (m :: Type -> Type) a o. Monad m => a -> ConduitT a o m a
- Import.NoFoundation: headEx :: MonoFoldable mono => mono -> Element mono
- Import.NoFoundation: headMay :: MonoFoldable mono => mono -> Maybe (Element mono)
- Import.NoFoundation: hiddenField :: forall (m :: Type -> Type) p. (Monad m, PathPiece p, RenderMessage (HandlerSite m) FormMessage) => Field m p
- Import.NoFoundation: hoistMaybe :: forall (m :: Type -> Type) b. Applicative m => Maybe b -> MaybeT m b
- Import.NoFoundation: htmlField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Html
- Import.NoFoundation: http09 :: HttpVersion
- Import.NoFoundation: http10 :: HttpVersion
- Import.NoFoundation: http11 :: HttpVersion
- Import.NoFoundation: http20 :: HttpVersion
- Import.NoFoundation: httpLbs :: (MonadIO m, HasHttpManager env, MonadReader env m) => Request -> m (Response ByteString)
- Import.NoFoundation: httpNoBody :: (MonadIO m, HasHttpManager env, MonadReader env m) => Request -> m (Response ())
- Import.NoFoundation: httpSource :: forall (m :: Type -> Type) (n :: Type -> Type) env r. (MonadResource m, MonadIO n, MonadReader env m, HasHttpManager env) => Request -> (Response (ConduitM () ByteString n ()) -> ConduitM () r m ()) -> ConduitM () r m ()
- Import.NoFoundation: httpVersionNotSupported505 :: Status
- Import.NoFoundation: id :: forall (a :: k). Category cat => cat a a
- Import.NoFoundation: identifyForm :: forall (m :: Type -> Type) a. Monad m => Text -> (Markup -> MForm m (FormResult a, WidgetFor (HandlerSite m) ())) -> Markup -> MForm m (FormResult a, WidgetFor (HandlerSite m) ())
- Import.NoFoundation: ignoreEnv :: EnvUsage
- Import.NoFoundation: ihamletToHtml :: (MonadHandler m, RenderMessage (HandlerSite m) message) => HtmlUrlI18n message (Route (HandlerSite m)) -> m Html
- Import.NoFoundation: ihamletToRepHtml :: (MonadHandler m, RenderMessage (HandlerSite m) message) => HtmlUrlI18n message (Route (HandlerSite m)) -> m Html
- Import.NoFoundation: illegalOperationErrorType :: IOErrorType
- Import.NoFoundation: imATeapot418 :: Status
- Import.NoFoundation: images_bluepin_gif :: StaticRoute
- Import.NoFoundation: impureNonNull :: MonoFoldable mono => mono -> NonNull mono
- Import.NoFoundation: impureThrow :: Exception e => e -> a
- Import.NoFoundation: index :: IsSequence seq => seq -> Index seq -> Maybe (Element seq)
- Import.NoFoundation: indexEx :: IsSequence seq => seq -> Index seq -> Element seq
- Import.NoFoundation: infix 4 /<-.
- Import.NoFoundation: infixl 0 `on`
- Import.NoFoundation: infixl 1 $=+
- Import.NoFoundation: infixl 3 ||.
- Import.NoFoundation: infixl 4 <**>
- Import.NoFoundation: infixl 6 +
- Import.NoFoundation: infixl 7 *
- Import.NoFoundation: infixl 9 \\
- Import.NoFoundation: infixr 0 =$$+-
- Import.NoFoundation: infixr 1 <=<
- Import.NoFoundation: infixr 2 =$=
- Import.NoFoundation: infixr 3 /=.
- Import.NoFoundation: infixr 5 </>
- Import.NoFoundation: infixr 6 <>
- Import.NoFoundation: infixr 7 <.>
- Import.NoFoundation: infixr 8 ^^
- Import.NoFoundation: infixr 9 .
- Import.NoFoundation: init :: IsSequence seq => NonNull seq -> seq
- Import.NoFoundation: initDef :: IsSequence seq => seq -> seq
- Import.NoFoundation: initEx :: IsSequence seq => seq -> seq
- Import.NoFoundation: initMay :: IsSequence seq => seq -> Maybe seq
- Import.NoFoundation: insert :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend, SafeToInsert record) => record -> ReaderT backend m (Key record)
- Import.NoFoundation: insert400 :: forall (m :: Type -> Type) backend val. (MonadIO m, PersistUniqueWrite backend, PersistRecordBackend val backend, SafeToInsert val) => val -> ReaderT backend m (Key val)
- Import.NoFoundation: insert400_ :: forall (m :: Type -> Type) backend val. (MonadIO m, PersistUniqueWrite backend, PersistRecordBackend val backend, SafeToInsert val) => val -> ReaderT backend m ()
- Import.NoFoundation: insertBy :: forall record backend (m :: Type -> Type). (MonadIO m, PersistUniqueWrite backend, PersistRecordBackend record backend, AtLeastOneUniqueKey record, SafeToInsert record) => record -> ReaderT backend m (Either (Entity record) (Key record))
- Import.NoFoundation: insertCheckedCookie :: Cookie -> CookieJar -> Bool -> CookieJar
- Import.NoFoundation: insertCookiesIntoRequest :: Request -> CookieJar -> UTCTime -> (Request, CookieJar)
- Import.NoFoundation: insertDirFileNotes :: Key User -> FilePath -> DB (Either String Int)
- Import.NoFoundation: insertEntity :: forall e backend (m :: Type -> Type). (PersistStoreWrite backend, PersistRecordBackend e backend, SafeToInsert e, MonadIO m, HasCallStack) => e -> ReaderT backend m (Entity e)
- Import.NoFoundation: insertEntityMany :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend) => [Entity record] -> ReaderT backend m ()
- Import.NoFoundation: insertFFBookmarks :: Key User -> FilePath -> DB (Either String Int)
- Import.NoFoundation: insertFileBookmarks :: Key User -> FilePath -> DB (Either String Int)
- Import.NoFoundation: insertKey :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend) => Key record -> record -> ReaderT backend m ()
- Import.NoFoundation: insertLookupWithKey :: IsMap map => (ContainerKey map -> MapValue map -> MapValue map -> MapValue map) -> ContainerKey map -> MapValue map -> map -> (Maybe (MapValue map), map)
- Import.NoFoundation: insertMany :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend, SafeToInsert record) => [record] -> ReaderT backend m [Key record]
- Import.NoFoundation: insertMany_ :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend, SafeToInsert record) => [record] -> ReaderT backend m ()
- Import.NoFoundation: insertMap :: IsMap map => ContainerKey map -> MapValue map -> map -> map
- Import.NoFoundation: insertRecord :: forall record backend (m :: Type -> Type). (PersistEntityBackend record ~ BaseBackend backend, PersistEntity record, MonadIO m, PersistStoreWrite backend, SafeToInsert record, HasCallStack) => record -> ReaderT backend m record
- Import.NoFoundation: insertSet :: IsSet set => Element set -> set -> set
- Import.NoFoundation: insertUnique :: forall record (m :: Type -> Type). (PersistUniqueWrite backend, MonadIO m, PersistRecordBackend record backend, SafeToInsert record) => record -> ReaderT backend m (Maybe (Key record))
- Import.NoFoundation: insertUniqueEntity :: forall record backend (m :: Type -> Type). (MonadIO m, PersistRecordBackend record backend, PersistUniqueWrite backend, SafeToInsert record) => record -> ReaderT backend m (Maybe (Entity record))
- Import.NoFoundation: insertUnique_ :: forall record (m :: Type -> Type). (PersistUniqueWrite backend, MonadIO m, PersistRecordBackend record backend, SafeToInsert record) => record -> ReaderT backend m (Maybe ())
- Import.NoFoundation: insertWith :: IsMap map => (MapValue map -> MapValue map -> MapValue map) -> ContainerKey map -> MapValue map -> map -> map
- Import.NoFoundation: insertWithKey :: IsMap map => (ContainerKey map -> MapValue map -> MapValue map -> MapValue map) -> ContainerKey map -> MapValue map -> map -> map
- Import.NoFoundation: insert_ :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend, SafeToInsert record) => record -> ReaderT backend m ()
- Import.NoFoundation: intField :: forall (m :: Type -> Type) i. (Monad m, Integral i, RenderMessage (HandlerSite m) FormMessage) => Field m i
- Import.NoFoundation: interact :: MonadIO m => (LText -> LText) -> m ()
- Import.NoFoundation: intercalate :: (MonoFoldable mono, Monoid (Element mono)) => Element mono -> mono -> Element mono
- Import.NoFoundation: internalServerError500 :: Status
- Import.NoFoundation: intersect :: SetContainer a => a -> a -> a
- Import.NoFoundation: intersection :: SetContainer set => set -> set -> set
- Import.NoFoundation: intersectionMap :: PolyMap map => map value1 -> map value2 -> map value1
- Import.NoFoundation: intersectionWithMap :: PolyMap map => (value1 -> value2 -> value3) -> map value1 -> map value2 -> map value3
- Import.NoFoundation: intersperse :: SemiSequence seq => Element seq -> seq -> seq
- Import.NoFoundation: intersperseC :: forall (m :: Type -> Type) a. Monad m => a -> ConduitT a a m ()
- Import.NoFoundation: invalidArgs :: MonadHandler m => [Text] -> m a
- Import.NoFoundation: invalidArgsI :: (MonadHandler m, RenderMessage (HandlerSite m) msg) => [msg] -> m a
- Import.NoFoundation: ioError :: IOError -> IO a
- Import.NoFoundation: ioeGetErrorString :: IOError -> String
- Import.NoFoundation: ioeGetErrorType :: IOError -> IOErrorType
- Import.NoFoundation: ioeGetFileName :: IOError -> Maybe FilePath
- Import.NoFoundation: ioeGetHandle :: IOError -> Maybe Handle
- Import.NoFoundation: ioeGetLocation :: IOError -> String
- Import.NoFoundation: ioeSetErrorString :: IOError -> String -> IOError
- Import.NoFoundation: ioeSetErrorType :: IOError -> IOErrorType -> IOError
- Import.NoFoundation: ioeSetFileName :: IOError -> FilePath -> IOError
- Import.NoFoundation: ioeSetHandle :: IOError -> Handle -> IOError
- Import.NoFoundation: ioeSetLocation :: IOError -> String -> IOError
- Import.NoFoundation: iopt :: forall (m :: Type -> Type) a. Monad m => Field m a -> Text -> FormInput m (Maybe a)
- Import.NoFoundation: ireq :: forall (m :: Type -> Type) a. (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m a -> Text -> FormInput m a
- Import.NoFoundation: isAlreadyExistsError :: IOError -> Bool
- Import.NoFoundation: isAlreadyExistsErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isAlreadyInUseError :: IOError -> Bool
- Import.NoFoundation: isAlreadyInUseErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isAsyncException :: Exception e => e -> Bool
- Import.NoFoundation: isAuthorized :: Yesod site => Route site -> Bool -> HandlerFor site AuthResult
- Import.NoFoundation: isClosedTBMChan :: TBMChan a -> STM Bool
- Import.NoFoundation: isClosedTBMQueue :: TBMQueue a -> STM Bool
- Import.NoFoundation: isClosedTMChan :: TMChan a -> STM Bool
- Import.NoFoundation: isClosedTMQueue :: TMQueue a -> STM Bool
- Import.NoFoundation: isDenormalized :: RealFloat a => a -> Bool
- Import.NoFoundation: isDoesNotExistError :: IOError -> Bool
- Import.NoFoundation: isDoesNotExistErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isEOFError :: IOError -> Bool
- Import.NoFoundation: isEOFErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isEmptyMVar :: MonadIO m => MVar a -> m Bool
- Import.NoFoundation: isEmptyTBChan :: TBChan a -> STM Bool
- Import.NoFoundation: isEmptyTBMChan :: TBMChan a -> STM Bool
- Import.NoFoundation: isEmptyTBMQueue :: TBMQueue a -> STM Bool
- Import.NoFoundation: isEmptyTBQueue :: TBQueue a -> STM Bool
- Import.NoFoundation: isEmptyTChan :: TChan a -> STM Bool
- Import.NoFoundation: isEmptyTMChan :: TMChan a -> STM Bool
- Import.NoFoundation: isEmptyTMQueue :: TMQueue a -> STM Bool
- Import.NoFoundation: isEmptyTMVar :: TMVar a -> STM Bool
- Import.NoFoundation: isEmptyTQueue :: TQueue a -> STM Bool
- Import.NoFoundation: isEntitySum :: EntityDef -> Bool
- Import.NoFoundation: isExpanded :: TagCloudMode -> Bool
- Import.NoFoundation: isFieldMaybe :: FieldDef -> Bool
- Import.NoFoundation: isFieldNotGenerated :: FieldDef -> Bool
- Import.NoFoundation: isFieldNullable :: FieldDef -> IsNullable
- Import.NoFoundation: isFullError :: IOError -> Bool
- Import.NoFoundation: isFullErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isFullTBChan :: TBChan a -> STM Bool
- Import.NoFoundation: isFullTBMChan :: TBMChan a -> STM Bool
- Import.NoFoundation: isFullTBMQueue :: TBMQueue a -> STM Bool
- Import.NoFoundation: isFullTBQueue :: TBQueue a -> STM Bool
- Import.NoFoundation: isHaskellField :: FieldDef -> Bool
- Import.NoFoundation: isIEEE :: RealFloat a => a -> Bool
- Import.NoFoundation: isIllegalOperation :: IOError -> Bool
- Import.NoFoundation: isIllegalOperationErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isInfinite :: RealFloat a => a -> Bool
- Import.NoFoundation: isInfixOf :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> Bool
- Import.NoFoundation: isIpAddress :: ByteString -> Bool
- Import.NoFoundation: isJust :: Maybe a -> Bool
- Import.NoFoundation: isNaN :: RealFloat a => a -> Bool
- Import.NoFoundation: isNegativeZero :: RealFloat a => a -> Bool
- Import.NoFoundation: isNothing :: Maybe a -> Bool
- Import.NoFoundation: isPermissionError :: IOError -> Bool
- Import.NoFoundation: isPermissionErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isPotentiallyTrustworthyOrigin :: Bool -> ByteString -> Bool
- Import.NoFoundation: isPrefixOf :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> Bool
- Import.NoFoundation: isResourceVanishedError :: IOError -> Bool
- Import.NoFoundation: isResourceVanishedErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isSuffixOf :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> Bool
- Import.NoFoundation: isSyncException :: Exception e => e -> Bool
- Import.NoFoundation: isUserError :: IOError -> Bool
- Import.NoFoundation: isUserErrorType :: IOErrorType -> Bool
- Import.NoFoundation: isWriteRequest :: Yesod site => Route site -> HandlerFor site Bool
- Import.NoFoundation: iterMC :: Monad m => (a -> m ()) -> ConduitT a a m ()
- Import.NoFoundation: iterateC :: forall (m :: Type -> Type) a i. Monad m => (a -> a) -> a -> ConduitT i a m ()
- Import.NoFoundation: javascriptSettings :: Q ShakespeareSettings
- Import.NoFoundation: join :: Monad m => m (m a) -> m a
- Import.NoFoundation: joinPath :: Yesod site => site -> Text -> [Text] -> [(Text, Text)] -> Builder
- Import.NoFoundation: js :: QuasiQuoter
- Import.NoFoundation: jsAttributes :: Yesod site => site -> [(Text, Text)]
- Import.NoFoundation: jsAttributesHandler :: Yesod site => HandlerFor site [(Text, Text)]
- Import.NoFoundation: jsFile :: FilePath -> Q Exp
- Import.NoFoundation: jsFileDebug :: FilePath -> Q Exp
- Import.NoFoundation: jsFileReload :: FilePath -> Q Exp
- Import.NoFoundation: jsLoader :: Yesod site => site -> ScriptLoadPosition site
- Import.NoFoundation: js_app_min_js :: StaticRoute
- Import.NoFoundation: js_app_min_js_gz :: StaticRoute
- Import.NoFoundation: js_app_min_js_map :: StaticRoute
- Import.NoFoundation: js_app_min_js_map_gz :: StaticRoute
- Import.NoFoundation: js_html5shiv_min_js :: StaticRoute
- Import.NoFoundation: js_html5shiv_min_js_gz :: StaticRoute
- Import.NoFoundation: js_js_cookie_2_2_0_min_js :: StaticRoute
- Import.NoFoundation: js_js_cookie_2_2_0_min_js_gz :: StaticRoute
- Import.NoFoundation: jsonEncodingOrRedirect :: (MonadHandler m, ToJSON a) => Route (HandlerSite m) -> a -> m Encoding
- Import.NoFoundation: jsonOrRedirect :: (MonadHandler m, ToJSON a) => Route (HandlerSite m) -> a -> m Value
- Import.NoFoundation: jsonToRepJson :: (Monad m, ToJSON a) => a -> m Value
- Import.NoFoundation: julius :: QuasiQuoter
- Import.NoFoundation: juliusFile :: FilePath -> Q Exp
- Import.NoFoundation: juliusFileDebug :: FilePath -> Q Exp
- Import.NoFoundation: juliusFileReload :: FilePath -> Q Exp
- Import.NoFoundation: juliusUsedIdentifiers :: String -> [(Deref, VarType)]
- Import.NoFoundation: keyAndEntityFields :: EntityDef -> NonEmpty FieldDef
- Import.NoFoundation: keyFromRecordM :: PersistEntity record => Maybe (record -> Key record)
- Import.NoFoundation: keyFromValues :: PersistEntity record => [PersistValue] -> Either Text (Key record)
- Import.NoFoundation: keyToValues :: PersistEntity record => Key record -> [PersistValue]
- Import.NoFoundation: keyValueEntityFromJSON :: (PersistEntity record, FromJSON record) => Value -> Parser (Entity record)
- Import.NoFoundation: keyValueEntityToJSON :: (PersistEntity record, ToJSON record) => Entity record -> Value
- Import.NoFoundation: keys :: SetContainer set => set -> [ContainerKey set]
- Import.NoFoundation: keysSet :: HasKeysSet set => set -> KeySet set
- Import.NoFoundation: languages :: MonadHandler m => m [Text]
- Import.NoFoundation: last :: MonoFoldable mono => NonNull mono -> Element mono
- Import.NoFoundation: lastC :: forall (m :: Type -> Type) a o. Monad m => ConduitT a o m (Maybe a)
- Import.NoFoundation: lastCE :: forall (m :: Type -> Type) seq o. (Monad m, IsSequence seq) => ConduitT seq o m (Maybe (Element seq))
- Import.NoFoundation: lastDefC :: forall (m :: Type -> Type) a o. Monad m => a -> ConduitT a o m a
- Import.NoFoundation: lastEx :: MonoFoldable mono => mono -> Element mono
- Import.NoFoundation: lastMay :: MonoFoldable mono => mono -> Maybe (Element mono)
- Import.NoFoundation: laxSameSiteSessions :: IO (Maybe SessionBackend) -> IO (Maybe SessionBackend)
- Import.NoFoundation: leftover :: forall i o (m :: Type -> Type). i -> ConduitT i o m ()
- Import.NoFoundation: lefts :: [Either a b] -> [a]
- Import.NoFoundation: length :: MonoFoldable mono => mono -> Int
- Import.NoFoundation: length64 :: MonoFoldable mono => mono -> Int64
- Import.NoFoundation: lengthC :: forall (m :: Type -> Type) len a o. (Monad m, Num len) => ConduitT a o m len
- Import.NoFoundation: lengthCE :: forall (m :: Type -> Type) len mono o. (Monad m, Num len, MonoFoldable mono) => ConduitT mono o m len
- Import.NoFoundation: lengthIfC :: forall (m :: Type -> Type) len a o. (Monad m, Num len) => (a -> Bool) -> ConduitT a o m len
- Import.NoFoundation: lengthIfCE :: forall (m :: Type -> Type) len mono o. (Monad m, Num len, MonoFoldable mono) => (Element mono -> Bool) -> ConduitT mono o m len
- Import.NoFoundation: lengthIndex :: IsSequence seq => seq -> Index seq
- Import.NoFoundation: lengthRequired411 :: Status
- Import.NoFoundation: lengthTBQueue :: TBQueue a -> STM Natural
- Import.NoFoundation: lensPTH :: (s -> a) -> (s -> b -> t) -> Lens s t a b
- Import.NoFoundation: lift :: (MonadTrans t, Monad m) => m a -> t m a
- Import.NoFoundation: liftA :: Applicative f => (a -> b) -> f a -> f b
- Import.NoFoundation: liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
- Import.NoFoundation: liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
- Import.NoFoundation: liftCallCC :: CallCC m (Maybe a) (Maybe b) -> CallCC (MaybeT m) a b
- Import.NoFoundation: liftCatch :: Catch e m (Maybe a) -> Catch e (MaybeT m) a
- Import.NoFoundation: liftHandler :: MonadHandler m => HandlerFor (HandlerSite m) a -> m a
- Import.NoFoundation: liftIO :: MonadIO m => IO a -> m a
- Import.NoFoundation: liftIOOp :: MonadUnliftIO m => (IO a -> IO b) -> m a -> m b
- Import.NoFoundation: liftListen :: Monad m => Listen w m (Maybe a) -> Listen w (MaybeT m) a
- Import.NoFoundation: liftM :: Monad m => (a1 -> r) -> m a1 -> m r
- Import.NoFoundation: liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
- Import.NoFoundation: liftM3 :: Monad m => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
- Import.NoFoundation: liftM4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
- Import.NoFoundation: liftM5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r
- Import.NoFoundation: liftPass :: Monad m => Pass w m (Maybe a) -> Pass w (MaybeT m) a
- Import.NoFoundation: liftPersist :: (MonadIO m, MonadReader backend m) => ReaderT backend IO b -> m b
- Import.NoFoundation: liftResourceT :: MonadResource m => ResourceT IO a -> m a
- Import.NoFoundation: liftSubHandler :: MonadHandler m => SubHandlerFor (SubHandlerSite m) (HandlerSite m) a -> m a
- Import.NoFoundation: liftWidget :: MonadWidget m => WidgetFor (HandlerSite m) a -> m a
- Import.NoFoundation: limitOffsetOrder :: PersistEntity val => [SelectOpt val] -> (Int, Int, [SelectOpt val])
- Import.NoFoundation: lineAsciiC :: forall (m :: Type -> Type) seq o r. (Monad m, IsSequence seq, Element seq ~ Word8) => ConduitT seq o m r -> ConduitT seq o m r
- Import.NoFoundation: lineC :: forall (m :: Type -> Type) seq o r. (Monad m, IsSequence seq, Element seq ~ Char) => ConduitT seq o m r -> ConduitT seq o m r
- Import.NoFoundation: lines :: Textual t => t -> [t]
- Import.NoFoundation: linesUnboundedAsciiC :: forall (m :: Type -> Type) seq. (Monad m, IsSequence seq, Element seq ~ Word8) => ConduitT seq seq m ()
- Import.NoFoundation: linesUnboundedC :: forall (m :: Type -> Type) seq. (Monad m, IsSequence seq, Element seq ~ Char) => ConduitT seq seq m ()
- Import.NoFoundation: link :: MonadIO m => Async a -> m ()
- Import.NoFoundation: link2 :: MonadIO m => Async a -> Async b -> m ()
- Import.NoFoundation: link2Async :: MonadIO m => Async a -> Async b -> m ()
- Import.NoFoundation: linkAsync :: MonadIO m => Async a -> m ()
- Import.NoFoundation: listToJSON :: [PersistValue] -> Text
- Import.NoFoundation: listToMaybe :: [a] -> Maybe a
- Import.NoFoundation: liteApp :: Writer LiteApp () -> LiteApp
- Import.NoFoundation: loadAppSettings :: FromJSON settings => [FilePath] -> [Value] -> EnvUsage -> IO settings
- Import.NoFoundation: loadAppSettingsArgs :: FromJSON settings => [Value] -> EnvUsage -> IO settings
- Import.NoFoundation: loadClientSession :: Key -> IO ClientSessionDateCache -> ByteString -> Request -> IO (SessionMap, SaveSession)
- Import.NoFoundation: loadConfig :: PersistConfig c => Value -> Parser c
- Import.NoFoundation: loadYamlSettings :: FromJSON settings => [FilePath] -> [Value] -> EnvUsage -> IO settings
- Import.NoFoundation: loadYamlSettingsArgs :: FromJSON settings => [Value] -> EnvUsage -> IO settings
- Import.NoFoundation: log :: Floating a => a -> a
- Import.NoFoundation: logBase :: Floating a => a -> a -> a
- Import.NoFoundation: logDebug :: Q Exp
- Import.NoFoundation: logDebugS :: Q Exp
- Import.NoFoundation: logError :: Q Exp
- Import.NoFoundation: logErrorS :: Q Exp
- Import.NoFoundation: logInfo :: Q Exp
- Import.NoFoundation: logInfoS :: Q Exp
- Import.NoFoundation: logOther :: Text -> Q Exp
- Import.NoFoundation: logOtherS :: Q Exp
- Import.NoFoundation: logWarn :: Q Exp
- Import.NoFoundation: logWarnS :: Q Exp
- Import.NoFoundation: loginDest :: YesodAuth master => master -> Route master
- Import.NoFoundation: loginErrorMessage :: (MonadHandler m, YesodAuth (HandlerSite m)) => Route (HandlerSite m) -> Text -> m TypedContent
- Import.NoFoundation: loginErrorMessageI :: Route Auth -> AuthMessage -> AuthHandler master TypedContent
- Import.NoFoundation: loginHandler :: YesodAuth master => AuthHandler master Html
- Import.NoFoundation: logoutDest :: YesodAuth master => master -> Route master
- Import.NoFoundation: lookup :: IsMap map => ContainerKey map -> map -> Maybe (MapValue map)
- Import.NoFoundation: lookupBasicAuth :: MonadHandler m => m (Maybe (Text, Text))
- Import.NoFoundation: lookupBearerAuth :: MonadHandler m => m (Maybe Text)
- Import.NoFoundation: lookupCookie :: MonadHandler m => Text -> m (Maybe Text)
- Import.NoFoundation: lookupCookies :: MonadHandler m => Text -> m [Text]
- Import.NoFoundation: lookupFile :: MonadHandler m => Text -> m (Maybe FileInfo)
- Import.NoFoundation: lookupFiles :: MonadHandler m => Text -> m [FileInfo]
- Import.NoFoundation: lookupGetParam :: MonadHandler m => Text -> m (Maybe Text)
- Import.NoFoundation: lookupGetParams :: MonadHandler m => Text -> m [Text]
- Import.NoFoundation: lookupHeader :: MonadHandler m => CI ByteString -> m (Maybe ByteString)
- Import.NoFoundation: lookupHeaders :: MonadHandler m => CI ByteString -> m [ByteString]
- Import.NoFoundation: lookupPostParam :: (MonadResource m, MonadHandler m) => Text -> m (Maybe Text)
- Import.NoFoundation: lookupPostParams :: (MonadResource m, MonadHandler m) => Text -> m [Text]
- Import.NoFoundation: lookupSession :: MonadHandler m => Text -> m (Maybe Text)
- Import.NoFoundation: lookupSessionBS :: MonadHandler m => Text -> m (Maybe ByteString)
- Import.NoFoundation: lucius :: QuasiQuoter
- Import.NoFoundation: mFormToWForm :: forall (m :: Type -> Type) site a. (MonadHandler m, HandlerSite m ~ site) => MForm m (a, FieldView site) -> WForm m a
- Import.NoFoundation: makeConnection :: IO ByteString -> (ByteString -> IO ()) -> IO () -> IO Connection
- Import.NoFoundation: makeLogger :: Yesod site => site -> IO Logger
- Import.NoFoundation: makeSessionBackend :: Yesod site => site -> IO (Maybe SessionBackend)
- Import.NoFoundation: makeYesodLogger :: LoggerSet -> IO Logger
- Import.NoFoundation: managerSetInsecureProxy :: ProxyOverride -> ManagerSettings -> ManagerSettings
- Import.NoFoundation: managerSetProxy :: ProxyOverride -> ManagerSettings -> ManagerSettings
- Import.NoFoundation: managerSetSecureProxy :: ProxyOverride -> ManagerSettings -> ManagerSettings
- Import.NoFoundation: many :: Alternative f => f a -> f [a]
- Import.NoFoundation: map :: Functor f => (a -> b) -> f a -> f b
- Import.NoFoundation: mapAccumS :: forall (m :: Type -> Type) a s b. Monad m => (a -> s -> ConduitT b Void m s) -> s -> ConduitT () b m () -> ConduitT a Void m s
- Import.NoFoundation: mapAccumWhileC :: forall (m :: Type -> Type) a s b. Monad m => (a -> s -> Either s (s, b)) -> s -> ConduitT a b m s
- Import.NoFoundation: mapAccumWhileMC :: Monad m => (a -> s -> m (Either s (s, b))) -> s -> ConduitT a b m s
- Import.NoFoundation: mapC :: forall (m :: Type -> Type) a b. Monad m => (a -> b) -> ConduitT a b m ()
- Import.NoFoundation: mapCE :: forall (m :: Type -> Type) f a b. (Monad m, Functor f) => (a -> b) -> ConduitT (f a) (f b) m ()
- Import.NoFoundation: mapConcurrently :: (MonadUnliftIO m, Traversable t) => (a -> m b) -> t a -> m (t b)
- Import.NoFoundation: mapConcurrently_ :: (MonadUnliftIO m, Foldable f) => (a -> m b) -> f a -> m ()
- Import.NoFoundation: mapExceptionM :: (Exception e1, Exception e2, MonadUnliftIO m) => (e1 -> e2) -> m a -> m a
- Import.NoFoundation: mapFromList :: IsMap map => [(ContainerKey map, MapValue map)] -> map
- Import.NoFoundation: mapInput :: forall (m :: Type -> Type) i1 i2 o r. Monad m => (i1 -> i2) -> (i2 -> Maybe i1) -> ConduitT i2 o m r -> ConduitT i1 o m r
- Import.NoFoundation: mapInputM :: Monad m => (i1 -> m i2) -> (i2 -> m (Maybe i1)) -> ConduitT i2 o m r -> ConduitT i1 o m r
- Import.NoFoundation: mapKeysWith :: (BiPolyMap map, BPMKeyConstraint map k1, BPMKeyConstraint map k2) => (v -> v -> v) -> (k1 -> k2) -> map k1 v -> map k2 v
- Import.NoFoundation: mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
- Import.NoFoundation: mapMC :: Monad m => (a -> m b) -> ConduitT a b m ()
- Import.NoFoundation: mapMCE :: (Monad m, Traversable f) => (a -> m b) -> ConduitT (f a) (f b) m ()
- Import.NoFoundation: mapM_ :: (MonoFoldable mono, Applicative m) => (Element mono -> m ()) -> mono -> m ()
- Import.NoFoundation: mapM_C :: Monad m => (a -> m ()) -> ConduitT a o m ()
- Import.NoFoundation: mapM_CE :: (Monad m, MonoFoldable mono) => (Element mono -> m ()) -> ConduitT mono o m ()
- Import.NoFoundation: mapMaybe :: (a -> Maybe b) -> [a] -> [b]
- Import.NoFoundation: mapMaybeT :: (m (Maybe a) -> n (Maybe b)) -> MaybeT m a -> MaybeT n b
- Import.NoFoundation: mapNonNull :: (Functor f, MonoFoldable (f b)) => (a -> b) -> NonNull (f a) -> NonNull (f b)
- Import.NoFoundation: mapOutput :: forall (m :: Type -> Type) o1 o2 i r. Monad m => (o1 -> o2) -> ConduitT i o1 m r -> ConduitT i o2 m r
- Import.NoFoundation: mapOutputMaybe :: forall (m :: Type -> Type) o1 o2 i r. Monad m => (o1 -> Maybe o2) -> ConduitT i o1 m r -> ConduitT i o2 m r
- Import.NoFoundation: mapToJSON :: [(Text, PersistValue)] -> Text
- Import.NoFoundation: mapToList :: IsMap map => map -> [(ContainerKey map, MapValue map)]
- Import.NoFoundation: mapWhileC :: forall (m :: Type -> Type) a b. Monad m => (a -> Maybe b) -> ConduitT a b m ()
- Import.NoFoundation: mapWithKey :: IsMap map => (ContainerKey map -> MapValue map -> MapValue map) -> map -> map
- Import.NoFoundation: mappend :: Monoid a => a -> a -> a
- Import.NoFoundation: mask :: MonadUnliftIO m => ((forall a. () => m a -> m a) -> m b) -> m b
- Import.NoFoundation: mask_ :: MonadUnliftIO m => m a -> m a
- Import.NoFoundation: max :: Ord a => a -> a -> a
- Import.NoFoundation: maxBound :: Bounded a => a
- Import.NoFoundation: maximum :: (MonoFoldable mono, Ord (Element mono)) => NonNull mono -> Element mono
- Import.NoFoundation: maximumBy :: MonoFoldable mono => (Element mono -> Element mono -> Ordering) -> NonNull mono -> Element mono
- Import.NoFoundation: maximumByEx :: MonoFoldable mono => (Element mono -> Element mono -> Ordering) -> mono -> Element mono
- Import.NoFoundation: maximumByMay :: MonoFoldable mono => (Element mono -> Element mono -> Ordering) -> mono -> Maybe (Element mono)
- Import.NoFoundation: maximumC :: forall (m :: Type -> Type) a o. (Monad m, Ord a) => ConduitT a o m (Maybe a)
- Import.NoFoundation: maximumCE :: forall (m :: Type -> Type) seq o. (Monad m, IsSequence seq, Ord (Element seq)) => ConduitT seq o m (Maybe (Element seq))
- Import.NoFoundation: maximumContentLength :: Yesod site => site -> Maybe (Route site) -> Maybe Word64
- Import.NoFoundation: maximumContentLengthIO :: Yesod site => site -> Maybe (Route site) -> IO (Maybe Word64)
- Import.NoFoundation: maximumEx :: (MonoFoldable mono, Ord (Element mono)) => mono -> Element mono
- Import.NoFoundation: maximumMay :: (MonoFoldable mono, Ord (Element mono)) => mono -> Maybe (Element mono)
- Import.NoFoundation: maybe :: b -> (a -> b) -> Maybe a -> b
- Import.NoFoundation: maybeAuth :: (YesodAuthPersist master, val ~ AuthEntity master, Key val ~ AuthId master, PersistEntity val, Typeable val, MonadHandler m, HandlerSite m ~ master) => m (Maybe (Entity val))
- Import.NoFoundation: maybeAuthId :: (YesodAuth master, MonadHandler m, master ~ HandlerSite m) => m (Maybe (AuthId master))
- Import.NoFoundation: maybeAuthPair :: (YesodAuthPersist master, Typeable (AuthEntity master), MonadHandler m, HandlerSite m ~ master) => m (Maybe (AuthId master, AuthEntity master))
- Import.NoFoundation: maybeAuthorized :: Yesod site => Route site -> Bool -> HandlerT site IO (Maybe (Route site))
- Import.NoFoundation: maybeC :: forall (m :: Type -> Type) i o a. Monad m => ConduitT i o m (Maybe a) -> ConduitT i o (MaybeT m) a
- Import.NoFoundation: maybeToExceptT :: forall (m :: Type -> Type) e a. Functor m => e -> MaybeT m a -> ExceptT e m a
- Import.NoFoundation: maybeToList :: Maybe a -> [a]
- Import.NoFoundation: maybeUpsertResult :: UpsertResult a -> Maybe a
- Import.NoFoundation: mconcat :: Monoid a => [a] -> a
- Import.NoFoundation: member :: SetContainer set => ContainerKey set -> set -> Bool
- Import.NoFoundation: memoizeMVar :: MonadUnliftIO m => m a -> m (Memoized a)
- Import.NoFoundation: memoizeRef :: MonadUnliftIO m => m a -> m (Memoized a)
- Import.NoFoundation: mempty :: Monoid a => a
- Import.NoFoundation: mergeSource :: forall (m :: Type -> Type) i a. Monad m => ConduitT () i m () -> ConduitT a (i, a) m ()
- Import.NoFoundation: messageJson401 :: MonadHandler m => Text -> m Html -> m TypedContent
- Import.NoFoundation: messageLoggerSource :: Yesod site => site -> Logger -> Loc -> LogSource -> LogLevel -> LogStr -> IO ()
- Import.NoFoundation: methodConnect :: Method
- Import.NoFoundation: methodDelete :: Method
- Import.NoFoundation: methodGet :: Method
- Import.NoFoundation: methodHead :: Method
- Import.NoFoundation: methodNotAllowed405 :: Status
- Import.NoFoundation: methodOptions :: Method
- Import.NoFoundation: methodPatch :: Method
- Import.NoFoundation: methodPost :: Method
- Import.NoFoundation: methodPut :: Method
- Import.NoFoundation: methodTrace :: Method
- Import.NoFoundation: migrateAll :: Migration
- Import.NoFoundation: migrateIndexes :: Migration
- Import.NoFoundation: migrateModels :: [EntityDef] -> Migration
- Import.NoFoundation: migrateSchema :: Migration
- Import.NoFoundation: min :: Ord a => a -> a -> a
- Import.NoFoundation: minBound :: Bounded a => a
- Import.NoFoundation: minimum :: (MonoFoldable mono, Ord (Element mono)) => NonNull mono -> Element mono
- Import.NoFoundation: minimumBy :: MonoFoldable mono => (Element mono -> Element mono -> Ordering) -> NonNull mono -> Element mono
- Import.NoFoundation: minimumByEx :: MonoFoldable mono => (Element mono -> Element mono -> Ordering) -> mono -> Element mono
- Import.NoFoundation: minimumByMay :: MonoFoldable mono => (Element mono -> Element mono -> Ordering) -> mono -> Maybe (Element mono)
- Import.NoFoundation: minimumC :: forall (m :: Type -> Type) a o. (Monad m, Ord a) => ConduitT a o m (Maybe a)
- Import.NoFoundation: minimumCE :: forall (m :: Type -> Type) seq o. (Monad m, IsSequence seq, Ord (Element seq)) => ConduitT seq o m (Maybe (Element seq))
- Import.NoFoundation: minimumEx :: (MonoFoldable mono, Ord (Element mono)) => mono -> Element mono
- Import.NoFoundation: minimumMay :: (MonoFoldable mono, Ord (Element mono)) => mono -> Maybe (Element mono)
- Import.NoFoundation: mkAcquire :: IO a -> (a -> IO ()) -> Acquire a
- Import.NoFoundation: mkAcquireType :: IO a -> (a -> ReleaseType -> IO ()) -> Acquire a
- Import.NoFoundation: mkBmSlug :: IO BmSlug
- Import.NoFoundation: mkBookmarkTags :: Key User -> Key Bookmark -> [Tag] -> [BookmarkTag]
- Import.NoFoundation: mkDefaultMiddlewares :: Logger -> IO Middleware
- Import.NoFoundation: mkEntityDefList :: String -> [UnboundEntityDef] -> Q [Dec]
- Import.NoFoundation: mkIOError :: IOErrorType -> String -> Maybe Handle -> Maybe FilePath -> IOError
- Import.NoFoundation: mkMessage :: String -> FilePath -> Lang -> Q [Dec]
- Import.NoFoundation: mkMessageFor :: String -> String -> FilePath -> Lang -> Q [Dec]
- Import.NoFoundation: mkMessageVariant :: String -> String -> FilePath -> Lang -> Q [Dec]
- Import.NoFoundation: mkMigrate :: String -> [UnboundEntityDef] -> Q [Dec]
- Import.NoFoundation: mkNtSlug :: IO NtSlug
- Import.NoFoundation: mkOptionList :: [Option a] -> OptionList a
- Import.NoFoundation: mkOptionListGrouped :: [(Text, [Option a])] -> OptionList a
- Import.NoFoundation: mkPersist :: MkPersistSettings -> [UnboundEntityDef] -> Q [Dec]
- Import.NoFoundation: mkPersistSettings :: Type -> MkPersistSettings
- Import.NoFoundation: mkPersistWith :: MkPersistSettings -> [EntityDef] -> [UnboundEntityDef] -> Q [Dec]
- Import.NoFoundation: mkSlug :: Int -> IO Text
- Import.NoFoundation: mkStatus :: Int -> ByteString -> Status
- Import.NoFoundation: mkWeakIORef :: MonadUnliftIO m => IORef a -> m () -> m (Weak (IORef a))
- Import.NoFoundation: mkWeakMVar :: MonadUnliftIO m => MVar a -> m () -> m (Weak (MVar a))
- Import.NoFoundation: mkWeakTMVar :: MonadUnliftIO m => TMVar a -> m () -> m (Weak (TMVar a))
- Import.NoFoundation: mkWeakTVar :: MonadUnliftIO m => TVar a -> m () -> m (Weak (TVar a))
- Import.NoFoundation: mkYesod :: String -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mkYesodData :: String -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mkYesodDataOpts :: RouteOpts -> String -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mkYesodDispatch :: String -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mkYesodDispatchOpts :: RouteOpts -> String -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mkYesodOpts :: RouteOpts -> String -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mkYesodSubData :: String -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mkYesodSubDataOpts :: RouteOpts -> String -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mkYesodSubDispatch :: [ResourceTree a] -> Q Exp
- Import.NoFoundation: mkYesodWith :: [[String]] -> String -> [String] -> [ResourceTree String] -> Q [Dec]
- Import.NoFoundation: mod :: Integral a => a -> a -> a
- Import.NoFoundation: modifyIOError :: (IOError -> IOError) -> IO a -> IO a
- Import.NoFoundation: modifyIORef :: MonadIO m => IORef a -> (a -> a) -> m ()
- Import.NoFoundation: modifyIORef' :: MonadIO m => IORef a -> (a -> a) -> m ()
- Import.NoFoundation: modifyMVar :: MonadUnliftIO m => MVar a -> (a -> m (a, b)) -> m b
- Import.NoFoundation: modifyMVarMasked :: MonadUnliftIO m => MVar a -> (a -> m (a, b)) -> m b
- Import.NoFoundation: modifyMVarMasked_ :: MonadUnliftIO m => MVar a -> (a -> m a) -> m ()
- Import.NoFoundation: modifyMVar_ :: MonadUnliftIO m => MVar a -> (a -> m a) -> m ()
- Import.NoFoundation: modifyMutVar :: PrimMonad m => MutVar (PrimState m) a -> (a -> a) -> m ()
- Import.NoFoundation: modifyMutVar' :: PrimMonad m => MutVar (PrimState m) a -> (a -> a) -> m ()
- Import.NoFoundation: modifyRef :: (MutableRef c, PrimMonad m, PrimState m ~ MCState c) => c -> (RefElement c -> RefElement c) -> m ()
- Import.NoFoundation: modifyRef' :: (MutableRef c, PrimMonad m, PrimState m ~ MCState c) => c -> (RefElement c -> RefElement c) -> m ()
- Import.NoFoundation: modifyTVar :: TVar a -> (a -> a) -> STM ()
- Import.NoFoundation: modifyTVar' :: TVar a -> (a -> a) -> STM ()
- Import.NoFoundation: mopt :: forall site (m :: Type -> Type) a. (site ~ HandlerSite m, MonadHandler m) => Field m a -> FieldSettings site -> Maybe (Maybe a) -> MForm m (FormResult (Maybe a), FieldView site)
- Import.NoFoundation: movedPermanently301 :: Status
- Import.NoFoundation: mplus :: MonadPlus m => m a -> m a -> m a
- Import.NoFoundation: mreq :: forall site (m :: Type -> Type) a. (RenderMessage site FormMessage, HandlerSite m ~ site, MonadHandler m) => Field m a -> FieldSettings site -> Maybe a -> MForm m (FormResult a, FieldView site)
- Import.NoFoundation: mreqMsg :: forall site msg (m :: Type -> Type) a. (RenderMessage site msg, HandlerSite m ~ site, MonadHandler m) => Field m a -> FieldSettings site -> msg -> Maybe a -> MForm m (FormResult a, FieldView site)
- Import.NoFoundation: multiEmailField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m [Text]
- Import.NoFoundation: multiSelectField :: Eq a => HandlerFor site (OptionList a) -> Field (HandlerFor site) [a]
- Import.NoFoundation: multiSelectFieldList :: (Eq a, RenderMessage site msg) => [(msg, a)] -> Field (HandlerFor site) [a]
- Import.NoFoundation: multipleChoices300 :: Status
- Import.NoFoundation: mzero :: MonadPlus m => m a
- Import.NoFoundation: nReplicate :: IsSequence seq => Index seq -> Element seq -> NonNull seq
- Import.NoFoundation: ncons :: SemiSequence seq => Element seq -> seq -> NonNull seq
- Import.NoFoundation: negate :: Num a => a -> a
- Import.NoFoundation: networkAuthenticationRequired511 :: Status
- Import.NoFoundation: neverExpires :: MonadHandler m => m ()
- Import.NoFoundation: newBroadcastTChan :: STM (TChan a)
- Import.NoFoundation: newBroadcastTChanIO :: MonadIO m => m (TChan a)
- Import.NoFoundation: newBroadcastTMChan :: STM (TMChan a)
- Import.NoFoundation: newBroadcastTMChanIO :: IO (TMChan a)
- Import.NoFoundation: newChan :: MonadIO m => m (Chan a)
- Import.NoFoundation: newColl :: (MutableCollection c, PrimMonad m, PrimState m ~ MCState c) => m c
- Import.NoFoundation: newEmptyMVar :: MonadIO m => m (MVar a)
- Import.NoFoundation: newEmptyTMVar :: STM (TMVar a)
- Import.NoFoundation: newEmptyTMVarIO :: MonadIO m => m (TMVar a)
- Import.NoFoundation: newFormIdent :: forall (m :: Type -> Type). Monad m => MForm m Text
- Import.NoFoundation: newIORef :: MonadIO m => a -> m (IORef a)
- Import.NoFoundation: newIdent :: MonadHandler m => m Text
- Import.NoFoundation: newMVar :: MonadIO m => a -> m (MVar a)
- Import.NoFoundation: newManager :: MonadIO m => m Manager
- Import.NoFoundation: newManagerSettings :: MonadIO m => ManagerSettings -> m Manager
- Import.NoFoundation: newMutVar :: PrimMonad m => a -> m (MutVar (PrimState m) a)
- Import.NoFoundation: newQSem :: MonadIO m => Int -> m QSem
- Import.NoFoundation: newQSemN :: MonadIO m => Int -> m QSemN
- Import.NoFoundation: newRef :: (MutableRef c, PrimMonad m, PrimState m ~ MCState c) => RefElement c -> m c
- Import.NoFoundation: newTBChan :: Int -> STM (TBChan a)
- Import.NoFoundation: newTBChanIO :: Int -> IO (TBChan a)
- Import.NoFoundation: newTBMChan :: Int -> STM (TBMChan a)
- Import.NoFoundation: newTBMChanIO :: Int -> IO (TBMChan a)
- Import.NoFoundation: newTBMQueue :: Int -> STM (TBMQueue a)
- Import.NoFoundation: newTBMQueueIO :: Int -> IO (TBMQueue a)
- Import.NoFoundation: newTBQueue :: Natural -> STM (TBQueue a)
- Import.NoFoundation: newTBQueueIO :: MonadIO m => Natural -> m (TBQueue a)
- Import.NoFoundation: newTChan :: STM (TChan a)
- Import.NoFoundation: newTChanIO :: MonadIO m => m (TChan a)
- Import.NoFoundation: newTMChan :: STM (TMChan a)
- Import.NoFoundation: newTMChanIO :: IO (TMChan a)
- Import.NoFoundation: newTMQueue :: STM (TMQueue a)
- Import.NoFoundation: newTMQueueIO :: IO (TMQueue a)
- Import.NoFoundation: newTMVar :: a -> STM (TMVar a)
- Import.NoFoundation: newTMVarIO :: MonadIO m => a -> m (TMVar a)
- Import.NoFoundation: newTQueue :: STM (TQueue a)
- Import.NoFoundation: newTQueueIO :: MonadIO m => m (TQueue a)
- Import.NoFoundation: newTVar :: a -> STM (TVar a)
- Import.NoFoundation: newTVarIO :: MonadIO m => a -> m (TVar a)
- Import.NoFoundation: newsFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m TypedContent
- Import.NoFoundation: newsFeedText :: MonadHandler m => Feed Text -> m TypedContent
- Import.NoFoundation: newtype () => AForm (m :: Type -> Type) a
- Import.NoFoundation: newtype ApiKey
- Import.NoFoundation: newtype BCrypt
- Import.NoFoundation: newtype BmSlug
- Import.NoFoundation: newtype () => Concurrently (m :: Type -> Type) a
- Import.NoFoundation: newtype () => ConstraintNameDB
- Import.NoFoundation: newtype () => ConstraintNameHS
- Import.NoFoundation: newtype () => CssBuilder
- Import.NoFoundation: newtype () => DBRunner site
- Import.NoFoundation: newtype () => Day
- Import.NoFoundation: newtype () => DontFullyEvaluate a
- Import.NoFoundation: newtype () => Down a
- Import.NoFoundation: newtype () => EntityNameDB
- Import.NoFoundation: newtype () => EntityNameHS
- Import.NoFoundation: newtype () => FieldNameDB
- Import.NoFoundation: newtype () => FieldNameHS
- Import.NoFoundation: newtype () => FormInput (m :: Type -> Type) a
- Import.NoFoundation: newtype HashedApiKey
- Import.NoFoundation: newtype () => Identity a
- Import.NoFoundation: newtype () => Javascript
- Import.NoFoundation: newtype () => LiteApp
- Import.NoFoundation: newtype () => MaybeT (m :: Type -> Type) a
- Import.NoFoundation: newtype () => MergedValue
- Import.NoFoundation: newtype NtSlug
- Import.NoFoundation: newtype () => OverflowNatural
- Import.NoFoundation: newtype () => RawJavascript
- Import.NoFoundation: newtype () => ReaderT r (m :: Type -> Type) a
- Import.NoFoundation: newtype () => RepJson
- Import.NoFoundation: newtype () => RepPlain
- Import.NoFoundation: newtype () => RepXml
- Import.NoFoundation: newtype () => SessionBackend
- Import.NoFoundation: newtype () => Static
- Import.NoFoundation: newtype TagsP
- Import.NoFoundation: newtype () => Textarea
- Import.NoFoundation: newtype UTCTimeStr
- Import.NoFoundation: newtype () => UnliftIO (m :: Type -> Type)
- Import.NoFoundation: newtype UnreadOnly
- Import.NoFoundation: newtype UserNameP
- Import.NoFoundation: newtype () => WaiSubsite
- Import.NoFoundation: newtype () => WaiSubsiteWithAuth
- Import.NoFoundation: newtype () => WrappedPoly (f :: Type -> Type) a
- Import.NoFoundation: newtype () => ZipConduit i o (m :: Type -> Type) r
- Import.NoFoundation: newtype () => ZipSink i (m :: Type -> Type) r
- Import.NoFoundation: newtype () => ZipSource (m :: Type -> Type) o
- Import.NoFoundation: nfilter :: IsSequence seq => (Element seq -> Bool) -> NonNull seq -> seq
- Import.NoFoundation: nfilterM :: (Monad m, IsSequence seq) => (Element seq -> m Bool) -> NonNull seq -> m seq
- Import.NoFoundation: noCascade :: FieldCascade
- Import.NoFoundation: noContent204 :: Status
- Import.NoFoundation: noProxy :: ProxyOverride
- Import.NoFoundation: nonAuthoritative203 :: Status
- Import.NoFoundation: nonNull :: MonoFoldable mono => mono -> NonNull mono
- Import.NoFoundation: not :: Bool -> Bool
- Import.NoFoundation: notAcceptable406 :: Status
- Import.NoFoundation: notAuthenticated :: MonadHandler m => m a
- Import.NoFoundation: notElem :: (MonoFoldable mono, Eq (Element mono)) => Element mono -> mono -> Bool
- Import.NoFoundation: notElemC :: forall (m :: Type -> Type) a o. (Monad m, Eq a) => a -> ConduitT a o m Bool
- Import.NoFoundation: notElemCE :: forall (m :: Type -> Type) seq o. (Monad m, IsSequence seq, Eq (Element seq)) => Element seq -> ConduitT seq o m Bool
- Import.NoFoundation: notFound :: MonadHandler m => m a
- Import.NoFoundation: notFound404 :: Status
- Import.NoFoundation: notImplemented501 :: Status
- Import.NoFoundation: notMember :: SetContainer set => ContainerKey set -> set -> Bool
- Import.NoFoundation: notModified :: MonadHandler m => m a
- Import.NoFoundation: notModified304 :: Status
- Import.NoFoundation: null :: MonoFoldable mono => mono -> Bool
- Import.NoFoundation: nullC :: forall (m :: Type -> Type) a o. Monad m => ConduitT a o m Bool
- Import.NoFoundation: nullCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono) => ConduitT mono o m Bool
- Import.NoFoundation: nuncons :: IsSequence seq => NonNull seq -> (Element seq, Maybe (NonNull seq))
- Import.NoFoundation: oall :: MonoFoldable mono => (Element mono -> Bool) -> mono -> Bool
- Import.NoFoundation: oand :: (Element mono ~ Bool, MonoFoldable mono) => mono -> Bool
- Import.NoFoundation: oany :: MonoFoldable mono => (Element mono -> Bool) -> mono -> Bool
- Import.NoFoundation: object :: [Pair] -> Value
- Import.NoFoundation: observedStreamFile :: (StreamFileStatus -> IO ()) -> FilePath -> IO RequestBody
- Import.NoFoundation: ocompareLength :: (MonoFoldable mono, Integral i) => mono -> i -> Ordering
- Import.NoFoundation: oconcat :: (MonoFoldable mono, Monoid (Element mono)) => mono -> Element mono
- Import.NoFoundation: oconcatMap :: (MonoFoldable mono, Monoid m) => (Element mono -> m) -> mono -> m
- Import.NoFoundation: odd :: Integral a => a -> Bool
- Import.NoFoundation: oelem :: MonoFoldable mono => Element mono -> mono -> Bool
- Import.NoFoundation: oextend :: MonoComonad mono => (mono -> Element mono) -> mono -> mono
- Import.NoFoundation: oextract :: MonoComonad mono => mono -> Element mono
- Import.NoFoundation: ofold :: (MonoFoldable mono, Monoid (Element mono)) => mono -> Element mono
- Import.NoFoundation: ofold1 :: (MonoFoldable mono, Semigroup (Element mono)) => NonNull mono -> Element mono
- Import.NoFoundation: ofoldM :: (MonoFoldable mono, Monad m) => (a -> Element mono -> m a) -> a -> mono -> m a
- Import.NoFoundation: ofoldMUnwrap :: (Monad m, MonoFoldable mono) => (x -> Element mono -> m x) -> m x -> (x -> m b) -> mono -> m b
- Import.NoFoundation: ofoldMap :: (MonoFoldable mono, Monoid m) => (Element mono -> m) -> mono -> m
- Import.NoFoundation: ofoldMap1 :: (MonoFoldable mono, Semigroup m) => (Element mono -> m) -> NonNull mono -> m
- Import.NoFoundation: ofoldMap1Ex :: (MonoFoldable mono, Semigroup m) => (Element mono -> m) -> mono -> m
- Import.NoFoundation: ofoldl' :: MonoFoldable mono => (a -> Element mono -> a) -> a -> mono -> a
- Import.NoFoundation: ofoldl1' :: MonoFoldable mono => (Element mono -> Element mono -> Element mono) -> NonNull mono -> Element mono
- Import.NoFoundation: ofoldl1Ex' :: MonoFoldable mono => (Element mono -> Element mono -> Element mono) -> mono -> Element mono
- Import.NoFoundation: ofoldlM :: (MonoFoldable mono, Monad m) => (a -> Element mono -> m a) -> a -> mono -> m a
- Import.NoFoundation: ofoldlUnwrap :: MonoFoldable mono => (x -> Element mono -> x) -> x -> (x -> b) -> mono -> b
- Import.NoFoundation: ofoldr :: MonoFoldable mono => (Element mono -> b -> b) -> b -> mono -> b
- Import.NoFoundation: ofoldr1 :: MonoFoldable mono => (Element mono -> Element mono -> Element mono) -> NonNull mono -> Element mono
- Import.NoFoundation: ofoldr1Ex :: MonoFoldable mono => (Element mono -> Element mono -> Element mono) -> mono -> Element mono
- Import.NoFoundation: ofor :: (MonoTraversable mono, Applicative f) => mono -> (Element mono -> f (Element mono)) -> f mono
- Import.NoFoundation: oforM :: (MonoTraversable mono, Applicative f) => mono -> (Element mono -> f (Element mono)) -> f mono
- Import.NoFoundation: oforM_ :: (MonoFoldable mono, Applicative m) => mono -> (Element mono -> m ()) -> m ()
- Import.NoFoundation: ofor_ :: (MonoFoldable mono, Applicative f) => mono -> (Element mono -> f b) -> f ()
- Import.NoFoundation: ointercalate :: (MonoFoldable mono, Monoid (Element mono)) => Element mono -> mono -> Element mono
- Import.NoFoundation: ok200 :: Status
- Import.NoFoundation: olength :: MonoFoldable mono => mono -> Int
- Import.NoFoundation: olength64 :: MonoFoldable mono => mono -> Int64
- Import.NoFoundation: omap :: MonoFunctor mono => (Element mono -> Element mono) -> mono -> mono
- Import.NoFoundation: omapCE :: forall (m :: Type -> Type) mono. (Monad m, MonoFunctor mono) => (Element mono -> Element mono) -> ConduitT mono mono m ()
- Import.NoFoundation: omapKeysWith :: IsMap map => (MapValue map -> MapValue map -> MapValue map) -> (ContainerKey map -> ContainerKey map) -> map -> map
- Import.NoFoundation: omapM :: (MonoTraversable mono, Applicative m) => (Element mono -> m (Element mono)) -> mono -> m mono
- Import.NoFoundation: omapMCE :: (Monad m, MonoTraversable mono) => (Element mono -> m (Element mono)) -> ConduitT mono mono m ()
- Import.NoFoundation: omapM_ :: (MonoFoldable mono, Applicative m) => (Element mono -> m ()) -> mono -> m ()
- Import.NoFoundation: omitField :: ToJSON a => a -> Bool
- Import.NoFoundation: omittedField :: FromJSON a => Maybe a
- Import.NoFoundation: on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
- Import.NoFoundation: onErrorHtml :: (YesodAuth master, MonadHandler m, HandlerSite m ~ master) => Route master -> Text -> m Html
- Import.NoFoundation: onException :: MonadUnliftIO m => m a -> m b -> m a
- Import.NoFoundation: onLogin :: (YesodAuth master, MonadHandler m, master ~ HandlerSite m) => m ()
- Import.NoFoundation: onLogout :: (YesodAuth master, MonadHandler m, master ~ HandlerSite m) => m ()
- Import.NoFoundation: onMethod :: Method -> Writer LiteApp () -> Writer LiteApp ()
- Import.NoFoundation: onStatic :: Text -> Writer LiteApp () -> Writer LiteApp ()
- Import.NoFoundation: onlyOneUniqueDef :: (OnlyOneUniqueKey record, Monad proxy) => proxy record -> UniqueDef
- Import.NoFoundation: onlyUnique :: forall record backend (m :: Type -> Type). (MonadIO m, PersistUniqueWrite backend, PersistRecordBackend record backend, OnlyOneUniqueKey record) => record -> ReaderT backend m (Unique record)
- Import.NoFoundation: onlyUniqueP :: OnlyOneUniqueKey record => record -> Unique record
- Import.NoFoundation: onotElem :: MonoFoldable mono => Element mono -> mono -> Bool
- Import.NoFoundation: onull :: MonoFoldable mono => mono -> Bool
- Import.NoFoundation: oor :: (Element mono ~ Bool, MonoFoldable mono) => mono -> Bool
- Import.NoFoundation: openFile :: MonadIO m => FilePath -> IOMode -> m Handle
- Import.NoFoundation: opoint :: MonoPointed mono => Element mono -> mono
- Import.NoFoundation: oproduct :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono
- Import.NoFoundation: optional :: Alternative f => f a -> f (Maybe a)
- Import.NoFoundation: optionsEnum :: (MonadHandler m, Show a, Enum a, Bounded a) => m (OptionList a)
- Import.NoFoundation: optionsPairs :: (MonadHandler m, RenderMessage (HandlerSite m) msg) => [(msg, a)] -> m (OptionList a)
- Import.NoFoundation: optionsPairsGrouped :: (MonadHandler m, RenderMessage (HandlerSite m) msg) => [(msg, [(msg, a)])] -> m (OptionList a)
- Import.NoFoundation: optionsPersist :: (YesodPersist site, PersistQueryRead backend, PathPiece (Key a), RenderMessage site msg, YesodPersistBackend site ~ backend, PersistRecordBackend a backend) => [Filter a] -> [SelectOpt a] -> (a -> msg) -> HandlerFor site (OptionList (Entity a))
- Import.NoFoundation: optionsPersistKey :: (YesodPersist site, PersistQueryRead backend, PathPiece (Key a), RenderMessage site msg, backend ~ YesodPersistBackend site, PersistRecordBackend a backend) => [Filter a] -> [SelectOpt a] -> (a -> msg) -> HandlerFor site (OptionList (Key a))
- Import.NoFoundation: or :: (MonoFoldable mono, Element mono ~ Bool) => mono -> Bool
- Import.NoFoundation: orC :: forall (m :: Type -> Type) o. Monad m => ConduitT Bool o m Bool
- Import.NoFoundation: orCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono, Element mono ~ Bool) => ConduitT mono o m Bool
- Import.NoFoundation: orElse :: STM a -> STM a -> STM a
- Import.NoFoundation: orElseSTM :: STM a -> STM a -> STM a
- Import.NoFoundation: ordNub :: Ord a => [a] -> [a]
- Import.NoFoundation: ordNubBy :: Ord b => (a -> b) -> (a -> a -> Bool) -> [a] -> [a]
- Import.NoFoundation: osequence_ :: (Applicative m, MonoFoldable mono, Element mono ~ m ()) => mono -> m ()
- Import.NoFoundation: osum :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono
- Import.NoFoundation: otherwise :: Bool
- Import.NoFoundation: otoList :: MonoFoldable mono => mono -> [Element mono]
- Import.NoFoundation: otraverse :: (MonoTraversable mono, Applicative f) => (Element mono -> f (Element mono)) -> mono -> f mono
- Import.NoFoundation: otraverse_ :: (MonoFoldable mono, Applicative f) => (Element mono -> f b) -> mono -> f ()
- Import.NoFoundation: ounzip :: MonoZip mono => [(Element mono, Element mono)] -> (mono, mono)
- Import.NoFoundation: overEntityFields :: ([FieldDef] -> [FieldDef]) -> EntityDef -> EntityDef
- Import.NoFoundation: overFieldAttrs :: ([FieldAttr] -> [FieldAttr]) -> FieldDef -> FieldDef
- Import.NoFoundation: ozip :: MonoZip mono => mono -> mono -> [(Element mono, Element mono)]
- Import.NoFoundation: ozipWith :: MonoZip mono => (Element mono -> Element mono -> Element mono) -> mono -> mono -> mono
- Import.NoFoundation: pack :: IsSequence seq => [Element seq] -> seq
- Import.NoFoundation: parseByteRanges :: ByteString -> Maybe ByteRanges
- Import.NoFoundation: parseCheckJsonBody :: (MonadHandler m, FromJSON a) => m (Result a)
- Import.NoFoundation: parseDate :: String -> Either FormMessage Day
- Import.NoFoundation: parseFieldAttrs :: [Text] -> [FieldAttr]
- Import.NoFoundation: parseHelper :: (Monad m, RenderMessage site FormMessage) => (Text -> Either FormMessage a) -> [Text] -> [FileInfo] -> m (Either (SomeMessage site) (Maybe a))
- Import.NoFoundation: parseHelperGen :: (Monad m, RenderMessage site msg) => (Text -> Either msg a) -> [Text] -> [FileInfo] -> m (Either (SomeMessage site) (Maybe a))
- Import.NoFoundation: parseInsecureJsonBody :: (MonadHandler m, FromJSON a) => m (Result a)
- Import.NoFoundation: parseJSON :: FromJSON a => Value -> Parser a
- Import.NoFoundation: parseJSONList :: FromJSON a => Value -> Parser [a]
- Import.NoFoundation: parseJsonBody :: (MonadHandler m, FromJSON a) => m (Result a)
- Import.NoFoundation: parseJsonBody_ :: (MonadHandler m, FromJSON a) => m a
- Import.NoFoundation: parseMethod :: Method -> Either ByteString StdMethod
- Import.NoFoundation: parseQuery :: ByteString -> Query
- Import.NoFoundation: parseQueryReplacePlus :: Bool -> ByteString -> Query
- Import.NoFoundation: parseQueryText :: ByteString -> QueryText
- Import.NoFoundation: parseReferences :: PersistSettings -> Text -> Q Exp
- Import.NoFoundation: parseRequest :: MonadThrow m => String -> m Request
- Import.NoFoundation: parseRequest_ :: String -> Request
- Import.NoFoundation: parseRoute :: ParseRoute a => ([Text], [(Text, Text)]) -> Maybe (Route a)
- Import.NoFoundation: parseRoutes :: QuasiQuoter
- Import.NoFoundation: parseRoutesFile :: FilePath -> Q Exp
- Import.NoFoundation: parseRoutesFileNoCheck :: FilePath -> Q Exp
- Import.NoFoundation: parseRoutesNoCheck :: QuasiQuoter
- Import.NoFoundation: parseSearchQuery :: (Text -> SqlExpr (Value Bool)) -> Text -> Maybe (SqlQuery ())
- Import.NoFoundation: parseSimpleQuery :: ByteString -> SimpleQuery
- Import.NoFoundation: parseTime :: ParseTime t => TimeLocale -> String -> String -> Maybe t
- Import.NoFoundation: parseTimeM :: (MonadFail m, ParseTime t) => Bool -> TimeLocale -> String -> String -> m t
- Import.NoFoundation: parseTimeText :: (ParseTime t, MonadFail m, Alternative m) => Text -> m t
- Import.NoFoundation: parseUrl :: MonadThrow m => String -> m Request
- Import.NoFoundation: parseUrlThrow :: MonadThrow m => String -> m Request
- Import.NoFoundation: partialContent206 :: Status
- Import.NoFoundation: partition :: IsSequence seq => (Element seq -> Bool) -> seq -> (seq, seq)
- Import.NoFoundation: partitionEithers :: [Either a b] -> ([a], [b])
- Import.NoFoundation: passthroughSink :: Monad m => ConduitT i Void m r -> (r -> m ()) -> ConduitT i i m ()
- Import.NoFoundation: passwordField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Text
- Import.NoFoundation: pathMatches :: ByteString -> ByteString -> Bool
- Import.NoFoundation: pattern DeleteCookie :: () => !ByteString -> !ByteString -> Header
- Import.NoFoundation: pattern AddCookie :: () => !SetCookie -> Header
- Import.NoFoundation: pattern PersistDbSpecific :: ByteString -> PersistValue
- Import.NoFoundation: pattern PersistLiteral :: ByteString -> PersistValue
- Import.NoFoundation: pattern PersistLiteralEscaped :: ByteString -> PersistValue
- Import.NoFoundation: pattern ReleaseException :: ReleaseType
- Import.NoFoundation: paymentRequired402 :: Status
- Import.NoFoundation: peekC :: forall (m :: Type -> Type) a o. Monad m => ConduitT a o m (Maybe a)
- Import.NoFoundation: peekCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono) => ConduitT mono o m (Maybe (Element mono))
- Import.NoFoundation: peekForever :: forall (m :: Type -> Type) i o. Monad m => ConduitT i o m () -> ConduitT i o m ()
- Import.NoFoundation: peekForeverE :: forall (m :: Type -> Type) i o. (Monad m, MonoFoldable i) => ConduitT i o m () -> ConduitT i o m ()
- Import.NoFoundation: peekTBChan :: TBChan a -> STM a
- Import.NoFoundation: peekTBMChan :: TBMChan a -> STM (Maybe a)
- Import.NoFoundation: peekTBMQueue :: TBMQueue a -> STM (Maybe a)
- Import.NoFoundation: peekTBQueue :: TBQueue a -> STM a
- Import.NoFoundation: peekTChan :: TChan a -> STM a
- Import.NoFoundation: peekTMChan :: TMChan a -> STM (Maybe a)
- Import.NoFoundation: peekTMQueue :: TMQueue a -> STM (Maybe a)
- Import.NoFoundation: peekTQueue :: TQueue a -> STM a
- Import.NoFoundation: permanentRedirect308 :: Status
- Import.NoFoundation: permissionDenied :: MonadHandler m => Text -> m a
- Import.NoFoundation: permissionDeniedI :: (RenderMessage (HandlerSite m) msg, MonadHandler m) => msg -> m a
- Import.NoFoundation: permissionErrorType :: IOErrorType
- Import.NoFoundation: permutations :: IsSequence seq => seq -> [seq]
- Import.NoFoundation: persistBackend :: HasPersistBackend backend => backend -> BaseBackend backend
- Import.NoFoundation: persistFieldDef :: PersistEntity record => EntityField record typ -> FieldDef
- Import.NoFoundation: persistFieldFromEntity :: MkPersistSettings -> UnboundEntityDef -> Q [Dec]
- Import.NoFoundation: persistFileWith :: PersistSettings -> FilePath -> Q Exp
- Import.NoFoundation: persistIdField :: PersistEntity record => EntityField record (Key record)
- Import.NoFoundation: persistLowerCase :: QuasiQuoter
- Import.NoFoundation: persistManyFileWith :: PersistSettings -> [FilePath] -> Q Exp
- Import.NoFoundation: persistUniqueKeys :: PersistEntity record => record -> [Unique record]
- Import.NoFoundation: persistUniqueToFieldNames :: PersistEntity record => Unique record -> NonEmpty (FieldNameHS, FieldNameDB)
- Import.NoFoundation: persistUniqueToValues :: PersistEntity record => Unique record -> [PersistValue]
- Import.NoFoundation: persistUpperCase :: QuasiQuoter
- Import.NoFoundation: persistWith :: PersistSettings -> QuasiQuoter
- Import.NoFoundation: pi :: Floating a => a
- Import.NoFoundation: pkNewtype :: MkPersistSettings -> UnboundEntityDef -> Bool
- Import.NoFoundation: point :: MonoPointed mono => Element mono -> mono
- Import.NoFoundation: policy :: HashingPolicy
- Import.NoFoundation: poll :: MonadIO m => Async a -> m (Maybe (Either SomeException a))
- Import.NoFoundation: pollAsync :: MonadIO m => Async a -> m (Maybe (Either SomeException a))
- Import.NoFoundation: pollSTM :: Async a -> STM (Maybe (Either SomeException a))
- Import.NoFoundation: pooledForConcurrently :: (MonadUnliftIO m, Traversable t) => t a -> (a -> m b) -> m (t b)
- Import.NoFoundation: pooledForConcurrentlyN :: (MonadUnliftIO m, Traversable t) => Int -> t a -> (a -> m b) -> m (t b)
- Import.NoFoundation: pooledForConcurrentlyN_ :: (MonadUnliftIO m, Foldable t) => Int -> t a -> (a -> m b) -> m ()
- Import.NoFoundation: pooledForConcurrently_ :: (MonadUnliftIO m, Foldable f) => f a -> (a -> m b) -> m ()
- Import.NoFoundation: pooledMapConcurrently :: (MonadUnliftIO m, Traversable t) => (a -> m b) -> t a -> m (t b)
- Import.NoFoundation: pooledMapConcurrentlyN :: (MonadUnliftIO m, Traversable t) => Int -> (a -> m b) -> t a -> m (t b)
- Import.NoFoundation: pooledMapConcurrentlyN_ :: (MonadUnliftIO m, Foldable f) => Int -> (a -> m b) -> f a -> m ()
- Import.NoFoundation: pooledMapConcurrently_ :: (MonadUnliftIO m, Foldable f) => (a -> m b) -> f a -> m ()
- Import.NoFoundation: pooledReplicateConcurrently :: MonadUnliftIO m => Int -> m a -> m [a]
- Import.NoFoundation: pooledReplicateConcurrentlyN :: MonadUnliftIO m => Int -> Int -> m a -> m [a]
- Import.NoFoundation: pooledReplicateConcurrentlyN_ :: MonadUnliftIO m => Int -> Int -> m a -> m ()
- Import.NoFoundation: pooledReplicateConcurrently_ :: MonadUnliftIO m => Int -> m a -> m ()
- Import.NoFoundation: popBack :: (MutablePopBack c, PrimMonad m, PrimState m ~ MCState c) => c -> m (Maybe (CollElement c))
- Import.NoFoundation: popFront :: (MutablePopFront c, PrimMonad m, PrimState m ~ MCState c) => c -> m (Maybe (CollElement c))
- Import.NoFoundation: pprint :: (MonadIO m, Show a) => a -> m ()
- Import.NoFoundation: preEscapedToMarkup :: ToMarkup a => a -> Markup
- Import.NoFoundation: preconditionFailed412 :: Status
- Import.NoFoundation: preconditionRequired428 :: Status
- Import.NoFoundation: pred :: Enum a => a -> a
- Import.NoFoundation: primToIO :: (PrimBase m, PrimState m ~ RealWorld) => m a -> IO a
- Import.NoFoundation: primToPrim :: (PrimBase m1, PrimMonad m2, PrimState m1 ~ PrimState m2) => m1 a -> m2 a
- Import.NoFoundation: primToST :: PrimBase m => m a -> ST (PrimState m) a
- Import.NoFoundation: primitive :: PrimMonad m => (State# (PrimState m) -> (# State# (PrimState m), a #)) -> m a
- Import.NoFoundation: print :: (Show a, MonadIO m) => a -> m ()
- Import.NoFoundation: printC :: forall a (m :: Type -> Type) o. (Show a, MonadIO m) => ConduitT a o m ()
- Import.NoFoundation: product :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono
- Import.NoFoundation: productC :: forall (m :: Type -> Type) a o. (Monad m, Num a) => ConduitT a o m a
- Import.NoFoundation: productCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono, Num (Element mono)) => ConduitT mono o m (Element mono)
- Import.NoFoundation: projectBackend :: BackendCompatible sup sub => sub -> sup
- Import.NoFoundation: properFraction :: (RealFrac a, Integral b) => a -> (b, a)
- Import.NoFoundation: provideJson :: forall (m :: Type -> Type) a. (Monad m, ToJSON a) => a -> Writer (Endo [ProvidedRep m]) ()
- Import.NoFoundation: provideJsonMessage :: forall (m :: Type -> Type). Monad m => Text -> Writer (Endo [ProvidedRep m]) ()
- Import.NoFoundation: provideRep :: (Monad m, HasContentType a) => m a -> Writer (Endo [ProvidedRep m]) ()
- Import.NoFoundation: provideRepType :: (Monad m, ToContent a) => ContentType -> m a -> Writer (Endo [ProvidedRep m]) ()
- Import.NoFoundation: proxyAuthenticationRequired407 :: Status
- Import.NoFoundation: proxyEnvironment :: Maybe Proxy -> ProxyOverride
- Import.NoFoundation: proxyEnvironmentNamed :: Text -> Maybe Proxy -> ProxyOverride
- Import.NoFoundation: proxyFromRequest :: ProxyOverride
- Import.NoFoundation: publicFiles :: FilePath -> Q [Dec]
- Import.NoFoundation: pure :: Applicative f => a -> f a
- Import.NoFoundation: pureTry :: a -> Either SomeException a
- Import.NoFoundation: pureTryDeep :: NFData a => a -> Either SomeException a
- Import.NoFoundation: pushBack :: (MutablePushBack c, PrimMonad m, PrimState m ~ MCState c) => c -> CollElement c -> m ()
- Import.NoFoundation: pushFront :: (MutablePushFront c, PrimMonad m, PrimState m ~ MCState c) => c -> CollElement c -> m ()
- Import.NoFoundation: putChar :: MonadIO m => Char -> m ()
- Import.NoFoundation: putMVar :: MonadIO m => MVar a -> a -> m ()
- Import.NoFoundation: putMany :: forall record (m :: Type -> Type). (PersistUniqueWrite backend, MonadIO m, PersistRecordBackend record backend, SafeToInsert record) => [record] -> ReaderT backend m ()
- Import.NoFoundation: putStr :: MonadIO m => Text -> m ()
- Import.NoFoundation: putStrLn :: MonadIO m => Text -> m ()
- Import.NoFoundation: putTMVar :: TMVar a -> a -> STM ()
- Import.NoFoundation: queryTextToQuery :: QueryText -> Query
- Import.NoFoundation: queryToQueryText :: Query -> QueryText
- Import.NoFoundation: quot :: Integral a => a -> a -> a
- Import.NoFoundation: quotRem :: Integral a => a -> a -> (a, a)
- Import.NoFoundation: race :: MonadUnliftIO m => m a -> m b -> m (Either a b)
- Import.NoFoundation: race_ :: MonadUnliftIO m => m a -> m b -> m ()
- Import.NoFoundation: radioField :: (Eq a, RenderMessage site FormMessage) => HandlerFor site (OptionList a) -> Field (HandlerFor site) a
- Import.NoFoundation: radioFieldList :: (Eq a, RenderMessage site FormMessage, RenderMessage site msg) => [(msg, a)] -> Field (HandlerFor site) a
- Import.NoFoundation: rawConnectionModifySocket :: (Socket -> IO ()) -> IO (Maybe HostAddress -> String -> Int -> IO Connection)
- Import.NoFoundation: rawConnectionModifySocketSize :: (Socket -> IO ()) -> IO (Int -> Maybe HostAddress -> String -> Int -> IO Connection)
- Import.NoFoundation: rawJS :: RawJS a => a -> RawJavascript
- Import.NoFoundation: rawRequestBody :: forall (m :: Type -> Type) i. MonadHandler m => ConduitT i ByteString m ()
- Import.NoFoundation: readChan :: MonadIO m => Chan a -> m a
- Import.NoFoundation: readFFBookmarks :: MonadIO m => FilePath -> m (Either String FFBookmarkNode)
- Import.NoFoundation: readFile :: MonadIO m => FilePath -> m ByteString
- Import.NoFoundation: readFileBookmarks :: MonadIO m => FilePath -> m (Either String [FileBookmark])
- Import.NoFoundation: readFileNoteTime :: MonadFail m => String -> m UTCTime
- Import.NoFoundation: readFileUtf8 :: MonadIO m => FilePath -> m Text
- Import.NoFoundation: readIORef :: MonadIO m => IORef a -> m a
- Import.NoFoundation: readIntegral :: Num a => String -> Maybe a
- Import.NoFoundation: readMVar :: MonadIO m => MVar a -> m a
- Import.NoFoundation: readMay :: (Element c ~ Char, MonoFoldable c, Read a) => c -> Maybe a
- Import.NoFoundation: readMutVar :: PrimMonad m => MutVar (PrimState m) a -> m a
- Import.NoFoundation: readRef :: (MutableRef c, PrimMonad m, PrimState m ~ MCState c) => c -> m (RefElement c)
- Import.NoFoundation: readTBChan :: TBChan a -> STM a
- Import.NoFoundation: readTBMChan :: TBMChan a -> STM (Maybe a)
- Import.NoFoundation: readTBMQueue :: TBMQueue a -> STM (Maybe a)
- Import.NoFoundation: readTBQueue :: TBQueue a -> STM a
- Import.NoFoundation: readTChan :: TChan a -> STM a
- Import.NoFoundation: readTMChan :: TMChan a -> STM (Maybe a)
- Import.NoFoundation: readTMQueue :: TMQueue a -> STM (Maybe a)
- Import.NoFoundation: readTMVar :: TMVar a -> STM a
- Import.NoFoundation: readTQueue :: TQueue a -> STM a
- Import.NoFoundation: readTVar :: TVar a -> STM a
- Import.NoFoundation: readTVarIO :: MonadIO m => TVar a -> m a
- Import.NoFoundation: readerC :: forall (m :: Type -> Type) r i o a. Monad m => (r -> ConduitT i o m a) -> ConduitT i o (ReaderT r m) a
- Import.NoFoundation: realToFrac :: (Real a, Fractional b) => a -> b
- Import.NoFoundation: receiveSetCookie :: SetCookie -> Request -> UTCTime -> Bool -> CookieJar -> CookieJar
- Import.NoFoundation: recip :: Fractional a => a -> a
- Import.NoFoundation: redirect :: (MonadHandler m, RedirectUrl (HandlerSite m) url) => url -> m a
- Import.NoFoundation: redirectToCurrent :: YesodAuth master => master -> Bool
- Import.NoFoundation: redirectToPost :: (MonadHandler m, RedirectUrl (HandlerSite m) url) => url -> m a
- Import.NoFoundation: redirectToReferer :: YesodAuth master => master -> Bool
- Import.NoFoundation: redirectUltDest :: (RedirectUrl (HandlerSite m) url, MonadHandler m) => url -> m a
- Import.NoFoundation: redirectWith :: (MonadHandler m, RedirectUrl (HandlerSite m) url) => Status -> url -> m a
- Import.NoFoundation: registerDelay :: MonadIO m => Int -> m (TVar Bool)
- Import.NoFoundation: rem :: Integral a => a -> a -> a
- Import.NoFoundation: removeClass :: Text -> [(Text, Text)] -> [(Text, Text)]
- Import.NoFoundation: removeExistingCookieFromCookieJar :: Cookie -> CookieJar -> (Maybe Cookie, CookieJar)
- Import.NoFoundation: renderAuthMessage :: YesodAuth master => master -> [Text] -> AuthMessage -> Text
- Import.NoFoundation: renderBootstrap :: forall (m :: Type -> Type) a. Monad m => FormRender m a
- Import.NoFoundation: renderBootstrap2 :: forall (m :: Type -> Type) a. Monad m => FormRender m a
- Import.NoFoundation: renderByteRange :: ByteRange -> ByteString
- Import.NoFoundation: renderByteRangeBuilder :: ByteRange -> Builder
- Import.NoFoundation: renderByteRanges :: ByteRanges -> ByteString
- Import.NoFoundation: renderByteRangesBuilder :: ByteRanges -> Builder
- Import.NoFoundation: renderCascadeAction :: CascadeAction -> Text
- Import.NoFoundation: renderCssUrl :: (url -> [(Text, Text)] -> Text) -> CssUrl url -> Text
- Import.NoFoundation: renderDivs :: forall (m :: Type -> Type) a. Monad m => FormRender m a
- Import.NoFoundation: renderDivsNoLabels :: forall (m :: Type -> Type) a. Monad m => FormRender m a
- Import.NoFoundation: renderFieldCascade :: FieldCascade -> Text
- Import.NoFoundation: renderJavascript :: Javascript -> Text
- Import.NoFoundation: renderJavascriptUrl :: (url -> [(Text, Text)] -> Text) -> JavascriptUrl url -> Text
- Import.NoFoundation: renderMessage :: RenderMessage master message => master -> [Lang] -> message -> Text
- Import.NoFoundation: renderMethod :: Either ByteString StdMethod -> Method
- Import.NoFoundation: renderQuery :: Bool -> Query -> ByteString
- Import.NoFoundation: renderQueryBuilder :: Bool -> Query -> Builder
- Import.NoFoundation: renderQueryBuilderPartialEscape :: Bool -> PartialEscapeQuery -> Builder
- Import.NoFoundation: renderQueryPartialEscape :: Bool -> PartialEscapeQuery -> ByteString
- Import.NoFoundation: renderQueryText :: Bool -> QueryText -> Builder
- Import.NoFoundation: renderRoute :: RenderRoute a => Route a -> ([Text], [(Text, Text)])
- Import.NoFoundation: renderSimpleQuery :: Bool -> SimpleQuery -> ByteString
- Import.NoFoundation: renderStdMethod :: StdMethod -> Method
- Import.NoFoundation: renderTable :: forall (m :: Type -> Type) a. Monad m => FormRender m a
- Import.NoFoundation: repJson :: ToContent a => a -> RepJson
- Import.NoFoundation: repPlain :: ToContent a => a -> RepPlain
- Import.NoFoundation: repXml :: ToContent a => a -> RepXml
- Import.NoFoundation: repack :: (MonoFoldable a, IsSequence b, Element a ~ Element b) => a -> b
- Import.NoFoundation: repeat :: a -> [a]
- Import.NoFoundation: repeatC :: forall (m :: Type -> Type) a i. Monad m => a -> ConduitT i a m ()
- Import.NoFoundation: repeatMC :: Monad m => m a -> ConduitT i a m ()
- Import.NoFoundation: repeatWhileMC :: Monad m => m a -> (a -> Bool) -> ConduitT i a m ()
- Import.NoFoundation: replace :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend) => Key record -> record -> ReaderT backend m ()
- Import.NoFoundation: replaceElem :: (MonoFunctor mono, Eq (Element mono)) => Element mono -> Element mono -> mono -> mono
- Import.NoFoundation: replaceElemLazyText :: Char -> Char -> Text -> Text
- Import.NoFoundation: replaceElemStrictText :: Char -> Char -> Text -> Text
- Import.NoFoundation: replaceOrAddHeader :: MonadHandler m => Text -> Text -> m ()
- Import.NoFoundation: replaceSeq :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> seq -> seq
- Import.NoFoundation: replaceSeqLazyText :: Text -> Text -> Text -> Text
- Import.NoFoundation: replaceSeqStrictText :: Text -> Text -> Text -> Text
- Import.NoFoundation: replaceUnique :: forall record backend (m :: Type -> Type). (MonadIO m, Eq (Unique record), PersistRecordBackend record backend, PersistUniqueWrite backend) => Key record -> record -> ReaderT backend m (Maybe (Unique record))
- Import.NoFoundation: replicate :: IsSequence seq => Index seq -> Element seq -> seq
- Import.NoFoundation: replicateC :: forall (m :: Type -> Type) a i. Monad m => Int -> a -> ConduitT i a m ()
- Import.NoFoundation: replicateConcurrently :: MonadUnliftIO f => Int -> f a -> f [a]
- Import.NoFoundation: replicateConcurrently_ :: (Applicative m, MonadUnliftIO m) => Int -> m a -> m ()
- Import.NoFoundation: replicateM :: (IsSequence seq, Monad m) => Index seq -> m (Element seq) -> m seq
- Import.NoFoundation: replicateMC :: Monad m => Int -> m a -> ConduitT i a m ()
- Import.NoFoundation: replicateM_ :: Applicative m => Int -> m a -> m ()
- Import.NoFoundation: repsert :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend) => Key record -> record -> ReaderT backend m ()
- Import.NoFoundation: repsertMany :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend) => [(Key record, record)] -> ReaderT backend m ()
- Import.NoFoundation: requestBodySource :: Int64 -> ConduitM () ByteString IO () -> RequestBody
- Import.NoFoundation: requestBodySourceChunked :: ConduitM () ByteString IO () -> RequestBody
- Import.NoFoundation: requestEntityTooLarge413 :: Status
- Import.NoFoundation: requestFromURI :: MonadThrow m => URI -> m Request
- Import.NoFoundation: requestFromURI_ :: URI -> Request
- Import.NoFoundation: requestHeaderFieldsTooLarge431 :: Status
- Import.NoFoundation: requestTimeout408 :: Status
- Import.NoFoundation: requestURITooLong414 :: Status
- Import.NoFoundation: requestedRangeNotSatisfiable416 :: Status
- Import.NoFoundation: requireAuth :: (YesodAuthPersist master, val ~ AuthEntity master, Key val ~ AuthId master, PersistEntity val, Typeable val, MonadHandler m, HandlerSite m ~ master) => m (Entity val)
- Import.NoFoundation: requireAuthId :: (MonadHandler m, YesodAuth (HandlerSite m)) => m (AuthId (HandlerSite m))
- Import.NoFoundation: requireAuthPair :: (YesodAuthPersist master, Typeable (AuthEntity master), MonadHandler m, HandlerSite m ~ master) => m (AuthId master, AuthEntity master)
- Import.NoFoundation: requireCheckJsonBody :: (MonadHandler m, FromJSON a) => m a
- Import.NoFoundation: requireCustomEnv :: KeyMap Text -> EnvUsage
- Import.NoFoundation: requireEnv :: EnvUsage
- Import.NoFoundation: requireInsecureJsonBody :: (MonadHandler m, FromJSON a) => m a
- Import.NoFoundation: requireJsonBody :: (MonadHandler m, FromJSON a) => m a
- Import.NoFoundation: requireUniquesP :: AtLeastOneUniqueKey record => record -> NonEmpty (Unique record)
- Import.NoFoundation: resetContent205 :: Status
- Import.NoFoundation: resourceVanishedErrorType :: IOErrorType
- Import.NoFoundation: respond :: (Monad m, ToContent a) => ContentType -> a -> m TypedContent
- Import.NoFoundation: respondSource :: ContentType -> ConduitT () (Flush Builder) (HandlerFor site) () -> HandlerFor site TypedContent
- Import.NoFoundation: respondSourceDB :: YesodPersistRunner site => ContentType -> ConduitT () (Flush Builder) (YesodDB site) () -> HandlerFor site TypedContent
- Import.NoFoundation: responseClose :: MonadIO m => Response body -> m ()
- Import.NoFoundation: responseOpen :: forall m (n :: Type -> Type) env i. (MonadIO m, MonadIO n, MonadReader env m, HasHttpManager env) => Request -> m (Response (ConduitM i ByteString n ()))
- Import.NoFoundation: responseOpenHistory :: Request -> Manager -> IO (HistoriedResponse BodyReader)
- Import.NoFoundation: responseTimeoutDefault :: ResponseTimeout
- Import.NoFoundation: responseTimeoutMicro :: Int -> ResponseTimeout
- Import.NoFoundation: responseTimeoutNone :: ResponseTimeout
- Import.NoFoundation: retrySTM :: STM a
- Import.NoFoundation: return :: Monad m => a -> m a
- Import.NoFoundation: returnJson :: (Monad m, ToJSON a) => a -> m Value
- Import.NoFoundation: returnJsonEncoding :: (Monad m, ToJSON a) => a -> m Encoding
- Import.NoFoundation: reuseBufferStrategy :: IO Buffer -> BufferAllocStrategy
- Import.NoFoundation: reverse :: SemiSequence seq => seq -> seq
- Import.NoFoundation: rights :: [Either a b] -> [b]
- Import.NoFoundation: rnf :: NFData a => a -> ()
- Import.NoFoundation: round :: (RealFrac a, Integral b) => a -> b
- Import.NoFoundation: routeAttrs :: RouteAttrs a => Route a -> Set Text
- Import.NoFoundation: runCatchC :: forall (m :: Type -> Type) i o r. Monad m => ConduitT i o (CatchT m) r -> ConduitT i o m (Either SomeException r)
- Import.NoFoundation: runConc :: MonadUnliftIO m => Conc m a -> m a
- Import.NoFoundation: runConduit :: Monad m => ConduitT () Void m r -> m r
- Import.NoFoundation: runConduitPure :: ConduitT () Void Identity r -> r
- Import.NoFoundation: runConduitRes :: MonadUnliftIO m => ConduitT () Void (ResourceT m) r -> m r
- Import.NoFoundation: runDB :: YesodPersist site => YesodDB site a -> HandlerFor site a
- Import.NoFoundation: runDBSource :: YesodPersistRunner site => ConduitT () a (YesodDB site) () -> ConduitT () a (HandlerFor site) ()
- Import.NoFoundation: runExceptC :: forall (m :: Type -> Type) i o e r. Monad m => ConduitT i o (ExceptT e m) r -> ConduitT i o m (Either e r)
- Import.NoFoundation: runFakeHandler :: (Yesod site, MonadIO m) => SessionMap -> (site -> Logger) -> site -> HandlerT site IO a -> m (Either ErrorResponse a)
- Import.NoFoundation: runFormGet :: MonadHandler m => (Markup -> MForm m a) -> m (a, Enctype)
- Import.NoFoundation: runFormPost :: (RenderMessage (HandlerSite m) FormMessage, MonadResource m, MonadHandler m) => (Markup -> MForm m (FormResult a, xml)) -> m ((FormResult a, xml), Enctype)
- Import.NoFoundation: runFormPostNoToken :: MonadHandler m => (Markup -> MForm m a) -> m (a, Enctype)
- Import.NoFoundation: runHttpRequest :: (YesodAuth master, MonadHandler m, HandlerSite m ~ master, MonadUnliftIO m) => Request -> (Response BodyReader -> m a) -> m a
- Import.NoFoundation: runInputGet :: MonadHandler m => FormInput m a -> m a
- Import.NoFoundation: runInputGetResult :: MonadHandler m => FormInput m a -> m (FormResult a)
- Import.NoFoundation: runInputPost :: MonadHandler m => FormInput m a -> m a
- Import.NoFoundation: runInputPostResult :: MonadHandler m => FormInput m a -> m (FormResult a)
- Import.NoFoundation: runMaybeC :: forall (m :: Type -> Type) i o r. Monad m => ConduitT i o (MaybeT m) r -> ConduitT i o m (Maybe r)
- Import.NoFoundation: runMemoized :: MonadIO m => Memoized a -> m a
- Import.NoFoundation: runMigration :: forall (m :: Type -> Type). MonadIO m => Migration -> ReaderT SqlBackend m ()
- Import.NoFoundation: runMigrations :: DB ()
- Import.NoFoundation: runPool :: (PersistConfig c, MonadUnliftIO m) => c -> PersistConfigBackend c m a -> PersistConfigPool c -> m a
- Import.NoFoundation: runRWSC :: forall (m :: Type -> Type) w r s i o res. (Monad m, Monoid w) => r -> s -> ConduitT i o (RWST r w s m) res -> ConduitT i o m (res, s, w)
- Import.NoFoundation: runRWSLC :: forall (m :: Type -> Type) w r s i o res. (Monad m, Monoid w) => r -> s -> ConduitT i o (RWST r w s m) res -> ConduitT i o m (res, s, w)
- Import.NoFoundation: runReaderC :: forall (m :: Type -> Type) r i o res. Monad m => r -> ConduitT i o (ReaderT r m) res -> ConduitT i o m res
- Import.NoFoundation: runRequestBody :: MonadHandler m => m RequestBodyContents
- Import.NoFoundation: runResourceT :: MonadUnliftIO m => ResourceT m a -> m a
- Import.NoFoundation: runStateC :: forall (m :: Type -> Type) s i o r. Monad m => s -> ConduitT i o (StateT s m) r -> ConduitT i o m (r, s)
- Import.NoFoundation: runStateLC :: forall (m :: Type -> Type) s i o r. Monad m => s -> ConduitT i o (StateT s m) r -> ConduitT i o m (r, s)
- Import.NoFoundation: runWriterC :: forall (m :: Type -> Type) w i o r. (Monad m, Monoid w) => ConduitT i o (WriterT w m) r -> ConduitT i o m (r, w)
- Import.NoFoundation: runWriterLC :: forall (m :: Type -> Type) w i o r. (Monad m, Monoid w) => ConduitT i o (WriterT w m) r -> ConduitT i o m (r, w)
- Import.NoFoundation: rwsC :: forall (m :: Type -> Type) w r s i o a. (Monad m, Monoid w) => (r -> s -> ConduitT i o m (a, s, w)) -> ConduitT i o (RWST r w s m) a
- Import.NoFoundation: rwsLC :: forall (m :: Type -> Type) w r s i o a. (Monad m, Monoid w) => (r -> s -> ConduitT i o m (a, s, w)) -> ConduitT i o (RWST r w s m) a
- Import.NoFoundation: say :: MonadIO m => Text -> m ()
- Import.NoFoundation: sayErr :: MonadIO m => Text -> m ()
- Import.NoFoundation: sayErrShow :: (MonadIO m, Show a) => a -> m ()
- Import.NoFoundation: sayErrString :: MonadIO m => String -> m ()
- Import.NoFoundation: sayShow :: (MonadIO m, Show a) => a -> m ()
- Import.NoFoundation: sayString :: MonadIO m => String -> m ()
- Import.NoFoundation: scaleFloat :: RealFloat a => Int -> a -> a
- Import.NoFoundation: scanlC :: forall (m :: Type -> Type) a b. Monad m => (a -> b -> a) -> a -> ConduitT b a m ()
- Import.NoFoundation: scanlMC :: Monad m => (a -> b -> m a) -> a -> ConduitT b a m ()
- Import.NoFoundation: sconcat :: Semigroup a => NonEmpty a -> a
- Import.NoFoundation: sealConduitT :: forall i o (m :: Type -> Type) r. ConduitT i o m r -> SealedConduitT i o m r
- Import.NoFoundation: searchField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => AutoFocus -> Field m Text
- Import.NoFoundation: second :: Bifunctor p => (b -> c) -> p a b -> p a c
- Import.NoFoundation: seeOther303 :: Status
- Import.NoFoundation: selectField :: (Eq a, RenderMessage site FormMessage) => HandlerFor site (OptionList a) -> Field (HandlerFor site) a
- Import.NoFoundation: selectFieldHelper :: (Eq a, RenderMessage site FormMessage) => (Text -> Text -> [(Text, Text)] -> WidgetFor site () -> WidgetFor site ()) -> (Text -> Text -> Bool -> WidgetFor site ()) -> (Text -> Text -> [(Text, Text)] -> Text -> Bool -> Text -> WidgetFor site ()) -> Maybe (Text -> WidgetFor site ()) -> HandlerFor site (OptionList a) -> Field (HandlerFor site) a
- Import.NoFoundation: selectFieldList :: (Eq a, RenderMessage site FormMessage, RenderMessage site msg) => [(msg, a)] -> Field (HandlerFor site) a
- Import.NoFoundation: selectFieldListGrouped :: (Eq a, RenderMessage site FormMessage, RenderMessage site msg) => [(msg, [(msg, a)])] -> Field (HandlerFor site) a
- Import.NoFoundation: selectFirst :: forall (m :: Type -> Type) record. (PersistQueryRead backend, MonadIO m, PersistRecordBackend record backend) => [Filter record] -> [SelectOpt record] -> ReaderT backend m (Maybe (Entity record))
- Import.NoFoundation: selectKeys :: forall record backend (m :: Type -> Type). (PersistQueryRead backend, MonadResource m, PersistRecordBackend record backend, MonadReader backend m) => [Filter record] -> [SelectOpt record] -> ConduitM () (Key record) m ()
- Import.NoFoundation: selectKeysList :: forall record backend (m :: Type -> Type). (MonadIO m, PersistQueryRead backend, PersistRecordBackend record backend) => [Filter record] -> [SelectOpt record] -> ReaderT backend m [Key record]
- Import.NoFoundation: selectKeysRes :: forall (m1 :: Type -> Type) (m2 :: Type -> Type) record. (PersistQueryRead backend, MonadIO m1, MonadIO m2, PersistRecordBackend record backend) => [Filter record] -> [SelectOpt record] -> ReaderT backend m1 (Acquire (ConduitM () (Key record) m2 ()))
- Import.NoFoundation: selectList :: forall record backend (m :: Type -> Type). (MonadIO m, PersistQueryRead backend, PersistRecordBackend record backend) => [Filter record] -> [SelectOpt record] -> ReaderT backend m [Entity record]
- Import.NoFoundation: selectRep :: MonadHandler m => Writer (Endo [ProvidedRep m]) () -> m TypedContent
- Import.NoFoundation: selectSource :: forall record backend (m :: Type -> Type). (PersistQueryRead backend, MonadResource m, PersistRecordBackend record backend, MonadReader backend m) => [Filter record] -> [SelectOpt record] -> ConduitM () (Entity record) m ()
- Import.NoFoundation: selectSourceRes :: forall record (m1 :: Type -> Type) (m2 :: Type -> Type). (PersistQueryRead backend, PersistRecordBackend record backend, MonadIO m1, MonadIO m2) => [Filter record] -> [SelectOpt record] -> ReaderT backend m1 (Acquire (ConduitM () (Entity record) m2 ()))
- Import.NoFoundation: sendChunk :: forall (m :: Type -> Type) a i. (Monad m, ToFlushBuilder a) => a -> ConduitT i (Flush Builder) m ()
- Import.NoFoundation: sendChunkBS :: forall (m :: Type -> Type) i. Monad m => ByteString -> ConduitT i (Flush Builder) m ()
- Import.NoFoundation: sendChunkHtml :: forall (m :: Type -> Type) i. Monad m => Html -> ConduitT i (Flush Builder) m ()
- Import.NoFoundation: sendChunkLBS :: forall (m :: Type -> Type) i. Monad m => ByteString -> ConduitT i (Flush Builder) m ()
- Import.NoFoundation: sendChunkLazyText :: forall (m :: Type -> Type) i. Monad m => Text -> ConduitT i (Flush Builder) m ()
- Import.NoFoundation: sendChunkText :: forall (m :: Type -> Type) i. Monad m => Text -> ConduitT i (Flush Builder) m ()
- Import.NoFoundation: sendFile :: MonadHandler m => ContentType -> FilePath -> m a
- Import.NoFoundation: sendFilePart :: MonadHandler m => ContentType -> FilePath -> Integer -> Integer -> m a
- Import.NoFoundation: sendFlush :: forall (m :: Type -> Type) i. Monad m => ConduitT i (Flush Builder) m ()
- Import.NoFoundation: sendRawResponse :: (MonadHandler m, MonadUnliftIO m) => (ConduitT () ByteString IO () -> ConduitT ByteString Void IO () -> m ()) -> m a
- Import.NoFoundation: sendRawResponseNoConduit :: (MonadHandler m, MonadUnliftIO m) => (IO ByteString -> (ByteString -> IO ()) -> m ()) -> m a
- Import.NoFoundation: sendResponse :: (MonadHandler m, ToTypedContent c) => c -> m a
- Import.NoFoundation: sendResponseCreated :: MonadHandler m => Route (HandlerSite m) -> m a
- Import.NoFoundation: sendResponseNoContent :: MonadHandler m => m a
- Import.NoFoundation: sendResponseStatus :: (MonadHandler m, ToTypedContent c) => Status -> c -> m a
- Import.NoFoundation: sendStatusJSON :: (MonadHandler m, ToJSON c) => Status -> c -> m a
- Import.NoFoundation: sendWaiApplication :: MonadHandler m => Application -> m b
- Import.NoFoundation: sendWaiResponse :: MonadHandler m => Response -> m b
- Import.NoFoundation: seq :: forall {r :: RuntimeRep} a (b :: TYPE r). a -> b -> b
- Import.NoFoundation: sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
- Import.NoFoundation: sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
- Import.NoFoundation: sequenceConduits :: forall f (m :: Type -> Type) i o r. (Traversable f, Monad m) => f (ConduitT i o m r) -> ConduitT i o m (f r)
- Import.NoFoundation: sequenceSinks :: forall f (m :: Type -> Type) i r. (Traversable f, Monad m) => f (ConduitT i Void m r) -> ConduitT i Void m (f r)
- Import.NoFoundation: sequenceSources :: forall f (m :: Type -> Type) o. (Traversable f, Monad m) => f (ConduitT () o m ()) -> ConduitT () (f o) m ()
- Import.NoFoundation: sequence_ :: (Applicative m, MonoFoldable mono, Element mono ~ m ()) => mono -> m ()
- Import.NoFoundation: serviceUnavailable503 :: Status
- Import.NoFoundation: setCookie :: MonadHandler m => SetCookie -> m ()
- Import.NoFoundation: setCreds :: (MonadHandler m, YesodAuth (HandlerSite m)) => Bool -> Creds (HandlerSite m) -> m ()
- Import.NoFoundation: setCredsRedirect :: (MonadHandler m, YesodAuth (HandlerSite m)) => Creds (HandlerSite m) -> m TypedContent
- Import.NoFoundation: setCsrfCookie :: MonadHandler m => m ()
- Import.NoFoundation: setCsrfCookieWithCookie :: MonadHandler m => SetCookie -> m ()
- Import.NoFoundation: setDescription :: MonadWidget m => Text -> m ()
- Import.NoFoundation: setDescriptionI :: (MonadWidget m, RenderMessage (HandlerSite m) msg) => msg -> m ()
- Import.NoFoundation: setDescriptionIdemp :: MonadWidget m => Text -> m ()
- Import.NoFoundation: setDescriptionIdempI :: (MonadWidget m, RenderMessage (HandlerSite m) msg) => msg -> m ()
- Import.NoFoundation: setEntityDBName :: EntityNameDB -> EntityDef -> EntityDef
- Import.NoFoundation: setEntityId :: FieldDef -> EntityDef -> EntityDef
- Import.NoFoundation: setEntityIdDef :: EntityIdDef -> EntityDef -> EntityDef
- Import.NoFoundation: setEqDerived :: Bool -> RouteOpts -> RouteOpts
- Import.NoFoundation: setEtag :: MonadHandler m => Text -> m ()
- Import.NoFoundation: setFieldAttrs :: [FieldAttr] -> FieldDef -> FieldDef
- Import.NoFoundation: setFromList :: IsSet set => [Element set] -> set
- Import.NoFoundation: setHeader :: MonadHandler m => Text -> Text -> m ()
- Import.NoFoundation: setImplicitIdDef :: ImplicitIdDef -> MkPersistSettings -> MkPersistSettings
- Import.NoFoundation: setLanguage :: MonadHandler m => Text -> m ()
- Import.NoFoundation: setMessage :: MonadHandler m => Html -> m ()
- Import.NoFoundation: setMessageI :: (MonadHandler m, RenderMessage (HandlerSite m) msg) => msg -> m ()
- Import.NoFoundation: setOGImage :: MonadWidget m => Text -> m ()
- Import.NoFoundation: setOGType :: MonadWidget m => Text -> m ()
- Import.NoFoundation: setQueryString :: [(ByteString, Maybe ByteString)] -> Request -> Request
- Import.NoFoundation: setQueryStringPartialEscape :: [(ByteString, [EscapeItem])] -> Request -> Request
- Import.NoFoundation: setReadDerived :: Bool -> RouteOpts -> RouteOpts
- Import.NoFoundation: setRequestCheckStatus :: Request -> Request
- Import.NoFoundation: setRequestIgnoreStatus :: Request -> Request
- Import.NoFoundation: setSession :: MonadHandler m => Text -> Text -> m ()
- Import.NoFoundation: setSessionBS :: MonadHandler m => Text -> ByteString -> m ()
- Import.NoFoundation: setShowDerived :: Bool -> RouteOpts -> RouteOpts
- Import.NoFoundation: setTitle :: MonadWidget m => Html -> m ()
- Import.NoFoundation: setTitleI :: (MonadWidget m, RenderMessage (HandlerSite m) msg) => msg -> m ()
- Import.NoFoundation: setToList :: IsSet set => set -> [Element set]
- Import.NoFoundation: setUltDest :: (MonadHandler m, RedirectUrl (HandlerSite m) url) => url -> m ()
- Import.NoFoundation: setUltDestCurrent :: MonadHandler m => m ()
- Import.NoFoundation: setUltDestReferer :: MonadHandler m => m ()
- Import.NoFoundation: setWeakEtag :: MonadHandler m => Text -> m ()
- Import.NoFoundation: shamlet :: QuasiQuoter
- Import.NoFoundation: share :: [[a] -> Q [Dec]] -> [a] -> Q [Dec]
- Import.NoFoundation: shouldLogIO :: Yesod site => site -> LogSource -> LogLevel -> IO Bool
- Import.NoFoundation: show :: Show a => a -> String
- Import.NoFoundation: showFileNoteTime :: UTCTime -> String
- Import.NoFoundation: showIntegral :: Integral a => a -> String
- Import.NoFoundation: showList :: Show a => [a] -> ShowS
- Import.NoFoundation: showsPrec :: Show a => Int -> a -> ShowS
- Import.NoFoundation: signalQSem :: MonadIO m => QSem -> m ()
- Import.NoFoundation: signalQSemN :: MonadIO m => QSemN -> Int -> m ()
- Import.NoFoundation: significand :: RealFloat a => a -> a
- Import.NoFoundation: signum :: Num a => a -> a
- Import.NoFoundation: simpleContentType :: ContentType -> ContentType
- Import.NoFoundation: simpleQueryToQuery :: SimpleQuery -> Query
- Import.NoFoundation: sin :: Floating a => a -> a
- Import.NoFoundation: singleton :: MonoPointed seq => Element seq -> seq
- Import.NoFoundation: singletonMap :: IsMap map => ContainerKey map -> MapValue map -> map
- Import.NoFoundation: singletonSet :: IsSet set => Element set -> set
- Import.NoFoundation: sinh :: Floating a => a -> a
- Import.NoFoundation: sinkFile :: forall (m :: Type -> Type) o. MonadResource m => FilePath -> ConduitT ByteString o m ()
- Import.NoFoundation: sinkFileBS :: forall (m :: Type -> Type) o. MonadResource m => FilePath -> ConduitT ByteString o m ()
- Import.NoFoundation: sinkFileCautious :: forall (m :: Type -> Type) o. MonadResource m => FilePath -> ConduitM ByteString o m ()
- Import.NoFoundation: sinkHandle :: forall (m :: Type -> Type) o. MonadIO m => Handle -> ConduitT ByteString o m ()
- Import.NoFoundation: sinkHandleBuilder :: forall (m :: Type -> Type) o. MonadIO m => Handle -> ConduitM Builder o m ()
- Import.NoFoundation: sinkHandleFlush :: forall (m :: Type -> Type) o. MonadIO m => Handle -> ConduitM (Flush ByteString) o m ()
- Import.NoFoundation: sinkIOHandle :: forall (m :: Type -> Type) o. MonadResource m => IO Handle -> ConduitT ByteString o m ()
- Import.NoFoundation: sinkLazy :: forall (m :: Type -> Type) lazy strict o. (Monad m, LazySequence lazy strict) => ConduitT strict o m lazy
- Import.NoFoundation: sinkLazyBuilder :: forall (m :: Type -> Type) o. Monad m => ConduitT Builder o m ByteString
- Import.NoFoundation: sinkList :: forall (m :: Type -> Type) a o. Monad m => ConduitT a o m [a]
- Import.NoFoundation: sinkNull :: forall (m :: Type -> Type) a o. Monad m => ConduitT a o m ()
- Import.NoFoundation: sinkSystemTempFile :: forall (m :: Type -> Type) o. MonadResource m => String -> ConduitM ByteString o m FilePath
- Import.NoFoundation: sinkTempFile :: forall (m :: Type -> Type) o. MonadResource m => FilePath -> String -> ConduitM ByteString o m FilePath
- Import.NoFoundation: sinkVector :: forall v a (m :: Type -> Type) o. (Vector v a, PrimMonad m) => ConduitT a o m (v a)
- Import.NoFoundation: sinkVectorN :: forall v a (m :: Type -> Type) o. (Vector v a, PrimMonad m) => Int -> ConduitT a o m (v a)
- Import.NoFoundation: slidingWindowC :: forall (m :: Type -> Type) seq a. (Monad m, IsSequence seq, Element seq ~ a) => Int -> ConduitT a seq m ()
- Import.NoFoundation: snd :: (a, b) -> b
- Import.NoFoundation: snoc :: SemiSequence seq => seq -> Element seq -> seq
- Import.NoFoundation: socketConnection :: Socket -> Int -> IO Connection
- Import.NoFoundation: some :: Alternative f => f a -> f [a]
- Import.NoFoundation: sort :: (SemiSequence seq, Ord (Element seq)) => seq -> seq
- Import.NoFoundation: sortBy :: SemiSequence seq => (Element seq -> Element seq -> Ordering) -> seq -> seq
- Import.NoFoundation: sortOn :: (Ord o, SemiSequence seq) => (Element seq -> o) -> seq -> seq
- Import.NoFoundation: sortWith :: (Ord a, IsSequence c) => (Element c -> a) -> c -> c
- Import.NoFoundation: sourceDirectory :: forall (m :: Type -> Type) i. MonadResource m => FilePath -> ConduitT i FilePath m ()
- Import.NoFoundation: sourceDirectoryDeep :: forall (m :: Type -> Type) i. MonadResource m => Bool -> FilePath -> ConduitT i FilePath m ()
- Import.NoFoundation: sourceFile :: forall (m :: Type -> Type) i. MonadResource m => FilePath -> ConduitT i ByteString m ()
- Import.NoFoundation: sourceFileBS :: forall (m :: Type -> Type) i. MonadResource m => FilePath -> ConduitT i ByteString m ()
- Import.NoFoundation: sourceHandle :: forall (m :: Type -> Type) i. MonadIO m => Handle -> ConduitT i ByteString m ()
- Import.NoFoundation: sourceHandleUnsafe :: forall (m :: Type -> Type) i. MonadIO m => Handle -> ConduitT i ByteString m ()
- Import.NoFoundation: sourceIOHandle :: forall (m :: Type -> Type) i. MonadResource m => IO Handle -> ConduitT i ByteString m ()
- Import.NoFoundation: sourceLazy :: forall (m :: Type -> Type) lazy strict i. (Monad m, LazySequence lazy strict) => lazy -> ConduitT i strict m ()
- Import.NoFoundation: sourceToList :: Monad m => ConduitT () a m () -> m [a]
- Import.NoFoundation: span :: IsSequence seq => (Element seq -> Bool) -> seq -> (seq, seq)
- Import.NoFoundation: splitAt :: IsSequence seq => Index seq -> seq -> (seq, seq)
- Import.NoFoundation: splitElem :: (IsSequence seq, Eq (Element seq)) => Element seq -> seq -> [seq]
- Import.NoFoundation: splitElemStrictBS :: Word8 -> ByteString -> [ByteString]
- Import.NoFoundation: splitFirst :: IsSequence seq => NonNull seq -> (Element seq, seq)
- Import.NoFoundation: splitSeq :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> [seq]
- Import.NoFoundation: splitSeqLazyBS :: Word8 -> ByteString -> [ByteString]
- Import.NoFoundation: splitSeqLazyText :: Text -> Text -> [Text]
- Import.NoFoundation: splitSeqStrictText :: Text -> Text -> [Text]
- Import.NoFoundation: splitWhen :: IsSequence seq => (Element seq -> Bool) -> seq -> [seq]
- Import.NoFoundation: sqlSettings :: MkPersistSettings
- Import.NoFoundation: sqliteGroupConcat :: PersistField a => SqlExpr (Value a) -> SqlExpr (Value a) -> SqlExpr (Value Text)
- Import.NoFoundation: sqrt :: Floating a => a -> a
- Import.NoFoundation: sslOnlyMiddleware :: Int -> HandlerFor site res -> HandlerFor site res
- Import.NoFoundation: sslOnlySessions :: IO (Maybe SessionBackend) -> IO (Maybe SessionBackend)
- Import.NoFoundation: stateC :: forall (m :: Type -> Type) s i o a. Monad m => (s -> ConduitT i o m (a, s)) -> ConduitT i o (StateT s m) a
- Import.NoFoundation: stateLC :: forall (m :: Type -> Type) s i o a. Monad m => (s -> ConduitT i o m (a, s)) -> ConduitT i o (StateT s m) a
- Import.NoFoundation: stateTVar :: TVar s -> (s -> (a, s)) -> STM a
- Import.NoFoundation: static :: FilePath -> IO Static
- Import.NoFoundation: staticDevel :: FilePath -> IO Static
- Import.NoFoundation: staticFiles :: FilePath -> Q [Dec]
- Import.NoFoundation: staticFilesList :: FilePath -> [FilePath] -> Q [Dec]
- Import.NoFoundation: staticFilesMap :: FilePath -> Map FilePath FilePath -> Q [Dec]
- Import.NoFoundation: staticFilesMergeMap :: FilePath -> Map FilePath FilePath -> Q [Dec]
- Import.NoFoundation: status100 :: Status
- Import.NoFoundation: status101 :: Status
- Import.NoFoundation: status200 :: Status
- Import.NoFoundation: status201 :: Status
- Import.NoFoundation: status202 :: Status
- Import.NoFoundation: status203 :: Status
- Import.NoFoundation: status204 :: Status
- Import.NoFoundation: status205 :: Status
- Import.NoFoundation: status206 :: Status
- Import.NoFoundation: status300 :: Status
- Import.NoFoundation: status301 :: Status
- Import.NoFoundation: status302 :: Status
- Import.NoFoundation: status303 :: Status
- Import.NoFoundation: status304 :: Status
- Import.NoFoundation: status305 :: Status
- Import.NoFoundation: status307 :: Status
- Import.NoFoundation: status308 :: Status
- Import.NoFoundation: status400 :: Status
- Import.NoFoundation: status401 :: Status
- Import.NoFoundation: status402 :: Status
- Import.NoFoundation: status403 :: Status
- Import.NoFoundation: status404 :: Status
- Import.NoFoundation: status405 :: Status
- Import.NoFoundation: status406 :: Status
- Import.NoFoundation: status407 :: Status
- Import.NoFoundation: status408 :: Status
- Import.NoFoundation: status409 :: Status
- Import.NoFoundation: status410 :: Status
- Import.NoFoundation: status411 :: Status
- Import.NoFoundation: status412 :: Status
- Import.NoFoundation: status413 :: Status
- Import.NoFoundation: status414 :: Status
- Import.NoFoundation: status415 :: Status
- Import.NoFoundation: status416 :: Status
- Import.NoFoundation: status417 :: Status
- Import.NoFoundation: status418 :: Status
- Import.NoFoundation: status422 :: Status
- Import.NoFoundation: status428 :: Status
- Import.NoFoundation: status429 :: Status
- Import.NoFoundation: status431 :: Status
- Import.NoFoundation: status500 :: Status
- Import.NoFoundation: status501 :: Status
- Import.NoFoundation: status502 :: Status
- Import.NoFoundation: status503 :: Status
- Import.NoFoundation: status504 :: Status
- Import.NoFoundation: status505 :: Status
- Import.NoFoundation: status511 :: Status
- Import.NoFoundation: statusIsClientError :: Status -> Bool
- Import.NoFoundation: statusIsInformational :: Status -> Bool
- Import.NoFoundation: statusIsRedirection :: Status -> Bool
- Import.NoFoundation: statusIsServerError :: Status -> Bool
- Import.NoFoundation: statusIsSuccessful :: Status -> Bool
- Import.NoFoundation: stderr :: Handle
- Import.NoFoundation: stderrC :: forall (m :: Type -> Type) o. MonadIO m => ConduitT ByteString o m ()
- Import.NoFoundation: stdin :: Handle
- Import.NoFoundation: stdinC :: forall (m :: Type -> Type) i. MonadIO m => ConduitT i ByteString m ()
- Import.NoFoundation: stdout :: Handle
- Import.NoFoundation: stdoutC :: forall (m :: Type -> Type) o. MonadIO m => ConduitT ByteString o m ()
- Import.NoFoundation: stimes :: (Semigroup a, Integral b) => b -> a -> a
- Import.NoFoundation: streamFile :: FilePath -> IO RequestBody
- Import.NoFoundation: strictSameSiteSessions :: IO (Maybe SessionBackend) -> IO (Maybe SessionBackend)
- Import.NoFoundation: stringException :: HasCallStack => String -> StringException
- Import.NoFoundation: stripPrefix :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> Maybe seq
- Import.NoFoundation: stripPrefixLazyBS :: ByteString -> ByteString -> Maybe ByteString
- Import.NoFoundation: stripPrefixStrictBS :: ByteString -> ByteString -> Maybe ByteString
- Import.NoFoundation: stripSuffix :: (IsSequence seq, Eq (Element seq)) => seq -> seq -> Maybe seq
- Import.NoFoundation: stripSuffixLazyBS :: ByteString -> ByteString -> Maybe ByteString
- Import.NoFoundation: stripSuffixStrictBS :: ByteString -> ByteString -> Maybe ByteString
- Import.NoFoundation: strippedHostName :: String -> String
- Import.NoFoundation: subsequences :: IsSequence seq => seq -> [seq]
- Import.NoFoundation: subtract :: Num a => a -> a -> a
- Import.NoFoundation: succ :: Enum a => a -> a
- Import.NoFoundation: sum :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono
- Import.NoFoundation: sumC :: forall (m :: Type -> Type) a o. (Monad m, Num a) => ConduitT a o m a
- Import.NoFoundation: sumCE :: forall (m :: Type -> Type) mono o. (Monad m, MonoFoldable mono, Num (Element mono)) => ConduitT mono o m (Element mono)
- Import.NoFoundation: swap :: (a, b) -> (b, a)
- Import.NoFoundation: swapMVar :: MonadIO m => MVar a -> a -> m a
- Import.NoFoundation: swapTMVar :: TMVar a -> a -> STM a
- Import.NoFoundation: swapTVar :: TVar a -> a -> STM a
- Import.NoFoundation: switchingProtocols101 :: Status
- Import.NoFoundation: symbolToField :: SymbolToField sym rec typ => EntityField rec typ
- Import.NoFoundation: tabulateEntity :: PersistEntity record => (forall a. () => EntityField record a -> a) -> Entity record
- Import.NoFoundation: tabulateEntityA :: (PersistEntity record, Applicative f) => (forall a. () => EntityField record a -> f a) -> f (Entity record)
- Import.NoFoundation: tagCountLowerBound :: Key User -> Int -> DB [(Text, Int)]
- Import.NoFoundation: tagCountRelated :: Key User -> [Tag] -> DB [(Text, Int)]
- Import.NoFoundation: tagCountTop :: Key User -> Int -> DB [(Text, Int)]
- Import.NoFoundation: tail :: IsSequence seq => NonNull seq -> seq
- Import.NoFoundation: tailDef :: IsSequence seq => seq -> seq
- Import.NoFoundation: tailEx :: IsSequence seq => seq -> seq
- Import.NoFoundation: tailMay :: IsSequence seq => seq -> Maybe seq
- Import.NoFoundation: take :: IsSequence seq => Index seq -> seq -> seq
- Import.NoFoundation: takeC :: forall (m :: Type -> Type) a. Monad m => Int -> ConduitT a a m ()
- Import.NoFoundation: takeCE :: forall (m :: Type -> Type) seq. (Monad m, IsSequence seq) => Index seq -> ConduitT seq seq m ()
- Import.NoFoundation: takeExactlyC :: forall (m :: Type -> Type) a b r. Monad m => Int -> ConduitT a b m r -> ConduitT a b m r
- Import.NoFoundation: takeExactlyCE :: forall (m :: Type -> Type) a b r. (Monad m, IsSequence a) => Index a -> ConduitT a b m r -> ConduitT a b m r
- Import.NoFoundation: takeMVar :: MonadIO m => MVar a -> m a
- Import.NoFoundation: takeTMVar :: TMVar a -> STM a
- Import.NoFoundation: takeWhile :: IsSequence seq => (Element seq -> Bool) -> seq -> seq
- Import.NoFoundation: takeWhileC :: forall (m :: Type -> Type) a. Monad m => (a -> Bool) -> ConduitT a a m ()
- Import.NoFoundation: takeWhileCE :: forall (m :: Type -> Type) seq. (Monad m, IsSequence seq) => (Element seq -> Bool) -> ConduitT seq seq m ()
- Import.NoFoundation: tan :: Floating a => a -> a
- Import.NoFoundation: tanh :: Floating a => a -> a
- Import.NoFoundation: temporaryRedirect307 :: Status
- Import.NoFoundation: terror :: HasCallStack => Text -> a
- Import.NoFoundation: textField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Text
- Import.NoFoundation: textToBuilder :: ToBuilder Text builder => Text -> builder
- Import.NoFoundation: textareaField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Textarea
- Import.NoFoundation: throwErrorStatusCodes :: MonadIO m => Request -> Response BodyReader -> m ()
- Import.NoFoundation: throwIO :: (MonadIO m, Exception e) => e -> m a
- Import.NoFoundation: throwString :: (MonadIO m, HasCallStack) => String -> m a
- Import.NoFoundation: throwTo :: (Exception e, MonadIO m) => ThreadId -> e -> m ()
- Import.NoFoundation: timeField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m TimeOfDay
- Import.NoFoundation: timeFieldTypeText :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m TimeOfDay
- Import.NoFoundation: timeFieldTypeTime :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m TimeOfDay
- Import.NoFoundation: timeout :: MonadUnliftIO m => Int -> m a -> m (Maybe a)
- Import.NoFoundation: tlshow :: Show a => a -> LText
- Import.NoFoundation: toAccountSettingsForm :: User -> AccountSettingsForm
- Import.NoFoundation: toAsyncException :: Exception e => e -> SomeException
- Import.NoFoundation: toBackendKey :: ToBackendKey backend record => Key record -> BackendKey backend
- Import.NoFoundation: toBookmarkFormList :: [(Entity Bookmark, Maybe Text)] -> [BookmarkForm]
- Import.NoFoundation: toBuilder :: ToBuilder value builder => value -> builder
- Import.NoFoundation: toByteVector :: ByteString -> SVector Word8
- Import.NoFoundation: toCaseFold :: Textual t => t -> t
- Import.NoFoundation: toChunks :: LazySequence lazy strict => lazy -> [strict]
- Import.NoFoundation: toConsumer :: forall (m :: Type -> Type) a b o. Monad m => ConduitT a Void m b -> ConduitT a o m b
- Import.NoFoundation: toContent :: ToContent a => a -> Content
- Import.NoFoundation: toEncoding :: ToJSON a => a -> Encoding
- Import.NoFoundation: toEncodingList :: ToJSON a => [a] -> Encoding
- Import.NoFoundation: toEnum :: Enum a => Int -> a
- Import.NoFoundation: toException :: Exception e => e -> SomeException
- Import.NoFoundation: toFlushBuilder :: ToFlushBuilder a => a -> Flush Builder
- Import.NoFoundation: toGregorian :: Day -> (Year, MonthOfYear, DayOfMonth)
- Import.NoFoundation: toHtml :: ToMarkup a => a -> Html
- Import.NoFoundation: toIO :: MonadUnliftIO m => m a -> m (IO a)
- Import.NoFoundation: toInteger :: Integral a => a -> Integer
- Import.NoFoundation: toJSON :: ToJSON a => a -> Value
- Import.NoFoundation: toJSONList :: ToJSON a => [a] -> Value
- Import.NoFoundation: toJavascript :: ToJavascript a => a -> Javascript
- Import.NoFoundation: toJsonText :: ToJSON j => j -> Text
- Import.NoFoundation: toList :: MonoFoldable mono => mono -> [Element mono]
- Import.NoFoundation: toLower :: Textual t => t -> t
- Import.NoFoundation: toMessage :: ToMessage a => a -> Text
- Import.NoFoundation: toMigration :: [Text] -> Migration
- Import.NoFoundation: toMinList :: NonEmpty a -> NonNull [a]
- Import.NoFoundation: toNonEmpty :: MonoFoldable mono => NonNull mono -> NonEmpty (Element mono)
- Import.NoFoundation: toPathMultiPiece :: PathMultiPiece s => s -> [Text]
- Import.NoFoundation: toPathPiece :: PathPiece s => s -> Text
- Import.NoFoundation: toPersistFields :: PersistEntity record => record -> [PersistValue]
- Import.NoFoundation: toPersistValue :: PersistField a => a -> PersistValue
- Import.NoFoundation: toPersistValueJSON :: ToJSON a => a -> PersistValue
- Import.NoFoundation: toProducer :: forall (m :: Type -> Type) a i. Monad m => ConduitT () a m () -> ConduitT i a m ()
- Import.NoFoundation: toQuery :: QueryLike a => a -> Query
- Import.NoFoundation: toRational :: Real a => a -> Rational
- Import.NoFoundation: toStrict :: LazySequence lazy strict => lazy -> strict
- Import.NoFoundation: toSyncException :: Exception e => e -> SomeException
- Import.NoFoundation: toTextUrl :: (RedirectUrl master a, MonadHandler m, HandlerSite m ~ master) => a -> m Text
- Import.NoFoundation: toTypedContent :: ToTypedContent a => a -> TypedContent
- Import.NoFoundation: toUpper :: Textual t => t -> t
- Import.NoFoundation: toWaiApp :: YesodDispatch site => site -> IO Application
- Import.NoFoundation: toWaiAppPlain :: YesodDispatch site => site -> IO Application
- Import.NoFoundation: toWaiAppYre :: YesodDispatch site => YesodRunnerEnv site -> Application
- Import.NoFoundation: toWidget :: (ToWidget site a, MonadWidget m, HandlerSite m ~ site) => a -> m ()
- Import.NoFoundation: toWidgetBody :: (ToWidgetBody site a, MonadWidget m, HandlerSite m ~ site) => a -> m ()
- Import.NoFoundation: toWidgetHead :: (ToWidgetHead site a, MonadWidget m, HandlerSite m ~ site) => a -> m ()
- Import.NoFoundation: toWidgetMedia :: (ToWidgetMedia site a, MonadWidget m, HandlerSite m ~ site) => Text -> a -> m ()
- Import.NoFoundation: tooManyRequests429 :: Status
- Import.NoFoundation: trace :: String -> a -> a
- Import.NoFoundation: traceId :: String -> String
- Import.NoFoundation: traceM :: Monad m => String -> m ()
- Import.NoFoundation: traceShow :: Show a => a -> b -> b
- Import.NoFoundation: traceShowId :: Show a => a -> a
- Import.NoFoundation: traceShowM :: (Show a, Monad m) => a -> m ()
- Import.NoFoundation: transPipe :: Monad m => (forall a. () => m a -> n a) -> ConduitT i o m r -> ConduitT i o n r
- Import.NoFoundation: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
- Import.NoFoundation: traverse_ :: (MonoFoldable mono, Applicative f) => (Element mono -> f b) -> mono -> f ()
- Import.NoFoundation: truncate :: (RealFrac a, Integral b) => a -> b
- Import.NoFoundation: try :: (MonadUnliftIO m, Exception e) => m a -> m (Either e a)
- Import.NoFoundation: tryAny :: MonadUnliftIO m => m a -> m (Either SomeException a)
- Import.NoFoundation: tryAnyDeep :: (MonadUnliftIO m, NFData a) => m a -> m (Either SomeException a)
- Import.NoFoundation: tryC :: forall (m :: Type -> Type) e i o r. (MonadUnliftIO m, Exception e) => ConduitT i o m r -> ConduitT i o m (Either e r)
- Import.NoFoundation: tryDeep :: (MonadUnliftIO m, Exception e, NFData a) => m a -> m (Either e a)
- Import.NoFoundation: tryIO :: MonadUnliftIO m => m a -> m (Either IOException a)
- Import.NoFoundation: tryIOError :: IO a -> IO (Either IOError a)
- Import.NoFoundation: tryJust :: (MonadUnliftIO m, Exception e) => (e -> Maybe b) -> m a -> m (Either b a)
- Import.NoFoundation: tryPeekTBChan :: TBChan a -> STM (Maybe a)
- Import.NoFoundation: tryPeekTBMChan :: TBMChan a -> STM (Maybe (Maybe a))
- Import.NoFoundation: tryPeekTBMQueue :: TBMQueue a -> STM (Maybe (Maybe a))
- Import.NoFoundation: tryPeekTBQueue :: TBQueue a -> STM (Maybe a)
- Import.NoFoundation: tryPeekTChan :: TChan a -> STM (Maybe a)
- Import.NoFoundation: tryPeekTMChan :: TMChan a -> STM (Maybe (Maybe a))
- Import.NoFoundation: tryPeekTMQueue :: TMQueue a -> STM (Maybe (Maybe a))
- Import.NoFoundation: tryPeekTQueue :: TQueue a -> STM (Maybe a)
- Import.NoFoundation: tryPutMVar :: MonadIO m => MVar a -> a -> m Bool
- Import.NoFoundation: tryPutTMVar :: TMVar a -> a -> STM Bool
- Import.NoFoundation: tryReadMVar :: MonadIO m => MVar a -> m (Maybe a)
- Import.NoFoundation: tryReadTBChan :: TBChan a -> STM (Maybe a)
- Import.NoFoundation: tryReadTBMChan :: TBMChan a -> STM (Maybe (Maybe a))
- Import.NoFoundation: tryReadTBMQueue :: TBMQueue a -> STM (Maybe (Maybe a))
- Import.NoFoundation: tryReadTBQueue :: TBQueue a -> STM (Maybe a)
- Import.NoFoundation: tryReadTChan :: TChan a -> STM (Maybe a)
- Import.NoFoundation: tryReadTMChan :: TMChan a -> STM (Maybe (Maybe a))
- Import.NoFoundation: tryReadTMQueue :: TMQueue a -> STM (Maybe (Maybe a))
- Import.NoFoundation: tryReadTMVar :: TMVar a -> STM (Maybe a)
- Import.NoFoundation: tryReadTQueue :: TQueue a -> STM (Maybe a)
- Import.NoFoundation: trySyncOrAsync :: (MonadUnliftIO m, Exception e) => m a -> m (Either e a)
- Import.NoFoundation: tryTakeMVar :: MonadIO m => MVar a -> m (Maybe a)
- Import.NoFoundation: tryTakeTMVar :: TMVar a -> STM (Maybe a)
- Import.NoFoundation: tryWriteTBChan :: TBChan a -> a -> STM Bool
- Import.NoFoundation: tryWriteTBMChan :: TBMChan a -> a -> STM (Maybe Bool)
- Import.NoFoundation: tryWriteTBMQueue :: TBMQueue a -> a -> STM (Maybe Bool)
- Import.NoFoundation: tshow :: Show a => a -> Text
- Import.NoFoundation: type Application = Request -> Response -> IO ResponseReceived -> IO ResponseReceived
- Import.NoFoundation: type Attr = Text
- Import.NoFoundation: type AuthEntity master = KeyEntity AuthId master;
- Import.NoFoundation: type AuthRoute = Route Auth
- Import.NoFoundation: type AutoFocus = Bool
- Import.NoFoundation: type BDeque = Deque MVector
- Import.NoFoundation: type BlazeBuilder = Builder
- Import.NoFoundation: type BookmarkId = Key Bookmark
- Import.NoFoundation: type BookmarkTagId = Key BookmarkTag
- Import.NoFoundation: type BottomOfHeadAsync master = [Text] -> Maybe HtmlUrl Route master -> HtmlUrl Route master
- Import.NoFoundation: type BufferAllocStrategy = (IO Buffer, Int -> Buffer -> IO IO Buffer)
- Import.NoFoundation: type ByteRanges = [ByteRange]
- Import.NoFoundation: type ByteStringBuilder = Builder
- Import.NoFoundation: type Conduit i (m :: Type -> Type) o = ConduitT i o m ()
- Import.NoFoundation: type ConduitM = ConduitT
- Import.NoFoundation: type Producer (m :: Type -> Type) o = forall i. () => ConduitT i o m ()
- Import.NoFoundation: type ContentType = ByteString
- Import.NoFoundation: type CssUrl url = url -> [(Text, Text)] -> Text -> Css
- Import.NoFoundation: type DB a = forall m. DBM m a
- Import.NoFoundation: type DBVal val = (PersistEntity val, PersistEntityBackend val ~ SqlBackend, PersistStore (PersistEntityBackend val))
- Import.NoFoundation: type Env = Map Text [Text]
- Import.NoFoundation: type ExtraLine = [Text]
- Import.NoFoundation: type FieldViewFunc (m :: Type -> Type) a = Text -> Text -> [(Text, Text)] -> Either Text a -> Bool -> WidgetFor HandlerSite m ()
- Import.NoFoundation: type FileEnv = Map Text [FileInfo]
- Import.NoFoundation: type FilePath = String
- Import.NoFoundation: type ForeignFieldDef = (FieldNameHS, FieldNameDB)
- Import.NoFoundation: type FormRender (m :: Type -> Type) a = AForm m a -> Markup -> MForm m (FormResult a, WidgetFor HandlerSite m ())
- Import.NoFoundation: type GivesPopper a = NeedsPopper a -> IO a
- Import.NoFoundation: type HandlerT site (m :: Type -> Type) = HandlerFor site
- Import.NoFoundation: type Header = (HeaderName, ByteString)
- Import.NoFoundation: type HeaderName = CI ByteString
- Import.NoFoundation: type Html = Markup
- Import.NoFoundation: type HtmlUrl url = Render url -> Html
- Import.NoFoundation: type IOBRef = BRef PrimState IO
- Import.NoFoundation: type IOError = IOException
- Import.NoFoundation: type IOPRef = PRef PrimState IO
- Import.NoFoundation: type IOSRef = SRef PrimState IO
- Import.NoFoundation: type IOURef = URef PrimState IO
- Import.NoFoundation: type JavascriptUrl url = url -> [(Text, Text)] -> Text -> Javascript
- Import.NoFoundation: type LByteString = ByteString
- Import.NoFoundation: type LText = Text
- Import.NoFoundation: type Lang = Text
- Import.NoFoundation: type Limit = Int64
- Import.NoFoundation: type LiteHandler = HandlerFor LiteApp
- Import.NoFoundation: type LiteWidget = WidgetFor LiteApp
- Import.NoFoundation: type MForm (m :: Type -> Type) a = RWST (Maybe (Env, FileEnv), HandlerSite m, [Lang]) Enctype Ints m a
- Import.NoFoundation: type Method = ByteString
- Import.NoFoundation: type MonadAuthHandler master (m :: Type -> Type) = (MonadHandler m, YesodAuth master, master ~ HandlerSite m, Auth ~ SubHandlerSite m, MonadUnliftIO m)
- Import.NoFoundation: type MultipleUniqueKeysError ty = 'Text "The entity " ':<>: 'ShowType ty ':<>: 'Text " has multiple unique keys." ':$$: 'Text "The function you are trying to call requires only a single " ':<>: 'Text "unique key." ':$$: 'Text "There is probably a variant of the function with 'By' " ':<>: 'Text "appended that will allow you to select a unique key " ':<>: 'Text "for the operation."
- Import.NoFoundation: type MutableDeque c = (MutableQueue c, MutablePushFront c, MutablePopBack c)
- Import.NoFoundation: type MutableQueue c = (MutablePopFront c, MutablePushBack c)
- Import.NoFoundation: type MutableStack c = (MutablePopFront c, MutablePushFront c)
- Import.NoFoundation: type NeedsPopper a = Popper -> IO a
- Import.NoFoundation: type NoUniqueKeysError ty = 'Text "The entity " ':<>: 'ShowType ty ':<>: 'Text " does not have any unique keys." ':$$: 'Text "The function you are trying to call requires a unique key " ':<>: 'Text "to be defined on the entity."
- Import.NoFoundation: type NoteId = Key Note
- Import.NoFoundation: type Page = Int64
- Import.NoFoundation: type PartialEscapeQuery = [PartialEscapeQueryItem]
- Import.NoFoundation: type PartialEscapeQueryItem = (ByteString, [EscapeItem])
- Import.NoFoundation: type PersistQuery a = PersistQueryWrite a
- Import.NoFoundation: type PersistRecordBackend record backend = (PersistEntity record, PersistEntityBackend record ~ BaseBackend backend)
- Import.NoFoundation: type PersistStore a = PersistStoreWrite a
- Import.NoFoundation: type PersistUnique a = PersistUniqueWrite a
- Import.NoFoundation: type Popper = IO ByteString
- Import.NoFoundation: type Query = [QueryItem]
- Import.NoFoundation: type QueryItem = (ByteString, Maybe ByteString)
- Import.NoFoundation: type QueryText = [(Text, Maybe Text)]
- Import.NoFoundation: type Rational = Ratio Integer
- Import.NoFoundation: type Reader r = ReaderT r Identity
- Import.NoFoundation: type RepHtml = Html
- Import.NoFoundation: type RequestBodyContents = ([(Text, Text)], [(Text, FileInfo)])
- Import.NoFoundation: type RequestHeaders = [Header]
- Import.NoFoundation: type ResponseHeaders = [Header]
- Import.NoFoundation: type SDeque = Deque MVector
- Import.NoFoundation: type SVector = Vector
- Import.NoFoundation: type SessionMap = Map Text ByteString
- Import.NoFoundation: type SimpleQuery = [SimpleQueryItem]
- Import.NoFoundation: type SimpleQueryItem = (ByteString, ByteString)
- Import.NoFoundation: type Sink i = ConduitT i Void
- Import.NoFoundation: type Source (m :: Type -> Type) o = ConduitT () o m ()
- Import.NoFoundation: type DBM m a = MonadUnliftIO m => SqlPersistT m a
- Import.NoFoundation: type StaticRoute = Route Static
- Import.NoFoundation: type String = [Char]
- Import.NoFoundation: type Tag = Text
- Import.NoFoundation: type TextBuilder = Builder
- Import.NoFoundation: type Texts = [Text]
- Import.NoFoundation: type UDeque = Deque MVector
- Import.NoFoundation: type UVector = Vector
- Import.NoFoundation: type UserId = Key User
- Import.NoFoundation: type WForm (m :: Type -> Type) a = MForm WriterT [FieldView HandlerSite m] m a
- Import.NoFoundation: type WidgetT site (m :: Type -> Type) = WidgetFor site
- Import.NoFoundation: type YesodDB site = ReaderT YesodPersistBackend site HandlerFor site
- Import.NoFoundation: type family AuthId master
- Import.NoFoundation: type AuthHandler master a = forall (m :: Type -> Type). MonadAuthHandler master m => m a
- Import.NoFoundation: typeAtom :: ContentType
- Import.NoFoundation: typeCss :: ContentType
- Import.NoFoundation: typeFlv :: ContentType
- Import.NoFoundation: typeGif :: ContentType
- Import.NoFoundation: typeHtml :: ContentType
- Import.NoFoundation: typeJavascript :: ContentType
- Import.NoFoundation: typeJpeg :: ContentType
- Import.NoFoundation: typeJson :: ContentType
- Import.NoFoundation: typeOctet :: ContentType
- Import.NoFoundation: typeOgv :: ContentType
- Import.NoFoundation: typePlain :: ContentType
- Import.NoFoundation: typePng :: ContentType
- Import.NoFoundation: typeRss :: ContentType
- Import.NoFoundation: typeSvg :: ContentType
- Import.NoFoundation: typeXml :: ContentType
- Import.NoFoundation: unGetTBChan :: TBChan a -> a -> STM ()
- Import.NoFoundation: unGetTBMChan :: TBMChan a -> a -> STM ()
- Import.NoFoundation: unGetTBMQueue :: TBMQueue a -> a -> STM ()
- Import.NoFoundation: unGetTBQueue :: TBQueue a -> a -> STM ()
- Import.NoFoundation: unGetTChan :: TChan a -> a -> STM ()
- Import.NoFoundation: unGetTMChan :: TMChan a -> a -> STM ()
- Import.NoFoundation: unGetTMQueue :: TMQueue a -> a -> STM ()
- Import.NoFoundation: unGetTQueue :: TQueue a -> a -> STM ()
- Import.NoFoundation: unauthorized401 :: Status
- Import.NoFoundation: unauthorizedI :: (MonadHandler m, RenderMessage (HandlerSite m) msg) => msg -> m AuthResult
- Import.NoFoundation: uncons :: IsSequence seq => seq -> Maybe (Element seq, seq)
- Import.NoFoundation: uncurry :: (a -> b -> c) -> (a, b) -> c
- Import.NoFoundation: undefined :: HasCallStack => a
- Import.NoFoundation: unfoldC :: forall (m :: Type -> Type) b a i. Monad m => (b -> Maybe (a, b)) -> b -> ConduitT i a m ()
- Import.NoFoundation: uninterruptibleCancel :: MonadIO m => Async a -> m ()
- Import.NoFoundation: uninterruptibleMask :: MonadUnliftIO m => ((forall a. () => m a -> m a) -> m b) -> m b
- Import.NoFoundation: uninterruptibleMask_ :: MonadUnliftIO m => m a -> m a
- Import.NoFoundation: union :: SetContainer set => set -> set -> set
- Import.NoFoundation: unionWith :: IsMap map => (MapValue map -> MapValue map -> MapValue map) -> map -> map -> map
- Import.NoFoundation: unionWithKey :: IsMap map => (ContainerKey map -> MapValue map -> MapValue map -> MapValue map) -> map -> map -> map
- Import.NoFoundation: unions :: (SetContainer set, MonoFoldable mono, Element mono ~ set) => mono -> set
- Import.NoFoundation: unionsWith :: IsMap map => (MapValue map -> MapValue map -> MapValue map) -> [map] -> map
- Import.NoFoundation: unless :: Applicative f => Bool -> f () -> f ()
- Import.NoFoundation: unlessM :: Monad m => m Bool -> m () -> m ()
- Import.NoFoundation: unlines :: (Textual t, Element seq ~ t, MonoFoldable seq) => seq -> t
- Import.NoFoundation: unlinesAsciiC :: forall (m :: Type -> Type) seq. (Monad m, IsSequence seq, Element seq ~ Word8) => ConduitT seq seq m ()
- Import.NoFoundation: unlinesC :: forall (m :: Type -> Type) seq. (Monad m, IsSequence seq, Element seq ~ Char) => ConduitT seq seq m ()
- Import.NoFoundation: unpack :: MonoFoldable mono => mono -> [Element mono]
- Import.NoFoundation: unprocessableEntity422 :: Status
- Import.NoFoundation: unsafeBuilderToByteString :: forall (m :: Type -> Type). PrimMonad m => ConduitT Builder ByteString m ()
- Import.NoFoundation: unsafeDrop :: IsSequence seq => Index seq -> seq -> seq
- Import.NoFoundation: unsafeHead :: MonoFoldable mono => mono -> Element mono
- Import.NoFoundation: unsafeIndex :: IsSequence seq => seq -> Index seq -> Element seq
- Import.NoFoundation: unsafeInit :: IsSequence seq => seq -> seq
- Import.NoFoundation: unsafeLast :: MonoFoldable mono => mono -> Element mono
- Import.NoFoundation: unsafeSplitAt :: IsSequence seq => Index seq -> seq -> (seq, seq)
- Import.NoFoundation: unsafeTail :: IsSequence seq => seq -> seq
- Import.NoFoundation: unsafeTake :: IsSequence seq => Index seq -> seq -> seq
- Import.NoFoundation: unsealConduitT :: forall (m :: Type -> Type) i o r. Monad m => SealedConduitT i o m r -> ConduitT i o m r
- Import.NoFoundation: unsnoc :: IsSequence seq => seq -> Maybe (seq, Element seq)
- Import.NoFoundation: unsupportedMediaType415 :: Status
- Import.NoFoundation: until :: (a -> Bool) -> (a -> a) -> a -> a
- Import.NoFoundation: unwords :: (Textual t, Element seq ~ t, MonoFoldable seq) => seq -> t
- Import.NoFoundation: unwrapMono :: WrappedMono mono a -> mono
- Import.NoFoundation: unzip :: Zip f => f (a, b) -> (f a, f b)
- Import.NoFoundation: unzip3 :: Zip3 f => f (a, b, c) -> (f a, f b, f c)
- Import.NoFoundation: unzip4 :: Zip4 f => f (a, b, c, d) -> (f a, f b, f c, f d)
- Import.NoFoundation: unzip5 :: Zip5 f => f (a, b, c, d, e) -> (f a, f b, f c, f d, f e)
- Import.NoFoundation: unzip6 :: Zip6 f => f (a, b, c, d, e, g) -> (f a, f b, f c, f d, f e, f g)
- Import.NoFoundation: unzip7 :: Zip7 f => f (a, b, c, d, e, g, h) -> (f a, f b, f c, f d, f e, f g, f h)
- Import.NoFoundation: update :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend) => Key record -> [Update record] -> ReaderT backend m ()
- Import.NoFoundation: updateBookmarkArchiveUrl :: Key User -> Key Bookmark -> Maybe Text -> DB ()
- Import.NoFoundation: updateCookieJar :: Response a -> Request -> UTCTime -> CookieJar -> (CookieJar, Response a)
- Import.NoFoundation: updateGet :: forall record (m :: Type -> Type). (PersistStoreWrite backend, MonadIO m, PersistRecordBackend record backend) => Key record -> [Update record] -> ReaderT backend m record
- Import.NoFoundation: updateLookupWithKey :: IsMap map => (ContainerKey map -> MapValue map -> Maybe (MapValue map)) -> ContainerKey map -> map -> (Maybe (MapValue map), map)
- Import.NoFoundation: updateMap :: IsMap map => (MapValue map -> Maybe (MapValue map)) -> ContainerKey map -> map -> map
- Import.NoFoundation: updateUserFromAccountSettingsForm :: Key User -> AccountSettingsForm -> DB ()
- Import.NoFoundation: updateWhere :: forall (m :: Type -> Type) record. (PersistQueryWrite backend, MonadIO m, PersistRecordBackend record backend) => [Filter record] -> [Update record] -> ReaderT backend m ()
- Import.NoFoundation: updateWithKey :: IsMap map => (ContainerKey map -> MapValue map -> Maybe (MapValue map)) -> ContainerKey map -> map -> map
- Import.NoFoundation: upsert :: forall record (m :: Type -> Type). (PersistUniqueWrite backend, MonadIO m, PersistRecordBackend record backend, OnlyOneUniqueKey record, SafeToInsert record) => record -> [Update record] -> ReaderT backend m (Entity record)
- Import.NoFoundation: upsertBookmark :: Key User -> Maybe (Key Bookmark) -> Bookmark -> [Text] -> DB (UpsertResult (Key Bookmark))
- Import.NoFoundation: upsertBy :: forall record (m :: Type -> Type). (PersistUniqueWrite backend, MonadIO m, PersistRecordBackend record backend, SafeToInsert record) => Unique record -> record -> [Update record] -> ReaderT backend m (Entity record)
- Import.NoFoundation: upsertNote :: Key User -> Maybe (Key Note) -> Note -> DB (UpsertResult (Key Note))
- Import.NoFoundation: urlDecode :: Bool -> ByteString -> ByteString
- Import.NoFoundation: urlEncode :: Bool -> ByteString -> ByteString
- Import.NoFoundation: urlEncodeBuilder :: Bool -> ByteString -> Builder
- Import.NoFoundation: urlEncodedBody :: [(ByteString, ByteString)] -> Request -> Request
- Import.NoFoundation: urlField :: forall (m :: Type -> Type). (Monad m, RenderMessage (HandlerSite m) FormMessage) => Field m Text
- Import.NoFoundation: urlParamRenderOverride :: Yesod site => site -> Route site -> [(Text, Text)] -> Maybe Builder
- Import.NoFoundation: useCustomEnv :: KeyMap Text -> EnvUsage
- Import.NoFoundation: useEnv :: EnvUsage
- Import.NoFoundation: useProxy :: Proxy -> ProxyOverride
- Import.NoFoundation: useProxy305 :: Status
- Import.NoFoundation: useProxySecureWithoutConnect :: Proxy -> ProxyOverride
- Import.NoFoundation: userError :: String -> IOError
- Import.NoFoundation: userErrorType :: IOErrorType
- Import.NoFoundation: validatePasswordHash :: BCrypt -> Text -> Bool
- Import.NoFoundation: vectorBuilderC :: forall (m :: Type -> Type) v e n i r. (PrimMonad m, Vector v e, PrimMonad n, PrimState m ~ PrimState n) => Int -> ((e -> n ()) -> ConduitT i Void m r) -> ConduitT i (v e) m r
- Import.NoFoundation: vectorSort :: (Vector v e, Ord e) => v e -> v e
- Import.NoFoundation: vectorSortBy :: Vector v e => (e -> e -> Ordering) -> v e -> v e
- Import.NoFoundation: void :: Functor f => f a -> f ()
- Import.NoFoundation: wFormToAForm :: forall (m :: Type -> Type) a. MonadHandler m => WForm m (FormResult a) -> AForm m a
- Import.NoFoundation: wFormToMForm :: forall (m :: Type -> Type) site a. (MonadHandler m, HandlerSite m ~ site) => WForm m a -> MForm m (a, [FieldView site])
- Import.NoFoundation: waiRequest :: MonadHandler m => m Request
- Import.NoFoundation: wait :: MonadIO m => Async a -> m a
- Import.NoFoundation: waitAny :: MonadIO m => [Async a] -> m (Async a, a)
- Import.NoFoundation: waitAnyCancel :: MonadIO m => [Async a] -> m (Async a, a)
- Import.NoFoundation: waitAnyCatch :: MonadIO m => [Async a] -> m (Async a, Either SomeException a)
- Import.NoFoundation: waitAnyCatchCancel :: MonadIO m => [Async a] -> m (Async a, Either SomeException a)
- Import.NoFoundation: waitAnyCatchSTM :: [Async a] -> STM (Async a, Either SomeException a)
- Import.NoFoundation: waitAnySTM :: [Async a] -> STM (Async a, a)
- Import.NoFoundation: waitAsync :: MonadIO m => Async a -> m a
- Import.NoFoundation: waitBoth :: MonadIO m => Async a -> Async b -> m (a, b)
- Import.NoFoundation: waitBothSTM :: Async a -> Async b -> STM (a, b)
- Import.NoFoundation: waitCatch :: MonadIO m => Async a -> m (Either SomeException a)
- Import.NoFoundation: waitCatchAsync :: MonadIO m => Async a -> m (Either SomeException a)
- Import.NoFoundation: waitCatchSTM :: Async a -> STM (Either SomeException a)
- Import.NoFoundation: waitEither :: MonadIO m => Async a -> Async b -> m (Either a b)
- Import.NoFoundation: waitEitherCancel :: MonadIO m => Async a -> Async b -> m (Either a b)
- Import.NoFoundation: waitEitherCatch :: MonadIO m => Async a -> Async b -> m (Either (Either SomeException a) (Either SomeException b))
- Import.NoFoundation: waitEitherCatchCancel :: MonadIO m => Async a -> Async b -> m (Either (Either SomeException a) (Either SomeException b))
- Import.NoFoundation: waitEitherCatchSTM :: Async a -> Async b -> STM (Either (Either SomeException a) (Either SomeException b))
- Import.NoFoundation: waitEitherSTM :: Async a -> Async b -> STM (Either a b)
- Import.NoFoundation: waitEitherSTM_ :: Async a -> Async b -> STM ()
- Import.NoFoundation: waitEither_ :: MonadIO m => Async a -> Async b -> m ()
- Import.NoFoundation: waitQSem :: MonadIO m => QSem -> m ()
- Import.NoFoundation: waitQSemN :: MonadIO m => QSemN -> Int -> m ()
- Import.NoFoundation: waitSTM :: Async a -> STM a
- Import.NoFoundation: warp :: YesodDispatch site => Int -> site -> IO ()
- Import.NoFoundation: warpDebug :: YesodDispatch site => Int -> site -> IO ()
- Import.NoFoundation: warpEnv :: YesodDispatch site => site -> IO ()
- Import.NoFoundation: whamlet :: QuasiQuoter
- Import.NoFoundation: whamletFile :: FilePath -> Q Exp
- Import.NoFoundation: whamletFileWithSettings :: HamletSettings -> FilePath -> Q Exp
- Import.NoFoundation: when :: Applicative f => Bool -> f () -> f ()
- Import.NoFoundation: whenM :: Monad m => m Bool -> m () -> m ()
- Import.NoFoundation: widgetFile :: String -> Q Exp
- Import.NoFoundation: widgetFileSettings :: WidgetFileSettings
- Import.NoFoundation: widgetToPageContent :: Yesod site => WidgetFor site () -> HandlerFor site (PageContent (Route site))
- Import.NoFoundation: withAcquire :: MonadUnliftIO m => Acquire a -> (a -> m b) -> m b
- Import.NoFoundation: withAsync :: MonadUnliftIO m => m a -> (Async a -> m b) -> m b
- Import.NoFoundation: withAsyncBound :: MonadUnliftIO m => m a -> (Async a -> m b) -> m b
- Import.NoFoundation: withAsyncOn :: MonadUnliftIO m => Int -> m a -> (Async a -> m b) -> m b
- Import.NoFoundation: withAsyncOnWithUnmask :: MonadUnliftIO m => Int -> ((forall c. () => m c -> m c) -> m a) -> (Async a -> m b) -> m b
- Import.NoFoundation: withAsyncWithUnmask :: MonadUnliftIO m => ((forall c. () => m c -> m c) -> m a) -> (Async a -> m b) -> m b
- Import.NoFoundation: withBaseBackend :: forall backend (m :: Type -> Type) a. HasPersistBackend backend => ReaderT (BaseBackend backend) m a -> ReaderT backend m a
- Import.NoFoundation: withBinaryFile :: MonadUnliftIO m => FilePath -> IOMode -> (Handle -> m a) -> m a
- Import.NoFoundation: withCompatibleBackend :: forall sup sub (m :: Type -> Type) a. BackendCompatible sup sub => ReaderT sup m a -> ReaderT sub m a
- Import.NoFoundation: withConnection :: Request -> Manager -> (Connection -> IO a) -> IO a
- Import.NoFoundation: withDynamic :: PathPiece p => (p -> Writer LiteApp ()) -> Writer LiteApp ()
- Import.NoFoundation: withDynamicMulti :: PathMultiPiece ps => (ps -> Writer LiteApp ()) -> Writer LiteApp ()
- Import.NoFoundation: withException :: (MonadUnliftIO m, Exception e) => m a -> (e -> m b) -> m a
- Import.NoFoundation: withFile :: MonadUnliftIO m => FilePath -> IOMode -> (Handle -> m a) -> m a
- Import.NoFoundation: withMVar :: MonadUnliftIO m => MVar a -> (a -> m b) -> m b
- Import.NoFoundation: withMVarMasked :: MonadUnliftIO m => MVar a -> (a -> m b) -> m b
- Import.NoFoundation: withManager :: ManagerSettings -> (Manager -> IO a) -> IO a
- Import.NoFoundation: withQSem :: MonadUnliftIO m => QSem -> m a -> m a
- Import.NoFoundation: withQSemN :: MonadUnliftIO m => QSemN -> Int -> m a -> m a
- Import.NoFoundation: withRadioField :: (Eq a, RenderMessage site FormMessage) => (Text -> WidgetFor site () -> WidgetFor site ()) -> (Text -> Text -> Bool -> Text -> WidgetFor site () -> WidgetFor site ()) -> HandlerFor site (OptionList a) -> Field (HandlerFor site) a
- Import.NoFoundation: withResponse :: forall m (n :: Type -> Type) env i a. (MonadUnliftIO m, MonadIO n, MonadReader env m, HasHttpManager env) => Request -> (Response (ConduitM i ByteString n ()) -> m a) -> m a
- Import.NoFoundation: withResponseHistory :: Request -> Manager -> (HistoriedResponse BodyReader -> IO a) -> IO a
- Import.NoFoundation: withRunInIO :: MonadUnliftIO m => ((forall a. () => m a -> IO a) -> IO b) -> m b
- Import.NoFoundation: withSinkFile :: forall m (n :: Type -> Type) o a. (MonadUnliftIO m, MonadIO n) => FilePath -> (ConduitM ByteString o n () -> m a) -> m a
- Import.NoFoundation: withSinkFileBuilder :: forall m (n :: Type -> Type) o a. (MonadUnliftIO m, MonadIO n) => FilePath -> (ConduitM Builder o n () -> m a) -> m a
- Import.NoFoundation: withSinkFileCautious :: forall m (n :: Type -> Type) o a. (MonadUnliftIO m, MonadIO n) => FilePath -> (ConduitM ByteString o n () -> m a) -> m a
- Import.NoFoundation: withSourceFile :: forall m (n :: Type -> Type) i a. (MonadUnliftIO m, MonadIO n) => FilePath -> (ConduitM i ByteString n () -> m a) -> m a
- Import.NoFoundation: withSystemTempDirectory :: MonadUnliftIO m => String -> (FilePath -> m a) -> m a
- Import.NoFoundation: withSystemTempFile :: MonadUnliftIO m => String -> (FilePath -> Handle -> m a) -> m a
- Import.NoFoundation: withTags :: Key Bookmark -> DB [Entity BookmarkTag]
- Import.NoFoundation: withTempDirectory :: MonadUnliftIO m => FilePath -> String -> (FilePath -> m a) -> m a
- Import.NoFoundation: withTempFile :: MonadUnliftIO m => FilePath -> String -> (FilePath -> Handle -> m a) -> m a
- Import.NoFoundation: withUnliftIO :: MonadUnliftIO m => (UnliftIO m -> IO a) -> m a
- Import.NoFoundation: withUrlRenderer :: MonadHandler m => ((Route (HandlerSite m) -> [(Text, Text)] -> Text) -> output) -> m output
- Import.NoFoundation: wopt :: forall (m :: Type -> Type) site a. (MonadHandler m, HandlerSite m ~ site) => Field m a -> FieldSettings site -> Maybe (Maybe a) -> WForm m (FormResult (Maybe a))
- Import.NoFoundation: words :: Textual t => t -> [t]
- Import.NoFoundation: wrappedWithRunInIO :: MonadUnliftIO n => (n b -> m b) -> (forall a. () => m a -> n a) -> ((forall a. () => m a -> IO a) -> IO b) -> m b
- Import.NoFoundation: wreq :: forall site (m :: Type -> Type) a. (RenderMessage site FormMessage, HandlerSite m ~ site, MonadHandler m) => Field m a -> FieldSettings site -> Maybe a -> WForm m (FormResult a)
- Import.NoFoundation: wreqMsg :: forall site msg (m :: Type -> Type) a. (RenderMessage site msg, HandlerSite m ~ site, MonadHandler m) => Field m a -> FieldSettings site -> msg -> Maybe a -> WForm m (FormResult a)
- Import.NoFoundation: writeChan :: MonadIO m => Chan a -> a -> m ()
- Import.NoFoundation: writeFile :: MonadIO m => FilePath -> ByteString -> m ()
- Import.NoFoundation: writeFileUtf8 :: MonadIO m => FilePath -> Text -> m ()
- Import.NoFoundation: writeIORef :: MonadIO m => IORef a -> a -> m ()
- Import.NoFoundation: writeList2Chan :: MonadIO m => Chan a -> [a] -> m ()
- Import.NoFoundation: writeMutVar :: PrimMonad m => MutVar (PrimState m) a -> a -> m ()
- Import.NoFoundation: writeRef :: (MutableRef c, PrimMonad m, PrimState m ~ MCState c) => c -> RefElement c -> m ()
- Import.NoFoundation: writeTBChan :: TBChan a -> a -> STM ()
- Import.NoFoundation: writeTBMChan :: TBMChan a -> a -> STM ()
- Import.NoFoundation: writeTBMQueue :: TBMQueue a -> a -> STM ()
- Import.NoFoundation: writeTBQueue :: TBQueue a -> a -> STM ()
- Import.NoFoundation: writeTChan :: TChan a -> a -> STM ()
- Import.NoFoundation: writeTMChan :: TMChan a -> a -> STM ()
- Import.NoFoundation: writeTMQueue :: TMQueue a -> a -> STM ()
- Import.NoFoundation: writeTMVar :: TMVar a -> a -> STM ()
- Import.NoFoundation: writeTQueue :: TQueue a -> a -> STM ()
- Import.NoFoundation: writeTVar :: TVar a -> a -> STM ()
- Import.NoFoundation: writerC :: forall (m :: Type -> Type) w i o b. (Monad m, Monoid w) => ConduitT i o m (b, w) -> ConduitT i o (WriterT w m) b
- Import.NoFoundation: writerLC :: forall (m :: Type -> Type) w i o b. (Monad m, Monoid w) => ConduitT i o m (b, w) -> ConduitT i o (WriterT w m) b
- Import.NoFoundation: xhamlet :: QuasiQuoter
- Import.NoFoundation: yesodDispatch :: YesodDispatch site => YesodRunnerEnv site -> Application
- Import.NoFoundation: yesodMiddleware :: (Yesod site, ToTypedContent res) => HandlerFor site res -> HandlerFor site res
- Import.NoFoundation: yesodRender :: Yesod y => y -> ResolvedApproot -> Route y -> [(Text, Text)] -> Text
- Import.NoFoundation: yesodRunner :: (ToTypedContent res, Yesod site) => HandlerFor site res -> YesodRunnerEnv site -> Maybe (Route site) -> Application
- Import.NoFoundation: yesodSubDispatch :: YesodSubDispatch sub master => YesodSubRunnerEnv sub master -> Application
- Import.NoFoundation: yesodVersion :: String
- Import.NoFoundation: yesodWithInternalState :: Yesod site => site -> Maybe (Route site) -> (InternalState -> IO a) -> IO a
- Import.NoFoundation: yield :: forall (m :: Type -> Type) o i. Monad m => o -> ConduitT i o m ()
- Import.NoFoundation: yieldM :: Monad m => m o -> ConduitT i o m ()
- Import.NoFoundation: yieldMany :: forall (m :: Type -> Type) mono i. (Monad m, MonoFoldable mono) => mono -> ConduitT i (Element mono) m ()
- Import.NoFoundation: yieldThread :: MonadIO m => m ()
- Import.NoFoundation: zip :: Zip f => f a -> f b -> f (a, b)
- Import.NoFoundation: zip3 :: Zip3 f => f a -> f b -> f c -> f (a, b, c)
- Import.NoFoundation: zip4 :: Zip4 f => f a -> f b -> f c -> f d -> f (a, b, c, d)
- Import.NoFoundation: zip5 :: Zip5 f => f a -> f b -> f c -> f d -> f e -> f (a, b, c, d, e)
- Import.NoFoundation: zip6 :: Zip6 f => f a -> f b -> f c -> f d -> f e -> f g -> f (a, b, c, d, e, g)
- Import.NoFoundation: zip7 :: Zip7 f => f a -> f b -> f c -> f d -> f e -> f g -> f h -> f (a, b, c, d, e, g, h)
- Import.NoFoundation: zipWith :: Zip f => (a -> b -> c) -> f a -> f b -> f c
- Import.NoFoundation: zipWith3 :: Zip3 f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
- Import.NoFoundation: zipWith4 :: Zip4 f => (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f e
- Import.NoFoundation: zipWith5 :: Zip5 f => (a -> b -> c -> d -> e -> g) -> f a -> f b -> f c -> f d -> f e -> f g
- Import.NoFoundation: zipWith6 :: Zip6 f => (a -> b -> c -> d -> e -> g -> h) -> f a -> f b -> f c -> f d -> f e -> f g -> f h
- Import.NoFoundation: zipWith7 :: Zip7 f => (a -> b -> c -> d -> e -> g -> h -> i) -> f a -> f b -> f c -> f d -> f e -> f g -> f h -> f i
- Import.NoFoundation: }
- Settings.StaticFiles: js_app_min_js :: StaticRoute
- Settings.StaticFiles: js_app_min_js_gz :: StaticRoute
- Settings.StaticFiles: js_app_min_js_map :: StaticRoute
- Settings.StaticFiles: js_app_min_js_map_gz :: StaticRoute
- Settings.StaticFiles: js_html5shiv_min_js :: StaticRoute
- Settings.StaticFiles: js_html5shiv_min_js_gz :: StaticRoute
- Types: type DB a = forall m. DBM m a
+ Application: instance Data.Aeson.Types.FromJSON.FromJSON Application.FrontendBundleManifest
+ Foundation: [appFrontendBundleName] :: App -> Text
+ Handler.Add: postTagSuggestionsR :: Handler Text
+ Import: aFormToMaybeGetSuccess :: MonadHandler f => AForm f a -> f (Maybe a)
+ Import: aFormToMaybePostSuccess :: MonadHandlerForm f => AForm f a -> f (Maybe a)
+ Import: attr :: (Text, Text) -> FieldSettings master -> FieldSettings master
+ Import: attrs :: [(Text, Text)] -> FieldSettings master -> FieldSettings master
+ Import: class MkIForm a
+ Import: cls :: [Text] -> FieldSettings master -> FieldSettings master
+ Import: maybeSuccess :: FormResult a -> Maybe a
+ Import: mkIForm :: forall (m :: Type -> Type). (MkIForm a, MonadHandlerForm m) => FormInput m a
+ Import: named :: Text -> FieldSettings master -> FieldSettings master
+ Import: runInputPostJSON :: (FromJSON a, MonadHandlerForm m) => FormInput m a -> m a
+ Import: runInputPostJSONResult :: (FromJSON a, MonadHandlerForm m) => FormInput m a -> m (FormResult a)
+ Import: type Form f = Html -> MForm Handler (FormResult f, Widget)
+ Import: type MonadHandlerForm (m :: Type -> Type) = (RenderMessage App FormMessage, HandlerSite m ~ App, MonadHandler m)
+ Model: Suggestion :: Text -> Int -> Suggestion
+ Model: TagSuggestionRequest :: Text -> Maybe [Text] -> TagSuggestionRequest
+ Model: TagSuggestionResponse :: [Suggestion] -> TagSuggestionResponse
+ Model: [_count] :: Suggestion -> Int
+ Model: [_currentTags] :: TagSuggestionRequest -> Maybe [Text]
+ Model: [_query] :: TagSuggestionRequest -> Text
+ Model: [_suggestTags] :: AccountSettingsForm -> Bool
+ Model: [_suggestions] :: TagSuggestionResponse -> [Suggestion]
+ Model: [_term] :: Suggestion -> Text
+ Model: [userSuggestTags] :: User -> !Bool
+ Model: data Suggestion
+ Model: data TagSuggestionRequest
+ Model: data TagSuggestionResponse
+ Model: getTagSuggestions :: Key User -> TagSuggestionRequest -> Int -> DB TagSuggestionResponse
+ 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.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 "suggestTags" Model.User GHC.Types.Bool
+ Model: instance GHC.Classes.Eq Model.Suggestion
+ Model: instance GHC.Classes.Eq Model.TagSuggestionRequest
+ Model: instance GHC.Classes.Eq Model.TagSuggestionResponse
+ 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.Suggestion
+ Model: instance GHC.Read.Read Model.TagSuggestionRequest
+ Model: instance GHC.Read.Read Model.TagSuggestionResponse
+ Model: instance GHC.Show.Show Model.Suggestion
+ Model: instance GHC.Show.Show Model.TagSuggestionRequest
+ Model: instance GHC.Show.Show Model.TagSuggestionResponse
+ Settings.StaticFiles: fonts_glyphicons_halflings_regular_eot :: StaticRoute
+ Settings.StaticFiles: fonts_glyphicons_halflings_regular_svg :: StaticRoute
+ Settings.StaticFiles: fonts_glyphicons_halflings_regular_ttf :: StaticRoute
+ Settings.StaticFiles: fonts_glyphicons_halflings_regular_woff :: StaticRoute
+ 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
+ Settings.StaticFiles: js_manifest_json :: StaticRoute
+ Types: type DB a = forall (m :: Type -> Type). () => DBM m a
- Foundation: App :: AppSettings -> Static -> ConnectionPool -> Manager -> Logger -> App
+ Foundation: App :: AppSettings -> Static -> Text -> ConnectionPool -> Manager -> Logger -> App
- Foundation: dbPostLoginR :: AuthHandler master TypedContent
+ Foundation: dbPostLoginR :: MonadAuthHandler master m => m TypedContent
- Handler.Common: getUrlSessionParam :: forall a. (Show a, Read a) => Text -> Handler (Maybe a)
+ Handler.Common: getUrlSessionParam :: (Show a, Read a) => Text -> Handler (Maybe a)
- Model: AccountSettingsForm :: Bool -> Bool -> Bool -> AccountSettingsForm
+ Model: AccountSettingsForm :: Bool -> Bool -> Bool -> Bool -> AccountSettingsForm
- Model: User :: !Text -> !BCrypt -> !Maybe HashedApiKey -> !Bool -> !Bool -> !Bool -> User
+ Model: User :: !Text -> !BCrypt -> !Maybe HashedApiKey -> !Bool -> !Bool -> !Bool -> !Bool -> User
- Types: type DBVal val = (PersistEntity val, PersistEntityBackend val ~ SqlBackend, PersistStore (PersistEntityBackend val))
+ Types: type DBVal val = (PersistEntity val, PersistEntityBackend val ~ SqlBackend, PersistStore PersistEntityBackend val)
- Types: type DBM m a = MonadUnliftIO m => SqlPersistT m a
+ Types: type DBM (m :: Type -> Type) a = MonadUnliftIO m => SqlPersistT m a

Files

README.md view
@@ -91,7 +91,7 @@  ### Frontend -- See `purs/` folder+- See `frontend/` folder  ## Import Bookmark file format (pinboard compatible format) 
app/migration/Main.hs view
@@ -2,74 +2,68 @@  module Main where -import Types-import Model-import ModelCustom-+import ClassyPrelude+import qualified Data.Text as T import qualified Database.Persist as P import qualified Database.Persist.Sqlite as P-import ClassyPrelude import Lens.Micro--import Options.Generic+import Model+import ModelCustom import qualified Options.Applicative as OA-import qualified Data.Text as T--data Password-  = PasswordText Text-  | PasswordFile FilePath-  deriving (Show, Read)--parsePassword :: OA.Parser Password-parsePassword = passwordText <|> passwordFile-  where-    passwordText = PasswordText <$> OA.strOption-      ( OA.long "userPassword"-          <> OA.metavar "PASSWORD"-          <> OA.help "Password in plain-text"-      )--    passwordFile = PasswordFile <$> OA.strOption-      ( OA.long "userPasswordFile"-          <> OA.metavar "FILE"-          <> OA.help "Password file"-      )--instance ParseFields Password--instance ParseRecord Password where-  parseRecord = fmap getOnly parseRecord--instance ParseField Password where-  parseField _ _ _ _ = parsePassword+import Options.Applicative.Help (suggestionsHelp)+import Options.Generic+import Settings (AppSettings (..))+import Types+import Yesod.Default.Config2 (configSettingsYml, loadYamlSettings, useEnv)  data MigrationOpts-  = CreateDB { conn :: Text }-  | CreateUser { conn :: Text-               , userName :: Text-               , userPassword :: Password-               , privateDefault :: Maybe Bool-               , archiveDefault :: Maybe Bool-               , privacyLock :: Maybe Bool }-  | CreateApiKey { conn :: Text-                 , userName :: Text }-  | DeleteUser { conn :: Text-               , userName :: Text }-  | DeleteApiKey { conn :: Text-                 , userName :: Text }-  | ImportBookmarks { conn :: Text-                    , userName :: Text-                    , bookmarkFile :: FilePath }-  | ImportFirefoxBookmarks { conn :: Text-                    , userName :: Text-                    , bookmarkFile :: FilePath }-  | ExportBookmarks { conn :: Text-                    , userName :: Text-                    , bookmarkFile :: FilePath }-  | ImportNotes { conn :: Text-                , userName :: Text-                , noteDirectory :: FilePath }-  | PrintMigrateDB { conn :: Text }+  = CreateDB {conn :: Maybe Text}+  | CreateUser+      { conn :: Maybe Text,+        userName :: Text,+        userPassword :: Password,+        privateDefault :: Maybe Bool,+        archiveDefault :: Maybe Bool,+        suggestTags :: Maybe Bool,+        privacyLock :: Maybe Bool+      }+  | CreateApiKey+      { conn :: Maybe Text,+        userName :: Text+      }+  | DeleteUser+      { conn :: Maybe Text,+        userName :: Text+      }+  | ShowUser+      { conn :: Maybe Text,+        userName :: Text+      }+  | DeleteApiKey+      { conn :: Maybe Text,+        userName :: Text+      }+  | ImportBookmarks+      { conn :: Maybe Text,+        userName :: Text,+        bookmarkFile :: FilePath+      }+  | ImportFirefoxBookmarks+      { conn :: Maybe Text,+        userName :: Text,+        bookmarkFile :: FilePath+      }+  | ExportBookmarks+      { conn :: Maybe Text,+        userName :: Text,+        bookmarkFile :: FilePath+      }+  | ImportNotes+      { conn :: Maybe Text,+        userName :: Text,+        noteDirectory :: FilePath+      }+  | PrintMigrateDB {conn :: Maybe Text}   deriving (Generic, Show)  instance ParseRecord MigrationOpts@@ -77,33 +71,44 @@ main :: IO () main = do   args <- getRecord "Migrations"+  connText <-+    maybe+      (P.sqlDatabase . appDatabaseConf <$> loadYamlSettings [configSettingsYml] [] useEnv)+      pure+      (conn args)   case args of     PrintMigrateDB {..} ->-      P.runSqlite conn dumpMigration-+      P.runSqlite connText dumpMigration     CreateDB {..} -> do-      let connInfo = P.mkSqliteConnectionInfo conn-                     & set P.fkEnabled False+      let connInfo =+            P.mkSqliteConnectionInfo connText+              & set P.fkEnabled False       P.runSqliteInfo connInfo runMigrations--    CreateUser{..} ->-      P.runSqlite conn $ do+    CreateUser {..} ->+      P.runSqlite connText $ do         passwordText <- liftIO . fmap T.strip $ case userPassword of           PasswordText s -> pure s           PasswordFile f -> readFileUtf8 f         hash' <- liftIO (hashPassword passwordText)-        void $ P.upsertBy-          (UniqueUserName userName)-          (User userName hash' Nothing False False False)-          [ UserPasswordHash P.=. hash'-          , UserPrivateDefault P.=. fromMaybe False privateDefault-          , UserArchiveDefault P.=. fromMaybe False archiveDefault-          , UserPrivacyLock P.=. fromMaybe False privacyLock-          ]+        void $+          P.upsertBy+            (UniqueUserName userName)+            (User userName hash' Nothing False False True False)+            [ UserPasswordHash P.=. hash',+              UserPrivateDefault P.=. fromMaybe False privateDefault,+              UserArchiveDefault P.=. fromMaybe False archiveDefault,+              UserSuggestTags P.=. fromMaybe True suggestTags,+              UserPrivacyLock P.=. fromMaybe False privacyLock+            ]         pure () :: DB ()-+    ShowUser {..} ->+      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 {..} ->-      P.runSqlite conn $ do+      P.runSqlite connText $ do         apiKey@(ApiKey plainKey) <- liftIO generateApiKey         muser <- P.getBy (UniqueUserName userName)         case muser of@@ -112,35 +117,31 @@             -- API key is only displayed once after creation,             -- since it is stored in hashed form.             let hashedKey = hashApiKey apiKey-            P.update uid  [ UserApiToken P.=. Just hashedKey ]+            P.update uid [UserApiToken P.=. Just hashedKey]             liftIO $ print plainKey-     DeleteApiKey {..} ->-      P.runSqlite conn $ do+      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 ]-+            P.update uid [UserApiToken P.=. Nothing]     DeleteUser {..} ->-      P.runSqlite conn $ do+      P.runSqlite connText $ do         muser <- P.getBy (UniqueUserName userName)         case muser of           Nothing -> liftIO (print (userName ++ "not found"))           Just (P.Entity uid _) -> do             P.delete uid             pure () :: DB ()-     ExportBookmarks {..} ->-      P.runSqlite conn $ do+      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 {..} ->-      P.runSqlite conn $ do+      P.runSqlite connText $ do         muser <- P.getBy (UniqueUserName userName)         case muser of           Just (P.Entity uid _) -> do@@ -149,10 +150,8 @@               Left e -> liftIO (print e)               Right n -> liftIO (print (show n ++ " bookmarks imported."))           Nothing -> liftIO (print (userName ++ "not found"))--     ImportFirefoxBookmarks {..} ->-      P.runSqlite conn $ do+      P.runSqlite connText $ do         muser <- P.getBy (UniqueUserName userName)         case muser of           Just (P.Entity uid _) -> do@@ -161,9 +160,8 @@               Left e -> liftIO (print e)               Right n -> liftIO (print (show n ++ " bookmarks imported."))           Nothing -> liftIO (print (userName ++ "not found"))-     ImportNotes {..} ->-      P.runSqlite conn $ do+      P.runSqlite connText $ do         muser <- P.getBy (UniqueUserName userName)         case muser of           Just (P.Entity uid _) -> do@@ -172,3 +170,47 @@               Left e -> liftIO (print e)               Right n -> liftIO (print (show n ++ " notes imported."))           Nothing -> liftIO (print (userName ++ "not found"))+  where+    formatUserSummary :: User -> Text+    formatUserSummary User {..} =+      intercalate+        "\n"+        [ "name: " <> userName,+          "privateDefault: " <> tshow userPrivateDefault,+          "archiveDefault: " <> tshow userArchiveDefault,+          "suggestTags: " <> tshow userSuggestTags,+          "privacyLock: " <> tshow userPrivacyLock,+          "hasApiKey: " <> tshow (isJust userApiToken)+        ]++data Password+  = PasswordText Text+  | PasswordFile FilePath+  deriving (Show, Read)++parsePassword :: OA.Parser Password+parsePassword = passwordText <|> passwordFile+  where+    passwordText =+      PasswordText+        <$> OA.strOption+          ( OA.long "userPassword"+              <> OA.metavar "PASSWORD"+              <> OA.help "Password in plain-text"+          )++    passwordFile =+      PasswordFile+        <$> OA.strOption+          ( OA.long "userPasswordFile"+              <> OA.metavar "FILE"+              <> OA.help "Password file"+          )++instance ParseFields Password++instance ParseRecord Password where+  parseRecord = fmap getOnly parseRecord++instance ParseField Password where+  parseField _ _ _ _ = parsePassword
changelog.md view
@@ -1,42 +1,88 @@-__v0.0.20__-update version bounds for cabal deps-                                -__v0.0.19__-update ghc & purescript dependencies to latest+# Changelog -__v0.0.18__-update ghc & purescript dependencies to latest+## v0.0.26 (2026-05-04) -__v0.0.17__-update to GHC 9.4.5+- Add Tag Suggestion when adding/editing bookmarks.+- Add account settings controls for `suggestTags` (default `True`).+- Extend migration `createuser` with `suggestTags` setting.+- Extend migration to add `showuser` command+- Extend migration to load sql connection from yaml settings if not provided+- use hashed js output + manifest.json in frontend build -__v0.0.16__-Add SIGTERM handler on linux-Adjust docker CMD entrypoint +## v0.0.25 (2026-05-03) -__v0.0.15__-Avoid using external static/tmp folder for generated static files+- Fix display bug for non-markdown notes. -__v0.0.14__-upgrade to purescript v0.15-increase bookmarklet window height+## v0.0.24 (2026-04-24) -__v0.0.13__-add setting ALLOW_NON_HTTP_URL_SCHEMES (default false)+- Correct `extra-source-files` in `package.yaml`.+- Correct GHC warnings. -__v0.0.12__-update to ghc9+## v0.0.23 (2026-04-24) -__v0.0.11__-add api key auth. -add CreateApiKey/DeleteApiKey commands to executable 'migration' +- Migrate frontend code from PureScript to TypeScript/React.+- Update Stackage resolver: `lts-24.37`. -__v0.0.10__-update purescript&package versions+## v0.0.22 (2025-05-23) -__v0.0.9__-(rolling releases)+- Update to Stackage LTS 23 (`ghc-9.8.4`).+- Purs package-set update. -__v0.0.7__+## v0.0.21 (2024-01-15) -init+- Switch to ESM JavaScript module imports.++## v0.0.20 (2024-01-18)++- Update version bounds for Cabal dependencies.++## v0.0.19 (2023-12-19)++- Update GHC and PureScript dependencies to latest.++## v0.0.18 (2023-10-02)++- Update GHC and PureScript dependencies to latest.++## v0.0.17 (2023-07-04)++- Update to GHC 9.4.5.++## v0.0.16 (2023-01-05)++- Add SIGTERM handler on Linux.+- Adjust Docker CMD entrypoint.++## v0.0.15 (2022-09-11)++- Avoid using external `static/tmp` folder for generated static files.++## v0.0.14 (2022-06-01)++- Upgrade to PureScript v0.15.+- Increase bookmarklet window height.++## v0.0.13 (2022-04-26)++- Add setting `ALLOW_NON_HTTP_URL_SCHEMES` (default `false`).++## v0.0.12 (2022-04-17)++- Update to GHC 9.++## v0.0.11 (2022-04-16)++- Add API key auth.+- Add `CreateApiKey`/`DeleteApiKey` commands to executable `migration`.++## v0.0.10 (2022-04-05)++- Update PureScript and package versions.++## v0.0.9 (2022-04-05)++- Rolling releases.++## v0.0.7 (2019-01-30)++- Init.
config/routes view
@@ -41,6 +41,7 @@ api/lookuptitle LookupTitleR POST api/tagcloud UserTagCloudR POST api/tagcloudmode UserTagCloudModeR POST+api/tagSuggestions TagSuggestionsR POST  -- edit /bm/#Int64 DeleteR DELETE
espial.cabal view
@@ -1,17 +1,16 @@-cabal-version: 1.12+cabal-version: 1.12
 --- This file has been generated from package.yaml by hpack version 0.36.0.+-- 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.20+version:        0.0.26 synopsis:       Espial is an open-source, web-based bookmarking server.-description:    .-                Espial is an open-source, web-based bookmarking server.-                - Yesod + PureScript + sqlite3+description:     Espial is an open-source, web-based bookmarking server.+                - Yesod + TypeScript + sqlite3                 - multi-user (w/ privacy scopes)-                - tags, stars, editing, deleting +                - tags, stars, editing, deleting category:       Web homepage:       https://github.com/jonschoning/espial bug-reports:    https://github.com/jonschoning/espial/issues@@ -47,41 +46,49 @@     static/css/popup.css     static/css/tachyons.min.css     static/css/tachyons.min.css.gz+    static/fonts/glyphicons-halflings-regular.eot+    static/fonts/glyphicons-halflings-regular.svg+    static/fonts/glyphicons-halflings-regular.ttf+    static/fonts/glyphicons-halflings-regular.woff     static/images/bluepin.gif-    static/js/app.min.js-    static/js/app.min.js.gz-    static/js/app.min.js.map-    static/js/app.min.js.map.gz-    static/js/html5shiv.min.js-    static/js/html5shiv.min.js.gz+    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/js.cookie-2.2.0.min.js     static/js/js.cookie-2.2.0.min.js.gz-    purs/Makefile-    purs/packages.dhall-    purs/spago.dhall-    purs/src/App.purs-    purs/src/Globals.js-    purs/src/Globals.purs-    purs/src/Main.purs-    purs/src/Marked.js-    purs/src/Marked.purs-    purs/src/Model.purs-    purs/src/Util.purs-    purs/src/Component/AccountSettings.purs-    purs/src/Component/Add.purs-    purs/src/Component/BList.purs-    purs/src/Component/BMark.purs-    purs/src/Component/Markdown.purs-    purs/src/Component/NList.purs-    purs/src/Component/NNote.purs-    purs/src/Component/RawHtml.js-    purs/src/Component/RawHtml.purs-    purs/src/Component/TagCloud.purs-    purs/test/Main.purs+    static/js/manifest.json+    frontend/.prettierignore+    frontend/.prettierrc+    frontend/eslint.config.mjs+    frontend/Makefile+    frontend/package-lock.json+    frontend/package.json+    frontend/README.md+    frontend/tsconfig.json+    frontend/src/api.ts+    frontend/src/components/AccountSettings.tsx+    frontend/src/components/AddForm.tsx+    frontend/src/components/BList.tsx+    frontend/src/components/BMark.tsx+    frontend/src/components/Markdown.tsx+    frontend/src/components/NList.tsx+    frontend/src/components/NNote.tsx+    frontend/src/components/TagCloud.tsx+    frontend/src/components/TagSuggestionsDropdown.tsx+    frontend/src/globals.ts+    frontend/src/hooks/useTagSuggestions.ts+    frontend/src/index.tsx+    frontend/src/stores/bookmarksStore.ts+    frontend/src/stores/tagCloudStore.ts+    frontend/src/types.ts+    frontend/src/util.ts+    frontend/scripts/publish-bundle.mjs+    frontend/scripts/report-dist.mjs  source-repository head   type: git-  location: git://github.com/jonschoning/espial.git+  location: https://github.com/jonschoning/espial.git  flag dev   description: Turn on development settings, like auto-reload templates.@@ -162,10 +169,10 @@       aeson >=1.4     , attoparsec     , base >=4.18.1.0 && <5-    , base64 <1+    , base64 ==1.*     , bcrypt >=0.0.8     , blaze-html >=0.9 && <1.0-    , bytestring >=0.11.5 && <0.12+    , bytestring >=0.11.5 && <0.13     , case-insensitive     , classy-prelude >=1.4 && <1.6     , classy-prelude-conduit >=1.4 && <1.6@@ -177,7 +184,7 @@     , data-default     , directory >=1.1 && <1.4     , entropy-    , esqueleto >=3.5.11.1 && <3.5.12+    , esqueleto >=3.5.11.1 && <3.7.0.0     , fast-logger >=2.2 && <4     , file-embed     , foreign-store@@ -194,7 +201,7 @@     , monad-logger ==0.3.*     , mtl     , parser-combinators-    , persistent ==2.14.*+    , persistent >=2.14 && <2.18     , persistent-sqlite >=2.13.3 && <2.14     , persistent-template ==2.12.*     , pretty-show@@ -209,7 +216,7 @@     , wai     , wai-extra >=3.0 && <3.2     , wai-logger-    , warp >=3.0 && <3.4+    , warp >=3.0 && <3.5     , yaml >=0.8 && <0.12     , yesod >=1.6 && <1.8     , yesod-auth >=1.6 && <1.8@@ -277,10 +284,10 @@       aeson >=1.4     , attoparsec     , base >=4.18.1.0 && <5-    , base64 <1+    , base64 ==1.*     , bcrypt >=0.0.8     , blaze-html >=0.9 && <1.0-    , bytestring >=0.11.5 && <0.12+    , bytestring >=0.11.5 && <0.13     , case-insensitive     , classy-prelude >=1.4 && <1.6     , classy-prelude-conduit >=1.4 && <1.6@@ -293,7 +300,7 @@     , directory >=1.1 && <1.4     , entropy     , espial-    , esqueleto >=3.5.11.1 && <3.5.12+    , esqueleto >=3.5.11.1 && <3.7.0.0     , fast-logger >=2.2 && <4     , file-embed     , foreign-store@@ -310,7 +317,7 @@     , monad-logger ==0.3.*     , mtl     , parser-combinators-    , persistent ==2.14.*+    , persistent >=2.14 && <2.18     , persistent-sqlite >=2.13.3 && <2.14     , persistent-template ==2.12.*     , pretty-show@@ -325,7 +332,7 @@     , wai     , wai-extra >=3.0 && <3.2     , wai-logger-    , warp >=3.0 && <3.4+    , warp >=3.0 && <3.5     , yaml >=0.8 && <0.12     , yesod >=1.6 && <1.8     , yesod-auth >=1.6 && <1.8@@ -389,10 +396,10 @@       aeson >=1.4     , attoparsec     , base >=4.18.1.0 && <5-    , base64 <1+    , base64 ==1.*     , bcrypt >=0.0.8     , blaze-html >=0.9 && <1.0-    , bytestring >=0.11.5 && <0.12+    , bytestring >=0.11.5 && <0.13     , case-insensitive     , classy-prelude >=1.4 && <1.6     , classy-prelude-conduit >=1.4 && <1.6@@ -405,7 +412,7 @@     , directory >=1.1 && <1.4     , entropy     , espial-    , esqueleto >=3.5.11.1 && <3.5.12+    , esqueleto >=3.5.11.1 && <3.7.0.0     , fast-logger >=2.2 && <4     , file-embed     , foreign-store@@ -424,7 +431,7 @@     , optparse-applicative     , optparse-generic >=1.2.3     , parser-combinators-    , persistent ==2.14.*+    , persistent >=2.14 && <2.18     , persistent-sqlite >=2.13.3 && <2.14     , persistent-template ==2.12.*     , pretty-show@@ -439,7 +446,7 @@     , wai     , wai-extra >=3.0 && <3.2     , wai-logger-    , warp >=3.0 && <3.4+    , warp >=3.0 && <3.5     , yaml >=0.8 && <0.12     , yesod >=1.6 && <1.8     , yesod-auth >=1.6 && <1.8@@ -507,10 +514,10 @@       aeson >=1.4     , attoparsec     , base >=4.18.1.0 && <5-    , base64 <1+    , base64 ==1.*     , bcrypt >=0.0.8     , blaze-html >=0.9 && <1.0-    , bytestring >=0.11.5 && <0.12+    , bytestring >=0.11.5 && <0.13     , case-insensitive     , classy-prelude >=1.4 && <1.6     , classy-prelude-conduit >=1.4 && <1.6@@ -523,7 +530,7 @@     , directory >=1.1 && <1.4     , entropy     , espial-    , esqueleto >=3.5.11.1 && <3.5.12+    , esqueleto >=3.5.11.1 && <3.7.0.0     , fast-logger >=2.2 && <4     , file-embed     , foreign-store@@ -541,7 +548,7 @@     , monad-logger ==0.3.*     , mtl     , parser-combinators-    , persistent ==2.14.*+    , persistent >=2.14 && <2.18     , persistent-sqlite >=2.13.3 && <2.14     , persistent-template ==2.12.*     , pretty-show@@ -556,7 +563,7 @@     , wai     , wai-extra >=3.0 && <3.2     , wai-logger-    , warp >=3.0 && <3.4+    , warp >=3.0 && <3.5     , yaml >=0.8 && <0.12     , yesod >=1.6 && <1.8     , yesod-auth >=1.6 && <1.8
+ frontend/.prettierignore view
@@ -0,0 +1,5 @@+node_modules+dist+coverage+.env+*.log
+ frontend/.prettierrc view
@@ -0,0 +1,11 @@+{+  "printWidth": 100,+  "tabWidth": 2,+  "useTabs": false,+  "semi": true,+  "singleQuote": true,+  "trailingComma": "all",+  "bracketSpacing": true,+  "arrowParens": "always",+  "endOfLine": "lf"+}
+ frontend/Makefile view
@@ -0,0 +1,18 @@+.PHONY: clean typecheck install bundle++all: bundle++install: +	@npm ci++typecheck: +	@npm run typecheck++build: typecheck+	@npm run bundle:build++bundle: typecheck+	@npm run bundle++clean:+	rm -f dist/*
+ frontend/README.md view
@@ -0,0 +1,18 @@+## Build++Minimal Makefile build flow:++1. Install dependencies:++```sh+make install+```++2. Typecheck, build, minify, gzip, and copy assets to `../static/js/`:++```sh+make+```++Output includes `dist/app.min.js` and `dist/app.min.js.map`.+
+ frontend/eslint.config.mjs view
@@ -0,0 +1,75 @@+import eslint from '@eslint/js';+import checkFile from 'eslint-plugin-check-file';+import importPlugin from 'eslint-plugin-import';+import prettierRecommended from 'eslint-plugin-prettier/recommended';+import simpleImportSort from 'eslint-plugin-simple-import-sort';+import tseslint from 'typescript-eslint';++export default tseslint.config(+  {+    ignores: ['node_modules/**', 'dist/**', 'coverage/**', '.env'],+  },+  eslint.configs.recommended,+  ...tseslint.configs.recommendedTypeChecked,+  ...tseslint.configs.strictTypeChecked,+  prettierRecommended,+  {+    files: ['src/**/*.{ts,tsx}'],+    languageOptions: {+      parserOptions: {+        project: './tsconfig.json',+        tsconfigRootDir: import.meta.dirname,+        sourceType: 'module',+      },+    },+    plugins: {+      'check-file': checkFile,+      import: importPlugin,+      'simple-import-sort': simpleImportSort,+    },+    settings: {+      'import/core-modules': [],+    },+    rules: {+      'prettier/prettier': 'error',+      '@typescript-eslint/no-unused-vars': [+        'error',+        {+          argsIgnorePattern: '^_',+          varsIgnorePattern: '^_',+        },+      ],+      'simple-import-sort/imports': 'error',+      'simple-import-sort/exports': 'error',+      'import/first': 'error',+      'import/newline-after-import': 'error',+      'import/no-duplicates': 'error',+      'import/no-extraneous-dependencies': [+        'error',+        {+          devDependencies: ['**/*.test.{ts,tsx}', 'test/**/*'],+          includeTypes: true,+          packageDir: ['./'],+        },+      ],+      'check-file/filename-naming-convention': [+        'error',+        {+          '**/!^(use*).{js,ts}': 'KEBAB_CASE',+          '**/!(main|index).{jsx,tsx,js} && !**/app/routes/**.{jsx,tsx}': 'PASCAL_CASE',+        },+        {+          ignoreMiddleExtensions: true,+        },+      ],+      'check-file/folder-naming-convention': [+        'error',+        {+          'src/**/!(__tests__)': 'KEBAB_CASE',+          'src/components/**': 'PASCAL_CASE',+        },+      ],+      'no-console': 'warn',+    },+  },+);
+ frontend/package-lock.json view
@@ -0,0 +1,4877 @@+{+  "name": "espial",+  "lockfileVersion": 3,+  "requires": true,+  "packages": {+    "": {+      "name": "espial",+      "dependencies": {+        "dompurify": "^3.4.1",+        "ky": "^2.0.2",+        "marked": "^18.0.2",+        "moment": "^2.30.1",+        "react": "^19.1.0",+        "react-dom": "^19.1.0",+        "zustand": "^5.0.8"+      },+      "devDependencies": {+        "@eslint/js": "^9.0.0",+        "@types/dompurify": "^3.0.5",+        "@types/react": "^19.2.14",+        "@types/react-dom": "^19.2.3",+        "@typescript-eslint/eslint-plugin": "^8.59.0",+        "@typescript-eslint/parser": "^8.59.0",+        "cross-env": "^10.1.0",+        "esbuild": "^0.28.0",+        "eslint": "^9.0.0",+        "eslint-config-prettier": "^10.1.8",+        "eslint-plugin-check-file": "^3.3.1",+        "eslint-plugin-import": "^2.32.0",+        "eslint-plugin-prettier": "^5.2.1",+        "eslint-plugin-simple-import-sort": "^13.0.0",+        "eslint-plugin-testing-library": "^7.16.2",+        "prettier": "^3.3.3",+        "shx": "^0.4.0",+        "typescript": "^6.0.3",+        "typescript-eslint": "^8.59.0"+      }+    },+    "node_modules/@epic-web/invariant": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz",+      "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/@esbuild/aix-ppc64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz",+      "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==",+      "cpu": [+        "ppc64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "aix"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/android-arm": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz",+      "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==",+      "cpu": [+        "arm"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "android"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/android-arm64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz",+      "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==",+      "cpu": [+        "arm64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "android"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/android-x64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz",+      "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==",+      "cpu": [+        "x64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "android"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/darwin-arm64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz",+      "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==",+      "cpu": [+        "arm64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "darwin"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/darwin-x64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz",+      "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==",+      "cpu": [+        "x64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "darwin"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/freebsd-arm64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz",+      "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==",+      "cpu": [+        "arm64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "freebsd"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/freebsd-x64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz",+      "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==",+      "cpu": [+        "x64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "freebsd"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-arm": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz",+      "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==",+      "cpu": [+        "arm"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-arm64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz",+      "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==",+      "cpu": [+        "arm64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-ia32": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz",+      "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==",+      "cpu": [+        "ia32"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-loong64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz",+      "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==",+      "cpu": [+        "loong64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-mips64el": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz",+      "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==",+      "cpu": [+        "mips64el"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-ppc64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz",+      "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==",+      "cpu": [+        "ppc64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-riscv64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz",+      "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==",+      "cpu": [+        "riscv64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-s390x": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz",+      "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==",+      "cpu": [+        "s390x"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/linux-x64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz",+      "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==",+      "cpu": [+        "x64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "linux"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/netbsd-arm64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz",+      "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==",+      "cpu": [+        "arm64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "netbsd"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/netbsd-x64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz",+      "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==",+      "cpu": [+        "x64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "netbsd"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/openbsd-arm64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz",+      "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==",+      "cpu": [+        "arm64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "openbsd"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/openbsd-x64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz",+      "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==",+      "cpu": [+        "x64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "openbsd"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/openharmony-arm64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz",+      "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==",+      "cpu": [+        "arm64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "openharmony"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/sunos-x64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz",+      "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==",+      "cpu": [+        "x64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "sunos"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/win32-arm64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz",+      "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==",+      "cpu": [+        "arm64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "win32"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/win32-ia32": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz",+      "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==",+      "cpu": [+        "ia32"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "win32"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@esbuild/win32-x64": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz",+      "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==",+      "cpu": [+        "x64"+      ],+      "dev": true,+      "license": "MIT",+      "optional": true,+      "os": [+        "win32"+      ],+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/@eslint-community/eslint-utils": {+      "version": "4.9.1",+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",+      "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "eslint-visitor-keys": "^3.4.3"+      },+      "engines": {+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"+      },+      "funding": {+        "url": "https://opencollective.com/eslint"+      },+      "peerDependencies": {+        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"+      }+    },+    "node_modules/@eslint-community/regexpp": {+      "version": "4.12.2",+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",+      "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"+      }+    },+    "node_modules/@eslint/config-array": {+      "version": "0.21.2",+      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz",+      "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==",+      "dev": true,+      "license": "Apache-2.0",+      "dependencies": {+        "@eslint/object-schema": "^2.1.7",+        "debug": "^4.3.1",+        "minimatch": "^3.1.5"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      }+    },+    "node_modules/@eslint/config-array/node_modules/brace-expansion": {+      "version": "1.1.14",+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",+      "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "balanced-match": "^1.0.0",+        "concat-map": "0.0.1"+      }+    },+    "node_modules/@eslint/config-array/node_modules/minimatch": {+      "version": "3.1.5",+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",+      "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "brace-expansion": "^1.1.7"+      },+      "engines": {+        "node": "*"+      }+    },+    "node_modules/@eslint/config-helpers": {+      "version": "0.4.2",+      "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",+      "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",+      "dev": true,+      "license": "Apache-2.0",+      "dependencies": {+        "@eslint/core": "^0.17.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      }+    },+    "node_modules/@eslint/core": {+      "version": "0.17.0",+      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",+      "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",+      "dev": true,+      "license": "Apache-2.0",+      "dependencies": {+        "@types/json-schema": "^7.0.15"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      }+    },+    "node_modules/@eslint/eslintrc": {+      "version": "3.3.5",+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz",+      "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "ajv": "^6.14.0",+        "debug": "^4.3.2",+        "espree": "^10.0.1",+        "globals": "^14.0.0",+        "ignore": "^5.2.0",+        "import-fresh": "^3.2.1",+        "js-yaml": "^4.1.1",+        "minimatch": "^3.1.5",+        "strip-json-comments": "^3.1.1"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "url": "https://opencollective.com/eslint"+      }+    },+    "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {+      "version": "1.1.14",+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",+      "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "balanced-match": "^1.0.0",+        "concat-map": "0.0.1"+      }+    },+    "node_modules/@eslint/eslintrc/node_modules/minimatch": {+      "version": "3.1.5",+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",+      "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "brace-expansion": "^1.1.7"+      },+      "engines": {+        "node": "*"+      }+    },+    "node_modules/@eslint/js": {+      "version": "9.39.4",+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz",+      "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "url": "https://eslint.org/donate"+      }+    },+    "node_modules/@eslint/object-schema": {+      "version": "2.1.7",+      "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",+      "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",+      "dev": true,+      "license": "Apache-2.0",+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      }+    },+    "node_modules/@eslint/plugin-kit": {+      "version": "0.4.1",+      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",+      "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",+      "dev": true,+      "license": "Apache-2.0",+      "dependencies": {+        "@eslint/core": "^0.17.0",+        "levn": "^0.4.1"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      }+    },+    "node_modules/@humanfs/core": {+      "version": "0.19.2",+      "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",+      "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==",+      "dev": true,+      "license": "Apache-2.0",+      "dependencies": {+        "@humanfs/types": "^0.15.0"+      },+      "engines": {+        "node": ">=18.18.0"+      }+    },+    "node_modules/@humanfs/node": {+      "version": "0.16.8",+      "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz",+      "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==",+      "dev": true,+      "license": "Apache-2.0",+      "dependencies": {+        "@humanfs/core": "^0.19.2",+        "@humanfs/types": "^0.15.0",+        "@humanwhocodes/retry": "^0.4.0"+      },+      "engines": {+        "node": ">=18.18.0"+      }+    },+    "node_modules/@humanfs/types": {+      "version": "0.15.0",+      "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz",+      "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==",+      "dev": true,+      "license": "Apache-2.0",+      "engines": {+        "node": ">=18.18.0"+      }+    },+    "node_modules/@humanwhocodes/module-importer": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",+      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",+      "dev": true,+      "license": "Apache-2.0",+      "engines": {+        "node": ">=12.22"+      },+      "funding": {+        "type": "github",+        "url": "https://github.com/sponsors/nzakas"+      }+    },+    "node_modules/@humanwhocodes/retry": {+      "version": "0.4.3",+      "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",+      "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",+      "dev": true,+      "license": "Apache-2.0",+      "engines": {+        "node": ">=18.18"+      },+      "funding": {+        "type": "github",+        "url": "https://github.com/sponsors/nzakas"+      }+    },+    "node_modules/@nodelib/fs.scandir": {+      "version": "2.1.5",+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@nodelib/fs.stat": "2.0.5",+        "run-parallel": "^1.1.9"+      },+      "engines": {+        "node": ">= 8"+      }+    },+    "node_modules/@nodelib/fs.stat": {+      "version": "2.0.5",+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 8"+      }+    },+    "node_modules/@nodelib/fs.walk": {+      "version": "1.2.8",+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@nodelib/fs.scandir": "2.1.5",+        "fastq": "^1.6.0"+      },+      "engines": {+        "node": ">= 8"+      }+    },+    "node_modules/@pkgr/core": {+      "version": "0.2.9",+      "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz",+      "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": "^12.20.0 || ^14.18.0 || >=16.0.0"+      },+      "funding": {+        "url": "https://opencollective.com/pkgr"+      }+    },+    "node_modules/@rtsao/scc": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",+      "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/@types/dompurify": {+      "version": "3.0.5",+      "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz",+      "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@types/trusted-types": "*"+      }+    },+    "node_modules/@types/estree": {+      "version": "1.0.8",+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",+      "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/@types/json-schema": {+      "version": "7.0.15",+      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",+      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/@types/json5": {+      "version": "0.0.29",+      "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",+      "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",+      "dev": true,+      "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==",+      "devOptional": true,+      "license": "MIT",+      "dependencies": {+        "csstype": "^3.2.2"+      }+    },+    "node_modules/@types/react-dom": {+      "version": "19.2.3",+      "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",+      "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",+      "dev": true,+      "license": "MIT",+      "peerDependencies": {+        "@types/react": "^19.2.0"+      }+    },+    "node_modules/@types/trusted-types": {+      "version": "2.0.7",+      "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",+      "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",+      "devOptional": true,+      "license": "MIT"+    },+    "node_modules/@typescript-eslint/eslint-plugin": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.0.tgz",+      "integrity": "sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@eslint-community/regexpp": "^4.12.2",+        "@typescript-eslint/scope-manager": "8.59.0",+        "@typescript-eslint/type-utils": "8.59.0",+        "@typescript-eslint/utils": "8.59.0",+        "@typescript-eslint/visitor-keys": "8.59.0",+        "ignore": "^7.0.5",+        "natural-compare": "^1.4.0",+        "ts-api-utils": "^2.5.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      },+      "peerDependencies": {+        "@typescript-eslint/parser": "^8.59.0",+        "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",+        "typescript": ">=4.8.4 <6.1.0"+      }+    },+    "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {+      "version": "7.0.5",+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",+      "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 4"+      }+    },+    "node_modules/@typescript-eslint/parser": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.0.tgz",+      "integrity": "sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@typescript-eslint/scope-manager": "8.59.0",+        "@typescript-eslint/types": "8.59.0",+        "@typescript-eslint/typescript-estree": "8.59.0",+        "@typescript-eslint/visitor-keys": "8.59.0",+        "debug": "^4.4.3"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      },+      "peerDependencies": {+        "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",+        "typescript": ">=4.8.4 <6.1.0"+      }+    },+    "node_modules/@typescript-eslint/project-service": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.0.tgz",+      "integrity": "sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@typescript-eslint/tsconfig-utils": "^8.59.0",+        "@typescript-eslint/types": "^8.59.0",+        "debug": "^4.4.3"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      },+      "peerDependencies": {+        "typescript": ">=4.8.4 <6.1.0"+      }+    },+    "node_modules/@typescript-eslint/scope-manager": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.0.tgz",+      "integrity": "sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@typescript-eslint/types": "8.59.0",+        "@typescript-eslint/visitor-keys": "8.59.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      }+    },+    "node_modules/@typescript-eslint/tsconfig-utils": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.0.tgz",+      "integrity": "sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      },+      "peerDependencies": {+        "typescript": ">=4.8.4 <6.1.0"+      }+    },+    "node_modules/@typescript-eslint/type-utils": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.0.tgz",+      "integrity": "sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@typescript-eslint/types": "8.59.0",+        "@typescript-eslint/typescript-estree": "8.59.0",+        "@typescript-eslint/utils": "8.59.0",+        "debug": "^4.4.3",+        "ts-api-utils": "^2.5.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      },+      "peerDependencies": {+        "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",+        "typescript": ">=4.8.4 <6.1.0"+      }+    },+    "node_modules/@typescript-eslint/types": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.0.tgz",+      "integrity": "sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      }+    },+    "node_modules/@typescript-eslint/typescript-estree": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.0.tgz",+      "integrity": "sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@typescript-eslint/project-service": "8.59.0",+        "@typescript-eslint/tsconfig-utils": "8.59.0",+        "@typescript-eslint/types": "8.59.0",+        "@typescript-eslint/visitor-keys": "8.59.0",+        "debug": "^4.4.3",+        "minimatch": "^10.2.2",+        "semver": "^7.7.3",+        "tinyglobby": "^0.2.15",+        "ts-api-utils": "^2.5.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      },+      "peerDependencies": {+        "typescript": ">=4.8.4 <6.1.0"+      }+    },+    "node_modules/@typescript-eslint/utils": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.0.tgz",+      "integrity": "sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@eslint-community/eslint-utils": "^4.9.1",+        "@typescript-eslint/scope-manager": "8.59.0",+        "@typescript-eslint/types": "8.59.0",+        "@typescript-eslint/typescript-estree": "8.59.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      },+      "peerDependencies": {+        "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",+        "typescript": ">=4.8.4 <6.1.0"+      }+    },+    "node_modules/@typescript-eslint/visitor-keys": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.0.tgz",+      "integrity": "sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@typescript-eslint/types": "8.59.0",+        "eslint-visitor-keys": "^5.0.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      }+    },+    "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {+      "version": "5.0.1",+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",+      "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",+      "dev": true,+      "license": "Apache-2.0",+      "engines": {+        "node": "^20.19.0 || ^22.13.0 || >=24"+      },+      "funding": {+        "url": "https://opencollective.com/eslint"+      }+    },+    "node_modules/acorn": {+      "version": "8.16.0",+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",+      "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",+      "dev": true,+      "license": "MIT",+      "bin": {+        "acorn": "bin/acorn"+      },+      "engines": {+        "node": ">=0.4.0"+      }+    },+    "node_modules/acorn-jsx": {+      "version": "5.3.2",+      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",+      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",+      "dev": true,+      "license": "MIT",+      "peerDependencies": {+        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"+      }+    },+    "node_modules/ajv": {+      "version": "6.15.0",+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",+      "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "fast-deep-equal": "^3.1.1",+        "fast-json-stable-stringify": "^2.0.0",+        "json-schema-traverse": "^0.4.1",+        "uri-js": "^4.2.2"+      },+      "funding": {+        "type": "github",+        "url": "https://github.com/sponsors/epoberezkin"+      }+    },+    "node_modules/ansi-styles": {+      "version": "4.3.0",+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "color-convert": "^2.0.1"+      },+      "engines": {+        "node": ">=8"+      },+      "funding": {+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"+      }+    },+    "node_modules/argparse": {+      "version": "2.0.1",+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",+      "dev": true,+      "license": "Python-2.0"+    },+    "node_modules/array-buffer-byte-length": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",+      "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "is-array-buffer": "^3.0.5"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/array-includes": {+      "version": "3.1.9",+      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",+      "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.4",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.24.0",+        "es-object-atoms": "^1.1.1",+        "get-intrinsic": "^1.3.0",+        "is-string": "^1.1.1",+        "math-intrinsics": "^1.1.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/array.prototype.findlastindex": {+      "version": "1.2.6",+      "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",+      "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.4",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.23.9",+        "es-errors": "^1.3.0",+        "es-object-atoms": "^1.1.1",+        "es-shim-unscopables": "^1.1.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/array.prototype.flat": {+      "version": "1.3.3",+      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",+      "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.23.5",+        "es-shim-unscopables": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/array.prototype.flatmap": {+      "version": "1.3.3",+      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",+      "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.23.5",+        "es-shim-unscopables": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/arraybuffer.prototype.slice": {+      "version": "1.0.4",+      "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",+      "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "array-buffer-byte-length": "^1.0.1",+        "call-bind": "^1.0.8",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.23.5",+        "es-errors": "^1.3.0",+        "get-intrinsic": "^1.2.6",+        "is-array-buffer": "^3.0.4"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/async-function": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",+      "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/available-typed-arrays": {+      "version": "1.0.7",+      "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",+      "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "possible-typed-array-names": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/balanced-match": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/brace-expansion": {+      "version": "5.0.5",+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",+      "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "balanced-match": "^4.0.2"+      },+      "engines": {+        "node": "18 || 20 || >=22"+      }+    },+    "node_modules/brace-expansion/node_modules/balanced-match": {+      "version": "4.0.4",+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",+      "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": "18 || 20 || >=22"+      }+    },+    "node_modules/braces": {+      "version": "3.0.3",+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",+      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "fill-range": "^7.1.1"+      },+      "engines": {+        "node": ">=8"+      }+    },+    "node_modules/call-bind": {+      "version": "1.0.9",+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz",+      "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind-apply-helpers": "^1.0.2",+        "es-define-property": "^1.0.1",+        "get-intrinsic": "^1.3.0",+        "set-function-length": "^1.2.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/call-bind-apply-helpers": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",+      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "function-bind": "^1.1.2"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/call-bound": {+      "version": "1.0.4",+      "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",+      "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind-apply-helpers": "^1.0.2",+        "get-intrinsic": "^1.3.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/callsites": {+      "version": "3.1.0",+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",+      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=6"+      }+    },+    "node_modules/chalk": {+      "version": "4.1.2",+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "ansi-styles": "^4.1.0",+        "supports-color": "^7.1.0"+      },+      "engines": {+        "node": ">=10"+      },+      "funding": {+        "url": "https://github.com/chalk/chalk?sponsor=1"+      }+    },+    "node_modules/color-convert": {+      "version": "2.0.1",+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "color-name": "~1.1.4"+      },+      "engines": {+        "node": ">=7.0.0"+      }+    },+    "node_modules/color-name": {+      "version": "1.1.4",+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/concat-map": {+      "version": "0.0.1",+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/cross-env": {+      "version": "10.1.0",+      "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz",+      "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@epic-web/invariant": "^1.0.0",+        "cross-spawn": "^7.0.6"+      },+      "bin": {+        "cross-env": "dist/bin/cross-env.js",+        "cross-env-shell": "dist/bin/cross-env-shell.js"+      },+      "engines": {+        "node": ">=20"+      }+    },+    "node_modules/cross-spawn": {+      "version": "7.0.6",+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",+      "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "path-key": "^3.1.0",+        "shebang-command": "^2.0.0",+        "which": "^2.0.1"+      },+      "engines": {+        "node": ">= 8"+      }+    },+    "node_modules/csstype": {+      "version": "3.2.3",+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",+      "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",+      "devOptional": true,+      "license": "MIT"+    },+    "node_modules/data-view-buffer": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",+      "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "es-errors": "^1.3.0",+        "is-data-view": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/data-view-byte-length": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",+      "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "es-errors": "^1.3.0",+        "is-data-view": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/inspect-js"+      }+    },+    "node_modules/data-view-byte-offset": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",+      "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "es-errors": "^1.3.0",+        "is-data-view": "^1.0.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/debug": {+      "version": "4.4.3",+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "ms": "^2.1.3"+      },+      "engines": {+        "node": ">=6.0"+      },+      "peerDependenciesMeta": {+        "supports-color": {+          "optional": true+        }+      }+    },+    "node_modules/deep-is": {+      "version": "0.1.4",+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",+      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/define-data-property": {+      "version": "1.1.4",+      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",+      "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-define-property": "^1.0.0",+        "es-errors": "^1.3.0",+        "gopd": "^1.0.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/define-properties": {+      "version": "1.2.1",+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",+      "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "define-data-property": "^1.0.1",+        "has-property-descriptors": "^1.0.0",+        "object-keys": "^1.1.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/doctrine": {+      "version": "2.1.0",+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",+      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",+      "dev": true,+      "license": "Apache-2.0",+      "dependencies": {+        "esutils": "^2.0.2"+      },+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/dompurify": {+      "version": "3.4.1",+      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.1.tgz",+      "integrity": "sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw==",+      "license": "(MPL-2.0 OR Apache-2.0)",+      "optionalDependencies": {+        "@types/trusted-types": "^2.0.7"+      }+    },+    "node_modules/dunder-proto": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",+      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind-apply-helpers": "^1.0.1",+        "es-errors": "^1.3.0",+        "gopd": "^1.2.0"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/end-of-stream": {+      "version": "1.4.5",+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",+      "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "once": "^1.4.0"+      }+    },+    "node_modules/es-abstract": {+      "version": "1.24.2",+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz",+      "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "array-buffer-byte-length": "^1.0.2",+        "arraybuffer.prototype.slice": "^1.0.4",+        "available-typed-arrays": "^1.0.7",+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.4",+        "data-view-buffer": "^1.0.2",+        "data-view-byte-length": "^1.0.2",+        "data-view-byte-offset": "^1.0.1",+        "es-define-property": "^1.0.1",+        "es-errors": "^1.3.0",+        "es-object-atoms": "^1.1.1",+        "es-set-tostringtag": "^2.1.0",+        "es-to-primitive": "^1.3.0",+        "function.prototype.name": "^1.1.8",+        "get-intrinsic": "^1.3.0",+        "get-proto": "^1.0.1",+        "get-symbol-description": "^1.1.0",+        "globalthis": "^1.0.4",+        "gopd": "^1.2.0",+        "has-property-descriptors": "^1.0.2",+        "has-proto": "^1.2.0",+        "has-symbols": "^1.1.0",+        "hasown": "^2.0.2",+        "internal-slot": "^1.1.0",+        "is-array-buffer": "^3.0.5",+        "is-callable": "^1.2.7",+        "is-data-view": "^1.0.2",+        "is-negative-zero": "^2.0.3",+        "is-regex": "^1.2.1",+        "is-set": "^2.0.3",+        "is-shared-array-buffer": "^1.0.4",+        "is-string": "^1.1.1",+        "is-typed-array": "^1.1.15",+        "is-weakref": "^1.1.1",+        "math-intrinsics": "^1.1.0",+        "object-inspect": "^1.13.4",+        "object-keys": "^1.1.1",+        "object.assign": "^4.1.7",+        "own-keys": "^1.0.1",+        "regexp.prototype.flags": "^1.5.4",+        "safe-array-concat": "^1.1.3",+        "safe-push-apply": "^1.0.0",+        "safe-regex-test": "^1.1.0",+        "set-proto": "^1.0.0",+        "stop-iteration-iterator": "^1.1.0",+        "string.prototype.trim": "^1.2.10",+        "string.prototype.trimend": "^1.0.9",+        "string.prototype.trimstart": "^1.0.8",+        "typed-array-buffer": "^1.0.3",+        "typed-array-byte-length": "^1.0.3",+        "typed-array-byte-offset": "^1.0.4",+        "typed-array-length": "^1.0.7",+        "unbox-primitive": "^1.1.0",+        "which-typed-array": "^1.1.19"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/es-define-property": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",+      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/es-errors": {+      "version": "1.3.0",+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/es-object-atoms": {+      "version": "1.1.1",+      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",+      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/es-set-tostringtag": {+      "version": "2.1.0",+      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",+      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "get-intrinsic": "^1.2.6",+        "has-tostringtag": "^1.0.2",+        "hasown": "^2.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/es-shim-unscopables": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",+      "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "hasown": "^2.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/es-to-primitive": {+      "version": "1.3.0",+      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",+      "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "is-callable": "^1.2.7",+        "is-date-object": "^1.0.5",+        "is-symbol": "^1.0.4"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/esbuild": {+      "version": "0.28.0",+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz",+      "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==",+      "dev": true,+      "hasInstallScript": true,+      "license": "MIT",+      "bin": {+        "esbuild": "bin/esbuild"+      },+      "engines": {+        "node": ">=18"+      },+      "optionalDependencies": {+        "@esbuild/aix-ppc64": "0.28.0",+        "@esbuild/android-arm": "0.28.0",+        "@esbuild/android-arm64": "0.28.0",+        "@esbuild/android-x64": "0.28.0",+        "@esbuild/darwin-arm64": "0.28.0",+        "@esbuild/darwin-x64": "0.28.0",+        "@esbuild/freebsd-arm64": "0.28.0",+        "@esbuild/freebsd-x64": "0.28.0",+        "@esbuild/linux-arm": "0.28.0",+        "@esbuild/linux-arm64": "0.28.0",+        "@esbuild/linux-ia32": "0.28.0",+        "@esbuild/linux-loong64": "0.28.0",+        "@esbuild/linux-mips64el": "0.28.0",+        "@esbuild/linux-ppc64": "0.28.0",+        "@esbuild/linux-riscv64": "0.28.0",+        "@esbuild/linux-s390x": "0.28.0",+        "@esbuild/linux-x64": "0.28.0",+        "@esbuild/netbsd-arm64": "0.28.0",+        "@esbuild/netbsd-x64": "0.28.0",+        "@esbuild/openbsd-arm64": "0.28.0",+        "@esbuild/openbsd-x64": "0.28.0",+        "@esbuild/openharmony-arm64": "0.28.0",+        "@esbuild/sunos-x64": "0.28.0",+        "@esbuild/win32-arm64": "0.28.0",+        "@esbuild/win32-ia32": "0.28.0",+        "@esbuild/win32-x64": "0.28.0"+      }+    },+    "node_modules/escape-string-regexp": {+      "version": "4.0.0",+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=10"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/eslint": {+      "version": "9.39.4",+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz",+      "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@eslint-community/eslint-utils": "^4.8.0",+        "@eslint-community/regexpp": "^4.12.1",+        "@eslint/config-array": "^0.21.2",+        "@eslint/config-helpers": "^0.4.2",+        "@eslint/core": "^0.17.0",+        "@eslint/eslintrc": "^3.3.5",+        "@eslint/js": "9.39.4",+        "@eslint/plugin-kit": "^0.4.1",+        "@humanfs/node": "^0.16.6",+        "@humanwhocodes/module-importer": "^1.0.1",+        "@humanwhocodes/retry": "^0.4.2",+        "@types/estree": "^1.0.6",+        "ajv": "^6.14.0",+        "chalk": "^4.0.0",+        "cross-spawn": "^7.0.6",+        "debug": "^4.3.2",+        "escape-string-regexp": "^4.0.0",+        "eslint-scope": "^8.4.0",+        "eslint-visitor-keys": "^4.2.1",+        "espree": "^10.4.0",+        "esquery": "^1.5.0",+        "esutils": "^2.0.2",+        "fast-deep-equal": "^3.1.3",+        "file-entry-cache": "^8.0.0",+        "find-up": "^5.0.0",+        "glob-parent": "^6.0.2",+        "ignore": "^5.2.0",+        "imurmurhash": "^0.1.4",+        "is-glob": "^4.0.0",+        "json-stable-stringify-without-jsonify": "^1.0.1",+        "lodash.merge": "^4.6.2",+        "minimatch": "^3.1.5",+        "natural-compare": "^1.4.0",+        "optionator": "^0.9.3"+      },+      "bin": {+        "eslint": "bin/eslint.js"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "url": "https://eslint.org/donate"+      },+      "peerDependencies": {+        "jiti": "*"+      },+      "peerDependenciesMeta": {+        "jiti": {+          "optional": true+        }+      }+    },+    "node_modules/eslint-config-prettier": {+      "version": "10.1.8",+      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz",+      "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==",+      "dev": true,+      "license": "MIT",+      "bin": {+        "eslint-config-prettier": "bin/cli.js"+      },+      "funding": {+        "url": "https://opencollective.com/eslint-config-prettier"+      },+      "peerDependencies": {+        "eslint": ">=7.0.0"+      }+    },+    "node_modules/eslint-import-resolver-node": {+      "version": "0.3.10",+      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz",+      "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "debug": "^3.2.7",+        "is-core-module": "^2.16.1",+        "resolve": "^2.0.0-next.6"+      }+    },+    "node_modules/eslint-import-resolver-node/node_modules/debug": {+      "version": "3.2.7",+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "ms": "^2.1.1"+      }+    },+    "node_modules/eslint-module-utils": {+      "version": "2.12.1",+      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",+      "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "debug": "^3.2.7"+      },+      "engines": {+        "node": ">=4"+      },+      "peerDependenciesMeta": {+        "eslint": {+          "optional": true+        }+      }+    },+    "node_modules/eslint-module-utils/node_modules/debug": {+      "version": "3.2.7",+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "ms": "^2.1.1"+      }+    },+    "node_modules/eslint-plugin-check-file": {+      "version": "3.3.1",+      "resolved": "https://registry.npmjs.org/eslint-plugin-check-file/-/eslint-plugin-check-file-3.3.1.tgz",+      "integrity": "sha512-b7fDkp8Y0T9vloTYSrkMnb5Cqpk1bc6+jDQdgKIhzdwb47NmLAvMFYo3SzHOPF8u4SEsOVhmrNSbo6Sp633syg==",+      "dev": true,+      "funding": [+        {+          "type": "ko_fi",+          "url": "https://ko-fi.com/huanluo"+        },+        {+          "type": "github",+          "url": "https://github.com/sponsors/dukeluo"+        }+      ],+      "license": "Apache-2.0",+      "workspaces": [+        "examples/basic"+      ],+      "dependencies": {+        "is-glob": "^4.0.3",+        "micromatch": "^4.0.8"+      },+      "engines": {+        "node": ">=18"+      },+      "peerDependencies": {+        "eslint": ">=9.0.0"+      }+    },+    "node_modules/eslint-plugin-import": {+      "version": "2.32.0",+      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",+      "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@rtsao/scc": "^1.1.0",+        "array-includes": "^3.1.9",+        "array.prototype.findlastindex": "^1.2.6",+        "array.prototype.flat": "^1.3.3",+        "array.prototype.flatmap": "^1.3.3",+        "debug": "^3.2.7",+        "doctrine": "^2.1.0",+        "eslint-import-resolver-node": "^0.3.9",+        "eslint-module-utils": "^2.12.1",+        "hasown": "^2.0.2",+        "is-core-module": "^2.16.1",+        "is-glob": "^4.0.3",+        "minimatch": "^3.1.2",+        "object.fromentries": "^2.0.8",+        "object.groupby": "^1.0.3",+        "object.values": "^1.2.1",+        "semver": "^6.3.1",+        "string.prototype.trimend": "^1.0.9",+        "tsconfig-paths": "^3.15.0"+      },+      "engines": {+        "node": ">=4"+      },+      "peerDependencies": {+        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"+      }+    },+    "node_modules/eslint-plugin-import/node_modules/brace-expansion": {+      "version": "1.1.14",+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",+      "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "balanced-match": "^1.0.0",+        "concat-map": "0.0.1"+      }+    },+    "node_modules/eslint-plugin-import/node_modules/debug": {+      "version": "3.2.7",+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "ms": "^2.1.1"+      }+    },+    "node_modules/eslint-plugin-import/node_modules/minimatch": {+      "version": "3.1.5",+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",+      "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "brace-expansion": "^1.1.7"+      },+      "engines": {+        "node": "*"+      }+    },+    "node_modules/eslint-plugin-import/node_modules/semver": {+      "version": "6.3.1",+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",+      "dev": true,+      "license": "ISC",+      "bin": {+        "semver": "bin/semver.js"+      }+    },+    "node_modules/eslint-plugin-prettier": {+      "version": "5.5.5",+      "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz",+      "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "prettier-linter-helpers": "^1.0.1",+        "synckit": "^0.11.12"+      },+      "engines": {+        "node": "^14.18.0 || >=16.0.0"+      },+      "funding": {+        "url": "https://opencollective.com/eslint-plugin-prettier"+      },+      "peerDependencies": {+        "@types/eslint": ">=8.0.0",+        "eslint": ">=8.0.0",+        "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0",+        "prettier": ">=3.0.0"+      },+      "peerDependenciesMeta": {+        "@types/eslint": {+          "optional": true+        },+        "eslint-config-prettier": {+          "optional": true+        }+      }+    },+    "node_modules/eslint-plugin-simple-import-sort": {+      "version": "13.0.0",+      "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-13.0.0.tgz",+      "integrity": "sha512-McAc+/Nlvcg4byY/CABGH8kqnefWBj8s3JA2okEtz8ixbECQgU46p0HkTUKa4YS7wvgGceimlc34p1nXqbWqtA==",+      "dev": true,+      "license": "MIT",+      "peerDependencies": {+        "eslint": ">=5.0.0"+      }+    },+    "node_modules/eslint-plugin-testing-library": {+      "version": "7.16.2",+      "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.16.2.tgz",+      "integrity": "sha512-8gleGnQXK2ZA3hHwjCwpYTZvM+9VsrJ+/9kDI8CjqAQGAdMQOdn/rJNu7ZySENuiWlGKQWyZJ4ZjEg2zamaRHw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@typescript-eslint/scope-manager": "^8.56.0",+        "@typescript-eslint/utils": "^8.56.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "peerDependencies": {+        "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0"+      }+    },+    "node_modules/eslint-scope": {+      "version": "8.4.0",+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",+      "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",+      "dev": true,+      "license": "BSD-2-Clause",+      "dependencies": {+        "esrecurse": "^4.3.0",+        "estraverse": "^5.2.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "url": "https://opencollective.com/eslint"+      }+    },+    "node_modules/eslint-visitor-keys": {+      "version": "3.4.3",+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",+      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",+      "dev": true,+      "license": "Apache-2.0",+      "engines": {+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"+      },+      "funding": {+        "url": "https://opencollective.com/eslint"+      }+    },+    "node_modules/eslint/node_modules/brace-expansion": {+      "version": "1.1.14",+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",+      "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "balanced-match": "^1.0.0",+        "concat-map": "0.0.1"+      }+    },+    "node_modules/eslint/node_modules/eslint-visitor-keys": {+      "version": "4.2.1",+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",+      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",+      "dev": true,+      "license": "Apache-2.0",+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "url": "https://opencollective.com/eslint"+      }+    },+    "node_modules/eslint/node_modules/minimatch": {+      "version": "3.1.5",+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",+      "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "brace-expansion": "^1.1.7"+      },+      "engines": {+        "node": "*"+      }+    },+    "node_modules/espree": {+      "version": "10.4.0",+      "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",+      "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",+      "dev": true,+      "license": "BSD-2-Clause",+      "dependencies": {+        "acorn": "^8.15.0",+        "acorn-jsx": "^5.3.2",+        "eslint-visitor-keys": "^4.2.1"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "url": "https://opencollective.com/eslint"+      }+    },+    "node_modules/espree/node_modules/eslint-visitor-keys": {+      "version": "4.2.1",+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",+      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",+      "dev": true,+      "license": "Apache-2.0",+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "url": "https://opencollective.com/eslint"+      }+    },+    "node_modules/esquery": {+      "version": "1.7.0",+      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",+      "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",+      "dev": true,+      "license": "BSD-3-Clause",+      "dependencies": {+        "estraverse": "^5.1.0"+      },+      "engines": {+        "node": ">=0.10"+      }+    },+    "node_modules/esrecurse": {+      "version": "4.3.0",+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",+      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",+      "dev": true,+      "license": "BSD-2-Clause",+      "dependencies": {+        "estraverse": "^5.2.0"+      },+      "engines": {+        "node": ">=4.0"+      }+    },+    "node_modules/estraverse": {+      "version": "5.3.0",+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",+      "dev": true,+      "license": "BSD-2-Clause",+      "engines": {+        "node": ">=4.0"+      }+    },+    "node_modules/esutils": {+      "version": "2.0.3",+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",+      "dev": true,+      "license": "BSD-2-Clause",+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/execa": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",+      "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "cross-spawn": "^6.0.0",+        "get-stream": "^4.0.0",+        "is-stream": "^1.1.0",+        "npm-run-path": "^2.0.0",+        "p-finally": "^1.0.0",+        "signal-exit": "^3.0.0",+        "strip-eof": "^1.0.0"+      },+      "engines": {+        "node": ">=6"+      }+    },+    "node_modules/execa/node_modules/cross-spawn": {+      "version": "6.0.6",+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz",+      "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "nice-try": "^1.0.4",+        "path-key": "^2.0.1",+        "semver": "^5.5.0",+        "shebang-command": "^1.2.0",+        "which": "^1.2.9"+      },+      "engines": {+        "node": ">=4.8"+      }+    },+    "node_modules/execa/node_modules/path-key": {+      "version": "2.0.1",+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",+      "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=4"+      }+    },+    "node_modules/execa/node_modules/semver": {+      "version": "5.7.2",+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",+      "dev": true,+      "license": "ISC",+      "bin": {+        "semver": "bin/semver"+      }+    },+    "node_modules/execa/node_modules/shebang-command": {+      "version": "1.2.0",+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",+      "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "shebang-regex": "^1.0.0"+      },+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/execa/node_modules/shebang-regex": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",+      "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/execa/node_modules/which": {+      "version": "1.3.1",+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "isexe": "^2.0.0"+      },+      "bin": {+        "which": "bin/which"+      }+    },+    "node_modules/fast-deep-equal": {+      "version": "3.1.3",+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/fast-diff": {+      "version": "1.3.0",+      "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",+      "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",+      "dev": true,+      "license": "Apache-2.0"+    },+    "node_modules/fast-glob": {+      "version": "3.3.3",+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",+      "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@nodelib/fs.stat": "^2.0.2",+        "@nodelib/fs.walk": "^1.2.3",+        "glob-parent": "^5.1.2",+        "merge2": "^1.3.0",+        "micromatch": "^4.0.8"+      },+      "engines": {+        "node": ">=8.6.0"+      }+    },+    "node_modules/fast-glob/node_modules/glob-parent": {+      "version": "5.1.2",+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "is-glob": "^4.0.1"+      },+      "engines": {+        "node": ">= 6"+      }+    },+    "node_modules/fast-json-stable-stringify": {+      "version": "2.1.0",+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/fast-levenshtein": {+      "version": "2.0.6",+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",+      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/fastq": {+      "version": "1.20.1",+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",+      "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "reusify": "^1.0.4"+      }+    },+    "node_modules/file-entry-cache": {+      "version": "8.0.0",+      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",+      "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "flat-cache": "^4.0.0"+      },+      "engines": {+        "node": ">=16.0.0"+      }+    },+    "node_modules/fill-range": {+      "version": "7.1.1",+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",+      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "to-regex-range": "^5.0.1"+      },+      "engines": {+        "node": ">=8"+      }+    },+    "node_modules/find-up": {+      "version": "5.0.0",+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "locate-path": "^6.0.0",+        "path-exists": "^4.0.0"+      },+      "engines": {+        "node": ">=10"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/flat-cache": {+      "version": "4.0.1",+      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",+      "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "flatted": "^3.2.9",+        "keyv": "^4.5.4"+      },+      "engines": {+        "node": ">=16"+      }+    },+    "node_modules/flatted": {+      "version": "3.4.2",+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",+      "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",+      "dev": true,+      "license": "ISC"+    },+    "node_modules/for-each": {+      "version": "0.3.5",+      "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",+      "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "is-callable": "^1.2.7"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/function-bind": {+      "version": "1.1.2",+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",+      "dev": true,+      "license": "MIT",+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/function.prototype.name": {+      "version": "1.1.8",+      "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",+      "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.3",+        "define-properties": "^1.2.1",+        "functions-have-names": "^1.2.3",+        "hasown": "^2.0.2",+        "is-callable": "^1.2.7"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/functions-have-names": {+      "version": "1.2.3",+      "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",+      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",+      "dev": true,+      "license": "MIT",+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/generator-function": {+      "version": "2.0.1",+      "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",+      "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/get-intrinsic": {+      "version": "1.3.0",+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",+      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind-apply-helpers": "^1.0.2",+        "es-define-property": "^1.0.1",+        "es-errors": "^1.3.0",+        "es-object-atoms": "^1.1.1",+        "function-bind": "^1.1.2",+        "get-proto": "^1.0.1",+        "gopd": "^1.2.0",+        "has-symbols": "^1.1.0",+        "hasown": "^2.0.2",+        "math-intrinsics": "^1.1.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/get-proto": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",+      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "dunder-proto": "^1.0.1",+        "es-object-atoms": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/get-stream": {+      "version": "4.1.0",+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",+      "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "pump": "^3.0.0"+      },+      "engines": {+        "node": ">=6"+      }+    },+    "node_modules/get-symbol-description": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",+      "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "es-errors": "^1.3.0",+        "get-intrinsic": "^1.2.6"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/glob-parent": {+      "version": "6.0.2",+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "is-glob": "^4.0.3"+      },+      "engines": {+        "node": ">=10.13.0"+      }+    },+    "node_modules/globals": {+      "version": "14.0.0",+      "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",+      "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=18"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/globalthis": {+      "version": "1.0.4",+      "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",+      "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "define-properties": "^1.2.1",+        "gopd": "^1.0.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/gopd": {+      "version": "1.2.0",+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",+      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/has-bigints": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",+      "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/has-flag": {+      "version": "4.0.0",+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=8"+      }+    },+    "node_modules/has-property-descriptors": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",+      "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-define-property": "^1.0.0"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/has-proto": {+      "version": "1.2.0",+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",+      "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "dunder-proto": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/has-symbols": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/has-tostringtag": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "has-symbols": "^1.0.3"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/hasown": {+      "version": "2.0.3",+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",+      "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "function-bind": "^1.1.2"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/ignore": {+      "version": "5.3.2",+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",+      "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 4"+      }+    },+    "node_modules/import-fresh": {+      "version": "3.3.1",+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",+      "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "parent-module": "^1.0.0",+        "resolve-from": "^4.0.0"+      },+      "engines": {+        "node": ">=6"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/imurmurhash": {+      "version": "0.1.4",+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=0.8.19"+      }+    },+    "node_modules/internal-slot": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",+      "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "hasown": "^2.0.2",+        "side-channel": "^1.1.0"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/interpret": {+      "version": "1.4.0",+      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",+      "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.10"+      }+    },+    "node_modules/is-array-buffer": {+      "version": "3.0.5",+      "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",+      "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.3",+        "get-intrinsic": "^1.2.6"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-async-function": {+      "version": "2.1.1",+      "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",+      "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "async-function": "^1.0.0",+        "call-bound": "^1.0.3",+        "get-proto": "^1.0.1",+        "has-tostringtag": "^1.0.2",+        "safe-regex-test": "^1.1.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-bigint": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",+      "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "has-bigints": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-boolean-object": {+      "version": "1.2.2",+      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",+      "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "has-tostringtag": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-callable": {+      "version": "1.2.7",+      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",+      "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-core-module": {+      "version": "2.16.1",+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",+      "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "hasown": "^2.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-data-view": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",+      "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "get-intrinsic": "^1.2.6",+        "is-typed-array": "^1.1.13"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-date-object": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",+      "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "has-tostringtag": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-extglob": {+      "version": "2.1.1",+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/is-finalizationregistry": {+      "version": "1.1.1",+      "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",+      "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-generator-function": {+      "version": "1.1.2",+      "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",+      "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.4",+        "generator-function": "^2.0.0",+        "get-proto": "^1.0.1",+        "has-tostringtag": "^1.0.2",+        "safe-regex-test": "^1.1.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-glob": {+      "version": "4.0.3",+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "is-extglob": "^2.1.1"+      },+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/is-map": {+      "version": "2.0.3",+      "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",+      "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-negative-zero": {+      "version": "2.0.3",+      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",+      "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-number": {+      "version": "7.0.0",+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=0.12.0"+      }+    },+    "node_modules/is-number-object": {+      "version": "1.1.1",+      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",+      "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "has-tostringtag": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-regex": {+      "version": "1.2.1",+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",+      "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "gopd": "^1.2.0",+        "has-tostringtag": "^1.0.2",+        "hasown": "^2.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-set": {+      "version": "2.0.3",+      "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",+      "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-shared-array-buffer": {+      "version": "1.0.4",+      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",+      "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-stream": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",+      "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/is-string": {+      "version": "1.1.1",+      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",+      "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "has-tostringtag": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-symbol": {+      "version": "1.1.1",+      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",+      "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "has-symbols": "^1.1.0",+        "safe-regex-test": "^1.1.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-typed-array": {+      "version": "1.1.15",+      "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",+      "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "which-typed-array": "^1.1.16"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-weakmap": {+      "version": "2.0.2",+      "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",+      "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-weakref": {+      "version": "1.1.1",+      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",+      "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/is-weakset": {+      "version": "2.0.4",+      "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",+      "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "get-intrinsic": "^1.2.6"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/isarray": {+      "version": "2.0.5",+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",+      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/isexe": {+      "version": "2.0.0",+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",+      "dev": true,+      "license": "ISC"+    },+    "node_modules/js-yaml": {+      "version": "4.1.1",+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",+      "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "argparse": "^2.0.1"+      },+      "bin": {+        "js-yaml": "bin/js-yaml.js"+      }+    },+    "node_modules/json-buffer": {+      "version": "3.0.1",+      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",+      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/json-schema-traverse": {+      "version": "0.4.1",+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/json-stable-stringify-without-jsonify": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/json5": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",+      "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "minimist": "^1.2.0"+      },+      "bin": {+        "json5": "lib/cli.js"+      }+    },+    "node_modules/keyv": {+      "version": "4.5.4",+      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",+      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "json-buffer": "3.0.1"+      }+    },+    "node_modules/ky": {+      "version": "2.0.2",+      "resolved": "https://registry.npmjs.org/ky/-/ky-2.0.2.tgz",+      "integrity": "sha512-/GmXpo9F9W+f8n4Ivr2iH+7h7wL7jLbLKWkMlpflcCRb6kGjBfTlASEXaZ9qUgNTn4VgS0P2pwxxzQ4EM6Ulgg==",+      "license": "MIT",+      "engines": {+        "node": ">=22"+      },+      "funding": {+        "url": "https://github.com/sindresorhus/ky?sponsor=1"+      }+    },+    "node_modules/levn": {+      "version": "0.4.1",+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",+      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "prelude-ls": "^1.2.1",+        "type-check": "~0.4.0"+      },+      "engines": {+        "node": ">= 0.8.0"+      }+    },+    "node_modules/locate-path": {+      "version": "6.0.0",+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "p-locate": "^5.0.0"+      },+      "engines": {+        "node": ">=10"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/lodash.merge": {+      "version": "4.6.2",+      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",+      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",+      "dev": true,+      "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==",+      "license": "MIT",+      "bin": {+        "marked": "bin/marked.js"+      },+      "engines": {+        "node": ">= 20"+      }+    },+    "node_modules/math-intrinsics": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",+      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/merge2": {+      "version": "1.4.1",+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 8"+      }+    },+    "node_modules/micromatch": {+      "version": "4.0.8",+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",+      "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "braces": "^3.0.3",+        "picomatch": "^2.3.1"+      },+      "engines": {+        "node": ">=8.6"+      }+    },+    "node_modules/minimatch": {+      "version": "10.2.5",+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",+      "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",+      "dev": true,+      "license": "BlueOak-1.0.0",+      "dependencies": {+        "brace-expansion": "^5.0.5"+      },+      "engines": {+        "node": "18 || 20 || >=22"+      },+      "funding": {+        "url": "https://github.com/sponsors/isaacs"+      }+    },+    "node_modules/minimist": {+      "version": "1.2.8",+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",+      "dev": true,+      "license": "MIT",+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/moment": {+      "version": "2.30.1",+      "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",+      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",+      "license": "MIT",+      "engines": {+        "node": "*"+      }+    },+    "node_modules/ms": {+      "version": "2.1.3",+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/natural-compare": {+      "version": "1.4.0",+      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",+      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/nice-try": {+      "version": "1.0.5",+      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",+      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/node-exports-info": {+      "version": "1.6.0",+      "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz",+      "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "array.prototype.flatmap": "^1.3.3",+        "es-errors": "^1.3.0",+        "object.entries": "^1.1.9",+        "semver": "^6.3.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/node-exports-info/node_modules/semver": {+      "version": "6.3.1",+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",+      "dev": true,+      "license": "ISC",+      "bin": {+        "semver": "bin/semver.js"+      }+    },+    "node_modules/npm-run-path": {+      "version": "2.0.2",+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",+      "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "path-key": "^2.0.0"+      },+      "engines": {+        "node": ">=4"+      }+    },+    "node_modules/npm-run-path/node_modules/path-key": {+      "version": "2.0.1",+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",+      "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=4"+      }+    },+    "node_modules/object-inspect": {+      "version": "1.13.4",+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",+      "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/object-keys": {+      "version": "1.1.1",+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/object.assign": {+      "version": "4.1.7",+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",+      "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.3",+        "define-properties": "^1.2.1",+        "es-object-atoms": "^1.0.0",+        "has-symbols": "^1.1.0",+        "object-keys": "^1.1.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/object.entries": {+      "version": "1.1.9",+      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",+      "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.4",+        "define-properties": "^1.2.1",+        "es-object-atoms": "^1.1.1"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/object.fromentries": {+      "version": "2.0.8",+      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",+      "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.7",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.23.2",+        "es-object-atoms": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/object.groupby": {+      "version": "1.0.3",+      "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",+      "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.7",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.23.2"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/object.values": {+      "version": "1.2.1",+      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",+      "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.3",+        "define-properties": "^1.2.1",+        "es-object-atoms": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/once": {+      "version": "1.4.0",+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "wrappy": "1"+      }+    },+    "node_modules/optionator": {+      "version": "0.9.4",+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",+      "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "deep-is": "^0.1.3",+        "fast-levenshtein": "^2.0.6",+        "levn": "^0.4.1",+        "prelude-ls": "^1.2.1",+        "type-check": "^0.4.0",+        "word-wrap": "^1.2.5"+      },+      "engines": {+        "node": ">= 0.8.0"+      }+    },+    "node_modules/own-keys": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",+      "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "get-intrinsic": "^1.2.6",+        "object-keys": "^1.1.1",+        "safe-push-apply": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/p-finally": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",+      "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=4"+      }+    },+    "node_modules/p-limit": {+      "version": "3.1.0",+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "yocto-queue": "^0.1.0"+      },+      "engines": {+        "node": ">=10"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/p-locate": {+      "version": "5.0.0",+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "p-limit": "^3.0.2"+      },+      "engines": {+        "node": ">=10"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/parent-module": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",+      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "callsites": "^3.0.0"+      },+      "engines": {+        "node": ">=6"+      }+    },+    "node_modules/path-exists": {+      "version": "4.0.0",+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=8"+      }+    },+    "node_modules/path-key": {+      "version": "3.1.1",+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=8"+      }+    },+    "node_modules/path-parse": {+      "version": "1.0.7",+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",+      "dev": true,+      "license": "MIT"+    },+    "node_modules/picomatch": {+      "version": "2.3.2",+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",+      "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=8.6"+      },+      "funding": {+        "url": "https://github.com/sponsors/jonschlinkert"+      }+    },+    "node_modules/possible-typed-array-names": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",+      "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/prelude-ls": {+      "version": "1.2.1",+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",+      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.8.0"+      }+    },+    "node_modules/prettier": {+      "version": "3.8.3",+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz",+      "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==",+      "dev": true,+      "license": "MIT",+      "bin": {+        "prettier": "bin/prettier.cjs"+      },+      "engines": {+        "node": ">=14"+      },+      "funding": {+        "url": "https://github.com/prettier/prettier?sponsor=1"+      }+    },+    "node_modules/prettier-linter-helpers": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz",+      "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "fast-diff": "^1.1.2"+      },+      "engines": {+        "node": ">=6.0.0"+      }+    },+    "node_modules/pump": {+      "version": "3.0.4",+      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",+      "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "end-of-stream": "^1.1.0",+        "once": "^1.3.1"+      }+    },+    "node_modules/punycode": {+      "version": "2.3.1",+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",+      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=6"+      }+    },+    "node_modules/queue-microtask": {+      "version": "1.2.3",+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",+      "dev": true,+      "funding": [+        {+          "type": "github",+          "url": "https://github.com/sponsors/feross"+        },+        {+          "type": "patreon",+          "url": "https://www.patreon.com/feross"+        },+        {+          "type": "consulting",+          "url": "https://feross.org/support"+        }+      ],+      "license": "MIT"+    },+    "node_modules/react": {+      "version": "19.2.5",+      "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",+      "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",+      "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==",+      "license": "MIT",+      "dependencies": {+        "scheduler": "^0.27.0"+      },+      "peerDependencies": {+        "react": "^19.2.5"+      }+    },+    "node_modules/rechoir": {+      "version": "0.6.2",+      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",+      "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",+      "dev": true,+      "dependencies": {+        "resolve": "^1.1.6"+      },+      "engines": {+        "node": ">= 0.10"+      }+    },+    "node_modules/rechoir/node_modules/resolve": {+      "version": "1.22.12",+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",+      "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "is-core-module": "^2.16.1",+        "path-parse": "^1.0.7",+        "supports-preserve-symlinks-flag": "^1.0.0"+      },+      "bin": {+        "resolve": "bin/resolve"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/reflect.getprototypeof": {+      "version": "1.0.10",+      "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",+      "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.23.9",+        "es-errors": "^1.3.0",+        "es-object-atoms": "^1.0.0",+        "get-intrinsic": "^1.2.7",+        "get-proto": "^1.0.1",+        "which-builtin-type": "^1.2.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/regexp.prototype.flags": {+      "version": "1.5.4",+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",+      "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "define-properties": "^1.2.1",+        "es-errors": "^1.3.0",+        "get-proto": "^1.0.1",+        "gopd": "^1.2.0",+        "set-function-name": "^2.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/resolve": {+      "version": "2.0.0-next.6",+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",+      "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "is-core-module": "^2.16.1",+        "node-exports-info": "^1.6.0",+        "object-keys": "^1.1.1",+        "path-parse": "^1.0.7",+        "supports-preserve-symlinks-flag": "^1.0.0"+      },+      "bin": {+        "resolve": "bin/resolve"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/resolve-from": {+      "version": "4.0.0",+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",+      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=4"+      }+    },+    "node_modules/reusify": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",+      "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "iojs": ">=1.0.0",+        "node": ">=0.10.0"+      }+    },+    "node_modules/run-parallel": {+      "version": "1.2.0",+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",+      "dev": true,+      "funding": [+        {+          "type": "github",+          "url": "https://github.com/sponsors/feross"+        },+        {+          "type": "patreon",+          "url": "https://www.patreon.com/feross"+        },+        {+          "type": "consulting",+          "url": "https://feross.org/support"+        }+      ],+      "license": "MIT",+      "dependencies": {+        "queue-microtask": "^1.2.2"+      }+    },+    "node_modules/safe-array-concat": {+      "version": "1.1.4",+      "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz",+      "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.9",+        "call-bound": "^1.0.4",+        "get-intrinsic": "^1.3.0",+        "has-symbols": "^1.1.0",+        "isarray": "^2.0.5"+      },+      "engines": {+        "node": ">=0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/safe-push-apply": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",+      "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "isarray": "^2.0.5"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/safe-regex-test": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",+      "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "es-errors": "^1.3.0",+        "is-regex": "^1.2.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/scheduler": {+      "version": "0.27.0",+      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",+      "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",+      "license": "MIT"+    },+    "node_modules/semver": {+      "version": "7.7.4",+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",+      "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",+      "dev": true,+      "license": "ISC",+      "bin": {+        "semver": "bin/semver.js"+      },+      "engines": {+        "node": ">=10"+      }+    },+    "node_modules/set-function-length": {+      "version": "1.2.2",+      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",+      "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "define-data-property": "^1.1.4",+        "es-errors": "^1.3.0",+        "function-bind": "^1.1.2",+        "get-intrinsic": "^1.2.4",+        "gopd": "^1.0.1",+        "has-property-descriptors": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/set-function-name": {+      "version": "2.0.2",+      "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",+      "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "define-data-property": "^1.1.4",+        "es-errors": "^1.3.0",+        "functions-have-names": "^1.2.3",+        "has-property-descriptors": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/set-proto": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",+      "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "dunder-proto": "^1.0.1",+        "es-errors": "^1.3.0",+        "es-object-atoms": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/shebang-command": {+      "version": "2.0.0",+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "shebang-regex": "^3.0.0"+      },+      "engines": {+        "node": ">=8"+      }+    },+    "node_modules/shebang-regex": {+      "version": "3.0.0",+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=8"+      }+    },+    "node_modules/shelljs": {+      "version": "0.9.2",+      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.9.2.tgz",+      "integrity": "sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==",+      "dev": true,+      "license": "BSD-3-Clause",+      "dependencies": {+        "execa": "^1.0.0",+        "fast-glob": "^3.3.2",+        "interpret": "^1.0.0",+        "rechoir": "^0.6.2"+      },+      "bin": {+        "shjs": "bin/shjs"+      },+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/shx": {+      "version": "0.4.0",+      "resolved": "https://registry.npmjs.org/shx/-/shx-0.4.0.tgz",+      "integrity": "sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "minimist": "^1.2.8",+        "shelljs": "^0.9.2"+      },+      "bin": {+        "shx": "lib/cli.js"+      },+      "engines": {+        "node": ">=18"+      }+    },+    "node_modules/side-channel": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",+      "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "object-inspect": "^1.13.3",+        "side-channel-list": "^1.0.0",+        "side-channel-map": "^1.0.1",+        "side-channel-weakmap": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/side-channel-list": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",+      "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "object-inspect": "^1.13.4"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/side-channel-map": {+      "version": "1.0.1",+      "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",+      "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "es-errors": "^1.3.0",+        "get-intrinsic": "^1.2.5",+        "object-inspect": "^1.13.3"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/side-channel-weakmap": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",+      "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "es-errors": "^1.3.0",+        "get-intrinsic": "^1.2.5",+        "object-inspect": "^1.13.3",+        "side-channel-map": "^1.0.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/signal-exit": {+      "version": "3.0.7",+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",+      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",+      "dev": true,+      "license": "ISC"+    },+    "node_modules/stop-iteration-iterator": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",+      "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "es-errors": "^1.3.0",+        "internal-slot": "^1.1.0"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/string.prototype.trim": {+      "version": "1.2.10",+      "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",+      "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.2",+        "define-data-property": "^1.1.4",+        "define-properties": "^1.2.1",+        "es-abstract": "^1.23.5",+        "es-object-atoms": "^1.0.0",+        "has-property-descriptors": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/string.prototype.trimend": {+      "version": "1.0.9",+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",+      "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.2",+        "define-properties": "^1.2.1",+        "es-object-atoms": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/string.prototype.trimstart": {+      "version": "1.0.8",+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",+      "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.7",+        "define-properties": "^1.2.1",+        "es-object-atoms": "^1.0.0"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/strip-bom": {+      "version": "3.0.0",+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",+      "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=4"+      }+    },+    "node_modules/strip-eof": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",+      "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/strip-json-comments": {+      "version": "3.1.1",+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=8"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/supports-color": {+      "version": "7.2.0",+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "has-flag": "^4.0.0"+      },+      "engines": {+        "node": ">=8"+      }+    },+    "node_modules/supports-preserve-symlinks-flag": {+      "version": "1.0.0",+      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/synckit": {+      "version": "0.11.12",+      "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz",+      "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@pkgr/core": "^0.2.9"+      },+      "engines": {+        "node": "^14.18.0 || >=16.0.0"+      },+      "funding": {+        "url": "https://opencollective.com/synckit"+      }+    },+    "node_modules/tinyglobby": {+      "version": "0.2.16",+      "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",+      "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "fdir": "^6.5.0",+        "picomatch": "^4.0.4"+      },+      "engines": {+        "node": ">=12.0.0"+      },+      "funding": {+        "url": "https://github.com/sponsors/SuperchupuDev"+      }+    },+    "node_modules/tinyglobby/node_modules/fdir": {+      "version": "6.5.0",+      "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",+      "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=12.0.0"+      },+      "peerDependencies": {+        "picomatch": "^3 || ^4"+      },+      "peerDependenciesMeta": {+        "picomatch": {+          "optional": true+        }+      }+    },+    "node_modules/tinyglobby/node_modules/picomatch": {+      "version": "4.0.4",+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",+      "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=12"+      },+      "funding": {+        "url": "https://github.com/sponsors/jonschlinkert"+      }+    },+    "node_modules/to-regex-range": {+      "version": "5.0.1",+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "is-number": "^7.0.0"+      },+      "engines": {+        "node": ">=8.0"+      }+    },+    "node_modules/ts-api-utils": {+      "version": "2.5.0",+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",+      "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=18.12"+      },+      "peerDependencies": {+        "typescript": ">=4.8.4"+      }+    },+    "node_modules/tsconfig-paths": {+      "version": "3.15.0",+      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",+      "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@types/json5": "^0.0.29",+        "json5": "^1.0.2",+        "minimist": "^1.2.6",+        "strip-bom": "^3.0.0"+      }+    },+    "node_modules/type-check": {+      "version": "0.4.0",+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",+      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "prelude-ls": "^1.2.1"+      },+      "engines": {+        "node": ">= 0.8.0"+      }+    },+    "node_modules/typed-array-buffer": {+      "version": "1.0.3",+      "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",+      "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "es-errors": "^1.3.0",+        "is-typed-array": "^1.1.14"+      },+      "engines": {+        "node": ">= 0.4"+      }+    },+    "node_modules/typed-array-byte-length": {+      "version": "1.0.3",+      "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",+      "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.8",+        "for-each": "^0.3.3",+        "gopd": "^1.2.0",+        "has-proto": "^1.2.0",+        "is-typed-array": "^1.1.14"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/typed-array-byte-offset": {+      "version": "1.0.4",+      "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",+      "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "available-typed-arrays": "^1.0.7",+        "call-bind": "^1.0.8",+        "for-each": "^0.3.3",+        "gopd": "^1.2.0",+        "has-proto": "^1.2.0",+        "is-typed-array": "^1.1.15",+        "reflect.getprototypeof": "^1.0.9"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/typed-array-length": {+      "version": "1.0.7",+      "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",+      "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bind": "^1.0.7",+        "for-each": "^0.3.3",+        "gopd": "^1.0.1",+        "is-typed-array": "^1.1.13",+        "possible-typed-array-names": "^1.0.0",+        "reflect.getprototypeof": "^1.0.6"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/typescript": {+      "version": "6.0.3",+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",+      "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",+      "dev": true,+      "license": "Apache-2.0",+      "bin": {+        "tsc": "bin/tsc",+        "tsserver": "bin/tsserver"+      },+      "engines": {+        "node": ">=14.17"+      }+    },+    "node_modules/typescript-eslint": {+      "version": "8.59.0",+      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.0.tgz",+      "integrity": "sha512-BU3ONW9X+v90EcCH9ZS6LMackcVtxRLlI3XrYyqZIwVSHIk7Qf7bFw1z0M9Q0IUxhTMZCf8piY9hTYaNEIASrw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "@typescript-eslint/eslint-plugin": "8.59.0",+        "@typescript-eslint/parser": "8.59.0",+        "@typescript-eslint/typescript-estree": "8.59.0",+        "@typescript-eslint/utils": "8.59.0"+      },+      "engines": {+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"+      },+      "funding": {+        "type": "opencollective",+        "url": "https://opencollective.com/typescript-eslint"+      },+      "peerDependencies": {+        "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",+        "typescript": ">=4.8.4 <6.1.0"+      }+    },+    "node_modules/unbox-primitive": {+      "version": "1.1.0",+      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",+      "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.3",+        "has-bigints": "^1.0.2",+        "has-symbols": "^1.1.0",+        "which-boxed-primitive": "^1.1.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/uri-js": {+      "version": "4.4.1",+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",+      "dev": true,+      "license": "BSD-2-Clause",+      "dependencies": {+        "punycode": "^2.1.0"+      }+    },+    "node_modules/which": {+      "version": "2.0.2",+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",+      "dev": true,+      "license": "ISC",+      "dependencies": {+        "isexe": "^2.0.0"+      },+      "bin": {+        "node-which": "bin/node-which"+      },+      "engines": {+        "node": ">= 8"+      }+    },+    "node_modules/which-boxed-primitive": {+      "version": "1.1.1",+      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",+      "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "is-bigint": "^1.1.0",+        "is-boolean-object": "^1.2.1",+        "is-number-object": "^1.1.1",+        "is-string": "^1.1.1",+        "is-symbol": "^1.1.1"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/which-builtin-type": {+      "version": "1.2.1",+      "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",+      "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "call-bound": "^1.0.2",+        "function.prototype.name": "^1.1.6",+        "has-tostringtag": "^1.0.2",+        "is-async-function": "^2.0.0",+        "is-date-object": "^1.1.0",+        "is-finalizationregistry": "^1.1.0",+        "is-generator-function": "^1.0.10",+        "is-regex": "^1.2.1",+        "is-weakref": "^1.0.2",+        "isarray": "^2.0.5",+        "which-boxed-primitive": "^1.1.0",+        "which-collection": "^1.0.2",+        "which-typed-array": "^1.1.16"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/which-collection": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",+      "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "is-map": "^2.0.3",+        "is-set": "^2.0.3",+        "is-weakmap": "^2.0.2",+        "is-weakset": "^2.0.3"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/which-typed-array": {+      "version": "1.1.20",+      "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz",+      "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==",+      "dev": true,+      "license": "MIT",+      "dependencies": {+        "available-typed-arrays": "^1.0.7",+        "call-bind": "^1.0.8",+        "call-bound": "^1.0.4",+        "for-each": "^0.3.5",+        "get-proto": "^1.0.1",+        "gopd": "^1.2.0",+        "has-tostringtag": "^1.0.2"+      },+      "engines": {+        "node": ">= 0.4"+      },+      "funding": {+        "url": "https://github.com/sponsors/ljharb"+      }+    },+    "node_modules/word-wrap": {+      "version": "1.2.5",+      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",+      "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=0.10.0"+      }+    },+    "node_modules/wrappy": {+      "version": "1.0.2",+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",+      "dev": true,+      "license": "ISC"+    },+    "node_modules/yocto-queue": {+      "version": "0.1.0",+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",+      "dev": true,+      "license": "MIT",+      "engines": {+        "node": ">=10"+      },+      "funding": {+        "url": "https://github.com/sponsors/sindresorhus"+      }+    },+    "node_modules/zustand": {+      "version": "5.0.12",+      "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.12.tgz",+      "integrity": "sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==",+      "license": "MIT",+      "engines": {+        "node": ">=12.20.0"+      },+      "peerDependencies": {+        "@types/react": ">=18.0.0",+        "immer": ">=9.0.6",+        "react": ">=18.0.0",+        "use-sync-external-store": ">=1.2.0"+      },+      "peerDependenciesMeta": {+        "@types/react": {+          "optional": true+        },+        "immer": {+          "optional": true+        },+        "react": {+          "optional": true+        },+        "use-sync-external-store": {+          "optional": true+        }+      }+    }+  }+}
+ frontend/package.json view
@@ -0,0 +1,46 @@+{+  "name": "espial",+  "private": true,+  "scripts": {+    "make-install": "make install",+    "typecheck": "tsc -p tsconfig.json",+    "bundle:prep": "shx rm -f dist/app.js dist/app.min.js dist/app.min.js.map dist/app-*.min.js dist/app-*.min.js.map dist/app-*.min.js.gz dist/app-*.min.js.map.gz",+    "bundle:build": "esbuild ./src/index.tsx --bundle --format=esm --target=chrome61,firefox60,edge18 --minify --sourcemap --entry-names=app-[hash].min --outdir=dist",+    "bundle:publish": "node ./scripts/publish-bundle.mjs",+    "bundle:report": "node ./scripts/report-dist.mjs",+    "bundle": "npm run bundle:prep && npm run bundle:build && npm run bundle:publish && npm run bundle:report",+    "lint": "eslint src",+    "lint:fix": "eslint src --fix",+    "format": "prettier --write \"src/**/*.{ts,tsx,js,json,md}\""+  },+  "devDependencies": {+    "@eslint/js": "^9.0.0",+    "@types/dompurify": "^3.0.5",+    "@types/react": "^19.2.14",+    "@types/react-dom": "^19.2.3",+    "@typescript-eslint/eslint-plugin": "^8.59.0",+    "@typescript-eslint/parser": "^8.59.0",+    "cross-env": "^10.1.0",+    "esbuild": "^0.28.0",+    "eslint": "^9.0.0",+    "eslint-config-prettier": "^10.1.8",+    "eslint-plugin-check-file": "^3.3.1",+    "eslint-plugin-import": "^2.32.0",+    "eslint-plugin-prettier": "^5.2.1",+    "eslint-plugin-simple-import-sort": "^13.0.0",+    "eslint-plugin-testing-library": "^7.16.2",+    "prettier": "^3.3.3",+    "shx": "^0.4.0",+    "typescript": "^6.0.3",+    "typescript-eslint": "^8.59.0"+  },+  "dependencies": {+    "dompurify": "^3.4.1",+    "ky": "^2.0.2",+    "marked": "^18.0.2",+    "moment": "^2.30.1",+    "react": "^19.1.0",+    "react-dom": "^19.1.0",+    "zustand": "^5.0.8"+  }+}
+ frontend/scripts/publish-bundle.mjs view
@@ -0,0 +1,54 @@+import fs from "node:fs";+import path from "node:path";+import zlib from "node:zlib";++const frontendRoot = process.cwd();+const distDir = path.join(frontendRoot, "dist");+const staticJsDir = path.join(frontendRoot, "..", "static", "js");++const distFiles = fs.readdirSync(distDir, { withFileTypes: true });+const bundleCandidates = distFiles+  .filter((entry) => entry.isFile())+  .map((entry) => entry.name)+  .filter((name) => /^app-.*\.min\.js$/.test(name) && !name.endsWith(".map"))+  .sort();++if (bundleCandidates.length === 0) {+  console.error("hashed bundle not found");+  process.exit(1);+}++const bundleFile = bundleCandidates[0];+const sourceJs = path.join(distDir, bundleFile);+const sourceMap = path.join(distDir, `${bundleFile}.map`);++if (!fs.existsSync(sourceMap)) {+  console.error(`sourcemap not found for ${bundleFile}`);+  process.exit(1);+}++const jsGz = `${sourceJs}.gz`;+const mapGz = `${sourceMap}.gz`;++fs.writeFileSync(jsGz, zlib.gzipSync(fs.readFileSync(sourceJs)));+fs.writeFileSync(mapGz, zlib.gzipSync(fs.readFileSync(sourceMap)));++const oldStaticFiles = fs+  .readdirSync(staticJsDir, { withFileTypes: true })+  .filter((entry) => entry.isFile())+  .map((entry) => entry.name)+  .filter((name) => /^app-.*\.min\.js(\.map)?(\.gz)?$/.test(name));++for (const oldFile of oldStaticFiles) {+  fs.rmSync(path.join(staticJsDir, oldFile), { force: true });+}++for (const fileName of [bundleFile, `${bundleFile}.map`, `${bundleFile}.gz`, `${bundleFile}.map.gz`]) {+  fs.copyFileSync(path.join(distDir, fileName), path.join(staticJsDir, fileName));+}++const manifestPath = path.join(staticJsDir, "manifest.json");+const manifestContent = `${JSON.stringify({ appBundle: bundleFile })}\n`;+fs.writeFileSync(manifestPath, manifestContent);++console.log(`Published ${bundleFile}`);
+ frontend/scripts/report-dist.mjs view
@@ -0,0 +1,19 @@+import fs from "node:fs";+import path from "node:path";++const distDir = path.join(process.cwd(), "dist");++const entries = fs+  .readdirSync(distDir, { withFileTypes: true })+  .filter((entry) => entry.isFile())+  .map((entry) => {+    const filePath = path.join(distDir, entry.name);+    const stat = fs.statSync(filePath);+    const sizeKb = Math.max(1, Math.ceil(stat.size / 1024));+    return `${sizeKb}K\t${path.posix.join("dist", entry.name)}`;+  })+  .sort((a, b) => a.localeCompare(b));++for (const line of entries) {+  console.log(line);+}
+ frontend/src/api.ts view
@@ -0,0 +1,151 @@+import ky from 'ky';++import { app } from './globals';+import type {+  AccountSettings,+  Bookmark,+  Note,+  TagCloud,+  TagCloudMode,+  TagSuggestionRequest,+  TagSuggestionResponse,+} from './types';++export type StarAction = 'star' | 'unstar';++function withCsrf(headers?: HeadersInit): HeadersInit {+  const a = app();+  const h = new Headers(headers);+  h.set(a.csrfHeaderName, a.csrfToken);+  return h;+}++function urlFor(path: string): string {+  // Preserve PureScript semantics: simple string concatenation.+  return `${app().homeR}${path}`;+}++function toRelativePath(urlOrPath: string): string {+  try {+    const u = new URL(urlOrPath, window.location.origin);+    const rel = `${u.pathname}${u.search}${u.hash}`;+    return rel.startsWith('/') ? rel.slice(1) : rel;+  } catch {+    return urlOrPath.replace(/^\/+/, '');+  }+}++async function request(+  method: string,+  path: string,+  opts: { headers?: HeadersInit; body?: BodyInit | null } = {},+) {+  const res = await ky(urlFor(path), {+    method,+    headers: withCsrf(opts.headers),+    body: opts.body ?? undefined,+    throwHttpErrors: false,+  });+  return res;+}++export async function toggleStar(bid: number, action: StarAction): Promise<void> {+  await request('POST', `bm/${bid.toString()}/${action}`, {+    headers: { 'content-type': 'application/x-www-form-urlencoded' },+  });+}++export async function destroy(bid: number): Promise<void> {+  await request('DELETE', `bm/${bid.toString()}`, {+    headers: { 'content-type': 'application/x-www-form-urlencoded' },+  });+}++export async function markRead(bid: number): Promise<void> {+  await request('POST', `bm/${bid.toString()}/read`, {+    headers: { 'content-type': 'application/x-www-form-urlencoded' },+  });+}++export async function editBookmark(+  bm: Bookmark,+): Promise<{ ok: boolean; status: number; bodyText: string }> {+  const res = await request('POST', 'api/add', {+    headers: { 'content-type': 'application/json' },+    body: JSON.stringify(bm),+  });+  return { ok: res.ok, status: res.status, bodyText: await res.text() };+}++export async function editNote(+  note: Note,+): Promise<{ ok: boolean; status: number; bodyText: string }> {+  const res = await request('POST', 'api/note/add', {+    headers: { 'content-type': 'application/json' },+    body: JSON.stringify(note),+  });+  return { ok: res.ok, status: res.status, bodyText: await res.text() };+}++export async function lookupTitle(bm: Bookmark): Promise<string | null> {+  const res = await request('POST', 'api/lookuptitle', {+    headers: { 'content-type': 'application/json' },+    body: JSON.stringify(bm),+  });+  if (res.status === 200) return await res.text();+  return null;+}++export async function getTagCloud(mode: TagCloudMode): Promise<TagCloud | null> {+  const res = await request('POST', 'api/tagcloud', {+    headers: { 'content-type': 'application/json' },+    body: JSON.stringify(mode),+  });+  if (!res.ok) return null;+  try {+    return await res.json();+  } catch {+    return null;+  }+}++export async function updateTagCloudMode(mode: TagCloudMode): Promise<void> {+  await request('POST', 'api/tagcloudmode', {+    headers: { 'content-type': 'application/json' },+    body: JSON.stringify(mode),+  });+}++export async function fetchTagSuggestions(+  data: TagSuggestionRequest,+): Promise<TagSuggestionResponse | null> {+  const res = await request('POST', 'api/tagSuggestions', {+    headers: { 'content-type': 'application/json' },+    body: JSON.stringify(data),+  });+  if (!res.ok) return null;+  try {+    return await res.json<TagSuggestionResponse>();+  } catch {+    return null;+  }+}++export async function destroyNote(nid: number): Promise<void> {+  await request('DELETE', `api/note/${nid.toString()}`, {+    headers: { 'content-type': 'application/x-www-form-urlencoded' },+  });+}++export async function editAccountSettings(us: AccountSettings): Promise<void> {+  await request('POST', 'api/accountSettings', {+    headers: { 'content-type': 'application/json' },+    body: JSON.stringify(us),+  });+}++export async function logout(): Promise<void> {+  const a = app();+  await request('POST', toRelativePath(a.authRlogoutR));+  window.location.reload();+}
+ frontend/src/components/AccountSettings.tsx view
@@ -0,0 +1,75 @@+import React from 'react';++import { editAccountSettings } from '../api';+import type { AccountSettings } from '../types';++export function AccountSettingsView({ initial }: { initial: AccountSettings }) {+  const [us, setUs] = React.useState<AccountSettings>(initial);++  async function update(next: AccountSettings) {+    setUs(next);+    await editAccountSettings(next);+  }++  return (+    <div className="settings-form">+      <div className="fw7 mb2">Account Settings</div>++      <div className="flex items-center mb2">+        <input+          type="checkbox"+          className="pointer mr2"+          id="archiveDefault"+          name="archiveDefault"+          checked={us.archiveDefault}+          onChange={(e) => void update({ ...us, archiveDefault: e.target.checked })}+        />+        <label htmlFor="archiveDefault" className="lh-copy">+          Archive Non-Private Bookmarks (archive.li)+        </label>+      </div>++      <div className="flex items-center mb2">+        <input+          type="checkbox"+          className="pointer mr2"+          id="privateDefault"+          name="privateDefault"+          checked={us.privateDefault}+          onChange={(e) => void update({ ...us, privateDefault: e.target.checked })}+        />+        <label htmlFor="privateDefault" className="lh-copy">+          Default new bookmarks to Private+        </label>+      </div>++      <div className="flex items-center mb2">+        <input+          type="checkbox"+          className="pointer mr2"+          id="suggestTags"+          name="suggestTags"+          checked={us.suggestTags}+          onChange={(e) => void update({ ...us, suggestTags: e.target.checked })}+        />+        <label htmlFor="suggestTags" className="lh-copy">+          Enable tag suggestions+        </label>+      </div>++      <div className="flex items-center mb2">+        <input+          type="checkbox"+          className="pointer mr2"+          id="privacyLock"+          name="privacyLock"+          checked={us.privacyLock}+          onChange={(e) => void update({ ...us, privacyLock: e.target.checked })}+        />+        <label htmlFor="privacyLock" className="lh-copy">+          Privacy Lock (Private Account)+        </label>+      </div>+    </div>+  );+}
+ frontend/src/components/AddForm.tsx view
@@ -0,0 +1,282 @@+import React from 'react';++import { destroy, editBookmark, lookupTitle } from '../api';+import { app, closeWindow, mmoment8601 } from '../globals';+import { useTagSuggestions } from '../hooks/useTagSuggestions';+import type { Bookmark } from '../types';+import { curQuerystring, lookupQueryStringValue } from '../util';+import { TagSuggestionsDropdown } from './TagSuggestionsDropdown';++export function AddForm({ initial }: { initial: Bookmark }) {+  const a = app();+  const [bm, setBm] = React.useState<Bookmark>(initial);+  const [editBm, setEditBm] = React.useState<Bookmark>(initial);+  const [deleteAsk, setDeleteAsk] = React.useState(false);+  const [loading, setLoading] = React.useState(false);+  const [destroyed, setDestroyed] = React.useState(false);+  const [apiError, setApiError] = React.useState<string | null>(null);+  const suggestEnabled = a.dat.suggestTags === true;++  const {+    tagInputRef,+    suggestionState,+    closeSuggestions,+    onTagsChange,+    onTagsKeyDown,+    onTagsSelect,+    onSuggestionHover,+    onSuggestionPick,+  } = useTagSuggestions({+    enabled: suggestEnabled,+    tags: editBm.tags,+    maxSuggestions: 4,+    onTagsUpdate: (tags) => {+      setEditBm((x) => ({ ...x, tags }));+    },+  });++  const mm = mmoment8601(bm.time);++  async function onFetchTitle() {+    setLoading(true);+    try {+      const title = await lookupTitle(editBm);+      if (title != null) setEditBm((x) => ({ ...x, title }));+    } finally {+      setLoading(false);+    }+  }++  async function onDestroy() {+    await destroy(bm.bid);+    setDestroyed(true);+  }++  const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {+    e.preventDefault();+    setApiError(null);+    const res = await editBookmark(editBm);+    if (res.ok && res.status >= 200 && res.status < 300) {+      setBm(editBm);++      const qs = curQuerystring();+      const next = lookupQueryStringValue(qs, 'next');+      const ref = document.referrer;+      const org = window.location.origin;++      if (next === 'closeWindow') closeWindow(window);+      else if (next === 'back') {+        if (ref.startsWith(org)) window.location.href = ref;+        else window.location.href = org;+      } else {+        closeWindow(window);+      }+    } else {+      setApiError(res.bodyText);+    }+  };++  if (destroyed) return <p className="red">you killed this bookmark</p>;++  return (+    <form+      onSubmit={(e) => {+        void onSubmit(e);+      }}+    >+      <table className="w-100">+        <tbody>+          <tr>+            <td className="w1" />+            <td>+              {bm.bid > 0 ? (+                <div className="alert">+                  previously saved&nbsp;+                  <span className="link f7 dib gray pr3" title={mm?.[1] ?? bm.time}>+                    {mm?.[0] ?? '\u00a0'}+                  </span>+                  <div className="edit_links dib ml1">+                    <div className="delete_link di">+                      <button+                        type="button"+                        onClick={() => {+                          setDeleteAsk(true);+                        }}+                        className="delete"+                        hidden={deleteAsk}+                      >+                        delete+                      </button>+                      <span className="confirm red" hidden={!deleteAsk}>+                        <button+                          type="button"+                          onClick={() => {+                            setDeleteAsk(false);+                          }}+                        >+                          cancel&nbsp;/&nbsp;+                        </button>+                        <button type="button" onClick={() => void onDestroy()} className="red">+                          destroy+                        </button>+                      </span>+                    </div>+                  </div>+                </div>+              ) : null}+              {apiError ? <div className="alert alert-err">{apiError}</div> : null}+            </td>+          </tr>++          <tr>+            <td>+              <label htmlFor="url">URL</label>+            </td>+            <td>+              <input+                type="url"+                id="url"+                className="w-100 mv1"+                required+                name="url"+                autoFocus={bm.url === ''}+                value={editBm.url}+                onChange={(e) => {+                  setEditBm((x) => ({ ...x, url: e.target.value }));+                }}+              />+            </td>+          </tr>++          <tr>+            <td>+              <label htmlFor="title">title</label>+            </td>+            <td className="flex">+              <input+                type="text"+                id="title"+                className="w-100 mv1 flex-auto"+                name="title"+                value={editBm.title}+                onChange={(e) => {+                  setEditBm((x) => ({ ...x, title: e.target.value }));+                }}+              />+              <button+                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' : ''}`}+              >+                fetch+              </button>+            </td>+          </tr>++          <tr>+            <td>+              <label htmlFor="description">description</label>+            </td>+            <td>+              <textarea+                className="w-100 mt1 mid-gray"+                id="description"+                name="description"+                rows={4}+                value={editBm.description}+                onChange={(e) => {+                  setEditBm((x) => ({ ...x, description: e.target.value }));+                }}+              />+            </td>+          </tr>++          <tr>+            <td>+              <label htmlFor="tags">tags</label>+            </td>+            <td>+              <div className="relative">+                <input+                  ref={tagInputRef}+                  type="text"+                  id="tags"+                  className="w-100 mv1"+                  name="tags"+                  autoComplete="off"+                  autoCapitalize="off"+                  autoFocus={bm.url !== ''}+                  value={editBm.tags}+                  onChange={onTagsChange}+                  onKeyDown={onTagsKeyDown}+                  onClick={onTagsSelect}+                  onSelect={onTagsSelect}+                  onBlur={() => {+                    window.setTimeout(() => {+                      closeSuggestions();+                    }, 0);+                  }}+                />+                {suggestionState != null ? (+                  <TagSuggestionsDropdown+                    suggestionState={suggestionState}+                    onHover={onSuggestionHover}+                    onPick={onSuggestionPick}+                  />+                ) : null}+              </div>+            </td>+          </tr>++          <tr>+            <td>+              <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 }));+                }}+              />+            </td>+          </tr>++          <tr>+            <td>+              <label htmlFor="toread">read later</label>+            </td>+            <td>+              <input+                type="checkbox"+                id="toread"+                className="toread pointer"+                name="toread"+                checked={editBm.toread}+                onChange={(e) => {+                  setEditBm((x) => ({ ...x, toread: e.target.checked }));+                }}+              />+            </td>+          </tr>++          <tr>+            <td />+            <td>+              <input+                type="submit"+                className="ph3 pv2 input-reset black ba b--navy bg-transparent pointer f6 dib mt1 dim"+                value={bm.bid > 0 ? 'update bookmark' : 'add bookmark'}+              />+            </td>+          </tr>+        </tbody>+      </table>+    </form>+  );+}
+ frontend/src/components/BList.tsx view
@@ -0,0 +1,33 @@+import React from 'react';++import { useBookmarksStore } from '../stores/bookmarksStore';+import type { Bookmark } from '../types';+import { BMark } from './BMark';++export function BList({ initial }: { initial: Bookmark[] }) {+  const bmarks = useBookmarksStore((s) => s.bmarks);+  const setAll = useBookmarksStore((s) => s.setAll);+  const removeById = useBookmarksStore((s) => s.removeById);+  const upsert = useBookmarksStore((s) => s.upsert);++  React.useEffect(() => {+    setAll(initial);+  }, [initial, setAll]);++  return (+    <div>+      {bmarks.map((b) => (+        <BMark+          key={b.bid}+          initial={b}+          onNotifyRemove={() => {+            removeById(b.bid);+          }}+          onUpdated={(bm) => {+            upsert(bm);+          }}+        />+      ))}+    </div>+  );+}
+ frontend/src/components/BMark.tsx view
@@ -0,0 +1,337 @@+import React from 'react';++import { destroy, editBookmark, lookupTitle, markRead, toggleStar } from '../api';+import { app, setFocus, toLocaleDateString } from '../globals';+import { useTagSuggestions } from '../hooks/useTagSuggestions';+import type { Bookmark } from '../types';+import { encodeTag, fromNullableStr, normalizeTags } from '../util';+import { Markdown } from './Markdown';+import { TagSuggestionsDropdown } from './TagSuggestionsDropdown';++export function BMark({+  initial,+  onNotifyRemove,+  onUpdated,+}: {+  initial: Bookmark;+  onNotifyRemove: () => void;+  onUpdated: (bm: Bookmark) => void;+}) {+  const a = app();+  const [bm, setBm] = React.useState<Bookmark>(initial);+  const [editBm, setEditBm] = React.useState<Bookmark>(initial);+  const [deleteAsk, setDeleteAsk] = React.useState(false);+  const [edit, setEdit] = React.useState(false);+  const [loading, setLoading] = React.useState(false);+  const [apiError, setApiError] = React.useState<string | null>(null);++  const tagInputId = `${bm.bid.toString()}_tags`;++  const linkToFilterSingle = (slug: string) => `${fromNullableStr(a.userR)}/b:${slug}`;+  const linkToFilterTag = (tag: string) => `${fromNullableStr(a.userR)}/t:${encodeTag(tag)}`;++  const shdate = toLocaleDateString(bm.time);+  const shdatetime = `${bm.time.slice(0, 16)}Z`;+  const suggestEnabled = a.dat.suggestTags === true;++  const {+    tagInputRef,+    suggestionState,+    closeSuggestions,+    onTagsChange,+    onTagsKeyDown,+    onTagsSelect,+    onSuggestionHover,+    onSuggestionPick,+  } = useTagSuggestions({+    enabled: suggestEnabled,+    tags: editBm.tags,+    onTagsUpdate: (tags) => {+      setEditBm((x) => ({ ...x, tags }));+    },+  });++  async function onStar(next: boolean) {+    await toggleStar(bm.bid, next ? 'star' : 'unstar');+    const updated = { ...bm, selected: next };+    setBm(updated);+    setEditBm((x) => ({ ...x, selected: next }));+    onUpdated(updated);+  }++  async function onDestroy() {+    await destroy(bm.bid);+    onNotifyRemove();+  }++  async function onMarkRead() {+    await markRead(bm.bid);+    const updated = { ...bm, toread: false };+    setBm(updated);+    onUpdated(updated);+  }++  function startEdit(next: boolean) {+    setEditBm(bm);+    setEdit(next);+    setApiError(null);+    closeSuggestions();+    if (next) setFocus(tagInputId);+  }++  async function onFetchTitle() {+    setLoading(true);+    try {+      const title = await lookupTitle(editBm);+      if (title != null) setEditBm((x) => ({ ...x, title }));+    } finally {+      setLoading(false);+    }+  }++  const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {+    e.preventDefault();+    setApiError(null);+    const editBm2 = { ...editBm, tags: normalizeTags(editBm.tags) };++    const res = await editBookmark(editBm2);+    if (res.ok && res.status >= 200 && res.status < 300) {+      setBm(editBm2);+      setEdit(false);+      onUpdated(editBm2);+    } else {+      setApiError(res.bodyText);+      // match PS behavior: log error+      // eslint-disable-next-line no-console+      console.log(res.bodyText);+    }+  };++  return (+    <div+      id={String(bm.bid)}+      className={`bookmark w-100 mw7 pa1 mb3${bm.private ? ' private' : ''}`}+    >+      {a.dat.isowner ? (+        <div className={`star fl pointer${bm.selected ? ' selected' : ''}`}>+          <button className="moon-gray" onClick={() => void onStar(!bm.selected)} type="button">+            ✭+          </button>+        </div>+      ) : null}++      {!edit ? (+        <div className="display">+          <a+            href={bm.url}+            target="_blank"+            rel="noreferrer"+            className={`link f5 lh-title${bm.toread ? ' unread' : ''}`}+          >+            {bm.title === '' ? '[no title]' : bm.title}+          </a>+          <br />+          <a href={bm.url} className="link f7 gray hover-blue">+            {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>+          <br />+          <div className="description mt1 mid-gray">+            <Markdown text={bm.description} />+          </div>+          <div className="tags">+            {bm.tags !== ''+              ? bm.tags.split(' ').map((tag) => (+                  <a+                    key={tag}+                    className={`link tag mr1${tag.slice(0, 1) === '.' ? ' private' : ''}`}+                    href={linkToFilterTag(tag)}+                  >+                    {tag}+                  </a>+                ))+              : null}+          </div>++          <a className="link f7 dib gray w4" href={linkToFilterSingle(bm.slug)} title={shdatetime}>+            {shdate}+          </a>++          {a.dat.isowner ? (+            <div className="edit_links di">+              <button+                type="button"+                onClick={() => {+                  startEdit(true);+                }}+                className="edit light-silver hover-blue"+              >+                edit&nbsp;&nbsp;+              </button>+              <div className="delete_link di">+                <button+                  type="button"+                  onClick={() => {+                    setDeleteAsk(true);+                  }}+                  className={`delete light-silver hover-blue${deleteAsk ? ' dn' : ''}`}+                >+                  delete+                </button>+                <span className={`confirm red${!deleteAsk ? ' dn' : ''}`}>+                  <button+                    type="button"+                    onClick={() => {+                      setDeleteAsk(false);+                    }}+                  >+                    cancel&nbsp;/&nbsp;+                  </button>+                  <button type="button" onClick={() => void onDestroy()} className="red">+                    destroy+                  </button>+                </span>+              </div>+            </div>+          ) : null}++          {a.dat.isowner && bm.toread ? (+            <div className="read di">+              &nbsp;&nbsp;+              <button onClick={() => void onMarkRead()} className="mark_read" type="button">+                mark as read+              </button>+            </div>+          ) : null}+        </div>+      ) : (+        <div className="edit_bookmark_form pa2 pt0 bg-white">+          {apiError ? <div className="alert alert-err">{apiError}</div> : null}+          <form onSubmit={(e) => void onSubmit(e)}>+            <div>url</div>+            <input+              type="url"+              className="url w-100 mb2 pt1 edit_form_input"+              required+              name="url"+              value={editBm.url}+              onChange={(e) => {+                setEditBm((x) => ({ ...x, url: e.target.value }));+              }}+            />+            <div>title</div>+            <div className="flex">+              <input+                type="text"+                className="title w-100 mb2 pt1 edit_form_input"+                name="title"+                value={editBm.title}+                onChange={(e) => {+                  setEditBm((x) => ({ ...x, title: e.target.value }));+                }}+              />+              <button+                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' : ''+                }`}+              >+                fetch+              </button>+            </div>+            <div>description</div>+            <textarea+              className="description w-100 mb1 pt1 edit_form_input"+              name="description"+              rows={5}+              value={editBm.description}+              onChange={(e) => {+                setEditBm((x) => ({ ...x, description: e.target.value }));+              }}+            />+            <div id="tags_input_box">+              <div>tags</div>+              <div className="relative">+                <input+                  id={tagInputId}+                  ref={tagInputRef}+                  type="text"+                  className="tags w-100 mb1 pt1 edit_form_input"+                  name="tags"+                  autoComplete="off"+                  autoCapitalize="off"+                  value={editBm.tags}+                  onChange={onTagsChange}+                  onKeyDown={onTagsKeyDown}+                  onClick={onTagsSelect}+                  onSelect={onTagsSelect}+                  onBlur={() => {+                    window.setTimeout(() => {+                      closeSuggestions();+                    }, 0);+                  }}+                />+                {suggestionState != null ? (+                  <TagSuggestionsDropdown+                    suggestionState={suggestionState}+                    onHover={onSuggestionHover}+                    onPick={onSuggestionPick}+                  />+                ) : null}+              </div>+            </div>+            <div className="edit_form_checkboxes mv3">+              <input+                type="checkbox"+                className="private pointer"+                id="edit_private"+                name="private"+                checked={editBm.private}+                onChange={(e) => {+                  setEditBm((x) => ({ ...x, private: e.target.checked }));+                }}+              />{' '}+              <label htmlFor="edit_private" className="mr2">+                private+              </label>{' '}+              <input+                type="checkbox"+                className="toread pointer"+                id="edit_toread"+                name="toread"+                checked={editBm.toread}+                onChange={(e) => {+                  setEditBm((x) => ({ ...x, toread: e.target.checked }));+                }}+              />{' '}+              <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);+              }}+            />+          </form>+        </div>+      )}+    </div>+  );+}
+ frontend/src/components/Markdown.tsx view
@@ -0,0 +1,18 @@+import DOMPurify from 'dompurify';+import { marked } from 'marked';+import React from 'react';++marked.setOptions({+  pedantic: false,+  gfm: true,+});++export function Markdown({ text, className }: { text: string; className?: string }) {+  const html = React.useMemo(() => {+    if (!text) return '';+    const parsed = marked.parse(text, { async: false });+    return DOMPurify.sanitize(typeof parsed === 'string' ? parsed : '');+  }, [text]);++  return <div className={className} dangerouslySetInnerHTML={{ __html: html }} />;+}
+ frontend/src/components/NList.tsx view
@@ -0,0 +1,57 @@+import React from 'react';++import { app, mmoment8601 } from '../globals';+import type { Note } from '../types';+import { fromNullableStr } from '../util';++function toTextareaPreview(input: string) {+  const lines = input.split('\n');+  return (+    <>+      {lines[0]}+      {lines.slice(1).map((x, idx) => (+        <React.Fragment key={idx}>+          <br />+          {x}+        </React.Fragment>+      ))}+    </>+  );+}++export function NList({ initial }: { initial: Note[] }) {+  const a = app();+  const linkToFilterSingle = (slug: string) => `${fromNullableStr(a.userR)}/notes/${slug}`;++  return (+    <div>+      {initial.map((note) => {+        const mm = mmoment8601(note.created);+        return (+          <div+            key={note.id}+            id={String(note.id)}+            className={`note w-100 mw7 pa1 mb2${note.shared ? '' : ' private'}`}+          >+            <div className="display">+              <a href={linkToFilterSingle(note.slug)} className="link f5 lh-title">+                {note.title === '' ? '[no title]' : note.title}+              </a>+              <br />+              <div className="description mt1 mid-gray">+                {toTextareaPreview(note.text.slice(0, 200))}+              </div>+              <a+                className="link f7 dib gray w4"+                title={mm?.[1] ?? note.created}+                href={linkToFilterSingle(note.slug)}+              >+                {mm?.[0] ?? '\u00a0'}+              </a>+            </div>+          </div>+        );+      })}+    </div>+  );+}
+ frontend/src/components/NNote.tsx view
@@ -0,0 +1,219 @@+import React from 'react';++import { destroyNote, editNote } from '../api';+import { app, closeWindow, mmoment8601, setFocus } from '../globals';+import type { Note } from '../types';+import { curQuerystring, fromNullableStr, lookupQueryStringValue } from '../util';+import { Markdown } from './Markdown';++function toTextarea(input: string) {+  const lines = input.split('\n');+  return (+    <>+      {lines[0]}+      {lines.slice(1).map((x, idx) => (+        <React.Fragment key={idx}>+          <br />+          {x}+        </React.Fragment>+      ))}+    </>+  );+}++export function NNote({ initial }: { initial: Note }) {+  const a = app();++  const [note, setNote] = React.useState<Note>(initial);+  const [editNoteState, setEditNoteState] = React.useState<Note>(initial);+  const [deleteAsk, setDeleteAsk] = React.useState(false);+  const [edit, setEdit] = React.useState(initial.id <= 0);+  const [destroyed, setDestroyed] = React.useState(false);+  const [apiError, setApiError] = React.useState<string | null>(null);++  const notetextid = `${note.id.toString()}_text`;+  const mm = mmoment8601(note.created);++  function startEdit(next: boolean) {+    setEditNoteState(note);+    setEdit(next);+    const qs = curQuerystring();+    const q = lookupQueryStringValue(qs, 'next');+    if (!next && q === 'closeWindow') closeWindow(window);+    else if (next) setFocus(notetextid);+  }++  async function onDestroy() {+    await destroyNote(note.id);+    setDestroyed(true);+  }++  const onSubmit = async (e: React.SyntheticEvent<HTMLFormElement, SubmitEvent>): Promise<void> => {+    e.preventDefault();+    setApiError(null);++    const res = await editNote(editNoteState);+    if (res.ok && res.status >= 200 && res.status < 300) {+      const qs = curQuerystring();+      const next = lookupQueryStringValue(qs, 'next');+      const ref = document.referrer;+      const org = window.location.origin;++      if (next === 'closeWindow') closeWindow(window);+      else if (next === 'back') {+        if (ref.startsWith(org)) window.location.href = ref;+        else window.location.href = org;+      } else if (editNoteState.id === 0) {+        window.location.href = fromNullableStr(a.noteR);+      } else {+        setNote(editNoteState);+        setEdit(false);+      }+    } else {+      setApiError(res.bodyText);+      // eslint-disable-next-line no-console+      console.log(res.bodyText);+    }+  };++  if (destroyed) return <p className="red">you killed this note</p>;++  return (+    <div id={String(note.id)} className="note w-100 mw7 pa1 mb2">+      {!edit ? (+        <>+          <div className="display">+            <div className="link f5 lh-title">{note.title === '' ? '[no title]' : note.title}</div>+            <br />+            {note.isMarkdown ? (+              <div className="description mt1">+                <Markdown text={note.text} />+              </div>+            ) : (+              <div className="description mt1 mid-gray">{toTextarea(note.text)}</div>+            )}+            <div className="link f7 dib gray w4">+              <span title={mm?.[1] ?? note.created}>{mm?.[0] ?? '\u00a0'}</span>+              {' - '}+              <span className="gray">{note.shared ? 'public' : 'private'}</span>+            </div>+          </div>++          {a.dat.isowner ? (+            <div className="edit_links db mt3">+              <button+                type="button"+                onClick={() => {+                  startEdit(true);+                }}+                className="edit light-silver hover-blue"+              >+                edit&nbsp;&nbsp;+              </button>+              <div className="delete_link di">+                <button+                  type="button"+                  onClick={() => {+                    setDeleteAsk(true);+                  }}+                  className={`delete light-silver hover-blue${deleteAsk ? ' dn' : ''}`}+                >+                  delete+                </button>+                <span className={`confirm red${!deleteAsk ? ' dn' : ''}`}>+                  <button+                    type="button"+                    onClick={() => {+                      setDeleteAsk(false);+                    }}+                  >+                    cancel&nbsp;/&nbsp;+                  </button>+                  <button type="button" onClick={() => void onDestroy()} className="red">+                    destroy+                  </button>+                </span>+              </div>+            </div>+          ) : null}+        </>+      ) : (+        <form+          onSubmit={(e) => {+            void onSubmit(e);+          }}+        >+          {apiError ? <div className="alert alert-err">{apiError}</div> : null}+          <p className="mt2 mb1">title:</p>+          <input+            type="text"+            className="title w-100 mb1 pt1 edit_form_input"+            name="title"+            value={editNoteState.title}+            onChange={(e) => {+              setEditNoteState((x) => ({ ...x, title: e.target.value }));+            }}+            autoFocus={editNoteState.title === ''}+          />+          <br />+          <p className="mt2 mb1">description:</p>+          <textarea+            id={notetextid}+            className="description w-100 mb1 pt1 edit_form_input"+            name="text"+            rows={25}+            value={editNoteState.text}+            onChange={(e) => {+              setEditNoteState((x) => ({ ...x, text: e.target.value }));+            }}+          />+          <div className="edit_form_checkboxes mb3">+            <input+              type="checkbox"+              className="is-markdown pointer"+              id="edit_ismarkdown"+              name="ismarkdown"+              checked={editNoteState.isMarkdown}+              onChange={(e) => {+                setEditNoteState((x) => ({ ...x, isMarkdown: e.target.checked }));+              }}+            />{' '}+            <label htmlFor="edit_ismarkdown" className="mr2">+              use markdown?+            </label>+            <br />+          </div>+          <div className="edit_form_checkboxes mb3">+            <input+              type="checkbox"+              className="is-markdown pointer"+              id="edit_shared"+              name="shared"+              checked={editNoteState.shared}+              onChange={(e) => {+                setEditNoteState((x) => ({ ...x, shared: e.target.checked }));+              }}+            />{' '}+            <label htmlFor="edit_shared" className="mr2">+              public?+            </label>+            <br />+          </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);+            }}+          />+        </form>+      )}+    </div>+  );+}
+ frontend/src/components/TagCloud.tsx view
@@ -0,0 +1,214 @@+import React from 'react';++import { getTagCloud, updateTagCloudMode } from '../api';+import { app } from '../globals';+import { useTagCloudStore } from '../stores/tagCloudStore';+import {+  isExpanded,+  isRelated,+  setExpanded,+  type TagCloud as TagCloudT,+  type TagCloudModeF,+  tagCloudModeFromF,+} from '../types';+import { encodeTag, fromNullableStr } from '../util';++function rescale(+  f: (x: number) => number,+  v: number,+  n: number,+  m: number,+  l: number,+  h: number,+): number {+  const denom = f(m - n);+  const ratio = m - n < 0.01 || denom === 0 ? 1.0 : f(v - n) / denom;+  return ratio * (h - l) + l;+}++function toArray(curtags: string[], n: number, m: number, tagcloud: TagCloudT) {+  const a = app();+  const cur = curtags.map((t) => t.toLowerCase());+  const entries: Array<[string, number]> = Object.entries(tagcloud).sort((x, y) =>+    x[0].toLowerCase().localeCompare(y[0].toLowerCase()),+  );++  const linkToFilterTag = (rest: string) =>+    `${fromNullableStr(a.userR)}${rest === '' ? '' : `/t:${rest}`}`;++  const out: Array<React.ReactNode> = [];+  for (const [k, v] of entries) {+    const kLower = k.toLowerCase();+    const fontsize = rescale((x) => x, v, n, m, 100.0, 150.0);+    const opacity = rescale((x) => Math.log(1.0 + x), v, n, m, 0.6, 1.0);+    const style: React.CSSProperties = { fontSize: `${fontsize.toString()}%`, opacity };++    const includeExclude =+      cur.length === 0 ? null : !cur.includes(kLower) ? (+        <a+          href={linkToFilterTag(cur.concat([kLower]).map(encodeTag).join('+'))}+          className="link mr2 tag-include"+        >+          ⊕+        </a>+      ) : (+        <a+          href={linkToFilterTag(+            cur+              .filter((t) => t !== kLower)+              .map(encodeTag)+              .join('+'),+          )}+          className="link mr2 tag-exclude"+        >+          ⊖+        </a>+      );++    out.push(+      <a+        key={`${k}-tag`}+        href={linkToFilterTag(encodeTag(k))}+        className="link tag mr1"+        style={style}+      >+        {k}+      </a>,+    );+    if (includeExclude) out.push(<React.Fragment key={`${k}-ie`}>{includeExclude}</React.Fragment>);+  }+  return out;+}++export function TagCloud({ initialMode }: { initialMode: TagCloudModeF }) {+  const mode = useTagCloudStore((s) => s.mode);+  const tagcloud = useTagCloudStore((s) => s.tagcloud);+  const setMode = useTagCloudStore((s) => s.setMode);+  const setTagCloud = useTagCloudStore((s) => s.setTagCloud);++  React.useEffect(() => {+    setMode(initialMode);+  }, [initialMode]);++  React.useEffect(() => {+    async function fetchTagCloud(m: TagCloudModeF) {+      if (m.kind === 'none') return;+      const tc = await getTagCloud(tagCloudModeFromF(m));+      setTagCloud(tc ?? {});+    }+    void fetchTagCloud(mode);+  }, [mode, setTagCloud]);++  if (mode.kind === 'none') return <div className="tag_cloud" />;++  const modetop: TagCloudModeF = { kind: 'top', expanded: isExpanded(mode), value: 200 };+  const modelb1: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 1 };+  const modelb2: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 2 };+  const modelb5: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 5 };+  const modelb10: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 10 };+  const modelb20: TagCloudModeF = { kind: 'lowerBound', expanded: isExpanded(mode), value: 20 };++  const values = Object.values(tagcloud);+  const n = values.length ? Math.min(...values) : 1;+  const m = values.length ? Math.max(...values) : 1;++  async function onExpanded(expanded: boolean) {+    const next = setExpanded(mode, expanded);+    setMode(next);+    await updateTagCloudMode(tagCloudModeFromF(next));+  }++  async function onChangeMode(next: TagCloudModeF) {+    if (JSON.stringify(mode) === JSON.stringify(next)) {+      await onExpanded(!isExpanded(mode));+    } else {+      setMode(setExpanded(next, true));+    }+  }++  return (+    <div className="tag_cloud mv3">+      <div className="tag_cloud_header mb2">+        {isRelated(mode) ? (+          <button+            type="button"+            className="pa1 f7 link hover-blue mr1 b"+            onClick={() => void onExpanded(!isExpanded(mode))}+          >+            Related Tags+          </button>+        ) : (+          <>+            <button+              type="button"+              className={`pa1 f7 link hover-blue mr1${JSON.stringify(mode) === JSON.stringify(modetop) ? ' b' : ''}`}+              title="show a cloud of your most-used tags"+              onClick={() => void onChangeMode(modetop)}+            >+              Top Tags+            </button>+            <button+              type="button"+              className={`pa1 f7 link hover-blue ml2 ${JSON.stringify(mode) === JSON.stringify(modelb1) ? ' b' : ''}`}+              title="show all tags"+              onClick={() => void onChangeMode(modelb1)}+            >+              all+            </button>+            {'‧'}+            <button+              type="button"+              className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb2) ? ' b' : ''}`}+              title="show tags with at least 2 bookmarks"+              onClick={() => void onChangeMode(modelb2)}+            >+              2+            </button>+            {'‧'}+            <button+              type="button"+              className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb5) ? ' b' : ''}`}+              title="show tags with at least 5 bookmarks"+              onClick={() => void onChangeMode(modelb5)}+            >+              5+            </button>+            {'‧'}+            <button+              type="button"+              className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb10) ? ' b' : ''}`}+              title="show tags with at least 10 bookmarks"+              onClick={() => void onChangeMode(modelb10)}+            >+              10+            </button>+            {'‧'}+            <button+              type="button"+              className={`pa1 f7 link hover-blue${JSON.stringify(mode) === JSON.stringify(modelb20) ? ' b' : ''}`}+              title="show tags with at least 20 bookmarks"+              onClick={() => void onChangeMode(modelb20)}+            >+              20+            </button>+          </>+        )}+        <button+          type="button"+          className="pa1 ml2 f7 link silver hover-blue"+          onClick={() => void onExpanded(!isExpanded(mode))}+        >+          {isExpanded(mode) ? 'hide' : 'show'}+        </button>+      </div>++      {isExpanded(mode) ? (+        <div className="tag_cloud_body">+          {mode.kind === 'related'+            ? toArray(mode.value, n, m, tagcloud)+            : toArray([], n, m, tagcloud)}+        </div>+      ) : null}+    </div>+  );+}
+ frontend/src/components/TagSuggestionsDropdown.tsx view
@@ -0,0 +1,80 @@+import React from 'react';++import type { SuggestionState } from '../hooks/useTagSuggestions';++const MAX_SUGGESTION_TERM_RENDER_LENGTH = 80;++export function TagSuggestionsDropdown({+  suggestionState,+  onHover,+  onPick,+}: {+  suggestionState: SuggestionState;+  onHover: (index: number) => void;+  onPick: (term: string) => void;+}) {+  return (+    <div+      className="absolute z-5 bg-near-white dark-gray ba b--moon-gray br2 shadow-4 overflow-hidden f6"+      style={{+        left: suggestionState.anchorLeft,+        top: suggestionState.anchorTop,+        width: 'max-content',+        maxWidth: '22rem',+      }}+    >+      {suggestionState.items.map((item, index) => {+        const selected = index === suggestionState.selectedIndex;+        const displayTerm = truncateSuggestionTerm(item.term);+        return (+          <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' : ''}`}+            onMouseEnter={() => {+              onHover(index);+            }}+            onMouseDown={(e) => {+              e.preventDefault();+            }}+            onClick={() => {+              onPick(item.term);+            }}+            title={item.term}+          >+            <span className="mr2">+              {renderHighlightedSuggestion(displayTerm, suggestionState.tokenRange.token)}+            </span>+            <span className="gray f6 tr" style={{ minWidth: '3ch' }}>+              {item.count}+            </span>+          </button>+        );+      })}+    </div>+  );+}++function renderHighlightedSuggestion(term: string, query: string): React.ReactNode {+  const lowerTerm = term.toLocaleLowerCase();+  const lowerQuery = query.toLocaleLowerCase();+  const idx = lowerTerm.indexOf(lowerQuery);+  if (idx < 0) return term;++  const before = term.slice(0, idx);+  const match = term.slice(idx, idx + query.length);+  const after = term.slice(idx + query.length);++  return (+    <>+      {before}+      <strong>{match}</strong>+      {after}+    </>+  );+}++function truncateSuggestionTerm(term: string): string {+  if (term.length <= MAX_SUGGESTION_TERM_RENDER_LENGTH) return term;+  return `${term.slice(0, MAX_SUGGESTION_TERM_RENDER_LENGTH)}...`;+}
+ frontend/src/globals.ts view
@@ -0,0 +1,67 @@+import moment from 'moment';++import type { Bookmark } from './types';++export type AppData = {+  bmarks: Bookmark[];+  bmark: Bookmark;+  isowner: boolean;+  suggestTags?: boolean;+};++export type App = {+  csrfHeaderName: string;+  csrfCookieName: string;+  csrfParamName: string;+  csrfToken: string;+  homeR: string;+  authRlogoutR: string;+  userR: string | null;+  noteR: string | null;+  dat: AppData;+};++declare global {+  // Provided by the server in a <script> tag.++  var app: App;+}++export function app(): App {+  return globalThis.app;+}++export function moment8601(s: string): [string, string] {+  const m = moment(s, moment.ISO_8601);+  const s1 = m.fromNow();+  const s2 = `${m.format('MMMM D YYYY, h:mm a')} (${m.format()}) `;+  return [s1, s2];+}++export function mmoment8601(s: string): [string, string] | null {+  try {+    return moment8601(s);+  } catch {+    return null;+  }+}++export function closeWindow(win: Window): void {+  win.close();+}++export type RawHTML = string;++export function setFocus(elemId: string): void {+  document.getElementById(elemId)?.focus();+}++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',+    day: 'numeric',+  });+}
+ frontend/src/hooks/useTagSuggestions.ts view
@@ -0,0 +1,356 @@+import React from 'react';++import { fetchTagSuggestions } from '../api';+import type { TagSuggestionRequest, TSuggestion } from '../types';++export type SuggestionState = {+  items: TSuggestion[];+  selectedIndex: number;+  tokenRange: TagTokenRange;+  anchorLeft: number;+  anchorTop: number;+};++type TagTokenRange = {+  token: string;+  start: number;+  end: number;+};++const TAG_SUGGESTION_DEBOUNCE_MS = 180;++export function useTagSuggestions({+  enabled,+  tags,+  onTagsUpdate,+  maxSuggestions = 10,+}: {+  enabled: boolean;+  tags: string;+  onTagsUpdate: (next: string) => void;+  maxSuggestions?: number;+}) {+  const [suggestionState, setSuggestionState] = React.useState<SuggestionState | null>(null);+  const tagSuggestionRequestId = React.useRef(0);+  const tagSuggestionDebounceRef = React.useRef<number | null>(null);+  const tagInputRef = React.useRef<HTMLInputElement | null>(null);++  const cancelPendingSuggestions = React.useCallback(() => {+    if (tagSuggestionDebounceRef.current != null) {+      window.clearTimeout(tagSuggestionDebounceRef.current);+      tagSuggestionDebounceRef.current = null;+    }+    tagSuggestionRequestId.current += 1;+  }, []);++  const closeSuggestions = React.useCallback(() => {+    cancelPendingSuggestions();+    setSuggestionState(null);+  }, [cancelPendingSuggestions]);++  React.useEffect(() => {+    return () => {+      cancelPendingSuggestions();+    };+  }, [cancelPendingSuggestions]);++  React.useEffect(() => {+    if (!enabled) closeSuggestions();+  }, [enabled, closeSuggestions]);++  const onTagsChange = React.useCallback(+    (e: React.ChangeEvent<HTMLInputElement>) => {+      const { value, selectionStart, selectionEnd } = e.target;++      onTagsUpdate(value);++      if (!enabled) {+        closeSuggestions();+        return;+      }++      if (selectionStart == null || selectionEnd == null || selectionStart !== selectionEnd) {+        closeSuggestions();+        return;+      }++      if (isWhitespaceOnlyEdit(tags, value)) {+        closeSuggestions();+        return;+      }++      const activeToken = getActiveTagToken(value, selectionStart);+      if (activeToken == null || activeToken.token.length < 2) {+        closeSuggestions();+        return;+      }++      const normalizedTagTerms = getNormalizedTagTerms(value);+      const activeTokenNormalized = activeToken.token.toLowerCase();+      const activeTokenOccurrences = normalizedTagTerms.filter(+        (tag) => tag === activeTokenNormalized,+      ).length;+      const shouldExcludeActiveToken = activeTokenOccurrences > 1;+      const payload: TagSuggestionRequest = {+        query: activeToken.token,+        currentTags: Array.from(+          new Set(+            normalizedTagTerms.filter(+              (tag) => shouldExcludeActiveToken || tag !== activeTokenNormalized,+            ),+          ),+        ),+      };++      cancelPendingSuggestions();+      tagSuggestionDebounceRef.current = window.setTimeout(() => {+        const requestId = tagSuggestionRequestId.current + 1;+        tagSuggestionRequestId.current = requestId;++        void (async () => {+          const response = await fetchTagSuggestions(payload);++          if (+            requestId !== tagSuggestionRequestId.current ||+            response == null ||+            tagInputRef.current == null+          ) {+            return;+          }++          const items = response.suggestions.slice(0, maxSuggestions);+          if (items.length === 0) {+            closeSuggestions();+            return;+          }++          const anchor = measureCaretPosition(tagInputRef.current, selectionStart);++          setSuggestionState({+            items,+            selectedIndex: 0,+            tokenRange: activeToken,+            anchorLeft: anchor.left,+            anchorTop: anchor.top,+          });+        })();+      }, TAG_SUGGESTION_DEBOUNCE_MS);+    },+    [cancelPendingSuggestions, closeSuggestions, enabled, maxSuggestions, onTagsUpdate],+  );++  const applySuggestion = React.useCallback(+    (term: string) => {+      const input = tagInputRef.current;+      if (input == null || suggestionState == null) return;++      const next = replaceTokenAtRange(tags, suggestionState.tokenRange, term);+      onTagsUpdate(next.value);+      closeSuggestions();++      requestAnimationFrame(() => {+        input.focus();+        input.setSelectionRange(next.caret, next.caret);+      });+    },+    [closeSuggestions, onTagsUpdate, suggestionState, tags],+  );++  const onTagsKeyDown = React.useCallback(+    (e: React.KeyboardEvent<HTMLInputElement>) => {+      if (e.key === 'Escape') {+        if (suggestionState != null) {+          e.preventDefault();+          closeSuggestions();+        }+        return;+      }++      if (e.key === ' ') {+        closeSuggestions();+        return;+      }++      if (suggestionState == null) return;++      if (e.key === 'ArrowDown') {+        e.preventDefault();+        setSuggestionState((current) => {+          if (current == null) return current;+          return {+            ...current,+            selectedIndex: (current.selectedIndex + 1) % current.items.length,+          };+        });+        return;+      }++      if (e.key === 'ArrowUp') {+        e.preventDefault();+        setSuggestionState((current) => {+          if (current == null) return current;+          return {+            ...current,+            selectedIndex:+              (current.selectedIndex - 1 + current.items.length) % current.items.length,+          };+        });+        return;+      }++      if (e.key === 'Enter' || e.key === 'Tab') {+        e.preventDefault();+        const selected = suggestionState.items[suggestionState.selectedIndex];+        applySuggestion(selected.term);+      }+    },+    [applySuggestion, closeSuggestions, suggestionState],+  );++  const onTagsSelect = React.useCallback(+    (e: React.SyntheticEvent<HTMLInputElement>) => {+      if (suggestionState == null) return;++      const input = e.currentTarget;+      const { selectionStart, selectionEnd, value } = input;+      if (selectionStart == null || selectionEnd == null || selectionStart !== selectionEnd) {+        closeSuggestions();+        return;+      }++      const activeToken = getActiveTagToken(value, selectionStart);+      if (activeToken == null) {+        closeSuggestions();+        return;+      }++      if (activeToken.start !== suggestionState.tokenRange.start) {+        closeSuggestions();+      }+    },+    [closeSuggestions, suggestionState],+  );++  const onSuggestionHover = React.useCallback((index: number) => {+    setSuggestionState((current) => {+      if (current == null) return current;+      return { ...current, selectedIndex: index };+    });+  }, []);++  return {+    tagInputRef,+    suggestionState,+    closeSuggestions,+    onTagsChange,+    onTagsKeyDown,+    onTagsSelect,+    onSuggestionHover,+    onSuggestionPick: applySuggestion,+  };+}++function getActiveTagToken(value: string, caret: number): TagTokenRange | null {+  const boundedCaret = Math.max(0, Math.min(caret, value.length));++  let start = boundedCaret;+  while (start > 0 && value[start - 1] !== ' ') {+    start -= 1;+  }++  let end = boundedCaret;+  while (end < value.length && value[end] !== ' ') {+    end += 1;+  }++  const token = value.slice(start, end).trim();+  return token === '' ? null : { token, start, end };+}++function measureCaretPosition(+  input: HTMLInputElement,+  caret: number,+): { left: number; top: number } {+  const style = window.getComputedStyle(input);+  const mirror = document.createElement('div');+  mirror.style.position = 'absolute';+  mirror.style.visibility = 'hidden';+  mirror.style.whiteSpace = 'pre';+  mirror.style.top = '0';+  mirror.style.left = '0';+  mirror.style.font = style.font;+  mirror.style.fontKerning = style.fontKerning;+  mirror.style.fontFeatureSettings = style.fontFeatureSettings;+  mirror.style.fontVariantLigatures = style.fontVariantLigatures;+  mirror.style.letterSpacing = style.letterSpacing;+  mirror.style.textTransform = style.textTransform;+  mirror.style.textIndent = style.textIndent;+  mirror.style.boxSizing = style.boxSizing;+  mirror.style.padding = style.padding;+  mirror.style.border = style.border;+  mirror.style.width = `${String(input.clientWidth)}px`;++  const prefix = document.createElement('span');+  prefix.textContent = input.value.slice(0, caret);+  mirror.appendChild(prefix);++  const marker = document.createElement('span');+  marker.textContent = '\u200b';+  mirror.appendChild(marker);++  document.body.appendChild(mirror);+  const left = marker.offsetLeft - input.scrollLeft + 1;+  const top = marker.offsetTop - input.scrollTop + input.offsetHeight + 4;+  document.body.removeChild(mirror);++  return { left, top };+}++function replaceTokenAtRange(+  value: string,+  range: TagTokenRange,+  replacement: string,+): { value: string; caret: number } {+  const prefix = value.slice(0, range.start);+  // Consume any existing leading space from the suffix so we always own the+  // separator. This lets us unconditionally append a trailing space and place+  // the caret after it, whether the accepted tag is in the middle or at the end.+  const suffix = value.slice(range.end).replace(/^ /, '');+  const inserted = `${replacement} `;+  return {+    value: `${prefix}${inserted}${suffix}`,+    caret: prefix.length + inserted.length,+  };+}++function isWhitespaceOnlyEdit(previous: string, next: string): boolean {+  if (previous === next) return false;++  let start = 0;+  while (start < previous.length && start < next.length && previous[start] === next[start]) {+    start += 1;+  }++  let prevEnd = previous.length;+  let nextEnd = next.length;+  while (prevEnd > start && nextEnd > start && previous[prevEnd - 1] === next[nextEnd - 1]) {+    prevEnd -= 1;+    nextEnd -= 1;+  }++  const removed = previous.slice(start, prevEnd);+  const added = next.slice(start, nextEnd);+  if (removed === '' && added === '') return false;+  return isSpacesOnly(removed) && isSpacesOnly(added);+}++function isSpacesOnly(value: string): boolean {+  return value === '' || /^ *$/.test(value);+}++function getNormalizedTagTerms(value: string): string[] {+  return value+    .split(' ')+    .map((tag) => tag.trim().toLowerCase())+    .filter((tag) => tag !== '');+}
+ frontend/src/index.tsx view
@@ -0,0 +1,67 @@+import { createRoot } from 'react-dom/client';++import { logout } from './api';+import { AccountSettingsView } from './components/AccountSettings';+import { AddForm } from './components/AddForm';+import { BList } from './components/BList';+import { NList } from './components/NList';+import { NNote } from './components/NNote';+import { TagCloud } from './components/TagCloud';+import type { AccountSettings, Bookmark, Note, TagCloudMode } from './types';+import { tagCloudModeToF } from './types';++function selectEl(selector: string): Element | null {+  return document.querySelector(selector);+}++function viewRendered(): void {+  const el = document.querySelector('#content');+  if (el) el.setAttribute('view-rendered', '');+}++export const logoutE = (e: Event) => () => {+  e.preventDefault();+  void logout();+};++export const renderBookmarks = (renderElSelector: string) => (bmarks: Bookmark[]) => () => {+  const el = selectEl(renderElSelector);+  if (!el) return;+  createRoot(el).render(<BList initial={bmarks} />);+  viewRendered();+};++export const renderTagCloud = (renderElSelector: string) => (tagCloudMode: TagCloudMode) => () => {+  const el = selectEl(renderElSelector);+  if (!el) return;+  createRoot(el).render(<TagCloud initialMode={tagCloudModeToF(tagCloudMode)} />);+};++export const renderAddForm = (renderElSelector: string) => (bmark: Bookmark) => () => {+  const el = selectEl(renderElSelector);+  if (!el) return;+  createRoot(el).render(<AddForm initial={bmark} />);+  viewRendered();+};++export const renderNotes = (renderElSelector: string) => (notes: Note[]) => () => {+  const el = selectEl(renderElSelector);+  if (!el) return;+  createRoot(el).render(<NList initial={notes} />);+  viewRendered();+};++export const renderNote = (renderElSelector: string) => (note: Note) => () => {+  const el = selectEl(renderElSelector);+  if (!el) return;+  createRoot(el).render(<NNote initial={note} />);+  viewRendered();+};++export const renderAccountSettings =+  (renderElSelector: string) => (accountSettings: AccountSettings) => () => {+    const el = selectEl(renderElSelector);+    if (!el) return;+    createRoot(el).render(<AccountSettingsView initial={accountSettings} />);+    viewRendered();+  };
+ frontend/src/stores/bookmarksStore.ts view
@@ -0,0 +1,23 @@+import { create } from 'zustand';++import type { Bookmark } from '../types';++export type BookmarksState = {+  bmarks: Bookmark[];+  setAll: (bmarks: Bookmark[]) => void;+  removeById: (bid: number) => void;+  upsert: (bm: Bookmark) => void;+};++export const useBookmarksStore = create<BookmarksState>((set) => ({+  bmarks: [],+  setAll: (bmarks) => {+    set({ bmarks });+  },+  removeById: (bid) => {+    set((s) => ({ bmarks: s.bmarks.filter((b) => b.bid !== bid) }));+  },+  upsert: (bm) => {+    set((s) => ({ bmarks: s.bmarks.map((b) => (b.bid === bm.bid ? bm : b)) }));+  },+}));
+ frontend/src/stores/tagCloudStore.ts view
@@ -0,0 +1,21 @@+import { create } from 'zustand';++import type { TagCloud, TagCloudModeF } from '../types';++export type TagCloudState = {+  mode: TagCloudModeF;+  tagcloud: TagCloud;+  setMode: (mode: TagCloudModeF) => void;+  setTagCloud: (tagcloud: TagCloud) => void;+};++export const useTagCloudStore = create<TagCloudState>((set) => ({+  mode: { kind: 'none' },+  tagcloud: {},+  setMode: (mode) => {+    set({ mode });+  },+  setTagCloud: (tagcloud) => {+    set({ tagcloud });+  },+}));
+ frontend/src/types.ts view
@@ -0,0 +1,128 @@+export type BookmarkId = number;+export type TagId = number;++export type Bookmark = {+  url: string;+  title: string;+  description: string;+  tags: string;+  private: boolean;+  toread: boolean;+  bid: BookmarkId;+  slug: string;+  selected: boolean;+  time: string;+  archiveUrl: string | null;+};++export type NoteId = number;+export type NoteSlug = string;++export type Note = {+  id: NoteId;+  slug: NoteSlug;+  title: string;+  text: string;+  length: number;+  isMarkdown: boolean;+  shared: boolean;+  created: string;+  updated: string;+};++export type AccountSettings = {+  archiveDefault: boolean;+  privateDefault: boolean;+  suggestTags: boolean;+  privacyLock: boolean;+};++export type TagCloudMode = {+  mode: string;+  value: unknown;+  expanded: boolean;+};++export type TagCloud = Record<string, number>;++export type TSuggestion = {+  term: string;+  count: number;+};++export type TagSuggestionRequest = {+  query: string;+  currentTags: string[];+};++export type TagSuggestionResponse = {+  suggestions: TSuggestion[];+};++export type TagCloudModeF =+  | { kind: 'top'; expanded: boolean; value: number }+  | { kind: 'lowerBound'; expanded: boolean; value: number }+  | { kind: 'related'; expanded: boolean; value: string[] }+  | { kind: 'none' };++export function tagCloudModeToF(mode: TagCloudMode): TagCloudModeF {+  switch (mode.mode) {+    case 'top': {+      const n = typeof mode.value === 'number' ? mode.value : Number(mode.value);+      return Number.isFinite(n)+        ? { kind: 'top', expanded: mode.expanded, value: n }+        : { kind: 'none' };+    }+    case 'lowerBound': {+      const n = typeof mode.value === 'number' ? mode.value : Number(mode.value);+      return Number.isFinite(n)+        ? { kind: 'lowerBound', expanded: mode.expanded, value: n }+        : { kind: 'none' };+    }+    case 'related': {+      const s = typeof mode.value === 'string' ? mode.value : '';+      const tags = s ? s.split(' ') : [];+      return { kind: 'related', expanded: mode.expanded, value: tags };+    }+    default:+      return { kind: 'none' };+  }+}++export function tagCloudModeFromF(mode: TagCloudModeF): TagCloudMode {+  switch (mode.kind) {+    case 'top':+      return { mode: 'top', value: mode.value, expanded: mode.expanded };+    case 'lowerBound':+      return { mode: 'lowerBound', value: mode.value, expanded: mode.expanded };+    case 'related':+      return { mode: 'related', value: mode.value.join(' '), expanded: mode.expanded };+    case 'none':+      return { mode: 'none', value: '', expanded: false };+  }+}++export function isExpanded(mode: TagCloudModeF): boolean {+  return mode.kind === 'none' ? false : mode.expanded;+}++export function isRelated(mode: TagCloudModeF): boolean {+  return mode.kind === 'related';+}++export function setExpanded(mode: TagCloudModeF, expanded: boolean): TagCloudModeF {+  return mode.kind === 'none' ? mode : { ...mode, expanded };+}++export function showMode(mode: TagCloudModeF): string {+  switch (mode.kind) {+    case 'top':+      return 'top';+    case 'lowerBound':+      return 'lowerBound';+    case 'related':+      return 'related';+    case 'none':+      return '';+  }+}
+ frontend/src/util.ts view
@@ -0,0 +1,45 @@+export type QueryStringArray = Array<[string, string | null]>;++function unsafeDecode(str: string): string {+  return decodeURIComponent(str);+}++export function parseQueryString(searchOrHash: string): QueryStringArray {+  const first = searchOrHash.slice(0, 1);+  const qs = first === '#' || first === '?' ? searchOrHash.slice(1) : searchOrHash;+  const parts = qs.split('&').filter((x) => x !== '');++  const decode = (s: string) => unsafeDecode(s.replace(/\+/g, ' '));++  const out: QueryStringArray = [];+  for (const kv of parts) {+    const [k, ...rest] = kv.split('=');+    if (!k) continue;+    if (rest.length === 0) out.push([decode(k), null]);+    else if (rest.length === 1) out.push([decode(k), decode(rest[0] ?? '')]);+  }+  return out;+}++export function curQuerystring(): QueryStringArray {+  return parseQueryString(window.location.search);+}++export function lookupQueryStringValue(qs: QueryStringArray, k: string): string | null {+  for (const [key, val] of qs) {+    if (key === k) return val;+  }+  return null;+}++export function encodeTag(tag: string): string {+  return encodeURIComponent(tag.replace(/\+/g, '%2B'));+}++export function fromNullableStr(s: string | null | undefined): string {+  return s ?? '';+}++export function normalizeTags(tags: string): string {+  return tags.replace(/,/g, ' ').replace(/\s+/g, ' ').trim();+}
+ frontend/tsconfig.json view
@@ -0,0 +1,34 @@+{+  "compilerOptions": {+    "allowJs": false,+    "allowSyntheticDefaultImports": true,+    "allowUnreachableCode": false,+    "allowUnusedLabels": false,+    "forceConsistentCasingInFileNames": true,+    "isolatedModules": true,+    "jsx": "react-jsx",+    "lib": ["DOM", "DOM.Iterable", "ES2018", "ES2019"],+    "module": "ESNext",+    "moduleResolution": "Bundler",+    "noEmit": true,+    "noFallthroughCasesInSwitch": true,+    "noImplicitOverride": true,+    "noImplicitReturns": true,+    "noPropertyAccessFromIndexSignature": false,+    "noUncheckedIndexedAccess": false,+    "noUnusedLocals": true,+    "noUnusedParameters": true,+    "resolveJsonModule": true,+    "skipLibCheck": true,+    "strict": true,+    "target": "ES2018",+    "types": [],+    "useDefineForClassFields": true,+    "verbatimModuleSyntax": true,+    "paths": {+      "@/*": ["./src/*"]+    }+  },+  "include": ["src"]+}+
− purs/Makefile
@@ -1,32 +0,0 @@-.PHONY: clean build--all: bundle--install: -	@npm run spago install--build: -	@npm run spago build--bundle: build-	@npm run esbuild-bundle-	@npm run esbuild-bundle-min-	@rm -f dist/*.gz-	@gzip -k dist/app.min.js.map-	@gzip -k dist/app.min.js-	@find dist -type f -printf "%kK\\t%h/%f\\n" | sort -k 2-	@cp dist/app.min.js ../static/js/app.min.js-	@cp dist/app.min.js.gz ../static/js/app.min.js.gz-	@cp dist/app.min.js.map ../static/js/app.min.js.map-	@cp dist/app.min.js.map.gz ../static/js/app.min.js.map.gz--docs:-	@rm -Rf generated-docs-	@npm run purs -- docs ".spago/*/*/src/**/*.purs" --format html--docset: docs-	@(cd docset; python3 ./gen-docset.py)-clean:-	rm -f dist/*--# inotifywait -m -r -q -e close_write --format '%T %w%f' --timefmt '%T' src | while read FILE; do echo $FILE; make build; done
− purs/packages.dhall
@@ -1,42 +0,0 @@-{--### Overriding/Patching a package-let upstream = ---in  upstream-  with halogen.version = "master"-  with halogen.repo = "https://example.com/path/to/git/repo.git"-  with halogen-vdom.version = "v4.0.0"--### Additions-let upstream = ---in  upstream-  with new-package-name =-    { dependencies =-       [ "dependency1"-       , "dependency2"-       ]-    , repo =-       "https://example.com/path/to/git/repo.git"-    , version =-        "<version>"-    }--}-let upstream =-      https://raw.githubusercontent.com/purescript/package-sets/psc-0.15.14-20240117/src/packages.dhall-        sha256:2ca7a513183cb6273394fc328b0b891044c159af7d9bc11ee7c7e20c3e48e6dc--in  upstream-  with simple-json =-    { dependencies =-      [ "arrays"-      , "exceptions"-      , "foreign"-      , "foreign-object"-      , "nullable"-      , "prelude"-      , "record"-      , "typelevel-prelude"-      , "variant"-      ]-    , repo = "https://github.com/justinwoo/purescript-simple-json.git"-    , version = "v9.0.0"-    }
− purs/spago.dhall
@@ -1,41 +0,0 @@-{ sources = [ "src/**/*.purs", "test/**/*.purs" ]-, name = "espial"-, dependencies =-  [ "aff"-  , "affjax"-  , "affjax-web"-  , "arrays"-  , "console"-  , "const"-  , "dom-indexed"-  , "effect"-  , "either"-  , "foldable-traversable"-  , "foreign"-  , "foreign-object"-  , "form-urlencoded"-  , "functions"-  , "halogen"-  , "http-methods"-  , "integers"-  , "js-uri"-  , "maybe"-  , "media-types"-  , "newtype"-  , "nullable"-  , "numbers"-  , "partial"-  , "prelude"-  , "profunctor-lenses"-  , "simple-json"-  , "strings"-  , "transformers"-  , "tuples"-  , "unsafe-coerce"-  , "web-dom"-  , "web-events"-  , "web-html"-  , "web-xhr"-  ]-, packages = ./packages.dhall-}
− purs/src/App.purs
@@ -1,138 +0,0 @@-module App where--import Prelude--import Affjax.RequestBody as AXReq-import Affjax.RequestHeader (RequestHeader(..))-import Affjax.ResponseFormat as AXRes-import Affjax.StatusCode (StatusCode(..))-import Affjax.Web (Response, Error)-import Affjax.Web (defaultRequest) as AX-import Affjax.Web as Ax-import Data.Array ((:))-import Data.Either (Either(..), hush)-import Data.FormURLEncoded (FormURLEncoded)-import Data.HTTP.Method (Method(..))-import Data.Maybe (Maybe(..))-import Data.MediaType.Common (applicationFormURLEncoded, applicationJSON)-import Effect.Aff (Aff)-import Effect.Class (liftEffect)-import Globals (app')-import Model (Bookmark, Bookmark'(..), Note, Note'(..), AccountSettings, AccountSettings'(..), TagCloudMode, TagCloudMode'(..), TagCloud)-import Simple.JSON as J-import Unsafe.Coerce (unsafeCoerce)-import Web.HTML (window)-import Web.HTML.Location (reload)-import Web.HTML.Window (location)--data StarAction = Star | UnStar-instance showStar :: Show StarAction where-  show Star = "star"-  show UnStar = "unstar"--toggleStar :: Int -> StarAction -> Aff Unit-toggleStar bid action = do-  let path = "bm/" <> show bid <> "/" <> show action-  void (fetchUrlEnc POST path Nothing AXRes.ignore)--destroy :: Int -> Aff (Either Error (Response Unit))-destroy bid =-  fetchUrlEnc DELETE ("bm/" <> show bid) Nothing AXRes.ignore--markRead :: Int -> Aff (Either Error (Response Unit))-markRead bid = do-  let path = "bm/" <> show bid <> "/read"-  fetchUrlEnc POST path Nothing AXRes.ignore--editBookmark :: Bookmark -> Aff (Either Error (Response String))-editBookmark bm =  do-    fetchJson POST "api/add" (Just (Bookmark' bm)) AXRes.string--editNote :: Note -> Aff (Either Error (Response String))-editNote bm =  do-    fetchJson POST "api/note/add" (Just (Note' bm)) AXRes.string--lookupTitle :: Bookmark -> Aff (Maybe String)-lookupTitle bm = do-  eres <- fetchJson POST "api/lookuptitle" (Just (Bookmark' bm)) AXRes.string-  pure $ hush eres >>= \res ->-    if (res.status == StatusCode 200)-    then Just res.body-    else Nothing-      -getTagCloud :: TagCloudMode -> Aff (Maybe TagCloud)-getTagCloud mode = do-    eres <- fetchJson POST "api/tagcloud" (Just (TagCloudMode' mode)) AXRes.json-    pure $ hush eres >>= \res ->-        pure (unsafeCoerce res.body)--updateTagCloudMode :: TagCloudMode -> Aff (Either Error (Response Unit))-updateTagCloudMode mode = do-    fetchJson POST "api/tagcloudmode" (Just (TagCloudMode' mode)) AXRes.ignore-  -destroyNote :: Int -> Aff (Either Error (Response Unit))-destroyNote nid =  do-  fetchUrlEnc DELETE ("api/note/" <> show nid) Nothing AXRes.ignore--editAccountSettings :: AccountSettings -> Aff (Either Error (Response Unit))-editAccountSettings us =  do-    fetchJson POST "api/accountSettings" (Just (AccountSettings' us)) AXRes.ignore--logout :: Unit -> Aff Unit-logout u = do-  void (fetchUrl POST app.authRlogoutR [] Nothing AXRes.ignore)-  liftEffect (window >>= location >>= reload)-  where-    app = app' u--fetchJson-  :: forall a b.-     J.WriteForeign b-  => Method-  -> String-  -> Maybe b-  -> AXRes.ResponseFormat a-  -> Aff (Either Error (Response a))-fetchJson method path content rt =-    fetchPath method path [ContentType applicationJSON] (AXReq.string <<< J.writeJSON <$> content) rt--fetchUrlEnc-  :: forall a.-     Method-  -> String-  -> Maybe FormURLEncoded-  -> AXRes.ResponseFormat a-  -> Aff (Either Error (Response a))-fetchUrlEnc method path content rt =-    fetchPath method path [ContentType applicationFormURLEncoded] (AXReq.FormURLEncoded <$> content) rt--fetchPath-  :: forall a.-     Method-  -> String-  -> Array RequestHeader-  -> Maybe AXReq.RequestBody-  -> AXRes.ResponseFormat a-  -> Aff (Either Error (Response a))-fetchPath method path headers content rt =-    fetchUrl method ((app' unit).homeR <> path) headers content rt--fetchUrl-  :: forall a.-     Method-  -> String-  -> Array RequestHeader-  -> Maybe AXReq.RequestBody-  -> AXRes.ResponseFormat a-  -> Aff (Either Error (Response a))-fetchUrl method url headers content rt =-  Ax.request-    AX.defaultRequest-    { url = url-    , method = Left method-    , headers = RequestHeader app.csrfHeaderName app.csrfToken : headers-    , content = content-    , responseFormat = rt-    }-  where-    app = app' unit
− purs/src/Component/AccountSettings.purs
@@ -1,86 +0,0 @@-module Component.AccountSettings where--import Prelude hiding (div)--import App (editAccountSettings)-import Data.Lens (Lens', lens, use, (%=))-import Effect.Aff (Aff)-import Halogen as H-import Halogen.HTML (div, input, text)-import Halogen.HTML.Elements (label)-import Halogen.HTML.Events (onChecked)-import Halogen.HTML.Properties (InputType(..), checked, for, id, name, type_)-import Model (AccountSettings)-import Util (class_)-import Web.Event.Event (Event)--type UState =-  { us :: AccountSettings-  }--_us :: Lens' UState AccountSettings-_us = lens _.us (_ { us = _ })--data UAction-  = UEditField EditField-  | USubmit Event--data EditField-  = EarchiveDefault Boolean-  | EprivateDefault Boolean-  | EprivacyLock Boolean----- | The bookmark component definition.-usetting :: forall q i o. AccountSettings -> H.Component q i o Aff-usetting u' =-  H.mkComponent-    { initialState: const (mkState u')-    , render-    , eval: H.mkEval $ H.defaultEval { handleAction = handleAction }-    }-  where--  mkState u =-    { us: u-    }--  render :: forall m. UState -> H.ComponentHTML UAction () m-  render { us } =-    div [ class_ "settings-form" ]-    [ div [ class_ "fw7 mb2"] [ text "Account Settings" ]-    , div [ class_ "flex items-center mb2" ]-      [ input [ type_ InputCheckbox , class_ "pointer mr2" , id "archiveDefault", name "archiveDefault"-              , checked (us.archiveDefault) , onChecked (editField EarchiveDefault) ]-      , label [ for "archiveDefault", class_ "lh-copy" ]-        [ text "Archive Non-Private Bookmarks (archive.li)" ]-      ]-    , div [ class_ "flex items-center mb2" ]-      [ input [ type_ InputCheckbox , class_ "pointer mr2" , id "privateDefault", name "privateDefault"-              , checked (us.privateDefault) , onChecked (editField EprivateDefault) ]-      , label [ for "privateDefault", class_ "lh-copy"  ]-        [ text "Default new bookmarks to Private" ]-      ]-    , div [ class_ "flex items-center mb2" ]-      [ input [ type_ InputCheckbox , class_ "pointer mr2" , id "privacyLock", name "privacyLock"-              , checked (us.privacyLock) , onChecked (editField EprivacyLock) ]-      , label [ for "privacyLock", class_ "lh-copy"  ]-        [ text "Privacy Lock (Private Account)" ]-      ]-    ]-    where-      editField :: forall a. (a -> EditField) -> a -> UAction-      editField f = UEditField <<< f--  handleAction :: UAction -> H.HalogenM UState UAction () o Aff Unit-  handleAction (UEditField f) = do-    _us %= case f of-      EarchiveDefault e -> _ { archiveDefault = e }-      EprivateDefault e -> _ { privateDefault = e }-      EprivacyLock e -> _ { privacyLock = e }-    us <- use _us-    void $ H.liftAff (editAccountSettings us)--  handleAction (USubmit _) = do-    us <- use _us-    void $ H.liftAff (editAccountSettings us)
− purs/src/Component/Add.purs
@@ -1,220 +0,0 @@-module Component.Add where--import Prelude hiding (div)--import Affjax (printError)-import Affjax.StatusCode (StatusCode(..))-import App (destroy, editBookmark, lookupTitle)-import Data.Either (Either(..))-import Data.Lens (Lens', lens, use, (%=), (.=))-import Data.Maybe (Maybe(..), fromMaybe, isJust, maybe)-import Data.Monoid (guard)-import Data.String (Pattern(..), null, stripPrefix)-import Data.Tuple (fst, snd)-import Effect.Aff (Aff)-import Effect.Class (liftEffect)-import Effect.Console (log)-import Globals (closeWindow, mmoment8601)-import Halogen as H-import Halogen.HTML (button, div, form, input, label, p, span, table, tbody_, td, td_, text, textarea, tr_)-import Halogen.HTML.Events (onSubmit, onValueChange, onChecked, onClick)-import Halogen.HTML.Properties (ButtonType(..), InputType(..), autocomplete, autofocus, checked, disabled, for, id, name, required, rows, title, type_, value)-import Model (Bookmark)-import Util (_curQuerystring, _loc, _doc, _lookupQueryStringValue, attr, class_, ifElseH, whenH)-import Web.Event.Event (Event, preventDefault)-import Web.HTML (window)-import Web.HTML.HTMLDocument (referrer)-import Web.HTML.Location (setHref, origin)-import DOM.HTML.Indexed.AutocompleteType (AutocompleteType(..))--data BAction-  = BEditField EditField-  | BEditSubmit Event-  | BDeleteAsk Boolean-  | BLookupTitle-  | BDestroy--data EditField-  = Eurl String-  | Etitle String-  | Edescription String-  | Etags String-  | Eprivate Boolean-  | Etoread Boolean--type BState =-  { bm :: Bookmark-  , edit_bm :: Bookmark-  , deleteAsk :: Boolean-  , loading :: Boolean-  , destroyed :: Boolean-  , apiError :: Maybe String-  }--_bm :: Lens' BState Bookmark-_bm = lens _.bm (_ { bm = _ })--_edit_bm :: Lens' BState Bookmark-_edit_bm = lens _.edit_bm (_ { edit_bm = _ })--_apiError :: Lens' BState (Maybe String)-_apiError = lens _.apiError (_ { apiError = _ })--addbmark :: forall q i o. Bookmark -> H.Component q i o Aff-addbmark b' =-  H.mkComponent-    { initialState: const (mkState b')-    , render-    , eval: H.mkEval $ H.defaultEval { handleAction = handleAction }-    }-  where--  mkState b =-    { bm: b-    , edit_bm: b-    , deleteAsk: false-    , destroyed: false-    , loading: false-    , apiError: Nothing-    }--  render :: forall m. BState -> H.ComponentHTML BAction () m-  render s@{ bm, edit_bm, apiError } =-    ifElseH (not s.destroyed)-      display_edit-      display_destroyed-   where-     display_edit _ =-       form [ onSubmit BEditSubmit ]-       [ table [ class_ "w-100" ]-         [ tbody_-           [ tr_-             [ td [ class_ "w1" ] [ ]-             , td_ [ whenH (bm.bid > 0)-                       display_exists,-                     whenH (isJust apiError)-                       (alert_notification (fromMaybe "" apiError))-                   ]-             ]-           , tr_-             [ td_ [ label [ for "url" ] [ text "URL" ] ]-             , td_ [ input [ type_ InputUrl , id "url", class_ "w-100 mv1" , required true, name "url", autofocus (null bm.url)-                          , value (edit_bm.url) , onValueChange (editField Eurl)] ]-             ]-           , tr_-             [ td_ [ label [ for "title" ] [ text "title" ] ]-             , td [class_ "flex"]-                  [ input [ type_ InputText , id "title", class_ "w-100 mv1 flex-auto" , name "title" , value (edit_bm.title) , onValueChange (editField Etitle)]-                  , button [ disabled s.loading, type_ ButtonButton, onClick \_ -> BLookupTitle, class_ ("ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0 " <> guard s.loading "bg-light-silver") ] [ text "fetch" ]-                  ]-             ]-           , tr_-             [ td_ [ label [ for "description" ] [ text "description" ] ]-             , td_ [ textarea [ class_ "w-100 mt1 mid-gray" , id "description", name "description", rows 4-                              , value (edit_bm.description) , onValueChange (editField Edescription)] ]-             ]-           , tr_-             [ td_ [ label [ for "tags" ] [ text "tags" ] ]-             , td_ [ input [ type_ InputText , id "tags", class_ "w-100 mv1" , name "tags", autocomplete AutocompleteOff, attr "autocapitalize" "off", autofocus (not $ null bm.url)-                           , value (edit_bm.tags) , onValueChange (editField Etags)] ]-             ]-           , tr_-             [ td_ [ label [ for "private" ] [ text "private" ] ]-             , td_ [ input [ type_ InputCheckbox , id "private", class_ "private pointer" , name "private"-                           , checked (edit_bm.private) , onChecked (editField Eprivate)] ]-             ]-           , tr_-             [ td_ [ label [ for "toread" ] [ text "read later" ] ]-             , td_ [ input [ type_ InputCheckbox , id "toread", class_ "toread pointer" , name "toread"-                           , checked (edit_bm.toread) , onChecked (editField Etoread)] ]-             ]-           , tr_-             [ td_ [ ]-             , td_ [ input [ type_ InputSubmit , class_ "ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt1 dim"-                           , value (if bm.bid > 0 then "update bookmark" else "add bookmark") ] ]-             ]-           ]-         ]-       ]--     display_exists _ = -       div [ class_ "alert" ]-       [ text "previously saved "-       , span [ class_ "link f7 dib gray pr3" , title (maybe bm.time snd mmoment) ]-         [ text (maybe " " fst mmoment) ]-       , div [ class_ "edit_links dib ml1" ]-         [ div [ class_ "delete_link di" ]-           [ button ([ type_ ButtonButton, onClick \_ -> BDeleteAsk true, class_ "delete" ] <> guard s.deleteAsk [ attr "hidden" "hidden" ]) [ text "delete" ]-           , span ([ class_ "confirm red" ] <> guard (not s.deleteAsk) [ attr "hidden" "hidden" ])-             [ button [ type_ ButtonButton, onClick \_ -> BDeleteAsk false] [ text "cancel / " ]-             , button [ type_ ButtonButton, onClick \_ -> BDestroy, class_ "red" ] [ text "destroy" ]-             ] -           ]-         ]-       ]--     alert_notification alert_text _ = -       div [ class_ "alert alert-err" ] [ text alert_text ]--     display_destroyed _ = p [ class_ "red"] [text "you killed this bookmark"]--     editField :: forall a. (a -> EditField) -> a -> BAction-     editField f = BEditField <<< f-     mmoment = mmoment8601 bm.time-     -- toTextarea =-     --   drop 1-     --     <<< foldMap (\x -> [br_, text x])-     --     <<< S.split (Pattern "\n")--  handleAction :: BAction -> H.HalogenM BState BAction () o Aff Unit-  handleAction (BDeleteAsk e) = do-    H.modify_ (_ { deleteAsk = e })--  handleAction BLookupTitle = do-    H.modify_ (_ { loading = true })-    edit_bm <- H.gets _.edit_bm-    mtitle <- H.liftAff $ lookupTitle edit_bm-    case mtitle of-      Just title' -> _edit_bm %= (_ { title = title' })-      Nothing -> pure $ unit-    H.modify_ (_ { loading = false })--  handleAction (BDestroy) = do-    bid <- H.gets _.bm.bid-    void $ H.liftAff (destroy bid)-    H.modify_ (_ { destroyed = true })--  handleAction (BEditField f) = do-    _edit_bm %= case f of-      Eurl e -> _ { url = e }-      Etitle e -> _ { title = e }-      Edescription e -> _ { description = e }-      Etags e -> _ { tags = e }-      Eprivate e -> _ { private = e }-      Etoread e -> _ { toread = e }--  handleAction (BEditSubmit e) = do-    liftEffect (preventDefault e)-    edit_bm <- use _edit_bm -    _apiError .= Nothing-    H.liftAff (editBookmark edit_bm) >>= case _ of-      Left affErr -> do-        _apiError .= Just (printError affErr)-        liftEffect $ log (printError affErr)-      Right { status: StatusCode s } | s >= 200 && s < 300 -> do-        _bm .= edit_bm-        qs <- liftEffect $ _curQuerystring-        doc <- liftEffect $ _doc-        ref <- liftEffect $ referrer doc-        loc <- liftEffect $ _loc-        org <- liftEffect $ origin loc-        case _lookupQueryStringValue qs "next" of-          Just "closeWindow" -> liftEffect $ closeWindow =<< window-          Just "back" -> liftEffect $-            case stripPrefix (Pattern org) ref of-              Just _ -> setHref ref loc-              Nothing -> setHref org loc-          _ -> liftEffect $ closeWindow =<< window-      Right res -> do-        _apiError .= Just (res.body)-        liftEffect $ log (res.body)
− purs/src/Component/BList.purs
@@ -1,38 +0,0 @@-module Component.BList where--import Prelude--import Component.BMark (BMessage(..), BSlot, bmark)-import Model (Bookmark, BookmarkId)--import Data.Array (filter)-import Effect.Aff (Aff)-import Halogen as H-import Halogen.HTML as HH-import Type.Proxy (Proxy(..))--data LAction =-  HandleBMessage BookmarkId BMessage--type ChildSlots =-  ( bookmark :: BSlot Int-  )--_bookmark = Proxy :: Proxy "bookmark"--blist :: forall q i o. Array Bookmark -> H.Component q i o Aff-blist st =-  H.mkComponent-    { initialState: const st-    , render-    , eval: H.mkEval $ H.defaultEval { handleAction = handleAction }-    }-  where--  render :: Array Bookmark -> H.ComponentHTML LAction ChildSlots Aff-  render bms =-    HH.div_ $ map (\b -> HH.slot _bookmark b.bid (bmark b) unit (HandleBMessage b.bid)) bms--  handleAction :: LAction -> H.HalogenM (Array Bookmark) LAction ChildSlots o Aff Unit-  handleAction (HandleBMessage bid BNotifyRemove) = do-    H.modify_ (filter (\b -> b.bid /= bid))
− purs/src/Component/BMark.purs
@@ -1,286 +0,0 @@-module Component.BMark where--import Prelude hiding (div)--import Affjax (printError)-import Affjax.StatusCode (StatusCode(..))-import App (StarAction(..), destroy, editBookmark, markRead, toggleStar, lookupTitle)-import Component.Markdown as Markdown-import Data.Const (Const)-import Data.Either (Either(..))-import Data.Lens (Lens', lens, use, (%=), (.=))-import Data.Maybe (Maybe(..), fromMaybe, isJust)-import Data.Monoid (guard)-import Data.Nullable (toMaybe)-import Data.String (null, split, take, replaceAll) as S-import Data.String.Pattern (Pattern(..), Replacement(..))-import Effect.Aff (Aff)-import Effect.Class (liftEffect)-import Effect.Class.Console (log)-import Globals (app', setFocus, toLocaleDateString)-import Halogen as H-import Halogen.HTML (a, br_, button, div, div_, form, input, label, span, text, textarea)-import Halogen.HTML as HH-import Halogen.HTML.Events (onSubmit, onValueChange, onChecked, onClick)-import Halogen.HTML.Properties (ButtonType(..), InputType(..), autocomplete, checked, disabled, for, href, id, name, required, rows, target, title, type_, value)-import Model (Bookmark)-import Type.Proxy (Proxy(..))-import Util (attr, class_, encodeTag, fromNullableStr, ifElseH, whenA, whenH)-import Web.Event.Event (Event, preventDefault)-import DOM.HTML.Indexed.AutocompleteType (AutocompleteType(..))---- | UI Events-data BAction-  = BStar Boolean-  | BDeleteAsk Boolean-  | BLookupTitle-  | BDestroy-  | BEdit Boolean-  | BEditField EditField-  | BEditSubmit Event-  | BMarkRead---- | FormField Edits-data EditField-  = Eurl String-  | Etitle String-  | Edescription String-  | Etags String-  | Eprivate Boolean-  | Etoread Boolean---- | Messages to parent-data BMessage-  = BNotifyRemove--type BSlot = H.Slot (Const Void) BMessage--type BState =-  { bm :: Bookmark-  , edit_bm :: Bookmark-  , deleteAsk:: Boolean-  , edit :: Boolean-  , loading :: Boolean-  , apiError :: Maybe String-  }--_bm :: Lens' BState Bookmark-_bm = lens _.bm (_ { bm = _ })--_edit_bm :: Lens' BState Bookmark-_edit_bm = lens _.edit_bm (_ { edit_bm = _ })--_edit :: Lens' BState Boolean-_edit = lens _.edit (_ { edit = _ })--_apiError :: Lens' BState (Maybe String)-_apiError = lens _.apiError (_ { apiError = _ })--_markdown = Proxy :: Proxy "markdown"--type ChildSlots =-  ( markdown :: Markdown.Slot Unit-  )--bmark :: forall q i. Bookmark -> H.Component q i BMessage Aff-bmark b' =-  H.mkComponent-    { initialState: const (mkState b')-    , render-    , eval: H.mkEval $ H.defaultEval { handleAction = handleAction }-    }-  where-  app = app' unit--  mkState b =-    { bm: b-    , edit_bm: b-    , deleteAsk: false-    , edit: false-    , loading: false-    , apiError: Nothing-    }--  render :: BState -> H.ComponentHTML BAction ChildSlots Aff-  render s@{ bm, edit_bm, apiError } =-    div [ id (show bm.bid) , class_ ("bookmark w-100 mw7 pa1 mb3" <> guard bm.private " private")] $-      [ whenH app.dat.isowner-          star-      , ifElseH s.edit-          display_edit-          display-      ]--    where--     star _ =-       div [ class_ ("star fl pointer" <> guard bm.selected " selected") ]-       [ button [ class_ "moon-gray", onClick \_ -> BStar (not bm.selected) ] [ text "✭" ] ]--     display _ =-        div [ class_ "display" ] $-        [ a [ href bm.url, target "_blank", class_ ("link f5 lh-title" <> guard bm.toread " unread")]-          [ text $ if S.null bm.title then "[no title]" else bm.title ]-        , br_-        , a [ href bm.url , class_ "link f7 gray hover-blue" ] [ text bm.url ]-        , a [ href (fromMaybe ("http://archive.is/" <> bm.url) (toMaybe bm.archiveUrl))-            , class_ ("link f7 gray hover-blue ml2" <> (guard (isJust (toMaybe bm.archiveUrl)) " green"))-            , target "_blank", title "archive link"]-            [ if isJust (toMaybe bm.archiveUrl) then text "☑" else text "☐" ]-        , br_-        , div [ class_ "description mt1 mid-gray" ] [ HH.slot _markdown unit Markdown.component bm.description absurd ]-        , div [ class_ "tags" ] $-              whenA (not (S.null bm.tags)) $ \_ ->-                map (\tag -> a [ class_ ("link tag mr1" <> guard (S.take 1 tag == ".") " private")-                             , href (linkToFilterTag tag) ]-                             [ text tag ])-                (S.split (Pattern " ") bm.tags)-              -        , a [ class_ "link f7 dib gray w4", href (linkToFilterSingle bm.slug), title shdatetime ]-          [ text shdate ]--        -- links-        , whenH app.dat.isowner $ \_ ->-            div [ class_ "edit_links di" ]-            [ button [ type_ ButtonButton, onClick \_ -> BEdit true, class_ "edit light-silver hover-blue" ] [ text "edit  " ]-            , div [ class_ "delete_link di" ]-              [ button [ type_ ButtonButton, onClick \_ -> BDeleteAsk true, class_ ("delete light-silver hover-blue" <> guard s.deleteAsk " dn") ] [ text "delete" ]-              , span ([ class_ ("confirm red" <> guard (not s.deleteAsk) " dn") ] )-                [ button [ type_ ButtonButton, onClick \_ -> BDeleteAsk false] [ text "cancel / " ]-                , button [ type_ ButtonButton, onClick \_ -> BDestroy, class_ "red" ] [ text "destroy" ]-                ] -              ]-            ]-        , whenH app.dat.isowner $ \_ ->-            div [ class_ "read di" ] $-              guard bm.toread-              [ text "  "-              , button [ onClick \_ -> BMarkRead, class_ "mark_read" ] [ text "mark as read"]-              ]-        ]-       --     display_edit _ =-       div [ class_ "edit_bookmark_form pa2 pt0 bg-white" ] $-       [ whenH (isJust apiError)-              (alert_notification (fromMaybe "" apiError))-       , form [ onSubmit BEditSubmit ]-         [ div_ [ text "url" ]-         , input [ type_ InputUrl , class_ "url w-100 mb2 pt1 edit_form_input" , required true , name "url"-                 , value (edit_bm.url) , onValueChange (editField Eurl) ]-         , div_ [ text "title" ]-         , div [class_ "flex"]-               [input [ type_ InputText , class_ "title w-100 mb2 pt1 edit_form_input" , name "title"-                      , value (edit_bm.title) , onValueChange (editField Etitle) ]-               , button [ disabled s.loading, type_ ButtonButton, onClick \_ -> BLookupTitle, class_ ("ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7 " <> guard s.loading "bg-light-silver") ] [ text "fetch" ]-               ]-         , div_ [ text "description" ]-         , textarea [ class_ "description w-100 mb1 pt1 edit_form_input" , name "description", rows 5-                    , value (edit_bm.description) , onValueChange (editField Edescription) ]-         , div [ id "tags_input_box"]-           [ div_ [ text "tags" ]-             , input [ id (tagid edit_bm), type_ InputText , class_ "tags w-100 mb1 pt1 edit_form_input" , name "tags"-                     , autocomplete AutocompleteOff, attr "autocapitalize" "off"-                     , value (edit_bm.tags) , onValueChange (editField Etags) ]-           ]-         , div [ class_ "edit_form_checkboxes mv3"]-           [ input [ type_ InputCheckbox , class_ "private pointer" , id "edit_private", name "private"-                   , checked (edit_bm.private) , onChecked (editField Eprivate) ]-           , text " "-           , label [ for "edit_private" , class_ "mr2" ] [ text "private" ]-           , text " "-           , input [ type_ InputCheckbox , class_ "toread pointer" , id "edit_toread", name "toread"-                   , checked (edit_bm.toread) , onChecked (editField Etoread) ]-           , text " "-           , label [ for "edit_toread" ] [ text "to-read" ]-           ]-         , input [ type_ InputSubmit , class_ "mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim" , value "save" ]-         , text " "-         , input [ type_ InputReset , class_ "pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim" , value "cancel"-                 , onClick \_ -> BEdit false ]-         ]-       ]-       -     alert_notification alert_text _ = -       div [ class_ "alert alert-err" ] [ text alert_text ]--     editField :: forall a. (a -> EditField) -> a -> BAction-     editField f = BEditField <<< f-     linkToFilterSingle slug = fromNullableStr app.userR <> "/b:" <> slug-     linkToFilterTag tag = fromNullableStr app.userR <> "/t:" <> encodeTag tag -     shdate = toLocaleDateString bm.time -     shdatetime = S.take 16 bm.time `append` "Z"--  tagid bm = show bm.bid <> "_tags"--  handleAction :: BAction -> H.HalogenM BState BAction ChildSlots BMessage Aff Unit--  -- | Star-  handleAction (BStar e) = do-    bm <- use _bm-    H.liftAff (toggleStar bm.bid (if e then Star else UnStar))-    _bm %= _ { selected = e }-    _edit_bm %= _ { selected = e }--  -- | Delete-  handleAction (BDeleteAsk e) = do-    H.modify_ (_ { deleteAsk = e })--  -- | Destroy-  handleAction (BDestroy) = do-    bm <- use _bm-    void $ H.liftAff (destroy bm.bid)-    H.raise BNotifyRemove--  -- | Mark Read-  handleAction (BMarkRead) = do-    bm <- use _bm-    void (H.liftAff (markRead bm.bid))-    _bm %= _ { toread = false }--  -- | Start/Stop Editing-  handleAction (BEdit e) = do-    bm <- use _bm-    _edit_bm .= bm-    _edit .= e-    _apiError .= Nothing-    H.liftEffect $-      when e-        (setFocus (tagid bm)) --  -- | Update Form Field -  handleAction (BEditField f) = do-    _edit_bm %= case f of-      Eurl e -> _ { url = e }-      Etitle e -> _ { title = e }-      Edescription e -> _ { description = e }-      Etags e -> _ { tags = e }-      Eprivate e -> _ { private = e }-      Etoread e -> _ { toread = e }--  -- | Lookup Title-  handleAction BLookupTitle = do-    H.modify_ (_ { loading = true })-    edit_bm <- H.gets _.edit_bm-    mtitle <- H.liftAff $ lookupTitle edit_bm-    case mtitle of-      Just title' -> _edit_bm %= (_ { title = title' })-      Nothing -> pure $ unit-    H.modify_ (_ { loading = false })--  -- | Submit-  handleAction (BEditSubmit e) = do-    H.liftEffect (preventDefault e)-    edit_bm <- use _edit_bm-    _apiError .= Nothing-    let edit_bm' = edit_bm { tags = S.replaceAll (Pattern ",") (Replacement " ") edit_bm.tags }-    H.liftAff (editBookmark edit_bm') >>= case _ of-      Left affErr -> do-        _apiError .= Just (printError affErr)-        liftEffect $ log (printError affErr)-      Right { status: StatusCode s } | s >= 200 && s < 300 -> do-        _bm .= edit_bm'-        _edit .= false-      Right res -> do-        _apiError .= Just (res.body)-        liftEffect $ log (res.body)
− purs/src/Component/Markdown.purs
@@ -1,13 +0,0 @@-module Component.Markdown (component, Slot) where--import Component.RawHtml as RH-import Data.Const (Const)-import Effect.Aff (Aff)-import Foreign.Marked (marked)-import Halogen as H-import Prelude (Void)--type Slot = H.Slot (Const Void) Void--component :: forall q o. H.Component q String o Aff-component = RH.mkComponent marked
− purs/src/Component/NList.purs
@@ -1,75 +0,0 @@-module Component.NList where--import Prelude hiding (div)--import Data.Array (drop, foldMap)-import Data.Maybe (Maybe(..), maybe)-import Data.String (null, split, take) as S-import Data.String.Pattern (Pattern(..))-import Data.Tuple (fst, snd)-import Effect.Aff (Aff)-import Globals (app', mmoment8601)-import Halogen as H-import Halogen.HTML (a, br_, div, text)-import Halogen.HTML as HH-import Halogen.HTML.Properties (href, id, title)-import Model (Note, NoteSlug)-import Util (class_, fromNullableStr)--data NLAction-  = NLNop--type NLState =-  { notes :: Array Note-  , cur :: Maybe NoteSlug-  , deleteAsk:: Boolean-  , edit :: Boolean-  }---nlist :: forall q i o. Array Note -> H.Component q i o Aff-nlist st' =-  H.mkComponent-    { initialState: const (mkState st')-    , render-    , eval: H.mkEval $ H.defaultEval { handleAction = handleAction }-    }-  where-  app = app' unit--  mkState notes' =-    { notes: notes'-    , cur: Nothing-    , deleteAsk: false-    , edit: false-    }--  render :: NLState -> H.ComponentHTML NLAction () Aff-  render { notes } =-    HH.div_ (map renderNote notes)-    where-      renderNote note =-        div [ id (show note.id)-            , class_ ("note w-100 mw7 pa1 mb2"-                     <> if note.shared then "" else " private")] $-           [ div [ class_ "display" ] $-             [ a [ href (linkToFilterSingle note.slug), class_ ("link f5 lh-title")]-               [ text $ if S.null note.title then "[no title]" else note.title ]-             , br_-             , div [ class_ "description mt1 mid-gray" ] (toTextarea (S.take 200 note.text))-             ,  a [ class_ "link f7 dib gray w4"-                  , title (maybe note.created snd (mmoment note))-                  , href (linkToFilterSingle note.slug)]-                [text (maybe " " fst (mmoment note))]-             ]-           ]--  mmoment note = mmoment8601 note.created-  linkToFilterSingle slug = fromNullableStr app.userR <> "/notes/" <> slug-  toTextarea input =-    S.split (Pattern "\n") input-    # foldMap (\x -> [br_, text x])-    # drop 1--  handleAction :: NLAction -> H.HalogenM NLState NLAction () o Aff Unit-  handleAction NLNop = pure unit
− purs/src/Component/NNote.purs
@@ -1,249 +0,0 @@-module Component.NNote where--import Prelude hiding (div)--import Affjax (printError)-import Affjax.StatusCode (StatusCode(..))-import App (destroyNote, editNote)-import Component.Markdown as Markdown-import Data.Array (drop, foldMap)-import Data.Either (Either(..))-import Data.Lens (Lens', lens, use, (%=), (.=))-import Data.Maybe (Maybe(..), fromMaybe, isJust, maybe)-import Data.Monoid (guard)-import Data.String (null, split) as S-import Data.String (null, stripPrefix)-import Data.String.Pattern (Pattern(..))-import Data.Tuple (fst, snd)-import Effect.Aff (Aff)-import Effect.Class (liftEffect)-import Effect.Console (log)-import Globals (app', mmoment8601, setFocus, closeWindow)-import Halogen as H-import Halogen.HTML (br_, button, div, form, input, label, p, span, text, textarea)-import Halogen.HTML as HH-import Halogen.HTML.Events (onChecked, onClick, onSubmit, onValueChange)-import Halogen.HTML.Properties (ButtonType(..), InputType(..), autofocus, checked, for, id, name, rows, title, type_, value)-import Model (Note)-import Type.Proxy (Proxy(..))-import Util (_curQuerystring, _doc, _loc, _lookupQueryStringValue, class_, fromNullableStr, ifElseH, whenH)-import Web.Event.Event (Event, preventDefault)-import Web.HTML (window)-import Web.HTML.HTMLDocument (referrer)-import Web.HTML.Location (origin, setHref)--data NAction-  = NNop-  | NEditField EditField-  | NEditSubmit Event-  | NEdit Boolean-  | NDeleteAsk Boolean-  | NDestroy--type NState =-  { note :: Note-  , edit_note :: Note-  , deleteAsk :: Boolean-  , edit :: Boolean-  , destroyed :: Boolean-  , apiError :: Maybe String-  }--_note :: Lens' NState Note-_note = lens _.note (_ { note = _ })--_edit_note :: Lens' NState Note-_edit_note = lens _.edit_note (_ { edit_note = _ })--_edit :: Lens' NState Boolean-_edit = lens _.edit (_ { edit = _ })--_apiError :: Lens' NState (Maybe String)-_apiError = lens _.apiError (_ { apiError = _ })---- | FormField Edits-data EditField-  = Etitle String-  | Etext String-  | EisMarkdown Boolean-  | Eshared Boolean--_markdown = Proxy :: Proxy "markdown"--type ChildSlots =-  ( markdown :: Markdown.Slot Unit-  )--nnote :: forall q i o. Note -> H.Component q i o Aff-nnote st' =-  H.mkComponent-    { initialState: const (mkState st')-    , render-    , eval: H.mkEval $ H.defaultEval { handleAction = handleAction }-    }-  where-  app = app' unit--  mkState note' =-    { note: note'-    , edit_note: note'-    , deleteAsk: false-    , edit: note'.id <= 0-    , destroyed: false-    , apiError: Nothing-    }--  render :: NState -> H.ComponentHTML NAction ChildSlots Aff-  render st@{ note, edit_note, apiError } =-    ifElseH st.destroyed-       display_destroyed-       (const (ifElseH st.edit-                 renderNote_edit-                 renderNote))-    where--      renderNote _ =-        div [ id (show note.id) , class_ ("note w-100 mw7 pa1 mb2")] $-           [ div [ class_ "display" ] $-             [ div [ class_ ("link f5 lh-title")]-               [ text $ if S.null note.title then "[no title]" else note.title ]-             , br_-             , if note.isMarkdown-               then div [ class_ "description mt1" ] [ HH.slot _markdown unit Markdown.component note.text absurd ]-               else div [ class_ "description mt1 mid-gray" ] (toTextarea note.text)-             , div [ class_ "link f7 dib gray w4"]-                 [ span [title (maybe note.created snd (mmoment note))]-                   [text (maybe " " fst (mmoment note))]-                 , text " - "-                 , span [ class_ ("gray")]-                   [ text $ if note.shared then "public" else "private" ]-               ]-             ]-           , whenH app.dat.isowner $ \_ ->-               div [ class_ "edit_links db mt3" ]-                 [ button [ type_ ButtonButton, onClick \_ -> NEdit true, class_ "edit light-silver hover-blue" ] [ text "edit  " ]-                 , div [ class_ "delete_link di" ]-                   [ button [ type_ ButtonButton, onClick \_ -> NDeleteAsk true, class_ ("delete light-silver hover-blue" <> guard st.deleteAsk " dn") ] [ text "delete" ]-                   , span ([ class_ ("confirm red" <> guard (not st.deleteAsk) " dn") ] )-                     [ button [ type_ ButtonButton, onClick \_ -> NDeleteAsk false] [ text "cancel / " ]-                     , button [ type_ ButtonButton, onClick \_ -> NDestroy, class_ "red" ] [ text "destroy" ]-                     ]-                   ]-                 ]-               -           ]--      renderNote_edit _ =-        form [ onSubmit NEditSubmit ]-          [ whenH (isJust apiError)-              (alert_notification (fromMaybe "" apiError))-          , p [ class_ "mt2 mb1"] [ text "title:" ]-          , input [ type_ InputText , class_ "title w-100 mb1 pt1 edit_form_input" , name "title"-                  , value (edit_note.title) , onValueChange (editField Etitle), autofocus (null edit_note.title)-            ]-          , br_-          , p [ class_ "mt2 mb1"] [ text "description:" ]-          , textarea [ id (notetextid edit_note), class_ "description w-100 mb1 pt1 edit_form_input" , name "text", rows 25-                     , value (edit_note.text) , onValueChange (editField Etext)-            ]-          , div [ class_ "edit_form_checkboxes mb3"]-            [ input [ type_ InputCheckbox , class_ "is-markdown pointer" , id "edit_ismarkdown", name "ismarkdown"-                     , checked (edit_note.isMarkdown) , onChecked (editField EisMarkdown) ]-             , text " "-             , label [ for "edit_ismarkdown" , class_ "mr2" ] [ text "use markdown?" ]-             , br_-            ]-          , div [ class_ "edit_form_checkboxes mb3"]-            [ input [ type_ InputCheckbox , class_ "is-markdown pointer" , id "edit_shared", name "shared"-                    , checked (edit_note.shared) , onChecked (editField Eshared) ]-            , text " "-            , label [ for "edit_shared" , class_ "mr2" ] [ text "public?" ]-            , br_-            ]-          , input [ type_ InputSubmit-                  , class_ "mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"-                  , value "save" ]-          , text " "-          , input [ type_ InputReset-                  , class_ "pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"-                  , value "cancel"-                  , onClick \_ -> NEdit false-                  ]-          ]--      display_destroyed _ = p [ class_ "red"] [text "you killed this note"]--      alert_notification alert_text _ = -        div [ class_ "alert alert-err" ] [ text alert_text ]--      mmoment n = mmoment8601 n.created-      editField :: forall a. (a -> EditField) -> a -> NAction-      editField f = NEditField <<< f-      toTextarea input =-        S.split (Pattern "\n") input-        # foldMap (\x -> [br_, text x])-        # drop 1--  notetextid note = show note.id <> "_text"--  handleAction :: NAction -> H.HalogenM NState NAction ChildSlots o Aff Unit-  handleAction (NNop) = pure unit--  -- | EditField-  handleAction (NEditField f) = do-    _edit_note %= case f of-      Etitle e -> _ { title = e }-      Etext e -> _ { text = e }-      EisMarkdown e -> _ { isMarkdown = e }-      Eshared e -> _ { shared = e }--  -- | Delete-  handleAction (NDeleteAsk e) = do-    H.modify_ (_ { deleteAsk = e })--  -- | Destroy-  handleAction (NDestroy) = do-    note <- use _note-    void $ H.liftAff (destroyNote note.id)-    H.modify_ (_ { destroyed = true })--  -- | Start/Stop Editing-  handleAction (NEdit e) = do-    note <- use _note-    _edit_note .= note-    _edit .= e-    qs <- liftEffect _curQuerystring-    case {e:e, q:_lookupQueryStringValue qs "next"} of-      {e:false, q:Just "closeWindow"} -> liftEffect $ closeWindow =<< window-      _ -> H.liftEffect $ whenM (pure e) (setFocus (notetextid note))-    --  -- | Submit-  handleAction (NEditSubmit e) = do-    H.liftEffect (preventDefault e)-    edit_note <- use _edit_note-    _apiError .= Nothing-    H.liftAff (editNote edit_note) >>= case _ of-      Left affErr -> do-        _apiError .= Just (printError affErr)-        liftEffect $ log (printError affErr)-      Right { status: StatusCode s } | s >= 200 && s < 300 -> do-        qs <- liftEffect _curQuerystring-        doc <- liftEffect $ _doc-        ref <- liftEffect $ referrer doc-        loc <- liftEffect $ _loc-        org <- liftEffect $ origin loc-        case _lookupQueryStringValue qs "next" of-          Just "closeWindow" -> liftEffect $ closeWindow =<< window-          Just "back" -> liftEffect $-            if isJust (stripPrefix (Pattern org) ref)-              then setHref ref loc-              else setHref org loc-          _ -> if (edit_note.id == 0)-                 then liftEffect $ setHref (fromNullableStr app.noteR) =<< _loc-                 else do-                   _note .= edit_note-                   _edit .= false-      Right res -> do-        _apiError .= Just (res.body)-        liftEffect $ log (res.body)
− purs/src/Component/RawHtml.js
@@ -1,8 +0,0 @@-// use at your own risk!-export const unsafeSetInnerHTML = function(element) {-  return function(html) {-    return function() {-      element.innerHTML = html;-    };-  };-};
− purs/src/Component/RawHtml.purs
@@ -1,64 +0,0 @@-module Component.RawHtml where--import Prelude--import Data.Foldable (for_)-import Data.Maybe (Maybe(..))-import Effect (Effect)-import Effect.Aff (Aff, forkAff, makeAff)-import Effect.Class (liftEffect)-import Globals (RawHTML(..))-import Halogen as H-import Halogen.HTML as HH-import Halogen.HTML.Properties as HP-import Web.HTML (HTMLElement)--foreign import unsafeSetInnerHTML :: HTMLElement -> RawHTML -> Effect Unit--data Action i-  = SetInnerHTML-  | Receive (Input i)--type Input :: forall k. k -> k-type Input i = i--type State i =-  { elRef :: H.RefLabel-  , inputval :: Input i-  }--component :: forall q o. H.Component q (Input String) o Aff-component = mkComponent RawHTML--mkComponent :: forall q i o. (Input i -> RawHTML) -> H.Component q (Input i) o Aff-mkComponent toRawHTML =-  H.mkComponent-    { initialState: \inputval -> { elRef: H.RefLabel "inputval", inputval } -    , render-    , eval: H.mkEval (H.defaultEval { handleAction = handleAction-                                    , initialize = Just SetInnerHTML-                                    , receive = Just <<< Receive-                                    })-    }-  where-  render :: forall m. (State i) -> H.ComponentHTML (Action i) () m-  render state = -    HH.div -      [ HP.ref state.elRef ] -      []--  handleAction :: (Action i) -> H.HalogenM (State i) (Action i) () o Aff Unit-  handleAction = case _ of-    SetInnerHTML -> do-      { elRef } <- H.get-      mel <- H.getHTMLElementRef elRef-      for_ mel \el -> do  -        { inputval } <- H.get-        H.liftAff $ forkAff $ makeAff \_ -> do-          liftEffect $ unsafeSetInnerHTML el (toRawHTML inputval)-          mempty-      pure unit-    -    Receive inputval -> do-      H.modify_ _ { inputval = inputval }-      handleAction $ SetInnerHTML
− purs/src/Component/TagCloud.purs
@@ -1,173 +0,0 @@-module Component.TagCloud where--import Prelude hiding (div)--import App (getTagCloud, updateTagCloudMode)-import Data.Array (concat, cons, delete, notElem, null, sortBy)-import Data.Foldable (maximum, minimum)-import Data.Int (toNumber)-import Data.Lens (Lens', lens)-import Data.Maybe (Maybe(..), fromMaybe)-import Data.Monoid (guard)-import Data.String (joinWith, toLower, null) as S-import Data.String (toLower)-import Data.Tuple (fst, uncurry)-import Effect.Aff (Aff)-import Foreign.Object (Object)-import Foreign.Object (toUnfoldable, empty, values) as F-import Globals (app')-import Halogen (AttrName(..))-import Halogen as H-import Halogen.HTML (HTML, a, attr, button, div, text)-import Halogen.HTML.Events (onClick)-import Halogen.HTML.Properties (ButtonType(..), href, title, type_)-import Data.Number (log)-import Model (TagCloud, TagCloudModeF(..), isExpanded, isRelated, setExpanded, tagCloudModeFromF)-import Util (class_, encodeTag, fromNullableStr, ifElseA, whenH)--data TAction-  = TInitialize-  | TExpanded Boolean-  | TChangeMode TagCloudModeF--type TState =-  { mode :: TagCloudModeF-  , tagcloud :: TagCloud-  }--_mode :: Lens' TState TagCloudModeF-_mode = lens _.mode (_ { mode = _ })--tagcloudcomponent :: forall q i o. TagCloudModeF -> H.Component q i o Aff-tagcloudcomponent m' =-  H.mkComponent-    { initialState: const (mkState m')-    , render-    , eval: H.mkEval $ H.defaultEval { handleAction = handleAction-                                     , initialize = Just TInitialize-                                     }-    }-  where-  app = app' unit-  mkState m =-    { mode: m-    , tagcloud: F.empty-    }--  render :: TState -> H.ComponentHTML TAction () Aff-  render { mode:TagCloudModeNone } =-    div [class_ "tag_cloud" ] []-  render { mode, tagcloud } =-    div [class_ "tag_cloud mv3" ] -    [-      div [class_ "tag_cloud_header mb2"] $-          ifElseA (isRelated mode)-            (\_ -> do --RELATED-              [ button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue mr1 b")-                       , onClick \_ -> TExpanded (not (isExpanded mode))-                       ] [text "Related Tags"]-              ]-            ) -            (\_ -> do -- NOT RELATED-              [ button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue mr1" <> guard (mode == modetop) " b")-                       , title "show a cloud of your most-used tags"-                       , onClick \_ -> TChangeMode modetop-                       ] [text "Top Tags"]-              , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue ml2 " <> guard (mode == modelb1) " b") -                       , title "show all tags"-                       , onClick \_ -> TChangeMode modelb1-                       ] [text "all"] -              , text "‧"-              , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue" <> guard (mode == modelb2) " b") -                       , title "show tags with at least 2 bookmarks"-                       , onClick \_ -> TChangeMode modelb2-                       ] [text "2"]-              , text "‧"-              , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue" <> guard (mode == modelb5) " b") -                       , title "show tags with at least 5 bookmarks"-                       , onClick \_ -> TChangeMode modelb5-                       ] [text "5"]-              , text "‧"-              , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue" <> guard (mode == modelb10) " b") -                       , title "show tags with at least 10 bookmarks"-                       , onClick \_ -> TChangeMode modelb10-                       ] [text "10"]-              , text "‧"-              , button [ type_ ButtonButton, class_ ("pa1 f7 link hover-blue" <> guard (mode == modelb20) " b") -                       , title "show tags with at least 20 bookmarks"-                       , onClick \_ -> TChangeMode modelb20-                       ] [text "20"]-              ])-              <> [button [ type_ ButtonButton, class_ "pa1 ml2 f7 link silver hover-blue "-                         , onClick \_ -> TExpanded (not (isExpanded mode))]-                         [ text (if isExpanded mode then "hide" else "show") ]]-    , whenH (isExpanded mode) \_ -> do-        let n = fromMaybe 1 (minimum (F.values tagcloud))-            m = fromMaybe 1 (maximum (F.values tagcloud))-        div [class_ "tag_cloud_body"] $ case mode of-          TagCloudModeNone -> []-          (TagCloudModeRelated _ curtags) -> -            toArray curtags n m tagcloud-          _ -> -            toArray [] n m tagcloud-          -    ]-    where-      modetop = TagCloudModeTop (isExpanded mode) 200-      modelb1 = TagCloudModeLowerBound (isExpanded mode) 1-      modelb2 = TagCloudModeLowerBound (isExpanded mode) 2-      modelb5 = TagCloudModeLowerBound (isExpanded mode) 5-      modelb10 = TagCloudModeLowerBound (isExpanded mode) 10-      modelb20 = TagCloudModeLowerBound (isExpanded mode) 20---  toArray :: Array String -> Int -> Int -> Object Int -> Array (HTML _ _)-  toArray curtags n m =-    concat-    <<< map (uncurry (toSizedTag (map toLower curtags) n m))-    <<< sortBy (comparing (S.toLower <<< fst))-    <<< F.toUnfoldable--  linkToFilterTag rest = fromNullableStr app.userR <> (if S.null rest then "" else "/t:" <> rest) --  toSizedTag :: Array String -> Int -> Int -> String -> Int -> _-  toSizedTag curtags n m k v =-    [ a [ href (linkToFilterTag (encodeTag k)), class_ "link tag mr1" , style] -        [ text k ]-      , whenH (not (null curtags))  \_ -> if (notElem k_lower curtags)-          then a [href (linkToFilterTag (S.joinWith "+" (map encodeTag (cons k_lower curtags)))), class_ "link mr2 tag-include"] [text "⊕"]-          else a [href (linkToFilterTag (S.joinWith "+" (map encodeTag (delete k_lower curtags)))), class_ "link mr2 tag-exclude"] [text "⊖"]-    ]-    where-      k_lower = toLower k-      fontsize = rescale identity (toNumber v) (toNumber n) (toNumber m) 100.0 150.0-      opacity = rescale (log <<< (1.0 + _)) (toNumber v) (toNumber n) (toNumber m) 0.6 1.0-      style = attr (AttrName "style") ("font-size:" <> show fontsize <> "%" <> ";opacity:" <> show opacity)--  rescale :: (Number -> Number) -> Number -> Number -> Number -> Number -> Number -> Number-  rescale f v n m l h = (if m - n < 0.01 then 1.0 else (f (v - n) / f (m - n))) * (h - l) + l--  fetchTagCloud :: TagCloudModeF -> H.HalogenM TState TAction () o Aff Unit-  fetchTagCloud mode' = do-    case mode' of-      TagCloudModeNone -> pure unit-      _ -> do-        tagcloud <- H.liftAff $ getTagCloud (tagCloudModeFromF mode')-        H.modify_ (\s -> s { -          mode = mode',-          tagcloud = fromMaybe F.empty tagcloud-        })-  -  handleAction :: TAction -> H.HalogenM TState TAction () o Aff Unit-  handleAction TInitialize = do-    mode <- H.gets _.mode-    fetchTagCloud mode-  handleAction (TExpanded expanded) = do-    H.modify_ (\s -> s { mode = setExpanded s.mode expanded })-    mode <- H.gets _.mode-    void $ H.liftAff $ updateTagCloudMode (tagCloudModeFromF mode)-  handleAction (TChangeMode mode') = do-    mode <- H.gets _.mode-    if mode == mode'-       then handleAction (TExpanded (not (isExpanded mode)))-       else fetchTagCloud (setExpanded mode' true)
− purs/src/Globals.js
@@ -1,59 +0,0 @@-"use strict";--import moment from 'moment'--export const _app = function() {-  return app;-}--export const _closest = function(just, nothing, selector, el) {-  var node = el.closest(selector);-  if(node) {-    return just(node);-  } else {-    return nothing;-  }-}--export const _createFormData = function(formElement) {-  return new FormData(formElement);-}--export const _createFormString = function(formElement) {-  return new URLSearchParams(new FormData(formElement)).toString()-}--export const _createFormArray = function(formElement) {-  return Array.from(new FormData(formElement));-}--export const _moment8601 = function(tuple, s) {-  var m = moment(s, moment.ISO_8601);-  var s1 = m.fromNow();-  var s2 = m.format('MMMM D YYYY, h:mm a') + " (" + m.format() + ") ";-  return tuple(s1)(s2);-}--export const _mmoment8601 = function(just, nothing, tuple, s) {-  try {-    var m = moment(s, moment.ISO_8601);-    var s1 = m.fromNow();-    var s2 = m.format('MMMM D YYYY, h:mm a') + " (" + m.format() + ") ";-    return just(tuple(s1)(s2));-  } catch (error) {-    return nothing-  }-}--export const _closeWindow = function (window) {-  window.close();-};--export const _setFocus = function(elemId) {-    document.getElementById(elemId).focus();-};---export const _toLocaleDateString = function(dateString) {-  return new Date(dateString).toLocaleDateString(undefined, {dateStyle: 'medium'}) -}
− purs/src/Globals.purs
@@ -1,87 +0,0 @@-module Globals where--import Data.Maybe (Maybe(..))-import Data.Newtype (class Newtype)-import Data.Nullable (Nullable)-import Data.Tuple (Tuple(..))-import Effect (Effect)-import Data.Function.Uncurried (Fn0, Fn1, Fn4, runFn0, runFn1, runFn4)-import Effect.Uncurried (EffectFn1, EffectFn2, EffectFn4, runEffectFn1, runEffectFn2, runEffectFn4)-import Model (Bookmark)-import Prelude (Unit)-import Web.DOM (Node)-import Web.HTML (HTMLFormElement, Window)-import Web.XHR.FormData (FormData)--type App =-    { csrfHeaderName :: String-    , csrfCookieName :: String-    , csrfParamName :: String-    , csrfToken :: String-    , homeR :: String-    , authRlogoutR :: String-    , userR :: Nullable String-    , noteR :: Nullable String-    , dat :: AppData-    }--type AppData =-  { bmarks :: Array Bookmark-  , bmark :: Bookmark-  , isowner :: Boolean-  }--foreign import _app :: Fn0 App--app' :: Unit -> App-app' _ = runFn0 _app--foreign import _closest :: forall a. EffectFn4 (a -> Maybe a) (Maybe a) String Node (Maybe Node)--closest :: String -> Node -> Effect (Maybe Node)-closest selector node = runEffectFn4 _closest Just Nothing selector node --foreign import _moment8601 :: EffectFn2 (String -> String -> Tuple String String) String (Tuple String String)--moment8601 :: String -> Effect (Tuple String String)-moment8601 s = runEffectFn2 _moment8601 Tuple s--foreign import _mmoment8601 :: forall a. Fn4 (a -> Maybe a) (Maybe a) (String -> String -> Tuple String String) String (Maybe (Tuple String String))--mmoment8601 :: String -> Maybe (Tuple String String)-mmoment8601 s = runFn4 _mmoment8601 Just Nothing Tuple s--foreign import _createFormData :: Fn1 HTMLFormElement FormData--createFormData :: HTMLFormElement -> FormData-createFormData f = runFn1 _createFormData f--foreign import _createFormString :: Fn1 HTMLFormElement String--createFormString :: HTMLFormElement -> String-createFormString f = runFn1 _createFormString f---foreign import _createFormArray :: Fn1 HTMLFormElement (Array (Array String))--createFormArray :: HTMLFormElement -> (Array (Array String))-createFormArray f = runFn1 _createFormArray f--foreign import _closeWindow :: EffectFn1 Window Unit--closeWindow :: Window -> Effect Unit-closeWindow win = runEffectFn1 _closeWindow win--newtype RawHTML = RawHTML String--derive instance newtypeRawHTML :: Newtype RawHTML _--foreign import _setFocus :: EffectFn1 String Unit--setFocus :: String -> Effect Unit-setFocus s = runEffectFn1 _setFocus s--foreign import _toLocaleDateString :: Fn1 String String--toLocaleDateString :: String -> String-toLocaleDateString s = runFn1 _toLocaleDateString s
− purs/src/Main.purs
@@ -1,70 +0,0 @@-module Main where--import Prelude--import App (logout)-import Component.AccountSettings (usetting)-import Component.Add (addbmark)-import Component.BList (blist)-import Component.NList (nlist)-import Component.NNote (nnote)-import Component.TagCloud (tagcloudcomponent)-import Data.Foldable (traverse_)-import Effect (Effect)-import Effect.Aff (Aff, launchAff)-import Effect.Class (liftEffect)-import Halogen.Aff as HA-import Halogen.VDom.Driver (runUI)-import Model (AccountSettings, Bookmark, Note, TagCloudMode, tagCloudModeToF)-import Web.DOM.Element (setAttribute)-import Web.DOM.ParentNode (QuerySelector(..))-import Web.Event.Event (Event, preventDefault)-import Web.HTML.HTMLElement (toElement)--logoutE :: Event -> Effect Unit-logoutE e = void <<< launchAff <<< logout =<< preventDefault e--renderBookmarks :: String -> Array Bookmark -> Effect Unit-renderBookmarks renderElSelector bmarks = do-  HA.runHalogenAff do-    HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do-      void $ runUI (blist bmarks) unit el-      viewRendered--renderTagCloud :: String -> TagCloudMode -> Effect Unit-renderTagCloud renderElSelector tagCloudMode = do-  HA.runHalogenAff do-    HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do-      void $ runUI (tagcloudcomponent (tagCloudModeToF tagCloudMode)) unit el--renderAddForm :: String -> Bookmark -> Effect Unit-renderAddForm renderElSelector bmark = do-  HA.runHalogenAff do-    HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do-      void $ runUI (addbmark bmark) unit el-      viewRendered--renderNotes :: String -> Array Note -> Effect Unit-renderNotes renderElSelector notes = do-  HA.runHalogenAff do-    HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do-      void $ runUI (nlist notes) unit el-      viewRendered--renderNote :: String -> Note -> Effect Unit-renderNote renderElSelector note = do-  HA.runHalogenAff do-    HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do-      void $ runUI (nnote note) unit el-      viewRendered--renderAccountSettings :: String -> AccountSettings -> Effect Unit-renderAccountSettings renderElSelector accountSettings = do-  HA.runHalogenAff do-    HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do-      void $ runUI (usetting accountSettings) unit el-      viewRendered--viewRendered :: Aff Unit-viewRendered = HA.selectElement (QuerySelector "#content") >>= traverse_ \el ->-  liftEffect $ setAttribute "view-rendered" "" (toElement el) 
− purs/src/Marked.js
@@ -1,12 +0,0 @@-import { marked } from 'marked';-import DOMPurify from "dompurify"--marked.setOptions({-  pedantic: false,-  gfm: true-});--export const markedImpl = function(str) {-  if (!str) return "";-  return DOMPurify.sanitize(marked.parse(str));-};
− purs/src/Marked.purs
@@ -1,9 +0,0 @@-module Foreign.Marked where--import Prelude-import Globals (RawHTML(..))--foreign import markedImpl :: String -> String--marked :: String -> RawHTML-marked = RawHTML <<< markedImpl
− purs/src/Model.purs
@@ -1,129 +0,0 @@-module Model where--import Control.Monad.Except (runExcept)-import Data.Array (intercalate)-import Data.Either (hush)-import Data.Maybe (fromMaybe)-import Data.Nullable (Nullable)-import Data.String (Pattern(..), split)-import Foreign (Foreign, readInt, readString, unsafeToForeign)-import Foreign.Object (Object)-import Prelude (class Eq, pure, ($), (<$>))-import Simple.JSON as J--type BookmarkId = Int-type TagId = Int--type Bookmark =-  { url :: String-  , title :: String-  , description :: String-  , tags :: String-  , private :: Boolean-  , toread :: Boolean-  , bid :: BookmarkId-  , slug :: String-  , selected :: Boolean-  , time :: String-  , archiveUrl :: Nullable String-  }--newtype Bookmark' = Bookmark' Bookmark-derive newtype instance J.ReadForeign Bookmark'-derive newtype instance J.WriteForeign Bookmark'--type NoteId = Int-type NoteSlug = String--type Note =-  { id :: NoteId-  , slug :: NoteSlug-  , title :: String-  , text :: String-  , length :: Int-  , isMarkdown :: Boolean-  , shared :: Boolean-  , created :: String-  , updated :: String-  }--newtype Note' = Note' Note-derive newtype instance J.ReadForeign Note'-derive newtype instance J.WriteForeign Note'--type AccountSettings =-  { archiveDefault :: Boolean-  , privateDefault :: Boolean-  , privacyLock :: Boolean-  }--newtype AccountSettings' = AccountSettings' AccountSettings-derive newtype instance J.ReadForeign AccountSettings'-derive newtype instance J.WriteForeign AccountSettings'--type TagCloudMode =-  { mode :: String-  , value :: Foreign-  , expanded :: Boolean-  }-newtype TagCloudMode' = TagCloudMode' TagCloudMode-derive newtype instance J.ReadForeign TagCloudMode'-derive newtype instance J.WriteForeign TagCloudMode'--type TagCloud = Object Int--data TagCloudModeF-  = TagCloudModeTop Boolean Int -  | TagCloudModeLowerBound Boolean Int -  | TagCloudModeRelated Boolean (Array String) -  | TagCloudModeNone--derive instance Eq TagCloudModeF--tagCloudModeToF :: TagCloudMode -> TagCloudModeF-tagCloudModeToF tagCloudMode =-  fromMaybe TagCloudModeNone $ hush $ runExcept $-    case tagCloudMode.mode of-      "top" -> TagCloudModeTop tagCloudMode.expanded <$> readInt tagCloudMode.value-      "lowerBound" -> TagCloudModeLowerBound tagCloudMode.expanded <$> readInt tagCloudMode.value-      "related" -> (\s -> TagCloudModeRelated tagCloudMode.expanded (split (Pattern " ") s)) <$> readString tagCloudMode.value-      _ -> pure TagCloudModeNone--tagCloudModeFromF :: TagCloudModeF -> TagCloudMode-tagCloudModeFromF (TagCloudModeTop e i) =-  { mode: "top" , value: unsafeToForeign i, expanded: e }-tagCloudModeFromF (TagCloudModeLowerBound e i) =-  { mode: "lowerBound" , value: unsafeToForeign i, expanded: e }-tagCloudModeFromF (TagCloudModeRelated e tags) =-  { mode: "related" , value: unsafeToForeign (intercalate " " tags), expanded: e  }-tagCloudModeFromF TagCloudModeNone =-  { mode: "none" , value: unsafeToForeign "", expanded: false }-    -isExpanded :: TagCloudModeF -> Boolean-isExpanded (TagCloudModeTop e _) = e-isExpanded (TagCloudModeLowerBound e _) = e-isExpanded (TagCloudModeRelated e _) = e-isExpanded TagCloudModeNone = false--isRelated :: TagCloudModeF -> Boolean-isRelated (TagCloudModeRelated _ _) = true-isRelated _ = false--setExpanded :: TagCloudModeF -> Boolean -> TagCloudModeF-setExpanded (TagCloudModeTop _ i) e' = TagCloudModeTop e' i-setExpanded (TagCloudModeLowerBound _ i) e' = TagCloudModeLowerBound e' i-setExpanded (TagCloudModeRelated _ i) e' = TagCloudModeRelated e' i-setExpanded TagCloudModeNone _ = TagCloudModeNone--showMode :: TagCloudModeF -> String-showMode (TagCloudModeTop _ _)  = "top"-showMode (TagCloudModeLowerBound _ _)  = "lowerBound"-showMode (TagCloudModeRelated _ _)  = "related"-showMode TagCloudModeNone = ""---- isSameMode :: TagCloudModeF -> TagCloudModeF -> Boolean--- isSameMode (TagCloudModeTop _ _) (TagCloudModeTop _ _) = true--- isSameMode (TagCloudModeLowerBound _ _) (TagCloudModeLowerBound _ _) = true--- isSameMode (TagCloudModeRelated _ _) (TagCloudModeRelated _ _) = true--- isSameMode TagCloudModeNone TagCloudModeNone = true--- isSameMode _ _ = false
− purs/src/Util.purs
@@ -1,154 +0,0 @@-module Util where--import Prelude--import Control.Monad.Maybe.Trans (MaybeT(..))-import Data.Array (filter, find, mapMaybe)-import Data.Foldable (for_)-import Data.Maybe (Maybe(..), fromJust, fromMaybe, maybe)-import Data.Nullable (Nullable, toMaybe)-import Data.String (Pattern(..), Replacement(..), drop, replaceAll, split, take)-import Data.Tuple (Tuple(..), fst, snd)-import Effect (Effect)-import Halogen (ClassName(..))-import Halogen.HTML as HH-import Halogen.HTML.Properties as HP-import JSURI (decodeURIComponent, encodeURIComponent)-import Partial.Unsafe (unsafePartial)-import Web.DOM (Element, Node)-import Web.DOM.Document (toNonElementParentNode)-import Web.DOM.Element (fromNode, toParentNode)-import Web.DOM.NodeList (toArray)-import Web.DOM.NonElementParentNode (getElementById)-import Web.DOM.ParentNode (QuerySelector(..), querySelector, querySelectorAll)-import Web.HTML (HTMLDocument, Location, window)-import Web.HTML.HTMLDocument (body) as HD-import Web.HTML.HTMLDocument (toDocument)-import Web.HTML.HTMLElement (HTMLElement)-import Web.HTML.HTMLElement (fromElement) as HE-import Web.HTML.Location (search)-import Web.HTML.Window (document, location)--unsafeDecode :: String -> String-unsafeDecode str = unsafePartial $ fromJust $ decodeURIComponent str-  --- Halogen--class_ :: forall r i. String -> HP.IProp ( "class" :: String | r) i-class_ = HP.class_ <<< HH.ClassName--attr :: forall r i. String -> String -> HP.IProp r i-attr a = HP.attr (HH.AttrName a)---- Util--_queryBoth :: forall a. Tuple String Element -> Tuple String Element -> (Element -> Element -> Effect a) -> Effect Unit-_queryBoth (Tuple qa ea) (Tuple qb eb) f = do-   ma <- _querySelector qa ea-   mb <- _querySelector qb eb-   for_ ma \a -> -     for_ mb \b ->-       f a b--_queryBoth' :: forall a. Tuple String Element -> Tuple String Element -> (Element -> Array Node -> Effect a) -> Effect Unit-_queryBoth' (Tuple qa ea) (Tuple qb eb) f = do-   ma <- _querySelector qa ea-   bs <- _querySelectorAll qb eb-   for_ ma \a -> -     f a bs--_queryBoth'' :: forall a. Tuple String Element -> Tuple String Element -> (Array Node -> Array Node -> Effect a) -> Effect a-_queryBoth'' (Tuple qa ea) (Tuple qb eb) f = do-   as <- _querySelectorAll qa ea-   bs <- _querySelectorAll qb eb-   f as bs--_querySelector :: String -> Element -> Effect (Maybe Element)-_querySelector s n = querySelector (QuerySelector s) (toParentNode n)--_querySelectorAll :: String -> Element -> Effect (Array Node)-_querySelectorAll s n = toArray =<< querySelectorAll (QuerySelector s) (toParentNode n)--_fromNode :: Node -> Element-_fromNode e = unsafePartial $ fromJust (fromNode e)--_fromElement :: Element -> HTMLElement-_fromElement e = unsafePartial $ fromJust (HE.fromElement e)--_getElementById :: String -> HTMLDocument -> Effect (Maybe Element)-_getElementById s = getElementById s <<< toNonElementParentNode <<< toDocument--_doc :: Effect HTMLDocument-_doc = document =<< window --_loc :: Effect Location-_loc = location =<< window --type QueryStringArray = Array (Tuple String (Maybe String))--_curQuerystring :: Effect QueryStringArray-_curQuerystring = do-  loc <- _loc-  srh <- search loc-  pure $ _parseQueryString srh--_parseQueryString :: String -> QueryStringArray-_parseQueryString srh = do-  let qs = let srh' = take 1 srh in if (srh' == "#" || srh' == "?") then drop 1 srh else srh-  mapMaybe go $ (filter (_ /= "") <<< split (Pattern "&")) qs-  where-    decode = unsafeDecode <<< replaceAll (Pattern "+") (Replacement " ")-    go kv =-      case split (Pattern "=") kv of-        [k] -> Just (Tuple (decode k) Nothing)-        [k, v] -> Just (Tuple (decode k) (Just (decode v)))-        _ -> Nothing--_lookupQueryStringValue :: QueryStringArray -> String -> Maybe String-_lookupQueryStringValue qs k = do-  join $ map snd $ find ((_ == k) <<< fst) qs--_body :: Effect HTMLElement-_body = unsafePartial $ pure <<< fromJust =<< HD.body =<< _doc--_mt :: forall a. Effect (Maybe a) -> MaybeT Effect a-_mt = MaybeT--_mt_pure :: forall a. Maybe a -> MaybeT Effect a-_mt_pure = MaybeT <<< pure--encodeTag :: String -> String-encodeTag = fromMaybe "" <<< encodeURIComponent <<< replaceAll (Pattern "+") (Replacement "%2B")--dummyAttr :: forall r i. HP.IProp r i-dummyAttr = HP.attr (HH.AttrName "data-dummy") ""--whenP :: forall r i. Boolean -> HP.IProp r i -> HP.IProp r i-whenP b p = if b then p else dummyAttr--maybeP :: forall a r i. Maybe a -> (a -> HP.IProp r i) -> HP.IProp r i-maybeP m p = maybe dummyAttr p m-  -whenC :: Boolean -> ClassName -> ClassName-whenC b c = if b then c else ClassName ""--whenH :: forall p i. Boolean -> (Unit -> HH.HTML p i) -> HH.HTML p i-whenH b k = if b then k unit else HH.text ""--whenA :: forall t. Boolean -> (Unit -> Array t) -> Array t-whenA b k = if b then k unit else []--ifElseH :: forall p i. Boolean -> (Unit -> HH.HTML p i) -> (Unit -> HH.HTML p i) -> HH.HTML p i-ifElseH b f k = if b then f unit else k unit--ifElseA :: forall t. Boolean -> (Unit -> Array t) -> (Unit -> Array t) -> Array t-ifElseA b f k = if b then f unit else k unit--maybeH :: forall a p i. Maybe a -> (a -> HH.HTML p i) -> HH.HTML p i-maybeH m k = maybe (HH.text "") k m--fromNullableStr :: Nullable String -> String-fromNullableStr = fromMaybe "" <<< toMaybe--monthNames :: Array String-monthNames = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"]
− purs/test/Main.purs
@@ -1,9 +0,0 @@-module Test.Main where--import Prelude-import Effect (Effect)-import Effect.Console (log)--main :: Effect Unit-main = do-  log "You should add some tests."
src/Application.hs view
@@ -16,6 +16,7 @@   ) 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)@@ -25,7 +26,7 @@ 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+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)@@ -51,6 +52,7 @@ makeFoundation appSettings = do   appHttpManager <- getGlobalManager   appLogger <- newStdoutLoggerSet defaultBufSize >>= makeYesodLogger+  appFrontendBundleName <- loadFrontendBundleName (appStaticDir appSettings)   appStatic <-     (if appMutableStatic appSettings        then staticDevel@@ -72,6 +74,22 @@             connInfo = mkSqliteConnectionInfo dbPath &                        set fkEnabled isFkEnabled         createSqlitePoolFromInfo connInfo poolSize++loadFrontendBundleName :: FilePath -> IO Text+loadFrontendBundleName staticDir = do+  let manifestPath = staticDir <> "/js/manifest.json"+      fallbackName = "app.min.js"+  mManifest <- A.decodeFileStrict' manifestPath+  pure $ maybe fallbackName appBundle mManifest++newtype FrontendBundleManifest = FrontendBundleManifest+  { appBundle :: Text+  }++instance A.FromJSON FrontendBundleManifest where+  parseJSON = A.withObject "FrontendBundleManifest" $ \o -> do+    appBundle <- o A..: "appBundle"+    pure FrontendBundleManifest {..}   makeApplication :: App -> IO Application
src/Foundation.hs view
@@ -1,45 +1,51 @@ {-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE StandaloneDeriving #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-}  module Foundation where -import Import.NoFoundation-import Database.Persist.Sql (ConnectionPool, runSqlPool)-import Text.Hamlet          (hamletFile)-import PathPiece()--import Yesod.Core.Types-import Yesod.Auth.Message import qualified Data.CaseInsensitive as CI import qualified Data.Text.Encoding as TE-import qualified Yesod.Core.Unsafe as Unsafe+import Data.Type.Equality (type (~))+import Database.Persist.Sql (ConnectionPool, runSqlPool)+import Import.NoFoundation import qualified Network.Wai as Wai+import PathPiece ()+import Text.Hamlet (hamletFile)+import Yesod.Auth.Message+import Yesod.Core.Types+import qualified Yesod.Core.Unsafe as Unsafe  data App = App-    { appSettings    :: AppSettings-    , appStatic      :: Static -- ^ Settings for static file serving.-    , appConnPool    :: ConnectionPool -- ^ Database connection pool.-    , appHttpManager :: Manager-    , appLogger      :: Logger-    } deriving (Typeable)+  { appSettings :: AppSettings,+    -- | Settings for static file serving.+    appStatic :: Static,+    -- | Frontend ESM bundle filename under static/js.+    appFrontendBundleName :: Text,+    -- | Database connection pool.+    appConnPool :: ConnectionPool,+    appHttpManager :: Manager,+    appLogger :: Logger+  }+  deriving (Typeable)  mkYesodData "App" $(parseRoutesFile "config/routes") -deriving instance Typeable Route +deriving instance Typeable Route+ deriving instance Generic (Route App)  -- YesodPersist  instance YesodPersist App where-    type YesodPersistBackend App = SqlBackend-    runDB action = do-        master <- getYesod-        runSqlPool action (appConnPool master)+  type YesodPersistBackend App = SqlBackend+  runDB action = do+    master <- getYesod+    runSqlPool action (appConnPool master)  instance YesodPersistRunner App where-    getDBRunner = defaultGetDBRunner appConnPool+  getDBRunner = defaultGetDBRunner appConnPool  session_timeout_minutes :: Int session_timeout_minutes = 10080 -- (7 days)@@ -47,74 +53,80 @@ -- Yesod  instance Yesod App where-    approot = ApprootRequest \app req ->-        case appRoot (appSettings app) of-            Nothing -> getApprootText guessApproot app req-            Just root -> root+  approot = ApprootRequest \app req ->+    case appRoot (appSettings app) of+      Nothing -> getApprootText guessApproot app req+      Just root -> root -    makeSessionBackend :: App -> IO (Maybe SessionBackend)-    makeSessionBackend App {appSettings} = do-      backend <--        defaultClientSessionBackend-          session_timeout_minutes-          "config/client_session_key.aes"-      maybeSSLOnly $ pure (Just backend)-      where-        maybeSSLOnly =-          if appSSLOnly appSettings-            then sslOnlySessions-            else id+  makeSessionBackend :: App -> IO (Maybe SessionBackend)+  makeSessionBackend App {appSettings} = do+    backend <-+      defaultClientSessionBackend+        session_timeout_minutes+        "config/client_session_key.aes"+    maybeSSLOnly $ pure (Just backend)+    where+      maybeSSLOnly =+        if appSSLOnly appSettings+          then sslOnlySessions+          else id -    yesodMiddleware :: HandlerFor App res -> HandlerFor App res-    yesodMiddleware = customMiddleware . defaultYesodMiddleware . customCsrfMiddleware-      where-        customCsrfMiddleware handler = do-          maybeRoute <- getCurrentRoute-          dontCheckCsrf <- case maybeRoute of-            -- `maybeAuthId` checks for the validity of the Authorization-            -- header anyway, but it is still a good idea to limit this-            -- flexibility to designated routes.-            -- For the time being, `AddR` is the only route that accepts an-            -- authentication token.-            Just AddR -> isJust <$> lookupHeader "Authorization"-            _ -> pure False-          (if dontCheckCsrf then id else defaultCsrfMiddleware) handler+  yesodMiddleware :: HandlerFor App res -> HandlerFor App res+  yesodMiddleware = customMiddleware . defaultYesodMiddleware . customCsrfMiddleware+    where+      customCsrfMiddleware handler = do+        maybeRoute <- getCurrentRoute+        dontCheckCsrf <- case maybeRoute of+          -- `maybeAuthId` checks for the validity of the Authorization+          -- header anyway, but it is still a good idea to limit this+          -- flexibility to designated routes.+          -- For the time being, `AddR` is the only route that accepts an+          -- authentication token.+          Just AddR -> isJust <$> lookupHeader "Authorization"+          _ -> pure False+        (if dontCheckCsrf then id else defaultCsrfMiddleware) handler -        customMiddleware handler = do-          addHeader "X-Frame-Options" "DENY"-          yesod <- getYesod-          (if appSSLOnly (appSettings yesod)-             then sslOnlyMiddleware session_timeout_minutes-             else id) handler+      customMiddleware handler = do+        addHeader "X-Frame-Options" "DENY"+        yesod <- getYesod+        ( if appSSLOnly (appSettings yesod)+            then sslOnlyMiddleware session_timeout_minutes+            else id+          )+          handler -    defaultLayout widget = do-        req <- getRequest-        master <- getYesod-        urlrender <- getUrlRender-        mmsg <- getMessage-        musername <- maybeAuthUsername-        muser <- (fmap.fmap) snd maybeAuthPair-        let msourceCodeUri = appSourceCodeUri (appSettings master)-        pc <- widgetToPageContent do-            setTitle "Espial"-            addAppScripts-            addStylesheet (StaticR css_tachyons_min_css)-            addStylesheet (StaticR css_main_css)-            $(widgetFile "default-layout")-        withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet")+  jsAttributes _ = [("type", "module")] -    shouldLogIO app _source level =-        pure $ appShouldLogAll (appSettings app) || level == LevelWarn || level == LevelError-    makeLogger = return . appLogger+  defaultLayout widget = do+    req <- getRequest+    master <- getYesod+    urlrender <- getUrlRender+    mmsg <- getMessage+    musername <- maybeAuthUsername+    muser <- (fmap . fmap) snd maybeAuthPair+    let msourceCodeUri = appSourceCodeUri (appSettings master)+        frontendBundleName = appFrontendBundleName master+    pc <- widgetToPageContent do+      setTitle "Espial"+      addAppScripts+      addStylesheet (StaticR css_tachyons_min_css)+      addStylesheet (StaticR css_main_css)+      $(widgetFile "default-layout")+    withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet") -    authRoute _ = Just (AuthR LoginR)+  shouldLogIO app _source level =+    pure $ appShouldLogAll (appSettings app) || level == LevelWarn || level == LevelError+  makeLogger = return . appLogger -    isAuthorized (AuthR _) _ = pure Authorized-    isAuthorized _ _ = pure Authorized+  authRoute _ = Just (AuthR LoginR) -    defaultMessageWidget title body = do-      setTitle title-      toWidget [hamlet|+  isAuthorized (AuthR _) _ = pure Authorized+  isAuthorized _ _ = pure Authorized++  defaultMessageWidget title body = do+    setTitle title+    toWidget+      [hamlet|         <main .pv2.ph3.mh1>           <div .w-100.mw8.center>             <div .pa3.bg-near-white>@@ -122,33 +134,31 @@               ^{body}       |] - isAuthenticated :: Handler AuthResult-isAuthenticated = maybeAuthId >>= \case-                    Just authId -> pure Authorized-                    _ -> pure $ AuthenticationRequired+isAuthenticated =+  maybeAuthId >>= \case+    Just authId -> pure Authorized+    _ -> pure $ AuthenticationRequired  addAppScripts :: (MonadWidget m, HandlerSite m ~ App) => m ()-addAppScripts = do-  addScript (StaticR js_app_min_js) -+addAppScripts = do pure ()  -- popupLayout  popupLayout :: Widget -> Handler Html popupLayout widget = do-    req <- getRequest-    master <- getYesod-    mmsg <- getMessage-    musername <- maybeAuthUsername-    let msourceCodeUri = appSourceCodeUri (appSettings master)-    pc <- widgetToPageContent do-      addAppScripts-      addStylesheet (StaticR css_tachyons_min_css)-      addStylesheet (StaticR css_popup_css)-      $(widgetFile "popup-layout")-    withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet")-+  req <- getRequest+  master <- getYesod+  mmsg <- getMessage+  musername <- maybeAuthUsername+  let msourceCodeUri = appSourceCodeUri (appSettings master)+      frontendBundleName = appFrontendBundleName master+  pc <- widgetToPageContent do+    addAppScripts+    addStylesheet (StaticR css_tachyons_min_css)+    addStylesheet (StaticR css_popup_css)+    $(widgetFile "popup-layout")+  withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet")  -- YesodAuth @@ -158,9 +168,10 @@   authenticate = authenticateCreds   loginDest = const HomeR   logoutDest = const HomeR-  onLogin = maybeAuth >>= \case-    Nothing -> cpprint ("onLogin: could not find user" :: Text)-    Just (Entity _ uname) -> setSession userNameKey (userName uname)+  onLogin =+    maybeAuth >>= \case+      Nothing -> cpprint ("onLogin: could not find user" :: Text)+      Just (Entity _ uname) -> setSession userNameKey (userName uname)   onLogout =     deleteSession userNameKey   redirectToReferer = const True@@ -219,11 +230,14 @@ dbLoginR :: AuthRoute dbLoginR = PluginR dbAuthPluginName ["login"] -dbPostLoginR ::  AuthHandler master TypedContent+dbPostLoginR :: AuthHandler master TypedContent dbPostLoginR = do-  mresult <- runInputPostResult (dbLoginCreds-               <$> ireq textField "username"-               <*> ireq textField "password")+  mresult <-+    runInputPostResult+      ( dbLoginCreds+          <$> ireq textField "username"+          <*> ireq textField "password"+      )   case mresult of     FormSuccess creds -> setCredsRedirect creds     _ -> loginErrorMessageI LoginR InvalidUsernamePass@@ -231,20 +245,23 @@ dbLoginCreds :: Text -> Text -> Creds master dbLoginCreds username password =   Creds-  { credsPlugin = dbAuthPluginName-  , credsIdent = username-  , credsExtra = [("password", password)]-  }+    { credsPlugin = dbAuthPluginName,+      credsIdent = username,+      credsExtra = [("password", password)]+    }  authenticateCreds ::-     (MonadHandler m, HandlerSite m ~ App)-  => Creds App-  -> m (AuthenticationResult App)+  (MonadHandler m, HandlerSite m ~ App) =>+  Creds App ->+  m (AuthenticationResult App) authenticateCreds Creds {..} = do   muser <-     case credsPlugin of-      p | p == dbAuthPluginName -> liftHandler $ runDB $-        join <$> mapM (\pwd -> authenticatePassword credsIdent pwd) (lookup "password" credsExtra)+      p+        | p == dbAuthPluginName ->+            liftHandler $+              runDB $+                join <$> mapM (\pwd -> authenticatePassword credsIdent pwd) (lookup "password" credsExtra)       _ -> pure Nothing   case muser of     Nothing -> pure (UserError InvalidUsernamePass)@@ -253,13 +270,12 @@ -- Util  instance RenderMessage App FormMessage where-    renderMessage :: App -> [Lang] -> FormMessage -> Text-    renderMessage _ _ = defaultFormMessage+  renderMessage :: App -> [Lang] -> FormMessage -> Text+  renderMessage _ _ = defaultFormMessage  instance HasHttpManager App where-    getHttpManager :: App -> Manager-    getHttpManager = appHttpManager+  getHttpManager :: App -> Manager+  getHttpManager = appHttpManager  unsafeHandler :: App -> Handler a -> IO a unsafeHandler = Unsafe.fakeHandlerGetLogger appLogger-
src/Handler/AccountSettings.hs view
@@ -1,21 +1,26 @@ module Handler.AccountSettings where -import Import import qualified ClassyPrelude.Yesod as CP+import Import  getAccountSettingsR :: Handler Html getAccountSettingsR = do+  frontendBundleName <- appFrontendBundleName <$> getYesod   (_, user) <- requireAuthPair   let accountSettingsEl = "accountSettings" :: Text   let accountSettings = toAccountSettingsForm user   defaultLayout do     $(widgetFile "user-settings")-    toWidgetBody [julius|+    toWidgetBody+      [julius|         app.userR = "@{UserR (UserNameP $ userName user)}";         app.dat.accountSettings = #{ toJSON accountSettings } || [];      |]-    toWidget [julius|-      PS.renderAccountSettings('##{rawJS accountSettingsEl}')(app.dat.accountSettings)();+    toWidget+      [hamlet|+      <script type="module">+        import { renderAccountSettings } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}'+        renderAccountSettings('##{accountSettingsEl}')(app.dat.accountSettings)();     |]  postEditAccountSettingsR :: Handler ()@@ -24,13 +29,12 @@   accountSettingsForm <- requireCheckJsonBody   runDB (updateUserFromAccountSettingsForm userId accountSettingsForm) - getChangePasswordR :: Handler Html getChangePasswordR = do   void requireAuthId   req <- getRequest-  defaultLayout $-    $(widgetFile "change-password")+  defaultLayout+    $ $(widgetFile "change-password")  postChangePasswordR :: Handler Html postChangePasswordR = do@@ -39,18 +43,19 @@     FormSuccess (old, new) -> do       runDB (authenticatePassword (userName user) old) >>= \case         Nothing -> setMessage "Incorrect Old Password"-        Just _ -> validateNewPassword new >>= \case-          Just newValid -> do-            newHash <- liftIO (hashPassword newValid)-            void $ runDB (update userId [UserPasswordHash CP.=. newHash])-            setMessage "Password Changed Successfully"-          _ -> pure ()+        Just _ ->+          validateNewPassword new >>= \case+            Just newValid -> do+              newHash <- liftIO (hashPassword newValid)+              void $ runDB (update userId [UserPasswordHash CP.=. newHash])+              setMessage "Password Changed Successfully"+            _ -> pure ()     _ -> setMessage "Missing Required Fields"   redirect ChangePasswordR  validateNewPassword :: Text -> Handler (Maybe Text) validateNewPassword = \case-    new | length new < 6 -> do-          setMessage "Password must be at least 6 characters long"-          pure Nothing-    new -> pure $ Just new+  new | length new < 6 -> do+    setMessage "Password must be at least 6 characters long"+    pure Nothing+  new -> pure $ Just new
src/Handler/Add.hs view
@@ -1,32 +1,39 @@ module Handler.Add where -import Import-import Handler.Archive import Data.List (nub) import qualified Data.Text as T (replace)+import Handler.Archive+import Import  -- View  getAddViewR :: Handler Html getAddViewR = do-  userId <- requireAuthId+  Entity userId user <- requireAuth+  frontendBundleName <- appFrontendBundleName <$> getYesod    murl <- lookupGetParam "url"   mBookmarkDb <- runDB (fetchBookmarkByUrl userId murl)-  let mformdb = fmap _toBookmarkForm mBookmarkDb +  let mformdb = fmap _toBookmarkForm mBookmarkDb   formurl <- bookmarkFormUrl    let renderEl = "addForm" :: Text    popupLayout do-    toWidget [whamlet|+    toWidget+      [whamlet|       <div id="#{ renderEl }">     |]-    toWidgetBody [julius|+    toWidgetBody+      [julius|       app.dat.bmark = #{ toJSON (fromMaybe formurl mformdb) }; +      app.dat.suggestTags = #{ userSuggestTags user };     |]-    toWidget [julius|-      PS.renderAddForm('##{rawJS renderEl}')(app.dat.bmark)();+    toWidget+      [hamlet|+      <script type="module">+        import { renderAddForm } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}'+        renderAddForm('##{renderEl}')(app.dat.bmark)();     |]  bookmarkFormUrl :: Handler BookmarkForm@@ -38,20 +45,20 @@   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-    }+  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" @@ -77,8 +84,9 @@       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)))+        whenM (shouldArchiveBookmark user kbid)+          $ void+          $ async (archiveBookmarkUrl kbid (unpack (bookmarkHref bm)))       pure res  postLookupTitleR :: Handler ()@@ -88,3 +96,11 @@   fetchPageTitle (unpack (_url bookmarkForm)) >>= \case     Left _ -> sendResponseStatus noContent204 ()     Right title -> sendResponseStatus ok200 title++postTagSuggestionsR :: Handler Text+postTagSuggestionsR = do+  userId <- requireAuthId+  tagSuggestionRequest <- requireCheckJsonBody+  let suggestion_limit = 10+  tagSuggestions <- runDB $ getTagSuggestions userId tagSuggestionRequest suggestion_limit+  sendStatusJSON ok200 tagSuggestions
src/Handler/Notes.hs view
@@ -1,29 +1,32 @@-{-# OPTIONS_GHC -fno-warn-unused-matches #-} {-# LANGUAGE TupleSections #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}+ module Handler.Notes where -import Import-import Handler.Common (lookupPagingParams) import qualified Data.Aeson as A import qualified Data.Text as T-import           Yesod.RssFeed-import qualified Text.Blaze.Html5 as H+import Handler.Common (lookupPagingParams)+import Import import qualified Network.Wai.Internal as W+import qualified Text.Blaze.Html5 as H+import Yesod.RssFeed  getNotesR :: UserNameP -> Handler Html getNotesR unamep@(UserNameP uname) = do+  frontendBundleName <- appFrontendBundleName <$> getYesod   mauthuname <- maybeAuthUsername   (limit', page') <- lookupPagingParams   let queryp = "query"   mquery <- lookupGetParam queryp   let limit = maybe 20 fromIntegral limit'-      page  = maybe 1  fromIntegral page'+      page = maybe 1 fromIntegral page'       mqueryp = fmap (queryp,) mquery       isowner = Just uname == mauthuname   (bcount, notes) <- runDB do     Entity userId user <- getBy404 (UniqueUserName uname)     let sharedp = if isowner then SharedAll else SharedPublic-    when (not isowner && userPrivacyLock user)+    when+      (not isowner && userPrivacyLock user)       (redirect (AuthR LoginR))     getNoteList userId mquery sharedp limit page   req <- getRequest@@ -34,37 +37,48 @@         search = $(widgetFile "search")         renderEl = "notes" :: Text     $(widgetFile "notes")-    toWidgetBody [julius|+    toWidgetBody+      [julius|         app.userR = "@{UserR unamep}";         app.dat.notes = #{ toJSON notes } || [];         app.dat.isowner = #{ isowner };     |]-    toWidget [julius|-      PS.renderNotes('##{rawJS renderEl}')(app.dat.notes)();+    toWidget+      [hamlet|+      <script type="module">+        import { renderNotes } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}'+        renderNotes('##{renderEl}')(app.dat.notes)();     |]  getNoteR :: UserNameP -> NtSlug -> Handler Html getNoteR unamep@(UserNameP uname) slug = do+  frontendBundleName <- appFrontendBundleName <$> getYesod   mauthuname <- maybeAuthUsername   let renderEl = "note" :: Text       isowner = Just uname == mauthuname   note <--    runDB $-    do Entity userId user <- getBy404 (UniqueUserName uname)-       mnote <- getNote userId slug-       note <- maybe notFound pure mnote-       when (not isowner && (userPrivacyLock user || (not . noteShared . entityVal) note))-         (redirect (AuthR LoginR))-       pure note+    runDB+      $ do+        Entity userId user <- getBy404 (UniqueUserName uname)+        mnote <- getNote userId slug+        note <- maybe notFound pure mnote+        when+          (not isowner && (userPrivacyLock user || (not . noteShared . entityVal) note))+          (redirect (AuthR LoginR))+        pure note   defaultLayout do     $(widgetFile "note")-    toWidgetBody [julius|+    toWidgetBody+      [julius|         app.userR = "@{UserR unamep}";         app.dat.note = #{ toJSON note } || [];         app.dat.isowner = #{ isowner };     |]-    toWidget [julius|-      PS.renderNote('##{rawJS renderEl}')(app.dat.note)();+    toWidget+      [hamlet|+      <script type="module">+        import { renderNote } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}'+        renderNote('##{renderEl}')(app.dat.note)();     |]  getAddNoteSlimViewR :: Handler Html@@ -74,19 +88,24 @@  getAddNoteViewR :: UserNameP -> Handler Html getAddNoteViewR unamep@(UserNameP uname) = do+  frontendBundleName <- appFrontendBundleName <$> getYesod   userId <- requireAuthId   note <- liftIO . _toNote userId =<< noteFormUrl   let renderEl = "note" :: Text       enote = Entity (NoteKey 0) note   defaultLayout do     $(widgetFile "note")-    toWidgetBody [julius|+    toWidgetBody+      [julius|         app.userR = "@{UserR unamep}";         app.noteR = "@{NoteR unamep (noteSlug (entityVal enote))}";         app.dat.note = #{ toJSON enote } || [];     |]-    toWidget [julius|-      PS.renderNote('##{rawJS renderEl}')(app.dat.note)();+    toWidget+      [hamlet|+      <script type="module">+        import { renderNote } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}'+        renderNote('##{renderEl}')(app.dat.note)();     |]  deleteDeleteNoteR :: Int64 -> Handler Html@@ -122,37 +141,40 @@     knid = toSqlKey <$> (_id noteForm >>= \i -> if i > 0 then Just i else Nothing)  data NoteForm = NoteForm-  { _id :: Maybe Int64-  , _slug :: Maybe NtSlug-  , _title :: Maybe Text-  , _text :: Maybe Textarea-  , _isMarkdown :: Maybe Bool-  , _shared :: Maybe Bool-  , _created :: Maybe UTCTimeStr-  , _updated :: Maybe UTCTimeStr-  } deriving (Show, Eq, Read, Generic)+  { _id :: Maybe Int64,+    _slug :: Maybe NtSlug,+    _title :: Maybe Text,+    _text :: Maybe Textarea,+    _isMarkdown :: Maybe Bool,+    _shared :: Maybe Bool,+    _created :: Maybe UTCTimeStr,+    _updated :: Maybe UTCTimeStr+  }+  deriving (Show, Eq, Read, Generic)  instance FromJSON NoteForm where parseJSON = A.genericParseJSON gNoteFormOptions+ instance ToJSON NoteForm where toJSON = A.genericToJSON gNoteFormOptions  gNoteFormOptions :: A.Options-gNoteFormOptions = A.defaultOptions { A.fieldLabelModifier = drop 1 }+gNoteFormOptions = A.defaultOptions {A.fieldLabelModifier = drop 1}  noteFormUrl :: Handler NoteForm noteFormUrl = do   title <- lookupGetParam "title"   description <- lookupGetParam "description" <&> fmap Textarea   isMarkdown <- lookupGetParam "isMarkdown" <&> fmap parseChk-  pure $ NoteForm-    { _id = Nothing-    , _slug = Nothing-    , _title = title-    , _text = description-    , _isMarkdown = isMarkdown-    , _shared = Nothing-    , _created = Nothing-    , _updated = Nothing-    }+  pure+    $ NoteForm+      { _id = Nothing,+        _slug = Nothing,+        _title = title,+        _text = description,+        _isMarkdown = isMarkdown,+        _shared = Nothing,+        _created = Nothing,+        _updated = Nothing+      }   where     parseChk s = s == "yes" || s == "on" || s == "true" || s == "1" @@ -160,29 +182,29 @@ _toNote userId NoteForm {..} = do   time <- liftIO getCurrentTime   slug <- maybe mkNtSlug pure _slug-  pure $-    Note-    { noteUserId = userId-    , noteSlug = slug-    , noteLength = length _text-    , noteTitle = fromMaybe "" _title-    , noteText = maybe "" unTextarea _text-    , noteIsMarkdown = Just True == _isMarkdown-    , noteShared = Just True == _shared-    , noteCreated = maybe time unUTCTimeStr _created-    , noteUpdated = maybe time unUTCTimeStr _updated-    }+  pure+    $ Note+      { noteUserId = userId,+        noteSlug = slug,+        noteLength = length _text,+        noteTitle = fromMaybe "" _title,+        noteText = maybe "" unTextarea _text,+        noteIsMarkdown = Just True == _isMarkdown,+        noteShared = Just True == _shared,+        noteCreated = maybe time unUTCTimeStr _created,+        noteUpdated = maybe time unUTCTimeStr _updated+      }  noteToRssEntry :: (Route App -> Text) -> UserNameP -> Entity Note -> FeedEntry Text noteToRssEntry render usernamep (Entity entryId entry) =   FeedEntry-  { feedEntryLink = render $ NoteR usernamep (noteSlug entry)-  , feedEntryUpdated = noteUpdated entry-  , feedEntryTitle = noteTitle entry-  , feedEntryContent = toHtml (noteText entry)-  , feedEntryEnclosure = Nothing-  , feedEntryCategories = []-  }+    { feedEntryLink = render $ NoteR usernamep (noteSlug entry),+      feedEntryUpdated = noteUpdated entry,+      feedEntryTitle = noteTitle entry,+      feedEntryContent = toHtml (noteText entry),+      feedEntryEnclosure = Nothing,+      feedEntryCategories = []+    }  getNotesFeedR :: UserNameP -> Handler RepRss getNotesFeedR unamep@(UserNameP uname) = do@@ -190,33 +212,34 @@   (limit', page') <- lookupPagingParams   mquery <- lookupGetParam "query"   let limit = maybe 20 fromIntegral limit'-      page  = maybe 1   fromIntegral page'+      page = maybe 1 fromIntegral page'       isowner = Just uname == mauthuname       sharedp = if isowner then SharedAll else SharedPublic   (_, notes) <- runDB do-      Entity userId user <- getBy404 (UniqueUserName uname)-      when (not isowner && userPrivacyLock user)-        (redirect (AuthR LoginR))-      getNoteList userId mquery sharedp limit page+    Entity userId user <- getBy404 (UniqueUserName uname)+    when+      (not isowner && userPrivacyLock user)+      (redirect (AuthR LoginR))+    getNoteList userId mquery sharedp limit page   render <- getUrlRender   let (descr :: Html) = toHtml $ H.text (uname <> " notes")       entries = map (noteToRssEntry render unamep) notes   updated <- case maximumMay (map feedEntryUpdated entries) of-                Nothing -> liftIO getCurrentTime-                Just m ->  return m+    Nothing -> liftIO getCurrentTime+    Just m -> return m   (feedLinkSelf, feedLinkHome) <- getFeedLinkSelf-  rssFeedText $-    Feed-    { feedTitle = uname <> " notes"-    , feedLinkSelf = feedLinkSelf-    , feedLinkHome = feedLinkHome-    , feedAuthor = uname-    , feedDescription = descr-    , feedLanguage = "en"-    , feedUpdated = updated-    , feedLogo = Nothing-    , feedEntries = entries-    }+  rssFeedText+    $ Feed+      { feedTitle = uname <> " notes",+        feedLinkSelf = feedLinkSelf,+        feedLinkHome = feedLinkHome,+        feedAuthor = uname,+        feedDescription = descr,+        feedLanguage = "en",+        feedUpdated = updated,+        feedLogo = Nothing,+        feedEntries = entries+      }   where     getFeedLinkSelf = do       request <- getRequest
src/Handler/User.hs view
@@ -1,17 +1,18 @@-{-# OPTIONS_GHC -fno-warn-unused-matches #-} {-# LANGUAGE TupleSections #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}+ module Handler.User where -import qualified Data.Text as T-import           Handler.Common-import           Import-import qualified Text.Blaze.Html5 as H-import           Yesod.RssFeed import qualified Data.Map as Map+import qualified Data.Text as T+import Handler.Common+import Import import qualified Network.Wai.Internal as W+import qualified Text.Blaze.Html5 as H+import Yesod.RssFeed  getUserR :: UserNameP -> Handler Html-getUserR uname=+getUserR uname =   _getUser uname SharedAll FilterAll (TagsP [])  getUserSharedR :: UserNameP -> SharedP -> Handler Html@@ -27,10 +28,11 @@  _getUser :: UserNameP -> SharedP -> FilterP -> TagsP -> Handler Html _getUser unamep@(UserNameP uname) sharedp' filterp' (TagsP pathtags) = do+  frontendBundleName <- appFrontendBundleName <$> getYesod   mauthuname <- maybeAuthUsername   (limit', page') <- lookupPagingParams   let limit = maybe 120 fromIntegral limit'-      page  = maybe 1   fromIntegral page'+      page = maybe 1 fromIntegral page'       isowner = Just uname == mauthuname       sharedp = if isowner then sharedp' else SharedPublic       filterp = case filterp' of@@ -40,11 +42,12 @@       queryp = "query" :: Text   mquery <- lookupGetParam queryp   let mqueryp = fmap (queryp,) mquery-  (bcount, btmarks) <- runDB $ do-       Entity userId user <- getBy404 (UniqueUserName uname)-       when (not isowner && userPrivacyLock user)-         (redirect (AuthR LoginR))-       bookmarksTagsQuery userId sharedp filterp pathtags mquery limit page+  (suggestTags, (bcount, btmarks)) <- runDB $ do+    Entity userId user <- getBy404 (UniqueUserName uname)+    when+      (not isowner && userPrivacyLock user)+      (redirect (AuthR LoginR))+    (userSuggestTags user,) <$> bookmarksTagsQuery userId sharedp filterp pathtags mquery limit page   when (bcount == 0) (case filterp of FilterSingle _ -> notFound; _ -> pure ())   mroute <- getCurrentRoute   tagCloudMode <- getTagCloudMode isowner pathtags@@ -56,19 +59,24 @@         tagCloudRenderEl = "tagCloud" :: Text     rssLink (UserFeedR unamep) "feed"     $(widgetFile "user")-    toWidgetBody [julius|+    toWidgetBody+      [julius|         app.dat.bmarks = #{ toJSON $ toBookmarkFormList btmarks } || [];         app.dat.isowner = #{ isowner };+      app.dat.suggestTags = #{ suggestTags };         app.userR = "@{UserR unamep}";         app.tagCloudMode = #{ toJSON $ tagCloudMode } || {};     |]-    toWidget [julius|-      setTimeout(() => {-        PS.renderBookmarks('##{rawJS renderEl}')(app.dat.bmarks)();-      }, 0);-      setTimeout(() => {-        PS.renderTagCloud('##{rawJS tagCloudRenderEl}')(app.tagCloudMode)();-      }, 0);+    toWidget+      [hamlet|+      <script type="module">+        import { renderBookmarks, renderTagCloud } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}'+        setTimeout(() => {+          renderBookmarks('##{renderEl}')(app.dat.bmarks)();+        }, 0);+        setTimeout(() => {+          renderTagCloud('##{tagCloudRenderEl}')(app.tagCloudMode)();+        }, 0);     |]  -- Form@@ -81,7 +89,7 @@   tc <- runDB $ case mode of     TagCloudModeTop _ n -> tagCountTop userId n     TagCloudModeLowerBound _ n -> tagCountLowerBound userId n-    TagCloudModeRelated _ tags ->  tagCountRelated userId tags+    TagCloudModeRelated _ tags -> tagCountRelated userId tags     TagCloudModeNone -> notFound   sendStatusJSON ok200 (Map.fromList tc :: Map.Map Text Int) @@ -102,13 +110,13 @@ bookmarkToRssEntry :: (Entity Bookmark, Maybe Text) -> FeedEntry Text bookmarkToRssEntry (Entity entryId entry, tags) =   FeedEntry-  { feedEntryLink = bookmarkHref entry-  , feedEntryUpdated = bookmarkTime entry-  , feedEntryTitle = bookmarkDescription entry-  , feedEntryContent = toHtml (bookmarkExtended entry)-  , feedEntryCategories = map (EntryCategory Nothing Nothing) (maybe [] words tags)-  , feedEntryEnclosure = Nothing-  }+    { feedEntryLink = bookmarkHref entry,+      feedEntryUpdated = bookmarkTime entry,+      feedEntryTitle = bookmarkDescription entry,+      feedEntryContent = toHtml (bookmarkExtended entry),+      feedEntryCategories = map (EntryCategory Nothing Nothing) (maybe [] words tags),+      feedEntryEnclosure = Nothing+    }  getUserFeedR :: UserNameP -> Handler RepRss getUserFeedR unamep = do@@ -130,7 +138,7 @@   mauthuname <- maybeAuthUsername   (limit', page') <- lookupPagingParams   let limit = maybe 120 fromIntegral limit'-      page  = maybe 1   fromIntegral page'+      page = maybe 1 fromIntegral page'       isowner = Just uname == mauthuname       sharedp = if isowner then sharedp' else SharedPublic       filterp = case filterp' of@@ -140,28 +148,29 @@       queryp = "query" :: Text   mquery <- lookupGetParam queryp   (_, btmarks) <- runDB $ do-       Entity userId user <- getBy404 (UniqueUserName uname)-       when (not isowner && userPrivacyLock user)-         (redirect (AuthR LoginR))-       bookmarksTagsQuery userId sharedp filterp pathtags mquery limit page+    Entity userId user <- getBy404 (UniqueUserName uname)+    when+      (not isowner && userPrivacyLock user)+      (redirect (AuthR LoginR))+    bookmarksTagsQuery userId 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-                Nothing -> liftIO getCurrentTime-                Just m ->  return m+    Nothing -> liftIO getCurrentTime+    Just m -> return m   (feedLinkSelf, feedLinkHome) <- getFeedLinkSelf-  rssFeedText $-    Feed-    { feedTitle = "espial " <> uname-    , feedLinkSelf = feedLinkSelf-    , feedLinkHome = feedLinkHome-    , feedAuthor = uname-    , feedDescription = descr-    , feedLanguage = "en"-    , feedUpdated = updated-    , feedLogo = Nothing-    , feedEntries = entries-    }+  rssFeedText+    $ Feed+      { feedTitle = "espial " <> uname,+        feedLinkSelf = feedLinkSelf,+        feedLinkHome = feedLinkHome,+        feedAuthor = uname,+        feedDescription = descr,+        feedLanguage = "en",+        feedUpdated = updated,+        feedLogo = Nothing,+        feedEntries = entries+      }   where     getFeedLinkSelf = do       request <- getRequest
src/Import.hs view
@@ -1,15 +1,16 @@-{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoImplicitPrelude #-}  module Import-    ( module Import-    ) where--import Foundation            as Import-import Import.NoFoundation   as Import+  ( module Import,+  )+where -import qualified Data.ByteString.Char8 as B8 import qualified Data.Aeson as A+import qualified Data.ByteString.Char8 as B8+import Data.Type.Equality (type (~))+import Foundation as Import+import Import.NoFoundation as Import  -- Forms @@ -17,9 +18,9 @@  type Form f = Html -> MForm Handler (FormResult f, Widget) -runInputPostJSONResult-  :: (FromJSON a, MonadHandlerForm m)-  => FormInput m a -> m (FormResult a)+runInputPostJSONResult ::+  (FromJSON a, MonadHandlerForm m) =>+  FormInput m a -> m (FormResult a) runInputPostJSONResult form = do   mct <- lookupHeader "content-type"   case fmap (B8.takeWhile (/= ';')) mct of@@ -31,28 +32,28 @@       runInputPostResult form     _ -> pure FormMissing -runInputPostJSON-  :: (FromJSON a, MonadHandlerForm m)-  => FormInput m a -> m a+runInputPostJSON ::+  (FromJSON a, MonadHandlerForm m) =>+  FormInput m a -> m a runInputPostJSON form =-  runInputPostJSONResult form >>=-  \case-    FormSuccess a -> pure a-    FormFailure e -> invalidArgs e-    FormMissing -> invalidArgs []+  runInputPostJSONResult form+    >>= \case+      FormSuccess a -> pure a+      FormFailure e -> invalidArgs e+      FormMissing -> invalidArgs []  class MkIForm a where-  mkIForm :: MonadHandlerForm m => FormInput m a+  mkIForm :: (MonadHandlerForm m) => FormInput m a -aFormToMaybeGetSuccess-  :: MonadHandler f-  => AForm f a -> f (Maybe a)+aFormToMaybeGetSuccess ::+  (MonadHandler f) =>+  AForm f a -> f (Maybe a) aFormToMaybeGetSuccess =   fmap (maybeSuccess . fst) . runFormGet . const . fmap fst . aFormToForm -aFormToMaybePostSuccess-  :: MonadHandlerForm f-  => AForm f a -> f (Maybe a)+aFormToMaybePostSuccess ::+  (MonadHandlerForm f) =>+  AForm f a -> f (Maybe a) aFormToMaybePostSuccess =   fmap (maybeSuccess . fst) . runFormPostNoToken . const . fmap fst . aFormToForm @@ -60,27 +61,26 @@ maybeSuccess (FormSuccess a) = Just a maybeSuccess _ = Nothing - -- FieldSettings  named :: Text -> FieldSettings master -> FieldSettings master named n f =   f-  { fsName = Just n-  , fsId = Just n-  }+    { fsName = Just n,+      fsId = Just n+    } -attr :: (Text,Text) -> FieldSettings master -> FieldSettings master+attr :: (Text, Text) -> FieldSettings master -> FieldSettings master attr n f =   f-  { fsAttrs = n : fsAttrs f-  }+    { fsAttrs = n : fsAttrs f+    } -attrs :: [(Text,Text)] -> FieldSettings master -> FieldSettings master+attrs :: [(Text, Text)] -> FieldSettings master -> FieldSettings master attrs n f =   f-  { fsAttrs = n ++ fsAttrs f-  }+    { fsAttrs = n ++ fsAttrs f+    }  cls :: [Text] -> FieldSettings master -> FieldSettings master cls n = attrs [("class", unwords n)]
src/Import/NoFoundation.hs view
@@ -22,7 +22,7 @@ import ModelCustom as Import import Types as Import import Pretty as Import-import Data.Functor as Import+import Data.Functor as Import hiding (unzip) import Generic as Import import Database.Persist.Sql as Import (fromSqlKey, toSqlKey) 
src/Model.hs view
@@ -3,40 +3,40 @@  module Model where +import ClassyPrelude.Yesod hiding (Value, exists, groupBy, on, (<=.), (==.), (>=.), (||.)) import qualified ClassyPrelude.Yesod as CP import qualified Control.Monad.Combinators as PC (between)+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 qualified Data.Time as TI (ParseTime)-import qualified Data.Time.Clock.POSIX as TI (posixSecondsToUTCTime, POSIXTime)-import qualified Data.Time.ISO8601 as TI (parseISO8601, formatISO8601Millis)-import ClassyPrelude.Yesod hiding ((==.), (||.), on, Value, groupBy, exists, (>=.), (<=.))-import Control.Monad.Fail (MonadFail)-import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)-import Control.Monad.Writer (tell) import Data.Char (isSpace) import Data.Either (fromRight) import Data.Foldable (foldl, foldl1, sequenceA_)-import Data.List.NonEmpty (NonEmpty(..))-import Database.Esqueleto.Experimental+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 Database.Esqueleto.Experimental hiding ((<&>)) import Database.Esqueleto.Internal.Internal (unsafeSqlFunction)+import ModelCustom import Pretty () import System.Directory (listDirectory) import Types -import qualified Data.Map.Strict as MS--import ModelCustom--share [mkPersist sqlSettings, mkMigrate "migrateSchema"] [persistLowerCase|+share+  [mkPersist sqlSettings, mkMigrate "migrateSchema"]+  [persistLowerCase| User json   name Text   passwordHash BCrypt   apiToken HashedApiKey Maybe   privateDefault Bool   archiveDefault Bool+  suggestTags Bool default=True   privacyLock Bool   UniqueUserName name   deriving Show Eq Typeable Ord@@ -78,20 +78,20 @@   deriving Show Eq Typeable Ord |] -newtype UTCTimeStr =-  UTCTimeStr { unUTCTimeStr :: UTCTime }+newtype UTCTimeStr+  = UTCTimeStr {unUTCTimeStr :: UTCTime}   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) -newtype UserNameP =-  UserNameP { unUserNameP :: Text }+newtype UserNameP+  = UserNameP {unUserNameP :: Text}   deriving (Eq, Show, Read) -newtype TagsP =-  TagsP { unTagsP :: [Text] }+newtype TagsP+  = TagsP {unTagsP :: [Text]}   deriving (Eq, Show, Read)  data SharedP@@ -108,12 +108,12 @@   | FilterSingle BmSlug   deriving (Eq, Show, Read) -newtype UnreadOnly =-  UnreadOnly { unUnreadOnly :: Bool }-+newtype UnreadOnly+  = UnreadOnly {unUnreadOnly :: Bool}   deriving (Eq, Show, Read)  type Limit = Int64+ type Page = Int64  migrateAll :: Migration@@ -126,21 +126,21 @@ runMigrations = runMigration migrateAll  toMigration :: [Text] -> Migration-toMigration = lift . tell . fmap (False ,)+toMigration = lift . tell . fmap (False,)  migrateIndexes :: Migration migrateIndexes =   toMigration-    [ "CREATE INDEX IF NOT EXISTS idx_bookmark_time ON bookmark (user_id, time DESC)"-    , "CREATE INDEX IF NOT EXISTS idx_bookmark_tag_bookmark_id ON bookmark_tag (bookmark_id, id, tag, seq)"-    , "CREATE INDEX IF NOT EXISTS idx_note_user_created ON note (user_id, created DESC)"+    [ "CREATE INDEX IF NOT EXISTS idx_bookmark_time ON bookmark (user_id, time DESC)",+      "CREATE INDEX IF NOT EXISTS idx_bookmark_tag_bookmark_id ON bookmark_tag (bookmark_id, id, tag, seq)",+      "CREATE INDEX IF NOT EXISTS idx_note_user_created ON note (user_id, created DESC)"     ]  sqliteGroupConcat ::-     PersistField a-  => SqlExpr (Value a)-  -> SqlExpr (Value a)-  -> SqlExpr (Value Text)+  (PersistField a) =>+  SqlExpr (Value a) ->+  SqlExpr (Value a) ->+  SqlExpr (Value Text) sqliteGroupConcat expr sep = unsafeSqlFunction "GROUP_CONCAT" [expr, sep]  authenticatePassword :: Text -> Text -> DB (Maybe (Entity User))@@ -161,54 +161,72 @@   selectFirst [UserApiToken CP.==. Just (hashApiKey apiKey)] []  -- returns a list of pair of bookmark with tags merged into a string-bookmarksTagsQuery-  :: Key User-  -> SharedP-  -> FilterP-  -> [Tag]-  -> Maybe Text-  -> Limit-  -> Page-  -> DB (Int, [(Entity Bookmark, Maybe Text)])+bookmarksTagsQuery ::+  Key User ->+  SharedP ->+  FilterP ->+  [Tag] ->+  Maybe Text ->+  Limit ->+  Page ->+  DB (Int, [(Entity Bookmark, Maybe Text)]) bookmarksTagsQuery userId sharedp filterp tags mquery limit' page =   (,) -- total count-  <$> fmap (sum . fmap unValue)-      (select $ from (table @Bookmark) >>= \b -> do-       _whereClause b-       pure countRows)-      -- paged data-  <*> (fmap . fmap . fmap) unValue-      (select $ from (table @Bookmark) >>= \b -> do-       _whereClause b-       orderBy [desc (b ^. BookmarkTime)]-       limit limit'-       offset ((page - 1) * limit')-       pure (b, subSelect $ from (table @BookmarkTag) >>= \t -> do+    <$> fmap+      (sum . fmap unValue)+      ( select $ from (table @Bookmark) >>= \b -> do+          _whereClause b+          pure countRows+      )+    -- paged data+    <*> (fmap . fmap . fmap)+      unValue+      ( select $ from (table @Bookmark) >>= \b -> do+          _whereClause b+          orderBy [desc (b ^. BookmarkTime)]+          limit limit'+          offset ((page - 1) * limit')+          pure+            ( b,+              subSelect $ from (table @BookmarkTag) >>= \t -> do                 where_ (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId)                 groupBy (t ^. BookmarkTagBookmarkId)                 orderBy [asc (t ^. BookmarkTagSeq)]-                pure $ sqliteGroupConcat (t ^. BookmarkTagTag) (val " ")))+                pure $ sqliteGroupConcat (t ^. BookmarkTagTag) (val " ")+            )+      )   where     _whereClause b = do-      where_ $-        foldl (\expr tag ->-                expr &&. exists (   -- each tag becomes an exists constraint-                          from (table @BookmarkTag) >>= \t ->-                          where_ (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId &&.-                                 (t ^. BookmarkTagTag `like` val tag))))+      where_+        $ foldl+          ( \expr tag ->+              expr+                &&. exists+                  ( -- each tag becomes an exists constraint+                    from (table @BookmarkTag) >>= \t ->+                      where_+                        ( t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId+                            &&. (t ^. BookmarkTagTag `like` val tag)+                        )+                  )+          )           (b ^. BookmarkUserId ==. val userId)           tags       case sharedp of         SharedAll -> pure ()-        SharedPublic ->  where_ (b ^. BookmarkShared ==. val True)+        SharedPublic -> where_ (b ^. BookmarkShared ==. val True)         SharedPrivate -> where_ (b ^. BookmarkShared ==. val False)       case filterp of         FilterAll -> pure ()         FilterUnread -> where_ (b ^. BookmarkToRead ==. val True)         FilterStarred -> where_ (b ^. BookmarkSelected ==. val True)         FilterSingle slug -> where_ (b ^. BookmarkSlug ==. val slug)-        FilterUntagged -> where_ $ notExists $ from (table @BookmarkTag) >>= \t -> where_ $-                                                    t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId+        FilterUntagged ->+          where_ $ notExists $ from (table @BookmarkTag) >>= \t ->+            where_+              $ t+              ^. BookmarkTagBookmarkId+              ==. b ^. BookmarkId       -- search       sequenceA_ (parseSearchQuery (toLikeExpr b) =<< mquery) @@ -218,42 +236,55 @@         wild s = (%) ++. val s ++. (%)         toLikeB field s = b ^. field `like` wild s         p_allFields =-          toLikeB BookmarkHref term ||.-          toLikeB BookmarkDescription term ||.-          toLikeB BookmarkExtended term ||.-          exists (from (table @BookmarkTag) >>= \t -> where_ $-               (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId) &&.-               (t ^. BookmarkTagTag `like` wild term))+          toLikeB BookmarkHref term+            ||. toLikeB BookmarkDescription term+            ||. toLikeB BookmarkExtended term+            ||. exists+              ( from (table @BookmarkTag) >>= \t ->+                  where_+                    $ (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId)+                    &&. (t ^. BookmarkTagTag `like` wild term)+              )         p_onefield = p_url <|> p_title <|> p_description <|> p_tags <|> p_after <|> p_before           where             p_url = "url:" *> fmap (toLikeB BookmarkHref) P.takeText             p_title = "title:" *> fmap (toLikeB BookmarkDescription) P.takeText             p_description = "description:" *> fmap (toLikeB BookmarkExtended) P.takeText-            p_tags = "tags:" *> fmap (\term' -> exists $ from (table @BookmarkTag) >>= \t -> where_ $-                                                         (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId) &&.-                                                         (t ^. BookmarkTagTag `like` wild term')) P.takeText-            p_after  = "after:"  *> fmap ((b ^. BookmarkTime >=.) . val) (parseTimeText =<< P.takeText)+            p_tags =+              "tags:"+                *> fmap+                  ( \term' ->+                      exists $ from (table @BookmarkTag) >>= \t ->+                        where_+                          $ (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId)+                          &&. (t ^. BookmarkTagTag `like` wild term')+                  )+                  P.takeText+            p_after = "after:" *> fmap ((b ^. BookmarkTime >=.) . val) (parseTimeText =<< P.takeText)             p_before = "before:" *> fmap ((b ^. BookmarkTime <=.) . val) (parseTimeText =<< P.takeText) - -- returns a list of pair of bookmark with tags merged into a string allUserBookmarks :: Key User -> DB [(Entity Bookmark, Text)] allUserBookmarks user =-  (fmap . fmap . fmap) (fromMaybe "" . unValue) $-  select $ do-    b <- from (table @Bookmark)-    where_ (b ^. BookmarkUserId ==. val user)-    orderBy [asc (b ^. BookmarkTime)]-    pure (b, subSelect $ from (table @BookmarkTag) >>= \t -> do-             where_ (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId)-             groupBy (t ^. BookmarkTagBookmarkId)-             orderBy [asc (t ^. BookmarkTagSeq)]-             pure $ sqliteGroupConcat (t ^. BookmarkTagTag) (val " "))+  (fmap . fmap . fmap) (fromMaybe "" . unValue)+    $ select+    $ do+      b <- from (table @Bookmark)+      where_ (b ^. BookmarkUserId ==. val user)+      orderBy [asc (b ^. BookmarkTime)]+      pure+        ( b,+          subSelect $ from (table @BookmarkTag) >>= \t -> do+            where_ (t ^. BookmarkTagBookmarkId ==. b ^. BookmarkId)+            groupBy (t ^. BookmarkTagBookmarkId)+            orderBy [asc (t ^. BookmarkTagSeq)]+            pure $ sqliteGroupConcat (t ^. BookmarkTagTag) (val " ")+        )  parseSearchQuery ::-  (Text -> SqlExpr (Value Bool))-  -> Text-  -> Maybe (SqlQuery ())+  (Text -> SqlExpr (Value Bool)) ->+  Text ->+  Maybe (SqlQuery ()) parseSearchQuery toExpr =   fmap where_ . either (const Nothing) Just . P.parseOnly andE   where@@ -269,20 +300,25 @@  parseTimeText :: (TI.ParseTime t, MonadFail m, Alternative m) => Text -> m t parseTimeText t =-  asum $-  flip (parseTimeM True defaultTimeLocale) (unpack t) <$>-  [ "%-m/%-d/%Y"    , "%-m/%-d/%Y%z"    , "%-m/%-d/%Y%Z"     -- 12/31/2018-  , "%Y-%-m-%-d"    , "%Y-%-m-%-d%z"    , "%Y-%-m-%-d%Z"     -- 2018-12-31-  , "%Y-%-m-%-dT%T" , "%Y-%-m-%-dT%T%z" , "%Y-%-m-%-dT%T%Z"  -- 2018-12-31T06:40:53-  , "%s"                                                     -- 1535932800-  ]+  asum+    $ flip (parseTimeM True defaultTimeLocale) (unpack t)+    <$> [ "%-m/%-d/%Y",+          "%-m/%-d/%Y%z",+          "%-m/%-d/%Y%Z", -- 12/31/2018+          "%Y-%-m-%-d",+          "%Y-%-m-%-d%z",+          "%Y-%-m-%-d%Z", -- 2018-12-31+          "%Y-%-m-%-dT%T",+          "%Y-%-m-%-dT%T%z",+          "%Y-%-m-%-dT%T%Z", -- 2018-12-31T06:40:53+          "%s" -- 1535932800+        ]  withTags :: Key Bookmark -> DB [Entity BookmarkTag] withTags key = selectList [BookmarkTagBookmarkId CP.==. key] [Asc BookmarkTagSeq]  -- Note List Query - getNote :: Key User -> NtSlug -> DB (Maybe (Entity Note)) getNote userKey slug =   selectFirst [NoteUserId CP.==. userKey, NoteSlug CP.==. slug] []@@ -290,18 +326,21 @@ getNoteList :: Key User -> Maybe Text -> SharedP -> Limit -> Page -> DB (Int, [Entity Note]) getNoteList key mquery sharedp limit' page =   (,) -- total count-  <$> fmap (sum . fmap unValue)-      (select $ do-      b <- from (table @Note)-      _whereClause b-      pure countRows)-  <*> (select $ do-       b <- from (table @Note)-       _whereClause b-       orderBy [desc (b ^. NoteCreated)]-       limit limit'-       offset ((page - 1) * limit')-       pure b)+    <$> fmap+      (sum . fmap unValue)+      ( select $ do+          b <- from (table @Note)+          _whereClause b+          pure countRows+      )+    <*> ( select $ do+            b <- from (table @Note)+            _whereClause b+            orderBy [desc (b ^. NoteCreated)]+            limit limit'+            offset ((page - 1) * limit')+            pure b+        )   where     _whereClause b = do       where_ (b ^. NoteUserId ==. val key)@@ -309,7 +348,7 @@       sequenceA_ (parseSearchQuery (toLikeExpr b) =<< mquery)       case sharedp of         SharedAll -> pure ()-        SharedPublic ->  where_ (b ^. NoteShared ==. val True)+        SharedPublic -> where_ (b ^. NoteShared ==. val True)         SharedPrivate -> where_ (b ^. NoteShared ==. val False)      toLikeExpr :: SqlExpr (Entity Note) -> Text -> SqlExpr (Value Bool)@@ -322,7 +361,7 @@           where             p_title = "title:" *> fmap (toLikeN NoteTitle) P.takeText             p_text = "description:" *> fmap (toLikeN NoteText) P.takeText-            p_after  = "after:"  *> fmap ((b ^. NoteCreated >=.) . val) (parseTimeText =<< P.takeText)+            p_after = "after:" *> fmap ((b ^. NoteCreated >=.) . val) (parseTimeText =<< P.takeText)             p_before = "before:" *> fmap ((b ^. NoteCreated <=.) . val) (parseTimeText =<< P.takeText)  -- Bookmark Files@@ -331,68 +370,71 @@ 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-    }+  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+  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)+  { 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")+    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]@@ -400,28 +442,27 @@   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-          }-        ]+      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)+      join+        <$> mapM+          (firefoxBookmarkNodeToBookmark user)+          (fromMaybe [] firefoxBookmarkChildren)     _ -> pure [] - insertFileBookmarks :: Key User -> FilePath -> DB (Either String Int) insertFileBookmarks userId bookmarkFile = do   mfmarks <- liftIO $ readFileBookmarks bookmarkFile@@ -430,15 +471,14 @@     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)+      mapM_ (void . insertUnique)+        $ concatMap (uncurry (mkBookmarkTags userId))+        $ catMaybes+        $ zipWith+          (\mbid tags -> (,tags) <$> mbid)           mbids           (extractTags <$> fmarks)       pure $ Right (length bmarks)-   where     extractTags = words . fileBookmarkTags @@ -452,18 +492,17 @@       mapM_ (void . insertUnique) bmarks       pure $ Right (length bmarks) --readFileBookmarks :: MonadIO m => FilePath -> m (Either String [FileBookmark])+readFileBookmarks :: (MonadIO m) => FilePath -> m (Either String [FileBookmark]) readFileBookmarks fpath =   A.eitherDecode' . fromStrict <$> readFile fpath -readFFBookmarks :: MonadIO m => FilePath -> m (Either String FFBookmarkNode)+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+  liftIO . A.encodeFile fpath =<< getFileBookmarks user  getFileBookmarks :: Key User -> DB [FileBookmark] getFileBookmarks user = do@@ -471,8 +510,8 @@   pure $ fmap (\(bm, t) -> bookmarkTofileBookmark (entityVal bm) t) marks  data TagCloudMode-  = TagCloudModeTop Bool Int          -- { mode: "top", value: 200 }-  | TagCloudModeLowerBound Bool Int   -- { mode: "lowerBound", value: 20 }+  = TagCloudModeTop Bool Int -- { mode: "top", value: 200 }+  | TagCloudModeLowerBound Bool Int -- { mode: "lowerBound", value: 20 }   | TagCloudModeRelated Bool [Tag]   | TagCloudModeNone   deriving (Show, Eq, Read, Generic)@@ -495,104 +534,114 @@  instance ToJSON TagCloudMode where   toJSON (TagCloudModeTop e i) =-    object [ "mode" .= String "top"-           , "value" .= toJSON i-           , "expanded" .= Bool e-           ]+    object+      [ "mode" .= String "top",+        "value" .= toJSON i,+        "expanded" .= Bool e+      ]   toJSON (TagCloudModeLowerBound e i) =-    object [ "mode" .= String "lowerBound"-           , "value" .= toJSON i-           , "expanded" .= Bool e-           ]+    object+      [ "mode" .= String "lowerBound",+        "value" .= toJSON i,+        "expanded" .= Bool e+      ]   toJSON (TagCloudModeRelated e tags) =-    object [ "mode" .= String "related"-           , "value" .= String (unwords tags)-           , "expanded" .= Bool e-           ]+    object+      [ "mode" .= String "related",+        "value" .= String (unwords tags),+        "expanded" .= Bool e+      ]   toJSON TagCloudModeNone =-    object [ "mode" .= String "none"-           , "value" .= Null-           , "expanded" .= Bool False-           ]-+    object+      [ "mode" .= String "none",+        "value" .= Null,+        "expanded" .= Bool False+      ]  type Tag = Text  tagCountTop :: Key User -> Int -> DB [(Text, Int)] tagCountTop user top =-    sortOn (toLower . fst) .-    fmap (bimap unValue unValue) <$>-    ( select $ do-      t <- from (table @BookmarkTag)-      where_ (t ^. BookmarkTagUserId ==. val user)-      groupBy (lower_ $ t ^. BookmarkTagTag)-      let countRows' = countRows-      orderBy [desc countRows']-      limit ((fromIntegral . toInteger) top)-      pure (t ^. BookmarkTagTag, countRows')-    )+  sortOn (toLower . fst)+    . fmap (bimap unValue unValue)+    <$> ( select $ do+            t <- from (table @BookmarkTag)+            where_ (t ^. BookmarkTagUserId ==. val user)+            groupBy (lower_ $ t ^. BookmarkTagTag)+            let countRows' = countRows+            orderBy [desc countRows']+            limit (fromIntegral top)+            pure (t ^. BookmarkTagTag, countRows')+        )  tagCountLowerBound :: Key User -> Int -> DB [(Text, Int)] tagCountLowerBound user lowerBound =-    fmap (bimap unValue unValue) <$>-    ( select $ do-      t <- from (table @BookmarkTag)-      where_ (t ^. BookmarkTagUserId ==. val user)-      groupBy (lower_ $ t ^. BookmarkTagTag)-      let countRows' = countRows-      orderBy [asc (t ^. BookmarkTagTag)]-      having (countRows' >=. val lowerBound)-      pure (t ^. BookmarkTagTag, countRows')-    )+  fmap (bimap unValue unValue)+    <$> ( select $ do+            t <- from (table @BookmarkTag)+            where_ (t ^. BookmarkTagUserId ==. val user)+            groupBy (lower_ $ t ^. BookmarkTagTag)+            let countRows' = countRows+            orderBy [asc (t ^. BookmarkTagTag)]+            having (countRows' >=. val lowerBound)+            pure (t ^. BookmarkTagTag, countRows')+        )  tagCountRelated :: Key User -> [Tag] -> DB [(Text, Int)] tagCountRelated user tags =-    fmap (bimap unValue unValue) <$>-    ( select $ do-      t <- from (table @BookmarkTag)-      where_ $-        foldl (\expr tag ->-                expr &&. exists ( do-                          u <- from (table @BookmarkTag)-                          where_ (u ^. BookmarkTagBookmarkId ==. t ^. BookmarkTagBookmarkId &&.-                                 (u ^. BookmarkTagTag `like` val tag))))-          (t ^. BookmarkTagUserId ==. val user)-          tags-      groupBy (lower_ $ t ^. BookmarkTagTag)-      let countRows' = countRows-      orderBy [asc $ lower_ $ (t ^. BookmarkTagTag)]-      pure (t ^. BookmarkTagTag, countRows')-    )+  fmap (bimap unValue unValue)+    <$> ( select $ do+            t <- from (table @BookmarkTag)+            where_+              $ foldl+                ( \expr tag ->+                    expr+                      &&. exists+                        ( do+                            u <- from (table @BookmarkTag)+                            where_+                              ( u ^. BookmarkTagBookmarkId ==. t ^. BookmarkTagBookmarkId+                                  &&. (u ^. BookmarkTagTag `like` val tag)+                              )+                        )+                )+                (t ^. BookmarkTagUserId ==. val user)+                tags+            groupBy (lower_ $ t ^. BookmarkTagTag)+            let countRows' = countRows+            orderBy [asc $ lower_ $ (t ^. BookmarkTagTag)]+            pure (t ^. BookmarkTagTag, countRows')+        )  -- Notes  fileNoteToNote :: UserId -> FileNote -> IO Note-fileNoteToNote user FileNote {..}  = do+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-    }+  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)+    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 :: (MonadIO m) => FilePath -> m (Either String [FileNote])     readFileNotes fdir = do       files <- liftIO (listDirectory fdir)       noteBSS <- mapM (readFile . (fdir </>)) files@@ -600,51 +649,59 @@  -- AccountSettingsForm data AccountSettingsForm = AccountSettingsForm-  { _privateDefault :: Bool-  , _archiveDefault :: Bool-  , _privacyLock :: Bool-  } deriving (Show, Eq, Read, Generic)+  { _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-  , _privacyLock = userPrivacyLock-  }+    { _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-  , UserPrivacyLock CP.=. _privacyLock-  ]+  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)+  { _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 }+gDefaultFormOptions = A.defaultOptions {A.fieldLabelModifier = drop 1}  toBookmarkFormList :: [(Entity Bookmark, Maybe Text)] -> [BookmarkForm] toBookmarkFormList = fmap _toBookmarkForm'@@ -656,37 +713,36 @@ _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-  }-+    { _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-    }+  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@@ -707,21 +763,22 @@   res <- case mbid of     Just bid ->       get bid >>= \case-        Just prev_bm | userId == bookmarkUserId prev_bm ->-          replaceBookmark bid prev_bm+        Just prev_bm+          | userId == bookmarkUserId prev_bm ->+              replaceBookmark bid prev_bm         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         _ -> Created <$> insert bm-  forM_ (maybeUpsertResult res) (insertTags (bookmarkUserId 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 {bookmarkArchiveHref = Nothing}+        else bm {bookmarkArchiveHref = bookmarkArchiveHref prev_bm}     replaceBookmark bid prev_bm = do       replace bid (prepareReplace prev_bm)       deleteTags bid@@ -729,14 +786,14 @@     deleteTags bid =       deleteWhere [BookmarkTagBookmarkId CP.==. bid]     insertTags userId' bid' =-      for_ (zip [1 ..] tags) $-      \(i, tag) -> void $ insert $ BookmarkTag userId' tag bid' i+      for_ (zip [1 ..] tags)+        $ \(i, tag) -> void $ insert $ BookmarkTag userId' tag bid' i  updateBookmarkArchiveUrl :: Key User -> Key Bookmark -> Maybe Text -> DB () updateBookmarkArchiveUrl userId bid marchiveUrl =   updateWhere-  [BookmarkUserId CP.==. userId, BookmarkId CP.==. bid]-  [BookmarkArchiveHref CP.=. marchiveUrl]+    [BookmarkUserId CP.==. userId, BookmarkId CP.==. bid]+    [BookmarkArchiveHref CP.=. marchiveUrl]  upsertNote :: Key User -> Maybe (Key Note) -> Note -> DB (UpsertResult (Key Note)) upsertNote userId mnid note =@@ -744,7 +801,8 @@     Just nid -> do       get nid >>= \case         Just note' -> do-          when (userId /= noteUserId note')+          when+            (userId /= noteUserId note')             (throwString "unauthorized")           replace nid note           pure (Updated nid)@@ -755,40 +813,48 @@ -- * 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)+  { 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")+    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+      [ "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@@ -802,37 +868,111 @@ -- * FileNotes  data FileNote = FileNote-  { fileNoteId :: !Text-  , fileNoteTitle :: !Text-  , fileNoteText :: !Text-  , fileNoteLength :: !Int-  , fileNoteCreatedAt :: !UTCTime-  , fileNoteUpdatedAt :: !UTCTime-  } deriving (Show, Eq, Typeable, Ord)+  { 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")+    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)+      [ "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 ::+  (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/ModelCustom.hs view
@@ -12,6 +12,7 @@ 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 @@ -71,7 +72,7 @@ generateApiKey :: IO ApiKey generateApiKey = do   bytes <- getEntropy 32-  pure $ ApiKey $ Base64Url.encodeBase64 bytes+  pure $ ApiKey $ Base64.extractBase64 $ Base64Url.encodeBase64 bytes  hashApiKey :: ApiKey -> HashedApiKey-hashApiKey = HashedApiKey . TE.decodeUtf8 . Base64Url.encodeBase64' . SHA256.hash . TE.encodeUtf8 . unApiKey+hashApiKey = HashedApiKey . TE.decodeUtf8 . Base64.extractBase64 . Base64Url.encodeBase64' . SHA256.hash . TE.encodeUtf8 . unApiKey
src/Types.hs view
@@ -1,13 +1,14 @@ module Types where  import ClassyPrelude.Yesod+import Data.Type.Equality (type (~)) -type DBM m a = MonadUnliftIO m => SqlPersistT m a+type DBM m a = (MonadUnliftIO m) => SqlPersistT m a  type DB a = forall m. DBM m a  type DBVal val =-  ( PersistEntity val-  , PersistEntityBackend val ~ SqlBackend-  , PersistStore (PersistEntityBackend val))-+  ( PersistEntity val,+    PersistEntityBackend val ~ SqlBackend,+    PersistStore (PersistEntityBackend val)+  )
+ static/fonts/glyphicons-halflings-regular.eot view

binary file changed (absent → 20335 bytes)

+ static/fonts/glyphicons-halflings-regular.svg view
@@ -0,0 +1,229 @@+<?xml version="1.0" standalone="no"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >+<svg xmlns="http://www.w3.org/2000/svg">+<metadata></metadata>+<defs>+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >+<font-face units-per-em="1200" ascent="960" descent="-240" />+<missing-glyph horiz-adv-x="500" />+<glyph />+<glyph />+<glyph unicode="&#xd;" />+<glyph unicode=" " />+<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />+<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />+<glyph unicode="&#xa0;" />+<glyph unicode="&#x2000;" horiz-adv-x="652" />+<glyph unicode="&#x2001;" horiz-adv-x="1304" />+<glyph unicode="&#x2002;" horiz-adv-x="652" />+<glyph unicode="&#x2003;" horiz-adv-x="1304" />+<glyph unicode="&#x2004;" horiz-adv-x="434" />+<glyph unicode="&#x2005;" horiz-adv-x="326" />+<glyph unicode="&#x2006;" horiz-adv-x="217" />+<glyph unicode="&#x2007;" horiz-adv-x="217" />+<glyph unicode="&#x2008;" horiz-adv-x="163" />+<glyph unicode="&#x2009;" horiz-adv-x="260" />+<glyph unicode="&#x200a;" horiz-adv-x="72" />+<glyph unicode="&#x202f;" horiz-adv-x="260" />+<glyph unicode="&#x205f;" horiz-adv-x="326" />+<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />+<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />+<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />+<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />+<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />+<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />+<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />+<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />+<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />+<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />+<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />+<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />+<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />+<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />+<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />+<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />+<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />+<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />+<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />+<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />+<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />+<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />+<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />+<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />+<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />+<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />+<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />+<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />+<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />+<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />+<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />+<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />+<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />+<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />+<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />+<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />+<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />+<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />+<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />+<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />+<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />+<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />+<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />+<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />+<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />+<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />+<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />+<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />+<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />+<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />+<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />+<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />+<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />+<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />+<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />+<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />+<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />+<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />+<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />+<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />+<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />+<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />+<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />+<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />+<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />+<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />+<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />+<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />+<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />+<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />+<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />+<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />+<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />+<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />+<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />+<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />+<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />+<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />+<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />+<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />+<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />+<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />+<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />+<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />+<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />+<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />+<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />+<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />+<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />+<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />+<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />+<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />+<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />+<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />+<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />+<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />+<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />+<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />+<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />+<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />+<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />+<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />+<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />+<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />+<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />+<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />+<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />+<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />+<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />+<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />+<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />+<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />+<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />+<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />+<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />+<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />+<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />+<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />+<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />+<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />+<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />+<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />+<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />+<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />+<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />+<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />+<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />+<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />+<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />+<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />+<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />+<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />+<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />+<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />+<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />+<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />+<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />+<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />+<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />+<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />+<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />+<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />+<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />+<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />+<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />+<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />+<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />+<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />+<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />+<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />+<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />+<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />+<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />+<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />+<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />+<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />+<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />+<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />+<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />+<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />+<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />+<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />+<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />+<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />+<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />+<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />+<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />+<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />+<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />+<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />+<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />+<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />+<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />+<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />+<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />+<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />+<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />+<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />+<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />+<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />+<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />+<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />+<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />+<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />+<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />+<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />+<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />+<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />+<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />+<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />+<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />+<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />+<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />+<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />+<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />+<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />+<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />+</font>+</defs></svg> 
+ static/fonts/glyphicons-halflings-regular.ttf view

binary file changed (absent → 41280 bytes)

+ static/fonts/glyphicons-halflings-regular.woff view

binary file changed (absent → 23320 bytes)

+ static/js/app-OTQLPXA7.min.js view
@@ -0,0 +1,72 @@+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={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},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 view

binary file changed (absent → 120152 bytes)

+ static/js/app-OTQLPXA7.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.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&nbsp;\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&nbsp;/&nbsp;\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&nbsp;&nbsp;\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&nbsp;/&nbsp;\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              &nbsp;&nbsp;\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  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#39;',\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&nbsp;&nbsp;\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&nbsp;/&nbsp;\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,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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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 view

binary file changed (absent → 375230 bytes)

− static/js/app.min.js
@@ -1,66 +0,0 @@-var PS=(()=>{var CI=Object.create;var rl=Object.defineProperty,FI=Object.defineProperties,wI=Object.getOwnPropertyDescriptor,xI=Object.getOwnPropertyDescriptors,LI=Object.getOwnPropertyNames,uy=Object.getOwnPropertySymbols,HI=Object.getPrototypeOf,iy=Object.prototype.hasOwnProperty,II=Object.prototype.propertyIsEnumerable;var Md=(n,e,t)=>e in n?rl(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,yr=(n,e)=>{for(var t in e||(e={}))iy.call(e,t)&&Md(n,t,e[t]);if(uy)for(var t of uy(e))II.call(e,t)&&Md(n,t,e[t]);return n},yf=(n,e)=>FI(n,xI(e));var fy=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var cy=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),SI=(n,e)=>{for(var t in e)rl(n,t,{get:e[t],enumerable:!0})},ly=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of LI(e))!iy.call(n,u)&&u!==t&&rl(n,u,{get:()=>e[u],enumerable:!(a=wI(e,u))||a.enumerable});return n};var sy=(n,e,t)=>(t=n!=null?CI(HI(n)):{},ly(e||!n||!n.__esModule?rl(t,"default",{value:n,enumerable:!0}):t,n)),AI=n=>ly(rl({},"__esModule",{value:!0}),n);var Ue=(n,e,t)=>(Md(n,typeof e!="symbol"?e+"":e,t),t),NI=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var Ed=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)};var dp=(n,e,t)=>(NI(n,e,"access private method"),t);var rE=cy((cg,uc)=>{(function(n,e){typeof cg=="object"&&typeof uc<"u"?uc.exports=e():typeof define=="function"&&define.amd?define(e):n.moment=e()})(cg,function(){"use strict";var n;function e(){return n.apply(null,arguments)}function t(r){n=r}function a(r){return r instanceof Array||Object.prototype.toString.call(r)==="[object Array]"}function u(r){return r!=null&&Object.prototype.toString.call(r)==="[object Object]"}function i(r,o){return Object.prototype.hasOwnProperty.call(r,o)}function f(r){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(r).length===0;var o;for(o in r)if(i(r,o))return!1;return!0}function l(r){return r===void 0}function p(r){return typeof r=="number"||Object.prototype.toString.call(r)==="[object Number]"}function d(r){return r instanceof Date||Object.prototype.toString.call(r)==="[object Date]"}function m(r,o){var c=[],s,_=r.length;for(s=0;s<_;++s)c.push(o(r[s],s));return c}function v(r,o){for(var c in o)i(o,c)&&(r[c]=o[c]);return i(o,"toString")&&(r.toString=o.toString),i(o,"valueOf")&&(r.valueOf=o.valueOf),r}function g(r,o,c,s){return Ph(r,o,c,s,!0).utc()}function h(){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=h()),r._pf}var F;Array.prototype.some?F=Array.prototype.some:F=function(r){var o=Object(this),c=o.length>>>0,s;for(s=0;s<c;s++)if(s in o&&r.call(this,o[s],s,o))return!0;return!1};function W(r){var o=null,c=!1,s=r._d&&!isNaN(r._d.getTime());if(s&&(o=E(r),c=F.call(o.parsedDateParts,function(_){return _!=null}),s=o.overflow<0&&!o.empty&&!o.invalidEra&&!o.invalidMonth&&!o.invalidWeekday&&!o.weekdayMismatch&&!o.nullInput&&!o.invalidFormat&&!o.userInvalidated&&(!o.meridiem||o.meridiem&&c),r._strict&&(s=s&&o.charsLeftOver===0&&o.unusedTokens.length===0&&o.bigHour===void 0)),Object.isFrozen==null||!Object.isFrozen(r))r._isValid=s;else return s;return r._isValid}function sn(r){var o=g(NaN);return r!=null?v(E(o),r):E(o).userInvalidated=!0,o}var wn=e.momentProperties=[],Rn=!1;function En(r,o){var c,s,_,D=wn.length;if(l(o._isAMomentObject)||(r._isAMomentObject=o._isAMomentObject),l(o._i)||(r._i=o._i),l(o._f)||(r._f=o._f),l(o._l)||(r._l=o._l),l(o._strict)||(r._strict=o._strict),l(o._tzm)||(r._tzm=o._tzm),l(o._isUTC)||(r._isUTC=o._isUTC),l(o._offset)||(r._offset=o._offset),l(o._pf)||(r._pf=E(o)),l(o._locale)||(r._locale=o._locale),D>0)for(c=0;c<D;c++)s=wn[c],_=o[s],l(_)||(r[s]=_);return r}function U(r){En(this,r),this._d=new Date(r._d!=null?r._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),Rn===!1&&(Rn=!0,e.updateOffset(this),Rn=!1)}function re(r){return r instanceof U||r!=null&&r._isAMomentObject!=null}function An(r){e.suppressDeprecationWarnings===!1&&typeof console<"u"&&console.warn&&console.warn("Deprecation warning: "+r)}function wt(r,o){var c=!0;return v(function(){if(e.deprecationHandler!=null&&e.deprecationHandler(null,r),c){var s=[],_,D,C,j=arguments.length;for(D=0;D<j;D++){if(_="",typeof arguments[D]=="object"){_+=`-[`+D+"] ";for(C in arguments[0])i(arguments[0],C)&&(_+=C+": "+arguments[0][C]+", ");_=_.slice(0,-2)}else _=arguments[D];s.push(_)}An(r+`-Arguments: `+Array.prototype.slice.call(s).join("")+`-`+new Error().stack),c=!1}return o.apply(this,arguments)},o)}var vr={};function Ta(r,o){e.deprecationHandler!=null&&e.deprecationHandler(r,o),vr[r]||(An(o),vr[r]=!0)}e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;function xt(r){return typeof Function<"u"&&r instanceof Function||Object.prototype.toString.call(r)==="[object Function]"}function ti(r){var o,c;for(c in r)i(r,c)&&(o=r[c],xt(o)?this[c]=o:this["_"+c]=o);this._config=r,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function gr(r,o){var c=v({},r),s;for(s in o)i(o,s)&&(u(r[s])&&u(o[s])?(c[s]={},v(c[s],r[s]),v(c[s],o[s])):o[s]!=null?c[s]=o[s]:delete c[s]);for(s in r)i(r,s)&&!i(o,s)&&u(r[s])&&(c[s]=v({},c[s]));return c}function mt(r){r!=null&&this.set(r)}var na;Object.keys?na=Object.keys:na=function(r){var o,c=[];for(o in r)i(r,o)&&c.push(o);return c};var ou={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function Mo(r,o,c){var s=this._calendar[r]||this._calendar.sameElse;return xt(s)?s.call(o,c):s}function Le(r,o,c){var s=""+Math.abs(r),_=o-s.length,D=r>=0;return(D?c?"+":"":"-")+Math.pow(10,Math.max(0,_)).toString().substr(1)+s}var Ar=/(\[[^\[]*\])|(\\)?([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,ba=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ja={},Qa={};function w(r,o,c,s){var _=s;typeof s=="string"&&(_=function(){return this[s]()}),r&&(Qa[r]=_),o&&(Qa[o[0]]=function(){return Le(_.apply(this,arguments),o[1],o[2])}),c&&(Qa[c]=function(){return this.localeData().ordinal(_.apply(this,arguments),r)})}function Qn(r){return r.match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"")}function He(r){var o=r.match(Ar),c,s;for(c=0,s=o.length;c<s;c++)Qa[o[c]]?o[c]=Qa[o[c]]:o[c]=Qn(o[c]);return function(_){var D="",C;for(C=0;C<s;C++)D+=xt(o[C])?o[C].call(_,r):o[C];return D}}function jn(r,o){return r.isValid()?(o=on(o,r.localeData()),Ja[o]=Ja[o]||He(o),Ja[o](r)):r.localeData().invalidDate()}function on(r,o){var c=5;function s(_){return o.longDateFormat(_)||_}for(ba.lastIndex=0;c>=0&&ba.test(r);)r=r.replace(ba,s),ba.lastIndex=0,c-=1;return r}var k={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 ne(r){var o=this._longDateFormat[r],c=this._longDateFormat[r.toUpperCase()];return o||!c?o:(this._longDateFormat[r]=c.match(Ar).map(function(s){return s==="MMMM"||s==="MM"||s==="DD"||s==="dddd"?s.slice(1):s}).join(""),this._longDateFormat[r])}var Pn="Invalid date";function ge(){return this._invalidDate}var at="%d",ce=/\d{1,2}/;function Ie(r){return this._ordinal.replace("%d",r)}var Ma={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 Ln(r,o,c,s){var _=this._relativeTime[c];return xt(_)?_(r,o,c,s):_.replace(/%d/i,r)}function G(r,o){var c=this._relativeTime[r>0?"future":"past"];return xt(c)?c(o):c.replace(/%s/i,o)}var $n={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 q(r){return typeof r=="string"?$n[r]||$n[r.toLowerCase()]:void 0}function B(r){var o={},c,s;for(s in r)i(r,s)&&(c=q(s),c&&(o[c]=r[s]));return o}var Cn={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 rn(r){var o=[],c;for(c in r)i(r,c)&&o.push({unit:c,priority:Cn[c]});return o.sort(function(s,_){return s.priority-_.priority}),o}var un=/\d/,yn=/\d\d/,Bn=/\d{3}/,De=/\d{4}/,Ve=/[+-]?\d{6}/,le=/\d\d?/,Eo=/\d\d\d\d?/,ri=/\d\d\d\d\d\d?/,cf=/\d{1,3}/,qc=/\d{1,4}/,lf=/[+-]?\d{1,6}/,ja=/\d+/,dt=/[+-]?\d+/,ai=/Z|[+-]\d\d:?\d\d/gi,uu=/Z|[+-]\d\d(?::?\d\d)?/gi,ed=/[+-]?\d+(\.\d{1,3})?/,oi=/[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,iu=/^[1-9]\d?/,Bc=/^([1-9]\d|\d)/,ir;ir={};function V(r,o,c){ir[r]=xt(o)?o:function(s,_){return s&&c?c:o}}function Vc(r,o){return i(ir,r)?ir[r](o._strict,o._locale):new RegExp(Jc(r))}function Jc(r){return Ea(r.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(o,c,s,_,D){return c||s||_||D}))}function Ea(r){return r.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Dr(r){return r<0?Math.ceil(r)||0:Math.floor(r)}function zn(r){var o=+r,c=0;return o!==0&&isFinite(o)&&(c=Dr(o)),c}var sf={};function pe(r,o){var c,s=o,_;for(typeof r=="string"&&(r=[r]),p(o)&&(s=function(D,C){C[o]=zn(D)}),_=r.length,c=0;c<_;c++)sf[r[c]]=s}function Je(r,o){pe(r,function(c,s,_,D){_._w=_._w||{},o(c,_._w,_,D)})}function $s(r,o,c){o!=null&&i(sf,r)&&sf[r](o,c._a,c,r)}function Ke(r){return r%4===0&&r%100!==0||r%400===0}var Dt=0,_e=1,Gt=2,Ze=3,hr=4,Nr=5,za=6,qs=7,fu=8;w("Y",0,0,function(){var r=this.year();return r<=9999?Le(r,4):"+"+r}),w(0,["YY",2],0,function(){return this.year()%100}),w(0,["YYYY",4],0,"year"),w(0,["YYYYY",5],0,"year"),w(0,["YYYYYY",6,!0],0,"year"),V("Y",dt),V("YY",le,yn),V("YYYY",qc,De),V("YYYYY",lf,Ve),V("YYYYYY",lf,Ve),pe(["YYYYY","YYYYYY"],Dt),pe("YYYY",function(r,o){o[Dt]=r.length===2?e.parseTwoDigitYear(r):zn(r)}),pe("YY",function(r,o){o[Dt]=e.parseTwoDigitYear(r)}),pe("Y",function(r,o){o[Dt]=parseInt(r,10)});function Rr(r){return Ke(r)?366:365}e.parseTwoDigitYear=function(r){return zn(r)+(zn(r)>68?1900:2e3)};var pf=Or("FullYear",!0);function Qc(){return Ke(this.year())}function Or(r,o){return function(c){return c!=null?(ui(this,r,c),e.updateOffset(this,o),this):Ga(this,r)}}function Ga(r,o){if(!r.isValid())return NaN;var c=r._d,s=r._isUTC;switch(o){case"Milliseconds":return s?c.getUTCMilliseconds():c.getMilliseconds();case"Seconds":return s?c.getUTCSeconds():c.getSeconds();case"Minutes":return s?c.getUTCMinutes():c.getMinutes();case"Hours":return s?c.getUTCHours():c.getHours();case"Date":return s?c.getUTCDate():c.getDate();case"Day":return s?c.getUTCDay():c.getDay();case"Month":return s?c.getUTCMonth():c.getMonth();case"FullYear":return s?c.getUTCFullYear():c.getFullYear();default:return NaN}}function ui(r,o,c){var s,_,D,C,j;if(!(!r.isValid()||isNaN(c))){switch(s=r._d,_=r._isUTC,o){case"Milliseconds":return void(_?s.setUTCMilliseconds(c):s.setMilliseconds(c));case"Seconds":return void(_?s.setUTCSeconds(c):s.setSeconds(c));case"Minutes":return void(_?s.setUTCMinutes(c):s.setMinutes(c));case"Hours":return void(_?s.setUTCHours(c):s.setHours(c));case"Date":return void(_?s.setUTCDate(c):s.setDate(c));case"FullYear":break;default:return}D=c,C=r.month(),j=r.date(),j=j===29&&C===1&&!Ke(D)?28:j,_?s.setUTCFullYear(D,C,j):s.setFullYear(D,C,j)}}function Bs(r){return r=q(r),xt(this[r])?this[r]():this}function Vs(r,o){if(typeof r=="object"){r=B(r);var c=rn(r),s,_=c.length;for(s=0;s<_;s++)this[c[s].unit](r[c[s].unit])}else if(r=q(r),xt(this[r]))return this[r](o);return this}function td(r,o){return(r%o+o)%o}var Pe;Array.prototype.indexOf?Pe=Array.prototype.indexOf:Pe=function(r){var o;for(o=0;o<this.length;++o)if(this[o]===r)return o;return-1};function Co(r,o){if(isNaN(r)||isNaN(o))return NaN;var c=td(o,12);return r+=(o-c)/12,c===1?Ke(r)?29:28:31-c%7%2}w("M",["MM",2],"Mo",function(){return this.month()+1}),w("MMM",0,0,function(r){return this.localeData().monthsShort(this,r)}),w("MMMM",0,0,function(r){return this.localeData().months(this,r)}),V("M",le,iu),V("MM",le,yn),V("MMM",function(r,o){return o.monthsShortRegex(r)}),V("MMMM",function(r,o){return o.monthsRegex(r)}),pe(["M","MM"],function(r,o){o[_e]=zn(r)-1}),pe(["MMM","MMMM"],function(r,o,c,s){var _=c._locale.monthsParse(r,s,c._strict);_!=null?o[_e]=_:E(c).invalidMonth=r});var cu="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Fo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),jc=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Js=oi,Qs=oi;function zc(r,o){return r?a(this._months)?this._months[r.month()]:this._months[(this._months.isFormat||jc).test(o)?"format":"standalone"][r.month()]:a(this._months)?this._months:this._months.standalone}function js(r,o){return r?a(this._monthsShort)?this._monthsShort[r.month()]:this._monthsShort[jc.test(o)?"format":"standalone"][r.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function _f(r,o,c){var s,_,D,C=r.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)D=g([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(D,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(D,"").toLocaleLowerCase();return c?o==="MMM"?(_=Pe.call(this._shortMonthsParse,C),_!==-1?_:null):(_=Pe.call(this._longMonthsParse,C),_!==-1?_:null):o==="MMM"?(_=Pe.call(this._shortMonthsParse,C),_!==-1?_:(_=Pe.call(this._longMonthsParse,C),_!==-1?_:null)):(_=Pe.call(this._longMonthsParse,C),_!==-1?_:(_=Pe.call(this._shortMonthsParse,C),_!==-1?_:null))}function mf(r,o,c){var s,_,D;if(this._monthsParseExact)return _f.call(this,r,o,c);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(_=g([2e3,s]),c&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(_,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(_,"").replace(".","")+"$","i")),!c&&!this._monthsParse[s]&&(D="^"+this.months(_,"")+"|^"+this.monthsShort(_,""),this._monthsParse[s]=new RegExp(D.replace(".",""),"i")),c&&o==="MMMM"&&this._longMonthsParse[s].test(r))return s;if(c&&o==="MMM"&&this._shortMonthsParse[s].test(r))return s;if(!c&&this._monthsParse[s].test(r))return s}}function ea(r,o){if(!r.isValid())return r;if(typeof o=="string"){if(/^\d+$/.test(o))o=zn(o);else if(o=r.localeData().monthsParse(o),!p(o))return r}var c=o,s=r.date();return s=s<29?s:Math.min(s,Co(r.year(),c)),r._isUTC?r._d.setUTCMonth(c,s):r._d.setMonth(c,s),r}function wo(r){return r!=null?(ea(this,r),e.updateOffset(this,!0),this):Ga(this,"Month")}function Gc(){return Co(this.year(),this.month())}function Yc(r){return this._monthsParseExact?(i(this,"_monthsRegex")||lu.call(this),r?this._monthsShortStrictRegex:this._monthsShortRegex):(i(this,"_monthsShortRegex")||(this._monthsShortRegex=Js),this._monthsShortStrictRegex&&r?this._monthsShortStrictRegex:this._monthsShortRegex)}function rd(r){return this._monthsParseExact?(i(this,"_monthsRegex")||lu.call(this),r?this._monthsStrictRegex:this._monthsRegex):(i(this,"_monthsRegex")||(this._monthsRegex=Qs),this._monthsStrictRegex&&r?this._monthsStrictRegex:this._monthsRegex)}function lu(){function r(Wn,ae){return ae.length-Wn.length}var o=[],c=[],s=[],_,D,C,j;for(_=0;_<12;_++)D=g([2e3,_]),C=Ea(this.monthsShort(D,"")),j=Ea(this.months(D,"")),o.push(C),c.push(j),s.push(j),s.push(C);o.sort(r),c.sort(r),s.sort(r),this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+o.join("|")+")","i")}function ad(r,o,c,s,_,D,C){var j;return r<100&&r>=0?(j=new Date(r+400,o,c,s,_,D,C),isFinite(j.getFullYear())&&j.setFullYear(r)):j=new Date(r,o,c,s,_,D,C),j}function ii(r){var o,c;return r<100&&r>=0?(c=Array.prototype.slice.call(arguments),c[0]=r+400,o=new Date(Date.UTC.apply(null,c)),isFinite(o.getUTCFullYear())&&o.setUTCFullYear(r)):o=new Date(Date.UTC.apply(null,arguments)),o}function Xe(r,o,c){var s=7+o-c,_=(7+ii(r,0,s).getUTCDay()-o)%7;return-_+s-1}function xo(r,o,c,s,_){var D=(7+c-s)%7,C=Xe(r,s,_),j=1+7*(o-1)+D+C,Wn,ae;return j<=0?(Wn=r-1,ae=Rr(Wn)+j):j>Rr(r)?(Wn=r+1,ae=j-Rr(r)):(Wn=r,ae=j),{year:Wn,dayOfYear:ae}}function fi(r,o,c){var s=Xe(r.year(),o,c),_=Math.floor((r.dayOfYear()-s-1)/7)+1,D,C;return _<1?(C=r.year()-1,D=_+ta(C,o,c)):_>ta(r.year(),o,c)?(D=_-ta(r.year(),o,c),C=r.year()+1):(C=r.year(),D=_),{week:D,year:C}}function ta(r,o,c){var s=Xe(r,o,c),_=Xe(r+1,o,c);return(Rr(r)-s+_)/7}w("w",["ww",2],"wo","week"),w("W",["WW",2],"Wo","isoWeek"),V("w",le,iu),V("ww",le,yn),V("W",le,iu),V("WW",le,yn),Je(["w","ww","W","WW"],function(r,o,c,s){o[s.substr(0,1)]=zn(r)});function Kc(r){return fi(r,this._week.dow,this._week.doy).week}var zs={dow:0,doy:6};function Gs(){return this._week.dow}function od(){return this._week.doy}function Ys(r){var o=this.localeData().week(this);return r==null?o:this.add((r-o)*7,"d")}function Ks(r){var o=fi(this,1,4).week;return r==null?o:this.add((r-o)*7,"d")}w("d",0,"do","day"),w("dd",0,0,function(r){return this.localeData().weekdaysMin(this,r)}),w("ddd",0,0,function(r){return this.localeData().weekdaysShort(this,r)}),w("dddd",0,0,function(r){return this.localeData().weekdays(this,r)}),w("e",0,0,"weekday"),w("E",0,0,"isoWeekday"),V("d",le),V("e",le),V("E",le),V("dd",function(r,o){return o.weekdaysMinRegex(r)}),V("ddd",function(r,o){return o.weekdaysShortRegex(r)}),V("dddd",function(r,o){return o.weekdaysRegex(r)}),Je(["dd","ddd","dddd"],function(r,o,c,s){var _=c._locale.weekdaysParse(r,s,c._strict);_!=null?o.d=_:E(c).invalidWeekday=r}),Je(["d","e","E"],function(r,o,c,s){o[s]=zn(r)});function ud(r,o){return typeof r!="string"?r:isNaN(r)?(r=o.weekdaysParse(r),typeof r=="number"?r:null):parseInt(r,10)}function Lo(r,o){return typeof r=="string"?o.weekdaysParse(r)%7||7:isNaN(r)?null:r}function ci(r,o){return r.slice(o,7).concat(r.slice(0,o))}var Zs="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Zc="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),id="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Xs=oi,Ca=oi,np=oi;function ep(r,o){var c=a(this._weekdays)?this._weekdays:this._weekdays[r&&r!==!0&&this._weekdays.isFormat.test(o)?"format":"standalone"];return r===!0?ci(c,this._week.dow):r?c[r.day()]:c}function tp(r){return r===!0?ci(this._weekdaysShort,this._week.dow):r?this._weekdaysShort[r.day()]:this._weekdaysShort}function rp(r){return r===!0?ci(this._weekdaysMin,this._week.dow):r?this._weekdaysMin[r.day()]:this._weekdaysMin}function fd(r,o,c){var s,_,D,C=r.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)D=g([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(D,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(D,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(D,"").toLocaleLowerCase();return c?o==="dddd"?(_=Pe.call(this._weekdaysParse,C),_!==-1?_:null):o==="ddd"?(_=Pe.call(this._shortWeekdaysParse,C),_!==-1?_:null):(_=Pe.call(this._minWeekdaysParse,C),_!==-1?_:null):o==="dddd"?(_=Pe.call(this._weekdaysParse,C),_!==-1||(_=Pe.call(this._shortWeekdaysParse,C),_!==-1)?_:(_=Pe.call(this._minWeekdaysParse,C),_!==-1?_:null)):o==="ddd"?(_=Pe.call(this._shortWeekdaysParse,C),_!==-1||(_=Pe.call(this._weekdaysParse,C),_!==-1)?_:(_=Pe.call(this._minWeekdaysParse,C),_!==-1?_:null)):(_=Pe.call(this._minWeekdaysParse,C),_!==-1||(_=Pe.call(this._weekdaysParse,C),_!==-1)?_:(_=Pe.call(this._shortWeekdaysParse,C),_!==-1?_:null))}function pn(r,o,c){var s,_,D;if(this._weekdaysParseExact)return fd.call(this,r,o,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(_=g([2e3,1]).day(s),c&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(_,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(_,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(_,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(D="^"+this.weekdays(_,"")+"|^"+this.weekdaysShort(_,"")+"|^"+this.weekdaysMin(_,""),this._weekdaysParse[s]=new RegExp(D.replace(".",""),"i")),c&&o==="dddd"&&this._fullWeekdaysParse[s].test(r))return s;if(c&&o==="ddd"&&this._shortWeekdaysParse[s].test(r))return s;if(c&&o==="dd"&&this._minWeekdaysParse[s].test(r))return s;if(!c&&this._weekdaysParse[s].test(r))return s}}function T(r){if(!this.isValid())return r!=null?this:NaN;var o=Ga(this,"Day");return r!=null?(r=ud(r,this.localeData()),this.add(r-o,"d")):o}function O(r){if(!this.isValid())return r!=null?this:NaN;var o=(this.day()+7-this.localeData()._week.dow)%7;return r==null?o:this.add(r-o,"d")}function an(r){if(!this.isValid())return r!=null?this:NaN;if(r!=null){var o=Lo(r,this.localeData());return this.day(this.day()%7?o:o-7)}else return this.day()||7}function Me(r){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||It.call(this),r?this._weekdaysStrictRegex:this._weekdaysRegex):(i(this,"_weekdaysRegex")||(this._weekdaysRegex=Xs),this._weekdaysStrictRegex&&r?this._weekdaysStrictRegex:this._weekdaysRegex)}function Lt(r){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||It.call(this),r?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(i(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ca),this._weekdaysShortStrictRegex&&r?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ht(r){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||It.call(this),r?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(i(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=np),this._weekdaysMinStrictRegex&&r?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function It(){function r(fr,No){return No.length-fr.length}var o=[],c=[],s=[],_=[],D,C,j,Wn,ae;for(D=0;D<7;D++)C=g([2e3,1]).day(D),j=Ea(this.weekdaysMin(C,"")),Wn=Ea(this.weekdaysShort(C,"")),ae=Ea(this.weekdays(C,"")),o.push(j),c.push(Wn),s.push(ae),_.push(j),_.push(Wn),_.push(ae);o.sort(r),c.sort(r),s.sort(r),_.sort(r),this._weekdaysRegex=new RegExp("^("+_.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Fa(){return this.hours()%12||12}function li(){return this.hours()||24}w("H",["HH",2],0,"hour"),w("h",["hh",2],0,Fa),w("k",["kk",2],0,li),w("hmm",0,0,function(){return""+Fa.apply(this)+Le(this.minutes(),2)}),w("hmmss",0,0,function(){return""+Fa.apply(this)+Le(this.minutes(),2)+Le(this.seconds(),2)}),w("Hmm",0,0,function(){return""+this.hours()+Le(this.minutes(),2)}),w("Hmmss",0,0,function(){return""+this.hours()+Le(this.minutes(),2)+Le(this.seconds(),2)});function Wt(r,o){w(r,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),o)})}Wt("a",!0),Wt("A",!1);function Xc(r,o){return o._meridiemParse}V("a",Xc),V("A",Xc),V("H",le,Bc),V("h",le,iu),V("k",le,iu),V("HH",le,yn),V("hh",le,yn),V("kk",le,yn),V("hmm",Eo),V("hmmss",ri),V("Hmm",Eo),V("Hmmss",ri),pe(["H","HH"],Ze),pe(["k","kk"],function(r,o,c){var s=zn(r);o[Ze]=s===24?0:s}),pe(["a","A"],function(r,o,c){c._isPm=c._locale.isPM(r),c._meridiem=r}),pe(["h","hh"],function(r,o,c){o[Ze]=zn(r),E(c).bigHour=!0}),pe("hmm",function(r,o,c){var s=r.length-2;o[Ze]=zn(r.substr(0,s)),o[hr]=zn(r.substr(s)),E(c).bigHour=!0}),pe("hmmss",function(r,o,c){var s=r.length-4,_=r.length-2;o[Ze]=zn(r.substr(0,s)),o[hr]=zn(r.substr(s,2)),o[Nr]=zn(r.substr(_)),E(c).bigHour=!0}),pe("Hmm",function(r,o,c){var s=r.length-2;o[Ze]=zn(r.substr(0,s)),o[hr]=zn(r.substr(s))}),pe("Hmmss",function(r,o,c){var s=r.length-4,_=r.length-2;o[Ze]=zn(r.substr(0,s)),o[hr]=zn(r.substr(s,2)),o[Nr]=zn(r.substr(_))});function ap(r){return(r+"").toLowerCase().charAt(0)==="p"}var Wx=/[ap]\.?m?\.?/i,Ux=Or("Hours",!0);function kx(r,o,c){return r>11?c?"pm":"PM":c?"am":"AM"}var Sh={calendar:ou,longDateFormat:k,invalidDate:Pn,ordinal:at,dayOfMonthOrdinalParse:ce,relativeTime:Ma,months:cu,monthsShort:Fo,week:zs,weekdays:Zs,weekdaysMin:id,weekdaysShort:Zc,meridiemParse:Wx},Qe={},nl={},el;function $x(r,o){var c,s=Math.min(r.length,o.length);for(c=0;c<s;c+=1)if(r[c]!==o[c])return c;return s}function Ah(r){return r&&r.toLowerCase().replace("_","-")}function qx(r){for(var o=0,c,s,_,D;o<r.length;){for(D=Ah(r[o]).split("-"),c=D.length,s=Ah(r[o+1]),s=s?s.split("-"):null;c>0;){if(_=op(D.slice(0,c).join("-")),_)return _;if(s&&s.length>=c&&$x(D,s)>=c-1)break;c--}o++}return el}function Bx(r){return!!(r&&r.match("^[^/\\\\]*$"))}function op(r){var o=null,c;if(Qe[r]===void 0&&typeof uc<"u"&&uc&&uc.exports&&Bx(r))try{o=el._abbr,c=fy,c("./locale/"+r),su(o)}catch(s){Qe[r]=null}return Qe[r]}function su(r,o){var c;return r&&(l(o)?c=Ho(r):c=cd(r,o),c?el=c:typeof console<"u"&&console.warn&&console.warn("Locale "+r+" not found. Did you forget to load it?")),el._abbr}function cd(r,o){if(o!==null){var c,s=Sh;if(o.abbr=r,Qe[r]!=null)Ta("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."),s=Qe[r]._config;else if(o.parentLocale!=null)if(Qe[o.parentLocale]!=null)s=Qe[o.parentLocale]._config;else if(c=op(o.parentLocale),c!=null)s=c._config;else return nl[o.parentLocale]||(nl[o.parentLocale]=[]),nl[o.parentLocale].push({name:r,config:o}),null;return Qe[r]=new mt(gr(s,o)),nl[r]&&nl[r].forEach(function(_){cd(_.name,_.config)}),su(r),Qe[r]}else return delete Qe[r],null}function Vx(r,o){if(o!=null){var c,s,_=Sh;Qe[r]!=null&&Qe[r].parentLocale!=null?Qe[r].set(gr(Qe[r]._config,o)):(s=op(r),s!=null&&(_=s._config),o=gr(_,o),s==null&&(o.abbr=r),c=new mt(o),c.parentLocale=Qe[r],Qe[r]=c),su(r)}else Qe[r]!=null&&(Qe[r].parentLocale!=null?(Qe[r]=Qe[r].parentLocale,r===su()&&su(r)):Qe[r]!=null&&delete Qe[r]);return Qe[r]}function Ho(r){var o;if(r&&r._locale&&r._locale._abbr&&(r=r._locale._abbr),!r)return el;if(!a(r)){if(o=op(r),o)return o;r=[r]}return qx(r)}function Jx(){return na(Qe)}function ld(r){var o,c=r._a;return c&&E(r).overflow===-2&&(o=c[_e]<0||c[_e]>11?_e:c[Gt]<1||c[Gt]>Co(c[Dt],c[_e])?Gt:c[Ze]<0||c[Ze]>24||c[Ze]===24&&(c[hr]!==0||c[Nr]!==0||c[za]!==0)?Ze:c[hr]<0||c[hr]>59?hr:c[Nr]<0||c[Nr]>59?Nr:c[za]<0||c[za]>999?za:-1,E(r)._overflowDayOfYear&&(o<Dt||o>Gt)&&(o=Gt),E(r)._overflowWeeks&&o===-1&&(o=qs),E(r)._overflowWeekday&&o===-1&&(o=fu),E(r).overflow=o),r}var Qx=/^\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)?)?$/,jx=/^\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)?)?$/,zx=/Z|[+-]\d\d(?::?\d\d)?/,up=[["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]],sd=[["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/]],Gx=/^\/?Date\((-?\d+)/i,Yx=/^(?:(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}))$/,Kx={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Nh(r){var o,c,s=r._i,_=Qx.exec(s)||jx.exec(s),D,C,j,Wn,ae=up.length,fr=sd.length;if(_){for(E(r).iso=!0,o=0,c=ae;o<c;o++)if(up[o][1].exec(_[1])){C=up[o][0],D=up[o][2]!==!1;break}if(C==null){r._isValid=!1;return}if(_[3]){for(o=0,c=fr;o<c;o++)if(sd[o][1].exec(_[3])){j=(_[2]||" ")+sd[o][0];break}if(j==null){r._isValid=!1;return}}if(!D&&j!=null){r._isValid=!1;return}if(_[4])if(zx.exec(_[4]))Wn="Z";else{r._isValid=!1;return}r._f=C+(j||"")+(Wn||""),_d(r)}else r._isValid=!1}function Zx(r,o,c,s,_,D){var C=[Xx(r),Fo.indexOf(o),parseInt(c,10),parseInt(s,10),parseInt(_,10)];return D&&C.push(parseInt(D,10)),C}function Xx(r){var o=parseInt(r,10);return o<=49?2e3+o:o<=999?1900+o:o}function nL(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function eL(r,o,c){if(r){var s=Zc.indexOf(r),_=new Date(o[0],o[1],o[2]).getDay();if(s!==_)return E(c).weekdayMismatch=!0,c._isValid=!1,!1}return!0}function tL(r,o,c){if(r)return Kx[r];if(o)return 0;var s=parseInt(c,10),_=s%100,D=(s-_)/100;return D*60+_}function Rh(r){var o=Yx.exec(nL(r._i)),c;if(o){if(c=Zx(o[4],o[3],o[2],o[5],o[6],o[7]),!eL(o[1],c,r))return;r._a=c,r._tzm=tL(o[8],o[9],o[10]),r._d=ii.apply(null,r._a),r._d.setUTCMinutes(r._d.getUTCMinutes()-r._tzm),E(r).rfc2822=!0}else r._isValid=!1}function rL(r){var o=Gx.exec(r._i);if(o!==null){r._d=new Date(+o[1]);return}if(Nh(r),r._isValid===!1)delete r._isValid;else return;if(Rh(r),r._isValid===!1)delete r._isValid;else return;r._strict?r._isValid=!1:e.createFromInputFallback(r)}e.createFromInputFallback=wt("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 df(r,o,c){return r!=null?r:o!=null?o:c}function aL(r){var o=new Date(e.now());return r._useUTC?[o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate()]:[o.getFullYear(),o.getMonth(),o.getDate()]}function pd(r){var o,c,s=[],_,D,C;if(!r._d){for(_=aL(r),r._w&&r._a[Gt]==null&&r._a[_e]==null&&oL(r),r._dayOfYear!=null&&(C=df(r._a[Dt],_[Dt]),(r._dayOfYear>Rr(C)||r._dayOfYear===0)&&(E(r)._overflowDayOfYear=!0),c=ii(C,0,r._dayOfYear),r._a[_e]=c.getUTCMonth(),r._a[Gt]=c.getUTCDate()),o=0;o<3&&r._a[o]==null;++o)r._a[o]=s[o]=_[o];for(;o<7;o++)r._a[o]=s[o]=r._a[o]==null?o===2?1:0:r._a[o];r._a[Ze]===24&&r._a[hr]===0&&r._a[Nr]===0&&r._a[za]===0&&(r._nextDay=!0,r._a[Ze]=0),r._d=(r._useUTC?ii:ad).apply(null,s),D=r._useUTC?r._d.getUTCDay():r._d.getDay(),r._tzm!=null&&r._d.setUTCMinutes(r._d.getUTCMinutes()-r._tzm),r._nextDay&&(r._a[Ze]=24),r._w&&typeof r._w.d<"u"&&r._w.d!==D&&(E(r).weekdayMismatch=!0)}}function oL(r){var o,c,s,_,D,C,j,Wn,ae;o=r._w,o.GG!=null||o.W!=null||o.E!=null?(D=1,C=4,c=df(o.GG,r._a[Dt],fi(We(),1,4).year),s=df(o.W,1),_=df(o.E,1),(_<1||_>7)&&(Wn=!0)):(D=r._locale._week.dow,C=r._locale._week.doy,ae=fi(We(),D,C),c=df(o.gg,r._a[Dt],ae.year),s=df(o.w,ae.week),o.d!=null?(_=o.d,(_<0||_>6)&&(Wn=!0)):o.e!=null?(_=o.e+D,(o.e<0||o.e>6)&&(Wn=!0)):_=D),s<1||s>ta(c,D,C)?E(r)._overflowWeeks=!0:Wn!=null?E(r)._overflowWeekday=!0:(j=xo(c,s,_,D,C),r._a[Dt]=j.year,r._dayOfYear=j.dayOfYear)}e.ISO_8601=function(){},e.RFC_2822=function(){};function _d(r){if(r._f===e.ISO_8601){Nh(r);return}if(r._f===e.RFC_2822){Rh(r);return}r._a=[],E(r).empty=!0;var o=""+r._i,c,s,_,D,C,j=o.length,Wn=0,ae,fr;for(_=on(r._f,r._locale).match(Ar)||[],fr=_.length,c=0;c<fr;c++)D=_[c],s=(o.match(Vc(D,r))||[])[0],s&&(C=o.substr(0,o.indexOf(s)),C.length>0&&E(r).unusedInput.push(C),o=o.slice(o.indexOf(s)+s.length),Wn+=s.length),Qa[D]?(s?E(r).empty=!1:E(r).unusedTokens.push(D),$s(D,s,r)):r._strict&&!s&&E(r).unusedTokens.push(D);E(r).charsLeftOver=j-Wn,o.length>0&&E(r).unusedInput.push(o),r._a[Ze]<=12&&E(r).bigHour===!0&&r._a[Ze]>0&&(E(r).bigHour=void 0),E(r).parsedDateParts=r._a.slice(0),E(r).meridiem=r._meridiem,r._a[Ze]=uL(r._locale,r._a[Ze],r._meridiem),ae=E(r).era,ae!==null&&(r._a[Dt]=r._locale.erasConvertYear(ae,r._a[Dt])),pd(r),ld(r)}function uL(r,o,c){var s;return c==null?o:r.meridiemHour!=null?r.meridiemHour(o,c):(r.isPM!=null&&(s=r.isPM(c),s&&o<12&&(o+=12),!s&&o===12&&(o=0)),o)}function iL(r){var o,c,s,_,D,C,j=!1,Wn=r._f.length;if(Wn===0){E(r).invalidFormat=!0,r._d=new Date(NaN);return}for(_=0;_<Wn;_++)D=0,C=!1,o=En({},r),r._useUTC!=null&&(o._useUTC=r._useUTC),o._f=r._f[_],_d(o),W(o)&&(C=!0),D+=E(o).charsLeftOver,D+=E(o).unusedTokens.length*10,E(o).score=D,j?D<s&&(s=D,c=o):(s==null||D<s||C)&&(s=D,c=o,C&&(j=!0));v(r,c||o)}function fL(r){if(!r._d){var o=B(r._i),c=o.day===void 0?o.date:o.day;r._a=m([o.year,o.month,c,o.hour,o.minute,o.second,o.millisecond],function(s){return s&&parseInt(s,10)}),pd(r)}}function cL(r){var o=new U(ld(Oh(r)));return o._nextDay&&(o.add(1,"d"),o._nextDay=void 0),o}function Oh(r){var o=r._i,c=r._f;return r._locale=r._locale||Ho(r._l),o===null||c===void 0&&o===""?sn({nullInput:!0}):(typeof o=="string"&&(r._i=o=r._locale.preparse(o)),re(o)?new U(ld(o)):(d(o)?r._d=o:a(c)?iL(r):c?_d(r):lL(r),W(r)||(r._d=null),r))}function lL(r){var o=r._i;l(o)?r._d=new Date(e.now()):d(o)?r._d=new Date(o.valueOf()):typeof o=="string"?rL(r):a(o)?(r._a=m(o.slice(0),function(c){return parseInt(c,10)}),pd(r)):u(o)?fL(r):p(o)?r._d=new Date(o):e.createFromInputFallback(r)}function Ph(r,o,c,s,_){var D={};return(o===!0||o===!1)&&(s=o,o=void 0),(c===!0||c===!1)&&(s=c,c=void 0),(u(r)&&f(r)||a(r)&&r.length===0)&&(r=void 0),D._isAMomentObject=!0,D._useUTC=D._isUTC=_,D._l=c,D._i=r,D._f=o,D._strict=s,cL(D)}function We(r,o,c,s){return Ph(r,o,c,s,!1)}var sL=wt("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var r=We.apply(null,arguments);return this.isValid()&&r.isValid()?r<this?this:r:sn()}),pL=wt("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var r=We.apply(null,arguments);return this.isValid()&&r.isValid()?r>this?this:r:sn()});function Wh(r,o){var c,s;if(o.length===1&&a(o[0])&&(o=o[0]),!o.length)return We();for(c=o[0],s=1;s<o.length;++s)(!o[s].isValid()||o[s][r](c))&&(c=o[s]);return c}function _L(){var r=[].slice.call(arguments,0);return Wh("isBefore",r)}function mL(){var r=[].slice.call(arguments,0);return Wh("isAfter",r)}var dL=function(){return Date.now?Date.now():+new Date},tl=["year","quarter","month","week","day","hour","minute","second","millisecond"];function vL(r){var o,c=!1,s,_=tl.length;for(o in r)if(i(r,o)&&!(Pe.call(tl,o)!==-1&&(r[o]==null||!isNaN(r[o]))))return!1;for(s=0;s<_;++s)if(r[tl[s]]){if(c)return!1;parseFloat(r[tl[s]])!==zn(r[tl[s]])&&(c=!0)}return!0}function gL(){return this._isValid}function DL(){return wa(NaN)}function ip(r){var o=B(r),c=o.year||0,s=o.quarter||0,_=o.month||0,D=o.week||o.isoWeek||0,C=o.day||0,j=o.hour||0,Wn=o.minute||0,ae=o.second||0,fr=o.millisecond||0;this._isValid=vL(o),this._milliseconds=+fr+ae*1e3+Wn*6e4+j*1e3*60*60,this._days=+C+D*7,this._months=+_+s*3+c*12,this._data={},this._locale=Ho(),this._bubble()}function fp(r){return r instanceof ip}function md(r){return r<0?Math.round(-1*r)*-1:Math.round(r)}function hL(r,o,c){var s=Math.min(r.length,o.length),_=Math.abs(r.length-o.length),D=0,C;for(C=0;C<s;C++)(c&&r[C]!==o[C]||!c&&zn(r[C])!==zn(o[C]))&&D++;return D+_}function Uh(r,o){w(r,0,0,function(){var c=this.utcOffset(),s="+";return c<0&&(c=-c,s="-"),s+Le(~~(c/60),2)+o+Le(~~c%60,2)})}Uh("Z",":"),Uh("ZZ",""),V("Z",uu),V("ZZ",uu),pe(["Z","ZZ"],function(r,o,c){c._useUTC=!0,c._tzm=dd(uu,r)});var yL=/([\+\-]|\d\d)/gi;function dd(r,o){var c=(o||"").match(r),s,_,D;return c===null?null:(s=c[c.length-1]||[],_=(s+"").match(yL)||["-",0,0],D=+(_[1]*60)+zn(_[2]),D===0?0:_[0]==="+"?D:-D)}function vd(r,o){var c,s;return o._isUTC?(c=o.clone(),s=(re(r)||d(r)?r.valueOf():We(r).valueOf())-c.valueOf(),c._d.setTime(c._d.valueOf()+s),e.updateOffset(c,!1),c):We(r).local()}function gd(r){return-Math.round(r._d.getTimezoneOffset())}e.updateOffset=function(){};function TL(r,o,c){var s=this._offset||0,_;if(!this.isValid())return r!=null?this:NaN;if(r!=null){if(typeof r=="string"){if(r=dd(uu,r),r===null)return this}else Math.abs(r)<16&&!c&&(r=r*60);return!this._isUTC&&o&&(_=gd(this)),this._offset=r,this._isUTC=!0,_!=null&&this.add(_,"m"),s!==r&&(!o||this._changeInProgress?Bh(this,wa(r-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?s:gd(this)}function bL(r,o){return r!=null?(typeof r!="string"&&(r=-r),this.utcOffset(r,o),this):-this.utcOffset()}function ML(r){return this.utcOffset(0,r)}function EL(r){return this._isUTC&&(this.utcOffset(0,r),this._isUTC=!1,r&&this.subtract(gd(this),"m")),this}function CL(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var r=dd(ai,this._i);r!=null?this.utcOffset(r):this.utcOffset(0,!0)}return this}function FL(r){return this.isValid()?(r=r?We(r).utcOffset():0,(this.utcOffset()-r)%60===0):!1}function wL(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function xL(){if(!l(this._isDSTShifted))return this._isDSTShifted;var r={},o;return En(r,this),r=Oh(r),r._a?(o=r._isUTC?g(r._a):We(r._a),this._isDSTShifted=this.isValid()&&hL(r._a,o.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function LL(){return this.isValid()?!this._isUTC:!1}function HL(){return this.isValid()?this._isUTC:!1}function kh(){return this.isValid()?this._isUTC&&this._offset===0:!1}var IL=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,SL=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function wa(r,o){var c=r,s=null,_,D,C;return fp(r)?c={ms:r._milliseconds,d:r._days,M:r._months}:p(r)||!isNaN(+r)?(c={},o?c[o]=+r:c.milliseconds=+r):(s=IL.exec(r))?(_=s[1]==="-"?-1:1,c={y:0,d:zn(s[Gt])*_,h:zn(s[Ze])*_,m:zn(s[hr])*_,s:zn(s[Nr])*_,ms:zn(md(s[za]*1e3))*_}):(s=SL.exec(r))?(_=s[1]==="-"?-1:1,c={y:si(s[2],_),M:si(s[3],_),w:si(s[4],_),d:si(s[5],_),h:si(s[6],_),m:si(s[7],_),s:si(s[8],_)}):c==null?c={}:typeof c=="object"&&("from"in c||"to"in c)&&(C=AL(We(c.from),We(c.to)),c={},c.ms=C.milliseconds,c.M=C.months),D=new ip(c),fp(r)&&i(r,"_locale")&&(D._locale=r._locale),fp(r)&&i(r,"_isValid")&&(D._isValid=r._isValid),D}wa.fn=ip.prototype,wa.invalid=DL;function si(r,o){var c=r&&parseFloat(r.replace(",","."));return(isNaN(c)?0:c)*o}function $h(r,o){var c={};return c.months=o.month()-r.month()+(o.year()-r.year())*12,r.clone().add(c.months,"M").isAfter(o)&&--c.months,c.milliseconds=+o-+r.clone().add(c.months,"M"),c}function AL(r,o){var c;return r.isValid()&&o.isValid()?(o=vd(o,r),r.isBefore(o)?c=$h(r,o):(c=$h(o,r),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function qh(r,o){return function(c,s){var _,D;return s!==null&&!isNaN(+s)&&(Ta(o,"moment()."+o+"(period, number) is deprecated. Please use moment()."+o+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),D=c,c=s,s=D),_=wa(c,s),Bh(this,_,r),this}}function Bh(r,o,c,s){var _=o._milliseconds,D=md(o._days),C=md(o._months);r.isValid()&&(s=s==null?!0:s,C&&ea(r,Ga(r,"Month")+C*c),D&&ui(r,"Date",Ga(r,"Date")+D*c),_&&r._d.setTime(r._d.valueOf()+_*c),s&&e.updateOffset(r,D||C))}var NL=qh(1,"add"),RL=qh(-1,"subtract");function Vh(r){return typeof r=="string"||r instanceof String}function OL(r){return re(r)||d(r)||Vh(r)||p(r)||WL(r)||PL(r)||r===null||r===void 0}function PL(r){var o=u(r)&&!f(r),c=!1,s=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],_,D,C=s.length;for(_=0;_<C;_+=1)D=s[_],c=c||i(r,D);return o&&c}function WL(r){var o=a(r),c=!1;return o&&(c=r.filter(function(s){return!p(s)&&Vh(r)}).length===0),o&&c}function UL(r){var o=u(r)&&!f(r),c=!1,s=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],_,D;for(_=0;_<s.length;_+=1)D=s[_],c=c||i(r,D);return o&&c}function kL(r,o){var c=r.diff(o,"days",!0);return c<-6?"sameElse":c<-1?"lastWeek":c<0?"lastDay":c<1?"sameDay":c<2?"nextDay":c<7?"nextWeek":"sameElse"}function $L(r,o){arguments.length===1&&(arguments[0]?OL(arguments[0])?(r=arguments[0],o=void 0):UL(arguments[0])&&(o=arguments[0],r=void 0):(r=void 0,o=void 0));var c=r||We(),s=vd(c,this).startOf("day"),_=e.calendarFormat(this,s)||"sameElse",D=o&&(xt(o[_])?o[_].call(this,c):o[_]);return this.format(D||this.localeData().calendar(_,this,We(c)))}function qL(){return new U(this)}function BL(r,o){var c=re(r)?r:We(r);return this.isValid()&&c.isValid()?(o=q(o)||"millisecond",o==="millisecond"?this.valueOf()>c.valueOf():c.valueOf()<this.clone().startOf(o).valueOf()):!1}function VL(r,o){var c=re(r)?r:We(r);return this.isValid()&&c.isValid()?(o=q(o)||"millisecond",o==="millisecond"?this.valueOf()<c.valueOf():this.clone().endOf(o).valueOf()<c.valueOf()):!1}function JL(r,o,c,s){var _=re(r)?r:We(r),D=re(o)?o:We(o);return this.isValid()&&_.isValid()&&D.isValid()?(s=s||"()",(s[0]==="("?this.isAfter(_,c):!this.isBefore(_,c))&&(s[1]===")"?this.isBefore(D,c):!this.isAfter(D,c))):!1}function QL(r,o){var c=re(r)?r:We(r),s;return this.isValid()&&c.isValid()?(o=q(o)||"millisecond",o==="millisecond"?this.valueOf()===c.valueOf():(s=c.valueOf(),this.clone().startOf(o).valueOf()<=s&&s<=this.clone().endOf(o).valueOf())):!1}function jL(r,o){return this.isSame(r,o)||this.isAfter(r,o)}function zL(r,o){return this.isSame(r,o)||this.isBefore(r,o)}function GL(r,o,c){var s,_,D;if(!this.isValid())return NaN;if(s=vd(r,this),!s.isValid())return NaN;switch(_=(s.utcOffset()-this.utcOffset())*6e4,o=q(o),o){case"year":D=cp(this,s)/12;break;case"month":D=cp(this,s);break;case"quarter":D=cp(this,s)/3;break;case"second":D=(this-s)/1e3;break;case"minute":D=(this-s)/6e4;break;case"hour":D=(this-s)/36e5;break;case"day":D=(this-s-_)/864e5;break;case"week":D=(this-s-_)/6048e5;break;default:D=this-s}return c?D:Dr(D)}function cp(r,o){if(r.date()<o.date())return-cp(o,r);var c=(o.year()-r.year())*12+(o.month()-r.month()),s=r.clone().add(c,"months"),_,D;return o-s<0?(_=r.clone().add(c-1,"months"),D=(o-s)/(s-_)):(_=r.clone().add(c+1,"months"),D=(o-s)/(_-s)),-(c+D)||0}e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function YL(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function KL(r){if(!this.isValid())return null;var o=r!==!0,c=o?this.clone().utc():this;return c.year()<0||c.year()>9999?jn(c,o?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):xt(Date.prototype.toISOString)?o?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",jn(c,"Z")):jn(c,o?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ZL(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var r="moment",o="",c,s,_,D;return this.isLocal()||(r=this.utcOffset()===0?"moment.utc":"moment.parseZone",o="Z"),c="["+r+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",_="-MM-DD[T]HH:mm:ss.SSS",D=o+'[")]',this.format(c+s+_+D)}function XL(r){r||(r=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var o=jn(this,r);return this.localeData().postformat(o)}function nH(r,o){return this.isValid()&&(re(r)&&r.isValid()||We(r).isValid())?wa({to:this,from:r}).locale(this.locale()).humanize(!o):this.localeData().invalidDate()}function eH(r){return this.from(We(),r)}function tH(r,o){return this.isValid()&&(re(r)&&r.isValid()||We(r).isValid())?wa({from:this,to:r}).locale(this.locale()).humanize(!o):this.localeData().invalidDate()}function rH(r){return this.to(We(),r)}function Jh(r){var o;return r===void 0?this._locale._abbr:(o=Ho(r),o!=null&&(this._locale=o),this)}var Qh=wt("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 jh(){return this._locale}var lp=1e3,vf=60*lp,sp=60*vf,zh=(365*400+97)*24*sp;function gf(r,o){return(r%o+o)%o}function Gh(r,o,c){return r<100&&r>=0?new Date(r+400,o,c)-zh:new Date(r,o,c).valueOf()}function Yh(r,o,c){return r<100&&r>=0?Date.UTC(r+400,o,c)-zh:Date.UTC(r,o,c)}function aH(r){var o,c;if(r=q(r),r===void 0||r==="millisecond"||!this.isValid())return this;switch(c=this._isUTC?Yh:Gh,r){case"year":o=c(this.year(),0,1);break;case"quarter":o=c(this.year(),this.month()-this.month()%3,1);break;case"month":o=c(this.year(),this.month(),1);break;case"week":o=c(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":o=c(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":o=c(this.year(),this.month(),this.date());break;case"hour":o=this._d.valueOf(),o-=gf(o+(this._isUTC?0:this.utcOffset()*vf),sp);break;case"minute":o=this._d.valueOf(),o-=gf(o,vf);break;case"second":o=this._d.valueOf(),o-=gf(o,lp);break}return this._d.setTime(o),e.updateOffset(this,!0),this}function oH(r){var o,c;if(r=q(r),r===void 0||r==="millisecond"||!this.isValid())return this;switch(c=this._isUTC?Yh:Gh,r){case"year":o=c(this.year()+1,0,1)-1;break;case"quarter":o=c(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":o=c(this.year(),this.month()+1,1)-1;break;case"week":o=c(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":o=c(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":o=c(this.year(),this.month(),this.date()+1)-1;break;case"hour":o=this._d.valueOf(),o+=sp-gf(o+(this._isUTC?0:this.utcOffset()*vf),sp)-1;break;case"minute":o=this._d.valueOf(),o+=vf-gf(o,vf)-1;break;case"second":o=this._d.valueOf(),o+=lp-gf(o,lp)-1;break}return this._d.setTime(o),e.updateOffset(this,!0),this}function uH(){return this._d.valueOf()-(this._offset||0)*6e4}function iH(){return Math.floor(this.valueOf()/1e3)}function fH(){return new Date(this.valueOf())}function cH(){var r=this;return[r.year(),r.month(),r.date(),r.hour(),r.minute(),r.second(),r.millisecond()]}function lH(){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 sH(){return this.isValid()?this.toISOString():null}function pH(){return W(this)}function _H(){return v({},E(this))}function mH(){return E(this).overflow}function dH(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}w("N",0,0,"eraAbbr"),w("NN",0,0,"eraAbbr"),w("NNN",0,0,"eraAbbr"),w("NNNN",0,0,"eraName"),w("NNNNN",0,0,"eraNarrow"),w("y",["y",1],"yo","eraYear"),w("y",["yy",2],0,"eraYear"),w("y",["yyy",3],0,"eraYear"),w("y",["yyyy",4],0,"eraYear"),V("N",Dd),V("NN",Dd),V("NNN",Dd),V("NNNN",FH),V("NNNNN",wH),pe(["N","NN","NNN","NNNN","NNNNN"],function(r,o,c,s){var _=c._locale.erasParse(r,s,c._strict);_?E(c).era=_:E(c).invalidEra=r}),V("y",ja),V("yy",ja),V("yyy",ja),V("yyyy",ja),V("yo",xH),pe(["y","yy","yyy","yyyy"],Dt),pe(["yo"],function(r,o,c,s){var _;c._locale._eraYearOrdinalRegex&&(_=r.match(c._locale._eraYearOrdinalRegex)),c._locale.eraYearOrdinalParse?o[Dt]=c._locale.eraYearOrdinalParse(r,_):o[Dt]=parseInt(r,10)});function vH(r,o){var c,s,_,D=this._eras||Ho("en")._eras;for(c=0,s=D.length;c<s;++c){switch(typeof D[c].since){case"string":_=e(D[c].since).startOf("day"),D[c].since=_.valueOf();break}switch(typeof D[c].until){case"undefined":D[c].until=1/0;break;case"string":_=e(D[c].until).startOf("day").valueOf(),D[c].until=_.valueOf();break}}return D}function gH(r,o,c){var s,_,D=this.eras(),C,j,Wn;for(r=r.toUpperCase(),s=0,_=D.length;s<_;++s)if(C=D[s].name.toUpperCase(),j=D[s].abbr.toUpperCase(),Wn=D[s].narrow.toUpperCase(),c)switch(o){case"N":case"NN":case"NNN":if(j===r)return D[s];break;case"NNNN":if(C===r)return D[s];break;case"NNNNN":if(Wn===r)return D[s];break}else if([C,j,Wn].indexOf(r)>=0)return D[s]}function DH(r,o){var c=r.since<=r.until?1:-1;return o===void 0?e(r.since).year():e(r.since).year()+(o-r.offset)*c}function hH(){var r,o,c,s=this.localeData().eras();for(r=0,o=s.length;r<o;++r)if(c=this.clone().startOf("day").valueOf(),s[r].since<=c&&c<=s[r].until||s[r].until<=c&&c<=s[r].since)return s[r].name;return""}function yH(){var r,o,c,s=this.localeData().eras();for(r=0,o=s.length;r<o;++r)if(c=this.clone().startOf("day").valueOf(),s[r].since<=c&&c<=s[r].until||s[r].until<=c&&c<=s[r].since)return s[r].narrow;return""}function TH(){var r,o,c,s=this.localeData().eras();for(r=0,o=s.length;r<o;++r)if(c=this.clone().startOf("day").valueOf(),s[r].since<=c&&c<=s[r].until||s[r].until<=c&&c<=s[r].since)return s[r].abbr;return""}function bH(){var r,o,c,s,_=this.localeData().eras();for(r=0,o=_.length;r<o;++r)if(c=_[r].since<=_[r].until?1:-1,s=this.clone().startOf("day").valueOf(),_[r].since<=s&&s<=_[r].until||_[r].until<=s&&s<=_[r].since)return(this.year()-e(_[r].since).year())*c+_[r].offset;return this.year()}function MH(r){return i(this,"_erasNameRegex")||hd.call(this),r?this._erasNameRegex:this._erasRegex}function EH(r){return i(this,"_erasAbbrRegex")||hd.call(this),r?this._erasAbbrRegex:this._erasRegex}function CH(r){return i(this,"_erasNarrowRegex")||hd.call(this),r?this._erasNarrowRegex:this._erasRegex}function Dd(r,o){return o.erasAbbrRegex(r)}function FH(r,o){return o.erasNameRegex(r)}function wH(r,o){return o.erasNarrowRegex(r)}function xH(r,o){return o._eraYearOrdinalRegex||ja}function hd(){var r=[],o=[],c=[],s=[],_,D,C,j,Wn,ae=this.eras();for(_=0,D=ae.length;_<D;++_)C=Ea(ae[_].name),j=Ea(ae[_].abbr),Wn=Ea(ae[_].narrow),o.push(C),r.push(j),c.push(Wn),s.push(C),s.push(j),s.push(Wn);this._erasRegex=new RegExp("^("+s.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+o.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+r.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+c.join("|")+")","i")}w(0,["gg",2],0,function(){return this.weekYear()%100}),w(0,["GG",2],0,function(){return this.isoWeekYear()%100});function pp(r,o){w(0,[r,r.length],0,o)}pp("gggg","weekYear"),pp("ggggg","weekYear"),pp("GGGG","isoWeekYear"),pp("GGGGG","isoWeekYear"),V("G",dt),V("g",dt),V("GG",le,yn),V("gg",le,yn),V("GGGG",qc,De),V("gggg",qc,De),V("GGGGG",lf,Ve),V("ggggg",lf,Ve),Je(["gggg","ggggg","GGGG","GGGGG"],function(r,o,c,s){o[s.substr(0,2)]=zn(r)}),Je(["gg","GG"],function(r,o,c,s){o[s]=e.parseTwoDigitYear(r)});function LH(r){return Kh.call(this,r,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function HH(r){return Kh.call(this,r,this.isoWeek(),this.isoWeekday(),1,4)}function IH(){return ta(this.year(),1,4)}function SH(){return ta(this.isoWeekYear(),1,4)}function AH(){var r=this.localeData()._week;return ta(this.year(),r.dow,r.doy)}function NH(){var r=this.localeData()._week;return ta(this.weekYear(),r.dow,r.doy)}function Kh(r,o,c,s,_){var D;return r==null?fi(this,s,_).year:(D=ta(r,s,_),o>D&&(o=D),RH.call(this,r,o,c,s,_))}function RH(r,o,c,s,_){var D=xo(r,o,c,s,_),C=ii(D.year,0,D.dayOfYear);return this.year(C.getUTCFullYear()),this.month(C.getUTCMonth()),this.date(C.getUTCDate()),this}w("Q",0,"Qo","quarter"),V("Q",un),pe("Q",function(r,o){o[_e]=(zn(r)-1)*3});function OH(r){return r==null?Math.ceil((this.month()+1)/3):this.month((r-1)*3+this.month()%3)}w("D",["DD",2],"Do","date"),V("D",le,iu),V("DD",le,yn),V("Do",function(r,o){return r?o._dayOfMonthOrdinalParse||o._ordinalParse:o._dayOfMonthOrdinalParseLenient}),pe(["D","DD"],Gt),pe("Do",function(r,o){o[Gt]=zn(r.match(le)[0])});var Zh=Or("Date",!0);w("DDD",["DDDD",3],"DDDo","dayOfYear"),V("DDD",cf),V("DDDD",Bn),pe(["DDD","DDDD"],function(r,o,c){c._dayOfYear=zn(r)});function PH(r){var o=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return r==null?o:this.add(r-o,"d")}w("m",["mm",2],0,"minute"),V("m",le,Bc),V("mm",le,yn),pe(["m","mm"],hr);var WH=Or("Minutes",!1);w("s",["ss",2],0,"second"),V("s",le,Bc),V("ss",le,yn),pe(["s","ss"],Nr);var UH=Or("Seconds",!1);w("S",0,0,function(){return~~(this.millisecond()/100)}),w(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),w(0,["SSS",3],0,"millisecond"),w(0,["SSSS",4],0,function(){return this.millisecond()*10}),w(0,["SSSSS",5],0,function(){return this.millisecond()*100}),w(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),w(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),w(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),w(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),V("S",cf,un),V("SS",cf,yn),V("SSS",cf,Bn);var pu,Xh;for(pu="SSSS";pu.length<=9;pu+="S")V(pu,ja);function kH(r,o){o[za]=zn(("0."+r)*1e3)}for(pu="S";pu.length<=9;pu+="S")pe(pu,kH);Xh=Or("Milliseconds",!1),w("z",0,0,"zoneAbbr"),w("zz",0,0,"zoneName");function $H(){return this._isUTC?"UTC":""}function qH(){return this._isUTC?"Coordinated Universal Time":""}var N=U.prototype;N.add=NL,N.calendar=$L,N.clone=qL,N.diff=GL,N.endOf=oH,N.format=XL,N.from=nH,N.fromNow=eH,N.to=tH,N.toNow=rH,N.get=Bs,N.invalidAt=mH,N.isAfter=BL,N.isBefore=VL,N.isBetween=JL,N.isSame=QL,N.isSameOrAfter=jL,N.isSameOrBefore=zL,N.isValid=pH,N.lang=Qh,N.locale=Jh,N.localeData=jh,N.max=pL,N.min=sL,N.parsingFlags=_H,N.set=Vs,N.startOf=aH,N.subtract=RL,N.toArray=cH,N.toObject=lH,N.toDate=fH,N.toISOString=KL,N.inspect=ZL,typeof Symbol<"u"&&Symbol.for!=null&&(N[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),N.toJSON=sH,N.toString=YL,N.unix=iH,N.valueOf=uH,N.creationData=dH,N.eraName=hH,N.eraNarrow=yH,N.eraAbbr=TH,N.eraYear=bH,N.year=pf,N.isLeapYear=Qc,N.weekYear=LH,N.isoWeekYear=HH,N.quarter=N.quarters=OH,N.month=wo,N.daysInMonth=Gc,N.week=N.weeks=Ys,N.isoWeek=N.isoWeeks=Ks,N.weeksInYear=AH,N.weeksInWeekYear=NH,N.isoWeeksInYear=IH,N.isoWeeksInISOWeekYear=SH,N.date=Zh,N.day=N.days=T,N.weekday=O,N.isoWeekday=an,N.dayOfYear=PH,N.hour=N.hours=Ux,N.minute=N.minutes=WH,N.second=N.seconds=UH,N.millisecond=N.milliseconds=Xh,N.utcOffset=TL,N.utc=ML,N.local=EL,N.parseZone=CL,N.hasAlignedHourOffset=FL,N.isDST=wL,N.isLocal=LL,N.isUtcOffset=HL,N.isUtc=kh,N.isUTC=kh,N.zoneAbbr=$H,N.zoneName=qH,N.dates=wt("dates accessor is deprecated. Use date instead.",Zh),N.months=wt("months accessor is deprecated. Use month instead",wo),N.years=wt("years accessor is deprecated. Use year instead",pf),N.zone=wt("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",bL),N.isDSTShifted=wt("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",xL);function BH(r){return We(r*1e3)}function VH(){return We.apply(null,arguments).parseZone()}function ny(r){return r}var se=mt.prototype;se.calendar=Mo,se.longDateFormat=ne,se.invalidDate=ge,se.ordinal=Ie,se.preparse=ny,se.postformat=ny,se.relativeTime=Ln,se.pastFuture=G,se.set=ti,se.eras=vH,se.erasParse=gH,se.erasConvertYear=DH,se.erasAbbrRegex=EH,se.erasNameRegex=MH,se.erasNarrowRegex=CH,se.months=zc,se.monthsShort=js,se.monthsParse=mf,se.monthsRegex=rd,se.monthsShortRegex=Yc,se.week=Kc,se.firstDayOfYear=od,se.firstDayOfWeek=Gs,se.weekdays=ep,se.weekdaysMin=rp,se.weekdaysShort=tp,se.weekdaysParse=pn,se.weekdaysRegex=Me,se.weekdaysShortRegex=Lt,se.weekdaysMinRegex=Ht,se.isPM=ap,se.meridiem=kx;function _p(r,o,c,s){var _=Ho(),D=g().set(s,o);return _[c](D,r)}function ey(r,o,c){if(p(r)&&(o=r,r=void 0),r=r||"",o!=null)return _p(r,o,c,"month");var s,_=[];for(s=0;s<12;s++)_[s]=_p(r,s,c,"month");return _}function yd(r,o,c,s){typeof r=="boolean"?(p(o)&&(c=o,o=void 0),o=o||""):(o=r,c=o,r=!1,p(o)&&(c=o,o=void 0),o=o||"");var _=Ho(),D=r?_._week.dow:0,C,j=[];if(c!=null)return _p(o,(c+D)%7,s,"day");for(C=0;C<7;C++)j[C]=_p(o,(C+D)%7,s,"day");return j}function JH(r,o){return ey(r,o,"months")}function QH(r,o){return ey(r,o,"monthsShort")}function jH(r,o,c){return yd(r,o,c,"weekdays")}function zH(r,o,c){return yd(r,o,c,"weekdaysShort")}function GH(r,o,c){return yd(r,o,c,"weekdaysMin")}su("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 o=r%10,c=zn(r%100/10)===1?"th":o===1?"st":o===2?"nd":o===3?"rd":"th";return r+c}}),e.lang=wt("moment.lang is deprecated. Use moment.locale instead.",su),e.langData=wt("moment.langData is deprecated. Use moment.localeData instead.",Ho);var Io=Math.abs;function YH(){var r=this._data;return this._milliseconds=Io(this._milliseconds),this._days=Io(this._days),this._months=Io(this._months),r.milliseconds=Io(r.milliseconds),r.seconds=Io(r.seconds),r.minutes=Io(r.minutes),r.hours=Io(r.hours),r.months=Io(r.months),r.years=Io(r.years),this}function ty(r,o,c,s){var _=wa(o,c);return r._milliseconds+=s*_._milliseconds,r._days+=s*_._days,r._months+=s*_._months,r._bubble()}function KH(r,o){return ty(this,r,o,1)}function ZH(r,o){return ty(this,r,o,-1)}function ry(r){return r<0?Math.floor(r):Math.ceil(r)}function XH(){var r=this._milliseconds,o=this._days,c=this._months,s=this._data,_,D,C,j,Wn;return r>=0&&o>=0&&c>=0||r<=0&&o<=0&&c<=0||(r+=ry(Td(c)+o)*864e5,o=0,c=0),s.milliseconds=r%1e3,_=Dr(r/1e3),s.seconds=_%60,D=Dr(_/60),s.minutes=D%60,C=Dr(D/60),s.hours=C%24,o+=Dr(C/24),Wn=Dr(ay(o)),c+=Wn,o-=ry(Td(Wn)),j=Dr(c/12),c%=12,s.days=o,s.months=c,s.years=j,this}function ay(r){return r*4800/146097}function Td(r){return r*146097/4800}function nI(r){if(!this.isValid())return NaN;var o,c,s=this._milliseconds;if(r=q(r),r==="month"||r==="quarter"||r==="year")switch(o=this._days+s/864e5,c=this._months+ay(o),r){case"month":return c;case"quarter":return c/3;case"year":return c/12}else switch(o=this._days+Math.round(Td(this._months)),r){case"week":return o/7+s/6048e5;case"day":return o+s/864e5;case"hour":return o*24+s/36e5;case"minute":return o*1440+s/6e4;case"second":return o*86400+s/1e3;case"millisecond":return Math.floor(o*864e5)+s;default:throw new Error("Unknown unit "+r)}}function So(r){return function(){return this.as(r)}}var oy=So("ms"),eI=So("s"),tI=So("m"),rI=So("h"),aI=So("d"),oI=So("w"),uI=So("M"),iI=So("Q"),fI=So("y"),cI=oy;function lI(){return wa(this)}function sI(r){return r=q(r),this.isValid()?this[r+"s"]():NaN}function pi(r){return function(){return this.isValid()?this._data[r]:NaN}}var pI=pi("milliseconds"),_I=pi("seconds"),mI=pi("minutes"),dI=pi("hours"),vI=pi("days"),gI=pi("months"),DI=pi("years");function hI(){return Dr(this.days()/7)}var Ao=Math.round,Df={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function yI(r,o,c,s,_){return _.relativeTime(o||1,!!c,r,s)}function TI(r,o,c,s){var _=wa(r).abs(),D=Ao(_.as("s")),C=Ao(_.as("m")),j=Ao(_.as("h")),Wn=Ao(_.as("d")),ae=Ao(_.as("M")),fr=Ao(_.as("w")),No=Ao(_.as("y")),_u=D<=c.ss&&["s",D]||D<c.s&&["ss",D]||C<=1&&["m"]||C<c.m&&["mm",C]||j<=1&&["h"]||j<c.h&&["hh",j]||Wn<=1&&["d"]||Wn<c.d&&["dd",Wn];return c.w!=null&&(_u=_u||fr<=1&&["w"]||fr<c.w&&["ww",fr]),_u=_u||ae<=1&&["M"]||ae<c.M&&["MM",ae]||No<=1&&["y"]||["yy",No],_u[2]=o,_u[3]=+r>0,_u[4]=s,yI.apply(null,_u)}function bI(r){return r===void 0?Ao:typeof r=="function"?(Ao=r,!0):!1}function MI(r,o){return Df[r]===void 0?!1:o===void 0?Df[r]:(Df[r]=o,r==="s"&&(Df.ss=o-1),!0)}function EI(r,o){if(!this.isValid())return this.localeData().invalidDate();var c=!1,s=Df,_,D;return typeof r=="object"&&(o=r,r=!1),typeof r=="boolean"&&(c=r),typeof o=="object"&&(s=Object.assign({},Df,o),o.s!=null&&o.ss==null&&(s.ss=o.s-1)),_=this.localeData(),D=TI(this,!c,s,_),c&&(D=_.pastFuture(+this,D)),_.postformat(D)}var bd=Math.abs;function hf(r){return(r>0)-(r<0)||+r}function mp(){if(!this.isValid())return this.localeData().invalidDate();var r=bd(this._milliseconds)/1e3,o=bd(this._days),c=bd(this._months),s,_,D,C,j=this.asSeconds(),Wn,ae,fr,No;return j?(s=Dr(r/60),_=Dr(s/60),r%=60,s%=60,D=Dr(c/12),c%=12,C=r?r.toFixed(3).replace(/\.?0+$/,""):"",Wn=j<0?"-":"",ae=hf(this._months)!==hf(j)?"-":"",fr=hf(this._days)!==hf(j)?"-":"",No=hf(this._milliseconds)!==hf(j)?"-":"",Wn+"P"+(D?ae+D+"Y":"")+(c?ae+c+"M":"")+(o?fr+o+"D":"")+(_||s||r?"T":"")+(_?No+_+"H":"")+(s?No+s+"M":"")+(r?No+C+"S":"")):"P0D"}var ue=ip.prototype;ue.isValid=gL,ue.abs=YH,ue.add=KH,ue.subtract=ZH,ue.as=nI,ue.asMilliseconds=oy,ue.asSeconds=eI,ue.asMinutes=tI,ue.asHours=rI,ue.asDays=aI,ue.asWeeks=oI,ue.asMonths=uI,ue.asQuarters=iI,ue.asYears=fI,ue.valueOf=cI,ue._bubble=XH,ue.clone=lI,ue.get=sI,ue.milliseconds=pI,ue.seconds=_I,ue.minutes=mI,ue.hours=dI,ue.days=vI,ue.weeks=hI,ue.months=gI,ue.years=DI,ue.humanize=EI,ue.toISOString=mp,ue.toString=mp,ue.toJSON=mp,ue.locale=Jh,ue.localeData=jh,ue.toIsoString=wt("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",mp),ue.lang=Qh,w("X",0,0,"unix"),w("x",0,0,"valueOf"),V("x",dt),V("X",ed),pe("X",function(r,o,c){c._d=new Date(parseFloat(r)*1e3)}),pe("x",function(r,o,c){c._d=new Date(zn(r))});return e.version="2.30.1",t(We),e.fn=N,e.min=_L,e.max=mL,e.now=dL,e.utc=g,e.unix=BH,e.months=JH,e.isDate=d,e.locale=su,e.invalid=sn,e.duration=wa,e.isMoment=re,e.weekdays=jH,e.parseZone=VH,e.localeData=Ho,e.isDuration=fp,e.monthsShort=QH,e.weekdaysMin=GH,e.defineLocale=cd,e.updateLocale=Vx,e.locales=Jx,e.weekdaysShort=zH,e.normalizeUnits=q,e.relativeTimeRounding=bI,e.relativeTimeThreshold=MI,e.calendarFormat=kL,e.prototype=N,e.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"},e})});var d1=cy((uh,ih)=>{(function(n,e){typeof uh=="object"&&typeof ih<"u"?ih.exports=e():typeof define=="function"&&define.amd?define(e):(n=typeof globalThis<"u"?globalThis:n||self,n.DOMPurify=e())})(uh,function(){"use strict";let{entries:n,setPrototypeOf:e,isFrozen:t,getPrototypeOf:a,getOwnPropertyDescriptor:u}=Object,{freeze:i,seal:f,create:l}=Object,{apply:p,construct:d}=typeof Reflect<"u"&&Reflect;i||(i=function(G){return G}),f||(f=function(G){return G}),p||(p=function(G,$n,q){return G.apply($n,q)}),d||(d=function(G,$n){return new G(...$n)});let m=U(Array.prototype.forEach),v=U(Array.prototype.pop),g=U(Array.prototype.push),h=U(String.prototype.toLowerCase),E=U(String.prototype.toString),F=U(String.prototype.match),W=U(String.prototype.replace),sn=U(String.prototype.indexOf),wn=U(String.prototype.trim),Rn=U(RegExp.prototype.test),En=re(TypeError);function U(Ln){return function(G){for(var $n=arguments.length,q=new Array($n>1?$n-1:0),B=1;B<$n;B++)q[B-1]=arguments[B];return p(Ln,G,q)}}function re(Ln){return function(){for(var G=arguments.length,$n=new Array(G),q=0;q<G;q++)$n[q]=arguments[q];return d(Ln,$n)}}function An(Ln,G){let $n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:h;e&&e(Ln,null);let q=G.length;for(;q--;){let B=G[q];if(typeof B=="string"){let Cn=$n(B);Cn!==B&&(t(G)||(G[q]=Cn),B=Cn)}Ln[B]=!0}return Ln}function wt(Ln){for(let G=0;G<Ln.length;G++)u(Ln,G)===void 0&&(Ln[G]=null);return Ln}function vr(Ln){let G=l(null);for(let[$n,q]of n(Ln))u(Ln,$n)!==void 0&&(Array.isArray(q)?G[$n]=wt(q):q&&typeof q=="object"&&q.constructor===Object?G[$n]=vr(q):G[$n]=q);return G}function Ta(Ln,G){for(;Ln!==null;){let q=u(Ln,G);if(q){if(q.get)return U(q.get);if(typeof q.value=="function")return U(q.value)}Ln=a(Ln)}function $n(q){return console.warn("fallback value for",q),null}return $n}let xt=i(["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","section","select","shadow","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"]),ti=i(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),gr=i(["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"]),mt=i(["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"]),na=i(["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"]),ou=i(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Mo=i(["#text"]),Le=i(["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","face","for","headers","height","hidden","high","href","hreflang","id","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","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),Ar=i(["accent-height","accumulate","additive","alignment-baseline","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","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","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","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","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","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"]),ba=i(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","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"]),Ja=i(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Qa=f(/\{\{[\w\W]*|[\w\W]*\}\}/gm),w=f(/<%[\w\W]*|[\w\W]*%>/gm),Qn=f(/\${[\w\W]*}/gm),He=f(/^data-[\-\w.\u00B7-\uFFFF]/),jn=f(/^aria-[\-\w]+$/),on=f(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),k=f(/^(?:\w+script|data):/i),ne=f(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Pn=f(/^html$/i);var ge=Object.freeze({__proto__:null,MUSTACHE_EXPR:Qa,ERB_EXPR:w,TMPLIT_EXPR:Qn,DATA_ATTR:He,ARIA_ATTR:jn,IS_ALLOWED_URI:on,IS_SCRIPT_OR_DATA:k,ATTR_WHITESPACE:ne,DOCTYPE_NAME:Pn});let at=function(){return typeof window>"u"?null:window},ce=function(G,$n){if(typeof G!="object"||typeof G.createPolicy!="function")return null;let q=null,B="data-tt-policy-suffix";$n&&$n.hasAttribute(B)&&(q=$n.getAttribute(B));let Cn="dompurify"+(q?"#"+q:"");try{return G.createPolicy(Cn,{createHTML(rn){return rn},createScriptURL(rn){return rn}})}catch(rn){return console.warn("TrustedTypes policy "+Cn+" could not be created."),null}};function Ie(){let Ln=arguments.length>0&&arguments[0]!==void 0?arguments[0]:at(),G=pn=>Ie(pn);if(G.version="3.0.8",G.removed=[],!Ln||!Ln.document||Ln.document.nodeType!==9)return G.isSupported=!1,G;let{document:$n}=Ln,q=$n,B=q.currentScript,{DocumentFragment:Cn,HTMLTemplateElement:rn,Node:un,Element:yn,NodeFilter:Bn,NamedNodeMap:De=Ln.NamedNodeMap||Ln.MozNamedAttrMap,HTMLFormElement:Ve,DOMParser:le,trustedTypes:Eo}=Ln,ri=yn.prototype,cf=Ta(ri,"cloneNode"),qc=Ta(ri,"nextSibling"),lf=Ta(ri,"childNodes"),ja=Ta(ri,"parentNode");if(typeof rn=="function"){let pn=$n.createElement("template");pn.content&&pn.content.ownerDocument&&($n=pn.content.ownerDocument)}let dt,ai="",{implementation:uu,createNodeIterator:ed,createDocumentFragment:oi,getElementsByTagName:iu}=$n,{importNode:Bc}=q,ir={};G.isSupported=typeof n=="function"&&typeof ja=="function"&&uu&&uu.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:V,ERB_EXPR:Vc,TMPLIT_EXPR:Jc,DATA_ATTR:Ea,ARIA_ATTR:Dr,IS_SCRIPT_OR_DATA:zn,ATTR_WHITESPACE:sf}=ge,{IS_ALLOWED_URI:pe}=ge,Je=null,$s=An({},[...xt,...ti,...gr,...na,...Mo]),Ke=null,Dt=An({},[...Le,...Ar,...ba,...Ja]),_e=Object.seal(l(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}})),Gt=null,Ze=null,hr=!0,Nr=!0,za=!1,qs=!0,fu=!1,Rr=!1,pf=!1,Qc=!1,Or=!1,Ga=!1,ui=!1,Bs=!0,Vs=!1,td="user-content-",Pe=!0,Co=!1,cu={},Fo=null,jc=An({},["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"]),Js=null,Qs=An({},["audio","video","img","source","image","track"]),zc=null,js=An({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),_f="http://www.w3.org/1998/Math/MathML",mf="http://www.w3.org/2000/svg",ea="http://www.w3.org/1999/xhtml",wo=ea,Gc=!1,Yc=null,rd=An({},[_f,mf,ea],E),lu=null,ad=["application/xhtml+xml","text/html"],ii="text/html",Xe=null,xo=null,fi=$n.createElement("form"),ta=function(T){return T instanceof RegExp||T instanceof Function},Kc=function(){let T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(xo&&xo===T)){if((!T||typeof T!="object")&&(T={}),T=vr(T),lu=ad.indexOf(T.PARSER_MEDIA_TYPE)===-1?ii:T.PARSER_MEDIA_TYPE,Xe=lu==="application/xhtml+xml"?E:h,Je="ALLOWED_TAGS"in T?An({},T.ALLOWED_TAGS,Xe):$s,Ke="ALLOWED_ATTR"in T?An({},T.ALLOWED_ATTR,Xe):Dt,Yc="ALLOWED_NAMESPACES"in T?An({},T.ALLOWED_NAMESPACES,E):rd,zc="ADD_URI_SAFE_ATTR"in T?An(vr(js),T.ADD_URI_SAFE_ATTR,Xe):js,Js="ADD_DATA_URI_TAGS"in T?An(vr(Qs),T.ADD_DATA_URI_TAGS,Xe):Qs,Fo="FORBID_CONTENTS"in T?An({},T.FORBID_CONTENTS,Xe):jc,Gt="FORBID_TAGS"in T?An({},T.FORBID_TAGS,Xe):{},Ze="FORBID_ATTR"in T?An({},T.FORBID_ATTR,Xe):{},cu="USE_PROFILES"in T?T.USE_PROFILES:!1,hr=T.ALLOW_ARIA_ATTR!==!1,Nr=T.ALLOW_DATA_ATTR!==!1,za=T.ALLOW_UNKNOWN_PROTOCOLS||!1,qs=T.ALLOW_SELF_CLOSE_IN_ATTR!==!1,fu=T.SAFE_FOR_TEMPLATES||!1,Rr=T.WHOLE_DOCUMENT||!1,Or=T.RETURN_DOM||!1,Ga=T.RETURN_DOM_FRAGMENT||!1,ui=T.RETURN_TRUSTED_TYPE||!1,Qc=T.FORCE_BODY||!1,Bs=T.SANITIZE_DOM!==!1,Vs=T.SANITIZE_NAMED_PROPS||!1,Pe=T.KEEP_CONTENT!==!1,Co=T.IN_PLACE||!1,pe=T.ALLOWED_URI_REGEXP||on,wo=T.NAMESPACE||ea,_e=T.CUSTOM_ELEMENT_HANDLING||{},T.CUSTOM_ELEMENT_HANDLING&&ta(T.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(_e.tagNameCheck=T.CUSTOM_ELEMENT_HANDLING.tagNameCheck),T.CUSTOM_ELEMENT_HANDLING&&ta(T.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(_e.attributeNameCheck=T.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),T.CUSTOM_ELEMENT_HANDLING&&typeof T.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(_e.allowCustomizedBuiltInElements=T.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),fu&&(Nr=!1),Ga&&(Or=!0),cu&&(Je=An({},Mo),Ke=[],cu.html===!0&&(An(Je,xt),An(Ke,Le)),cu.svg===!0&&(An(Je,ti),An(Ke,Ar),An(Ke,Ja)),cu.svgFilters===!0&&(An(Je,gr),An(Ke,Ar),An(Ke,Ja)),cu.mathMl===!0&&(An(Je,na),An(Ke,ba),An(Ke,Ja))),T.ADD_TAGS&&(Je===$s&&(Je=vr(Je)),An(Je,T.ADD_TAGS,Xe)),T.ADD_ATTR&&(Ke===Dt&&(Ke=vr(Ke)),An(Ke,T.ADD_ATTR,Xe)),T.ADD_URI_SAFE_ATTR&&An(zc,T.ADD_URI_SAFE_ATTR,Xe),T.FORBID_CONTENTS&&(Fo===jc&&(Fo=vr(Fo)),An(Fo,T.FORBID_CONTENTS,Xe)),Pe&&(Je["#text"]=!0),Rr&&An(Je,["html","head","body"]),Je.table&&(An(Je,["tbody"]),delete Gt.tbody),T.TRUSTED_TYPES_POLICY){if(typeof T.TRUSTED_TYPES_POLICY.createHTML!="function")throw En('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof T.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw En('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');dt=T.TRUSTED_TYPES_POLICY,ai=dt.createHTML("")}else dt===void 0&&(dt=ce(Eo,B)),dt!==null&&typeof ai=="string"&&(ai=dt.createHTML(""));i&&i(T),xo=T}},zs=An({},["mi","mo","mn","ms","mtext"]),Gs=An({},["foreignobject","desc","title","annotation-xml"]),od=An({},["title","style","font","a","script"]),Ys=An({},[...ti,...gr,...mt]),Ks=An({},[...na,...ou]),ud=function(T){let O=ja(T);(!O||!O.tagName)&&(O={namespaceURI:wo,tagName:"template"});let an=h(T.tagName),Me=h(O.tagName);return Yc[T.namespaceURI]?T.namespaceURI===mf?O.namespaceURI===ea?an==="svg":O.namespaceURI===_f?an==="svg"&&(Me==="annotation-xml"||zs[Me]):!!Ys[an]:T.namespaceURI===_f?O.namespaceURI===ea?an==="math":O.namespaceURI===mf?an==="math"&&Gs[Me]:!!Ks[an]:T.namespaceURI===ea?O.namespaceURI===mf&&!Gs[Me]||O.namespaceURI===_f&&!zs[Me]?!1:!Ks[an]&&(od[an]||!Ys[an]):!!(lu==="application/xhtml+xml"&&Yc[T.namespaceURI]):!1},Lo=function(T){g(G.removed,{element:T});try{T.parentNode.removeChild(T)}catch(O){T.remove()}},ci=function(T,O){try{g(G.removed,{attribute:O.getAttributeNode(T),from:O})}catch(an){g(G.removed,{attribute:null,from:O})}if(O.removeAttribute(T),T==="is"&&!Ke[T])if(Or||Ga)try{Lo(O)}catch(an){}else try{O.setAttribute(T,"")}catch(an){}},Zs=function(T){let O=null,an=null;if(Qc)T="<remove></remove>"+T;else{let Ht=F(T,/^[\r\n\t ]+/);an=Ht&&Ht[0]}lu==="application/xhtml+xml"&&wo===ea&&(T='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+T+"</body></html>");let Me=dt?dt.createHTML(T):T;if(wo===ea)try{O=new le().parseFromString(Me,lu)}catch(Ht){}if(!O||!O.documentElement){O=uu.createDocument(wo,"template",null);try{O.documentElement.innerHTML=Gc?ai:Me}catch(Ht){}}let Lt=O.body||O.documentElement;return T&&an&&Lt.insertBefore($n.createTextNode(an),Lt.childNodes[0]||null),wo===ea?iu.call(O,Rr?"html":"body")[0]:Rr?O.documentElement:Lt},Zc=function(T){return ed.call(T.ownerDocument||T,T,Bn.SHOW_ELEMENT|Bn.SHOW_COMMENT|Bn.SHOW_TEXT,null)},id=function(T){return T instanceof Ve&&(typeof T.nodeName!="string"||typeof T.textContent!="string"||typeof T.removeChild!="function"||!(T.attributes instanceof De)||typeof T.removeAttribute!="function"||typeof T.setAttribute!="function"||typeof T.namespaceURI!="string"||typeof T.insertBefore!="function"||typeof T.hasChildNodes!="function")},Xs=function(T){return typeof un=="function"&&T instanceof un},Ca=function(T,O,an){ir[T]&&m(ir[T],Me=>{Me.call(G,O,an,xo)})},np=function(T){let O=null;if(Ca("beforeSanitizeElements",T,null),id(T))return Lo(T),!0;let an=Xe(T.nodeName);if(Ca("uponSanitizeElement",T,{tagName:an,allowedTags:Je}),T.hasChildNodes()&&!Xs(T.firstElementChild)&&Rn(/<[/\w]/g,T.innerHTML)&&Rn(/<[/\w]/g,T.textContent))return Lo(T),!0;if(!Je[an]||Gt[an]){if(!Gt[an]&&tp(an)&&(_e.tagNameCheck instanceof RegExp&&Rn(_e.tagNameCheck,an)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(an)))return!1;if(Pe&&!Fo[an]){let Me=ja(T)||T.parentNode,Lt=lf(T)||T.childNodes;if(Lt&&Me){let Ht=Lt.length;for(let It=Ht-1;It>=0;--It)Me.insertBefore(cf(Lt[It],!0),qc(T))}}return Lo(T),!0}return T instanceof yn&&!ud(T)||(an==="noscript"||an==="noembed"||an==="noframes")&&Rn(/<\/no(script|embed|frames)/i,T.innerHTML)?(Lo(T),!0):(fu&&T.nodeType===3&&(O=T.textContent,m([V,Vc,Jc],Me=>{O=W(O,Me," ")}),T.textContent!==O&&(g(G.removed,{element:T.cloneNode()}),T.textContent=O)),Ca("afterSanitizeElements",T,null),!1)},ep=function(T,O,an){if(Bs&&(O==="id"||O==="name")&&(an in $n||an in fi))return!1;if(!(Nr&&!Ze[O]&&Rn(Ea,O))){if(!(hr&&Rn(Dr,O))){if(!Ke[O]||Ze[O]){if(!(tp(T)&&(_e.tagNameCheck instanceof RegExp&&Rn(_e.tagNameCheck,T)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(T))&&(_e.attributeNameCheck instanceof RegExp&&Rn(_e.attributeNameCheck,O)||_e.attributeNameCheck instanceof Function&&_e.attributeNameCheck(O))||O==="is"&&_e.allowCustomizedBuiltInElements&&(_e.tagNameCheck instanceof RegExp&&Rn(_e.tagNameCheck,an)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(an))))return!1}else if(!zc[O]){if(!Rn(pe,W(an,sf,""))){if(!((O==="src"||O==="xlink:href"||O==="href")&&T!=="script"&&sn(an,"data:")===0&&Js[T])){if(!(za&&!Rn(zn,W(an,sf,"")))){if(an)return!1}}}}}}return!0},tp=function(T){return T.indexOf("-")>0},rp=function(T){Ca("beforeSanitizeAttributes",T,null);let{attributes:O}=T;if(!O)return;let an={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ke},Me=O.length;for(;Me--;){let Lt=O[Me],{name:Ht,namespaceURI:It,value:Fa}=Lt,li=Xe(Ht),Wt=Ht==="value"?Fa:wn(Fa);if(an.attrName=li,an.attrValue=Wt,an.keepAttr=!0,an.forceKeepAttr=void 0,Ca("uponSanitizeAttribute",T,an),Wt=an.attrValue,an.forceKeepAttr||(ci(Ht,T),!an.keepAttr))continue;if(!qs&&Rn(/\/>/i,Wt)){ci(Ht,T);continue}fu&&m([V,Vc,Jc],ap=>{Wt=W(Wt,ap," ")});let Xc=Xe(T.nodeName);if(ep(Xc,li,Wt)){if(Vs&&(li==="id"||li==="name")&&(ci(Ht,T),Wt=td+Wt),dt&&typeof Eo=="object"&&typeof Eo.getAttributeType=="function"&&!It)switch(Eo.getAttributeType(Xc,li)){case"TrustedHTML":{Wt=dt.createHTML(Wt);break}case"TrustedScriptURL":{Wt=dt.createScriptURL(Wt);break}}try{It?T.setAttributeNS(It,Ht,Wt):T.setAttribute(Ht,Wt),v(G.removed)}catch(ap){}}}Ca("afterSanitizeAttributes",T,null)},fd=function pn(T){let O=null,an=Zc(T);for(Ca("beforeSanitizeShadowDOM",T,null);O=an.nextNode();)Ca("uponSanitizeShadowNode",O,null),!np(O)&&(O.content instanceof Cn&&pn(O.content),rp(O));Ca("afterSanitizeShadowDOM",T,null)};return G.sanitize=function(pn){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=null,an=null,Me=null,Lt=null;if(Gc=!pn,Gc&&(pn="<!-->"),typeof pn!="string"&&!Xs(pn))if(typeof pn.toString=="function"){if(pn=pn.toString(),typeof pn!="string")throw En("dirty is not a string, aborting")}else throw En("toString is not a function");if(!G.isSupported)return pn;if(pf||Kc(T),G.removed=[],typeof pn=="string"&&(Co=!1),Co){if(pn.nodeName){let Fa=Xe(pn.nodeName);if(!Je[Fa]||Gt[Fa])throw En("root node is forbidden and cannot be sanitized in-place")}}else if(pn instanceof un)O=Zs("<!---->"),an=O.ownerDocument.importNode(pn,!0),an.nodeType===1&&an.nodeName==="BODY"||an.nodeName==="HTML"?O=an:O.appendChild(an);else{if(!Or&&!fu&&!Rr&&pn.indexOf("<")===-1)return dt&&ui?dt.createHTML(pn):pn;if(O=Zs(pn),!O)return Or?null:ui?ai:""}O&&Qc&&Lo(O.firstChild);let Ht=Zc(Co?pn:O);for(;Me=Ht.nextNode();)np(Me)||(Me.content instanceof Cn&&fd(Me.content),rp(Me));if(Co)return pn;if(Or){if(Ga)for(Lt=oi.call(O.ownerDocument);O.firstChild;)Lt.appendChild(O.firstChild);else Lt=O;return(Ke.shadowroot||Ke.shadowrootmode)&&(Lt=Bc.call(q,Lt,!0)),Lt}let It=Rr?O.outerHTML:O.innerHTML;return Rr&&Je["!doctype"]&&O.ownerDocument&&O.ownerDocument.doctype&&O.ownerDocument.doctype.name&&Rn(Pn,O.ownerDocument.doctype.name)&&(It="<!DOCTYPE "+O.ownerDocument.doctype.name+`>-`+It),fu&&m([V,Vc,Jc],Fa=>{It=W(It,Fa," ")}),dt&&ui?dt.createHTML(It):It},G.setConfig=function(){let pn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Kc(pn),pf=!0},G.clearConfig=function(){xo=null,pf=!1},G.isValidAttribute=function(pn,T,O){xo||Kc({});let an=Xe(pn),Me=Xe(T);return ep(an,Me,O)},G.addHook=function(pn,T){typeof T=="function"&&(ir[pn]=ir[pn]||[],g(ir[pn],T))},G.removeHook=function(pn){if(ir[pn])return v(ir[pn])},G.removeHooks=function(pn){ir[pn]&&(ir[pn]=[])},G.removeAllHooks=function(){ir={}},G}var Ma=Ie();return Ma})});var ZB={};SI(ZB,{logoutE:()=>KB,renderAccountSettings:()=>YB,renderAddForm:()=>GB,renderBookmarks:()=>zB,renderNote:()=>jB,renderNotes:()=>QB,renderTagCloud:()=>JB,viewRendered:()=>$c});function py(n,e,t,a,u){return function(i,f){var l=n.newXHR(),p=n.fixupUrl(u.url,l);if(l.open(u.method||"GET",p,!0,u.username,u.password),u.headers)try{for(var d=0,m;(m=u.headers[d])!=null;d++)l.setRequestHeader(m.field,m.value)}catch(g){i(g)}var v=function(g){return function(){i(new Error(g))}};return l.onerror=v(t),l.ontimeout=v(e),l.onload=function(){f({status:l.status,statusText:l.statusText,headers:l.getAllResponseHeaders().split(`\r-`).filter(function(g){return g.length>0}).map(function(g){var h=g.indexOf(":");return a(g.substring(0,h))(g.substring(h+2))}),body:l.response})},l.responseType=u.responseType,l.withCredentials=u.withCredentials,l.timeout=u.timeout,l.send(u.content),function(g,h,E){try{l.abort()}catch(F){return h(F)}return E()}}}var _y=function(n){return function(e){for(var t=e.length,a=new Array(t),u=0;u<t;u++)a[u]=n(e[u]);return a}};var Tf={compose:function(n){return function(e){return function(t){return n(e(t))}}}},bf=function(n){return n.compose};var fn=function(n){return n.identity},cn={identity:function(n){return n},Semigroupoid0:function(){return Tf}};var ct=!0;var Cd=function(n){return function(e){return function(t){return function(a){return n(e(t))(e(a))}}}},ee=function(n){return function(e){return function(t){return n(t)(e)}}},$=function(n){return function(e){return n}};var he=function(){function n(){}return n.value=new n,n}();var M=function(n){return n.map},_i=function(n){var e=M(n);return function(t){return function(a){return e(a)(t)}}},qn=function(n){return M(n)($(void 0))},al=function(n){var e=M(n);return function(t){return function(a){return e($(a))(t)}}};var Ae={map:_y};var my=function(n){return function(e){return n+e}},dy=function(n){return function(e){return n.length===0?e:e.length===0?n:n.concat(e)}};var lt=function(n){return n.reflectSymbol};var mi=function(n){var e=function(t){var a;function u(i){t=i}for(;;)a=u(t);return a};return e(n)};var ra=function(n){return function(e){return e[n]}};var gy={append:my};var cr={append:dy};var mn=function(n){return n.append};var ht=function(n){return n.alt};var Dy=function(n){return function(e){for(var t=n.length,a=e.length,u=new Array(t*a),i=0,f=0;f<t;f++)for(var l=n[f],p=0;p<a;p++)u[i++]=l(e[p]);return u}};var $I=fn(cn);var vp={apply:Dy,Functor0:function(){return Ae}},oe=function(n){return n.apply};var ul=function(n){var e=oe(n),t=M(n.Functor0());return function(a){return function(u){return e(t($($I))(a))(u)}}},yt=function(n){var e=oe(n),t=M(n.Functor0());return function(a){return function(u){return function(i){return e(t(a)(u))(i)}}}};var S=function(n){return n.pure},il=function(n){var e=S(n);return function(t){return function(a){if(!t)return a;if(t)return e(void 0);throw new Error("Failed pattern match at Control.Applicative (line 68, column 1 - line 68, column 65): "+[t.constructor.name,a.constructor.name])}}},aa=function(n){var e=S(n);return function(t){return function(a){if(t)return a;if(!t)return e(void 0);throw new Error("Failed pattern match at Control.Applicative (line 63, column 1 - line 63, column 63): "+[t.constructor.name,a.constructor.name])}}},fl=function(n){var e=oe(n.Apply0()),t=S(n);return function(a){return function(u){return e(t(a))(u)}}};var hy="\uFFFF",yy="\0",BI=Number.POSITIVE_INFINITY,VI=Number.NEGATIVE_INFINITY;var wd=function(n){return function(e){return function(t){return function(a){return function(u){return a<u?n:a===u?e:t}}}}};var Ty=wd;var by=wd,My=wd;var xd=function(n){return function(e){return n===e}};var Ey=xd;var Cy=xd,Fy=xd,wy=function(n){return function(e){return function(t){if(e.length!==t.length)return!1;for(var a=0;a<e.length;a++)if(!n(e[a])(t[a]))return!1;return!0}}};var xy={eq:function(n){return function(e){return!0}}},lr={eq:Fy};var gp={eq:Ey},Ly={eq:Cy};var gn=function(n){return n.eq};var Mf=function(n){return{eq:wy(gn(n))}};var X=function(){function n(){}return n.value=new n,n}(),Y=function(){function n(){}return n.value=new n,n}(),Dn=function(){function n(){}return n.value=new n,n}();var vi={eq:function(n){return function(e){return n instanceof X&&e instanceof X||n instanceof Y&&e instanceof Y||n instanceof Dn&&e instanceof Dn}}};var Hy=function(n){return function(e){return n-e|0}};var Iy=function(n){return function(e){return n+e|0}},Sy=function(n){return function(e){return n*e|0}};var Dp={add:Iy,zero:0,mul:Sy,one:1};var Ld={sub:Hy,Semiring0:function(){return Dp}};var Ef={compare:function(n){return function(e){return Dn.value}},Eq0:function(){return xy}},ut=function(){return{compare:by(X.value)(Dn.value)(Y.value),Eq0:function(){return lr}}}();var Tt=function(){return{compare:Ty(X.value)(Dn.value)(Y.value),Eq0:function(){return gp}}}(),hp=function(){return{compare:My(X.value)(Dn.value)(Y.value),Eq0:function(){return Ly}}}();var ln=function(n){return n.compare};var yp=function(n){var e=ln(n);return function(t){return function(a){return function(u){return e(t(a))(t(u))}}}};var Ha=function(n){return n.top};var Di={top:hy,bottom:yy,Ord0:function(){return hp}};var Ia=function(n){return n.bottom};var Ry=function(n){return n.toString()},Oy=function(n){var e=n.toString();return isNaN(e+".0")?e:e+".0"};var Py=function(n){var e=n.length;return'"'+n.replace(/[\0-\x1F\x7F"\\]/g,function(t,a){switch(t){case'"':case"\\":return"\\"+t;case"\x07":return"\\a";case"\b":return"\\b";case"\f":return"\\f";case`-`:return"\\n";case"\r":return"\\r";case"	":return"\\t";case"\v":return"\\v"}var u=a+1,i=u<e&&n[u]>="0"&&n[u]<="9"?"\\&":"";return"\\"+t.charCodeAt(0).toString(10)+i})+'"'};var Za={show:Py};var Tp={show:Oy},Wr={show:Ry};var _n=function(n){return n.show};var aS=fn(cn),b=function(){function n(){}return n.value=new n,n}(),y=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}();var Jn=function(n){return function(e){return function(t){if(t instanceof b)return n;if(t instanceof y)return e(t.value0);throw new Error("Failed pattern match at Data.Maybe (line 237, column 1 - line 237, column 51): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}},Wo=Jn(!0)($(!1)),Ur=Jn(!1)($(!0));var ie={map:function(n){return function(e){return e instanceof y?new y(n(e.value0)):b.value}}},oS=M(ie);var Ne=function(n){return Jn(n)(aS)},oa=function(){return function(n){if(n instanceof y)return n.value0;throw new Error("Failed pattern match at Data.Maybe (line 288, column 1 - line 288, column 46): "+[n.constructor.name])}};var vu={apply:function(n){return function(e){if(n instanceof y)return oS(n.value0)(e);if(n instanceof b)return b.value;throw new Error("Failed pattern match at Data.Maybe (line 67, column 1 - line 69, column 30): "+[n.constructor.name,e.constructor.name])}},Functor0:function(){return ie}};var At={bind:function(n){return function(e){if(n instanceof y)return e(n.value0);if(n instanceof b)return b.value;throw new Error("Failed pattern match at Data.Maybe (line 125, column 1 - line 127, column 28): "+[n.constructor.name,e.constructor.name])}},Apply0:function(){return vu}};var gu=function(){return{pure:y.create,Apply0:function(){return vu}}}();var Cf="application/json",bp="application/x-www-form-urlencoded";var Wy=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Uy=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),ky=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Sd=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),$y=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),cl=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Ad=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),qy=function(n){return n instanceof cl?new y(bp):n instanceof Ad?new y(Cf):b.value},By=function(){return Sd.create}();var x=function(n){return n};var Mp=function(){return x};var Qy=Mp();var kt=function(){return Qy};var ll=function(){return function(){return function(){return function(){return function(n){return Qy}}}}};var jy=kt();var Ep=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),yi=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Cp=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),zy=function(n){if(n instanceof Ep||n instanceof yi)return jy(n.value0);if(n instanceof Cp)return n.value1;throw new Error("Failed pattern match at Affjax.RequestHeader (line 26, column 1 - line 26, column 33): "+[n.constructor.name])};var Rd=function(n){if(n instanceof Ep)return"Accept";if(n instanceof yi)return"Content-Type";if(n instanceof Cp)return n.value0;throw new Error("Failed pattern match at Affjax.RequestHeader (line 21, column 1 - line 21, column 32): "+[n.constructor.name])};var Od=fn(cn),Pd=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Wd=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Ud=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),sl=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Fp=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),wp=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Yy=function(n){if(n instanceof Pd)return"arraybuffer";if(n instanceof Wd)return"blob";if(n instanceof Ud)return"document";if(n instanceof sl||n instanceof Fp)return"text";if(n instanceof wp)return"";throw new Error("Failed pattern match at Affjax.ResponseFormat (line 44, column 3 - line 50, column 19): "+[n.constructor.name])},Ky=function(n){return n instanceof sl?new y(Cf):b.value},xp=function(){return new Fp(Od)}(),Zy=function(){return new sl(Od)}(),Xa=function(){return new wp(Od)}();var nT=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}();var eT=function(n){return function(e){for(var t=[],a=0,u=n.length;a<u;a++)Array.prototype.push.apply(t,e(n[a]));return t}};var lS=fn(cn),ke=function(n){return n.discard};var Lp={bind:eT,Apply0:function(){return vp}},J=function(n){return n.bind},fe=function(n){return ee(J(n))},Du=function(n){var e=fe(n);return function(t){return function(a){return function(u){return e(t)(a(u))}}}},tT=function(n){var e=J(n);return function(t){return function(a){return function(u){return e(t(u))(a)}}}};var $e={discard:function(n){return J(n)}};var Hp=function(n){var e=J(n);return function(t){return e(t)(lS)}};var z=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Q=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}();var kd=function(n){return Jn(new z(n))(Q.create)};var hu={map:function(n){return function(e){if(e instanceof z)return new z(e.value0);if(e instanceof Q)return new Q(n(e.value0));throw new Error("Failed pattern match at Data.Either (line 0, column 0 - line 0, column 0): "+[e.constructor.name])}}},sS=M(hu);var st=function(n){return function(e){return function(t){if(t instanceof z)return n(t.value0);if(t instanceof Q)return e(t.value0);throw new Error("Failed pattern match at Data.Either (line 208, column 1 - line 208, column 64): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}},Ff=function(){return st($(b.value))(y.create)}();var rT={apply:function(n){return function(e){if(n instanceof z)return new z(n.value0);if(n instanceof Q)return sS(n.value0)(e);throw new Error("Failed pattern match at Data.Either (line 70, column 1 - line 72, column 30): "+[n.constructor.name,e.constructor.name])}},Functor0:function(){return hu}};var $d=function(){return{pure:Q.create,Apply0:function(){return rT}}}();var qd=function(n){return function(){return n}},aT=function(n){return function(e){return function(){return e(n())()}}};var uT=function(n){var e=J(n.Bind1()),t=aa(n.Applicative0());return function(a){return function(u){return e(a)(function(i){return t(i)(u)})}}},iT=function(n){var e=J(n.Bind1()),t=il(n.Applicative0());return function(a){return function(u){return e(a)(function(i){return t(i)(u)})}}};var Tr=function(n){var e=J(n.Bind1()),t=S(n.Applicative0());return function(a){return function(u){return e(a)(function(i){return e(u)(function(f){return t(i(f))})})}}};var fT=function(n){return Math.min(Math.abs(n),2147483647)},cT=function(n){return function(e){return e===0?0:e>0?Math.floor(n/e):-Math.floor(n/-e)}},lT=function(n){return function(e){if(e===0)return 0;var t=Math.abs(e);return(n%t+t)%t}};var sT={Ring0:function(){return Ld}};var Ip=function(n){return n.mod};var Sp={degree:fT,div:cT,mod:lT,CommutativeRing0:function(){return sT}},pl=function(n){return n.div};var Sa={mempty:"",Semigroup0:function(){return gy}};var Uo={mempty:[],Semigroup0:function(){return cr}};var Zn=function(n){return n.mempty};var no=function(n){var e=Zn(n);return function(t){return function(a){if(t)return a;if(!t)return e;throw new Error("Failed pattern match at Data.Monoid (line 96, column 1 - line 96, column 49): "+[t.constructor.name,a.constructor.name])}}};var pT=function(n,e,t){var a=0,u;return function(i){if(a===2)return u;if(a===1)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+i+")",e,i);return a=1,u=t(),a=2,u}},Aa={Applicative0:function(){return Ee},Bind1:function(){return nt}},nt={bind:aT,Apply0:function(){return Vd(0)}},Ee={pure:qd,Apply0:function(){return Vd(0)}},_T=pT("functorEffect","Effect",function(){return{map:fl(Ee)}}),Vd=pT("applyEffect","Effect",function(){return{apply:Tr(Aa),Functor0:function(){return _T(0)}}}),On=_T(20),mT=Vd(23),DS=yt(mT),Jd=function(n){return{append:DS(mn(n))}},Np=function(n){var e=Jd(n.Semigroup0());return{mempty:qd(Zn(n)),Semigroup0:function(){return e}}};function eo(n){return new Error(n)}function wf(n){return n.message}function yu(n){return function(){throw n}}var vT=function(n){return yu(eo(n))};var br=function(n){return n.throwError};var to=function(n){return n.catchError};var _l=function(n){var e=to(n),t=n.MonadThrow0().Monad0(),a=M(t.Bind1().Apply0().Functor0()),u=S(t.Applicative0());return function(i){return e(a(Q.create)(i))(function(f){return u(z.create(f))})}};var ko=function(n){return n};var Tu={map:function(n){return function(e){return n(e)}}};var DT={apply:function(n){return function(e){return n(e)}},Functor0:function(){return Tu}},bS={bind:function(n){return function(e){return e(n)}},Apply0:function(){return DT}},jd={pure:ko,Apply0:function(){return DT}},$t={Applicative0:function(){return jd},Bind1:function(){return bS}};var hT=function(n){return function(){return{value:n}}};var hn=function(n){return function(){return n.value}},yT=function(n){return function(e){return function(){var t=n(e.value);return e.value=t.state,t.value}}},ve=function(n){return function(e){return function(){e.value=n}}};var ES=qn(On),qe=hT,zd=yT,TT=function(n){return zd(function(e){var t=n(e);return{state:t,value:t}})},kr=function(n){return function(e){return ES(TT(n)(e))}};var FS=fe(nt),wS=M(On),qt=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Nt=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),ia=function(n){return n.tailRecM};var bT={tailRecM:function(n){return function(e){var t=function(a){if(a instanceof Nt)return a.value0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 137, column 30 - line 137, column 44): "+[a.constructor.name])};return function(){var u=FS(qe)(n(e))();return function(){for(;!function(){var f=hn(u)();if(f instanceof qt){var l=n(f.value0)();return ve(l)(u)(),!1}if(f instanceof Nt)return!0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 128, column 22 - line 133, column 28): "+[f.constructor.name])}(););return{}}(),wS(t)(hn(u))()}}},Monad0:function(){return Aa}};var MT=function(n){return function(e){return n&&e}},ET=function(n){return function(e){return n||e}},CT=function(n){return!n};var dl=function(n){return n.tt};var Mu=function(n){return n.not};var Yd=function(n){return n.implies};var Lf=function(n){return n.ff};var Eu=function(n){return n.disj},ro={ff:!1,tt:!0,implies:function(n){return function(e){return Eu(ro)(Mu(ro)(n))(e)}},conj:MT,disj:ET,not:CT};var Hf=function(n){return n.conj},Kd=function(n){var e=Lf(n),t=dl(n),a=Yd(n),u=Hf(n),i=Eu(n),f=Mu(n);return{ff:function(l){return e},tt:function(l){return t},implies:function(l){return function(p){return function(d){return a(l(d))(p(d))}}},conj:function(l){return function(p){return function(d){return u(l(d))(p(d))}}},disj:function(l){return function(p){return function(d){return i(l(d))(p(d))}}},not:function(l){return function(p){return f(l(p))}}}};var nn=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),If=function(n){return function(e){return n(e.value0)(e.value1)}};var Re=function(n){return n.value1};var $o={map:function(n){return function(e){return new nn(e.value0,n(e.value1))}}};var Ce=function(n){return n.value0};var wT=function(n){var e=gn(n);return function(t){var a=gn(t);return{eq:function(u){return function(i){return e(u.value0)(i.value0)&&a(u.value1)(i.value1)}}}}},vl=function(n){var e=ln(n),t=wT(n.Eq0());return function(a){var u=ln(a),i=t(a.Eq0());return{compare:function(f){return function(l){var p=e(f.value0)(l.value0);return p instanceof X?X.value:p instanceof Y?Y.value:u(f.value1)(l.value1)}},Eq0:function(){return i}}}};var ao=function(n){return n.state};var pr=function(n){var e=ao(n);return function(t){return e(function(a){return new nn(void 0,t(a))})}},Sf=function(n){var e=ao(n);return function(t){return e(function(a){var u=t(a);return new nn(u,u)})}},Oa=function(n){var e=ao(n);return function(t){return e(function(a){return new nn(t(a),a)})}},gl=function(n){return ao(n)(function(e){return new nn(e,e)})};var Af={liftEffect:fn(cn),Monad0:function(){return Aa}},Gn=function(n){return n.liftEffect};var LS=M(hu);var Pp=function(n){return n};var Wp=function(n){return n};var bl=function(n){return function(e){return n(e)}},Ml=function(n){var e=M(n);return{map:function(t){return bl(e(LS(t)))}}};var xT=function(n){return{Applicative0:function(){return uo(n)},Bind1:function(){return bi(n)}}},bi=function(n){var e=J(n.Bind1()),t=S(n.Applicative0());return{bind:function(a){return function(u){return e(a)(st(function(i){return t(z.create(i))})(function(i){var f=u(i);return f}))}},Apply0:function(){return Zd(n)}}},Zd=function(n){var e=Ml(n.Bind1().Apply0().Functor0());return{apply:Tr(xT(n)),Functor0:function(){return e}}},uo=function(n){return{pure:function(){var e=S(n.Applicative0());return function(t){return Pp(e(Q.create(t)))}}(),Apply0:function(){return Zd(n)}}};var LT=function(n){var e=xT(n);return{throwError:function(){var t=S(n.Applicative0());return function(a){return Pp(t(z.create(a)))}}(),Monad0:function(){return e}}};var Xd=function(n){var e=mn(n);return function(t){var a=t.Bind1(),u=J(a),i=S(t.Applicative0()),f=Ml(a.Apply0().Functor0());return{alt:function(l){return function(p){return u(l)(function(d){if(d instanceof Q)return i(new Q(d.value0));if(d instanceof z)return u(p)(function(m){if(m instanceof Q)return i(new Q(m.value0));if(m instanceof z)return i(new z(e(d.value0)(m.value0)));throw new Error("Failed pattern match at Control.Monad.Except.Trans (line 86, column 9 - line 88, column 49): "+[m.constructor.name])});throw new Error("Failed pattern match at Control.Monad.Except.Trans (line 82, column 5 - line 88, column 49): "+[d.constructor.name])})}},Functor0:function(){return f}}}};var SS=kt();var Mi=function(n){return SS(Wp(n))};function nv(n){return JSON.stringify(n)}var Ei={};function HT(n,e,t,a){return t in a?e(a[t]):n}function El(n){return function(e){var t=[];for(var a in e)hasOwnProperty.call(e,a)&&t.push(n(a)(e[a]));return t}}var NS=Object.keys||El(function(n){return function(){return n}});var US=function(n,e){if(n<1)return[];var t=new Array(n);return t.fill(e)},kS=function(n,e){for(var t=[],a=0,u=0;u<n;u++)t[a++]=e;return t},$S=typeof Array.prototype.fill=="function"?US:kS;var fa=function(n){return n.length};var RT=function(n,e,t,a){for(var u=0,i=a.length;u<i;u++)if(t(a[u]))return n(u);return e};var OT=function(n,e,t,a){if(t<0||t>=a.length)return e;var u=a.slice();return u.splice(t,1),n(u)};var kp=function(n){if(n.length<=1e4)return Array.prototype.concat.apply([],n);for(var e=[],t=0,a=n.length;t<a;t++)for(var u=n[t],i=0,f=u.length;i<f;i++)e.push(u[i]);return e},PT=function(n,e){return e.filter(n)};var WT=function(){function n(e,t,a,u,i,f){var l,p,d,m,v,g,h;for(l=i+(f-i>>1),l-i>1&&n(e,t,u,a,i,l),f-l>1&&n(e,t,u,a,l,f),p=i,d=l,m=i;p<l&&d<f;)v=u[p],g=u[d],h=t(e(v)(g)),h>0?(a[m++]=g,++d):(a[m++]=v,++p);for(;p<l;)a[m++]=u[p++];for(;d<f;)a[m++]=u[d++]}return function(e,t,a){var u;return a.length<2?a:(u=a.slice(0),n(e,t,u,a.slice(0),0,a.length),u)}}(),UT=function(n,e,t){return t.slice(n,e)};var kT=function(n,e){return n[e]};function BS(n){return n}var $T=BS;function VS(n){return n.slice()}var qT=VS;var BT=function(n,e){return e.push(n)};var $p=function(e){return function(t){return function(){return e(t)}}},ev=function(e){return function(t){return function(a){return function(){return e(t,a)}}}};var VT=$p($T);var KS=$p(qT),JT=function(n){return function(e){return function(){var a=KS(e)();return n(a)(),VT(a)()}}};var tv=ev(BT);var zT=function(n){return function(e){return function(t){for(var a=e,u=t.length,i=u-1;i>=0;i--)a=n(t[i])(a);return a}}},GT=function(n){return function(e){return function(t){for(var a=e,u=t.length,i=0;i<u;i++)a=n(a)(t[i]);return a}}};var Kt=function(n){return n.empty};var Bo=function(n){return n.bimap};var Jp=function(n){return n};var iA=function(n){var e=Eu(n);return{append:function(t){return function(a){return e(t)(a)}}}};var iv=function(n){var e=iA(n);return{mempty:Lf(n),Semigroup0:function(){return e}}};var eb=gn(vi);var pA=ll()()()(),Zt=function(n){return n.foldr};var et=function(n){var e=ul(n.Apply0()),t=S(n);return function(a){var u=Zt(a);return function(i){return u(function(f){return e(i(f))})(t(void 0))}}},wi=function(n){var e=et(n);return function(t){return ee(e(t))}};var Mt=function(n){return n.foldl};var Of=function(n){var e=Mt(n);return function(t){var a=mn(t.Semigroup0()),u=Zn(t);return function(i){return function(f){var l=function(p){return function(d){return p.init?{init:!1,acc:d}:{init:!1,acc:a(p.acc)(a(i)(d))}}};return e(l)({init:!0,acc:u})(f).acc}}}};var tb=function(n){var e=Mt(n);return function(t){var a=function(u){return function(i){if(u instanceof b)return new y(i);if(u instanceof y)return new y(function(){var f=eb(t(u.value0)(i))(Y.value);return f?u.value0:i}());throw new Error("Failed pattern match at Data.Foldable (line 441, column 3 - line 441, column 27): "+[u.constructor.name,i.constructor.name])}};return e(a)(b.value)}},cv=function(n){var e=ln(n);return function(t){return tb(t)(e)}},rb=function(n){var e=Mt(n);return function(t){var a=function(u){return function(i){if(u instanceof b)return new y(i);if(u instanceof y)return new y(function(){var f=eb(t(u.value0)(i))(X.value);return f?u.value0:i}());throw new Error("Failed pattern match at Data.Foldable (line 454, column 3 - line 454, column 27): "+[u.constructor.name,i.constructor.name])}};return e(a)(b.value)}},lv=function(n){var e=ln(n);return function(t){return rb(t)(e)}};var gt={foldr:function(n){return function(e){return function(t){if(t instanceof b)return e;if(t instanceof y)return n(t.value0)(e);throw new Error("Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}},foldl:function(n){return function(e){return function(t){if(t instanceof b)return e;if(t instanceof y)return n(e)(t.value0);throw new Error("Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): "+[n.constructor.name,e.constructor.name,t.constructor.name])}}},foldMap:function(n){var e=Zn(n);return function(t){return function(a){if(a instanceof b)return e;if(a instanceof y)return t(a.value0);throw new Error("Failed pattern match at Data.Foldable (line 138, column 1 - line 144, column 27): "+[t.constructor.name,a.constructor.name])}}}};var ab=function(n){var e=Zt(n);return function(t){var a=mn(t.Semigroup0()),u=Zn(t);return function(i){return e(function(f){return function(l){return a(i(f))(l)}})(u)}}},Rt={foldr:zT,foldl:GT,foldMap:function(n){return ab(Rt)(n)}};var qr=function(n){return n.foldMap};var Pf=function(n){var e=qr(n);return function(t){return pA(Jp)(e(iv(t)))}};var Wf=function(n){return function(e){return function(t){return n(e,t)}}},Cu=function(n){return function(e){return function(t){return function(a){return n(e,t,a)}}}},Uf=function(n){return function(e){return function(t){return function(a){return function(u){return n(e,t,a,u)}}}}};var fb=function(){function n(u){return[u]}function e(u){return function(i){return[u,i]}}function t(u){return function(i){return function(f){return[u,i,f]}}}function a(u){return function(i){return u.concat(i)}}return function(u){return function(i){return function(f){return function(l){return function(p){function d(m,v){switch(v-m){case 0:return f([]);case 1:return i(n)(l(p[m]));case 2:return u(i(e)(l(p[m])))(l(p[m+1]));case 3:return u(u(i(t)(l(p[m])))(l(p[m+1])))(l(p[m+2]));default:var g=m+Math.floor((v-m)/4)*2;return u(i(a)(d(m,g)))(d(g,v))}}return d(0,p.length)}}}}}}();var GA=fn(cn),Xt=function(n){return n.traverse};var yb=function(n){var e=Xt(n);return function(t){return e(t)(GA)}},qf={traverse:function(n){var e=n.Apply0();return fb(oe(e))(M(e.Functor0()))(S(n))},sequence:function(n){return yb(qf)(n)},Functor0:function(){return Ae},Foldable1:function(){return Rt}};var Tb=function(n){return function(e){return function(t){return function(a){return function(u){return function(i){for(var f=[],l=i;;){var p=u(l);if(n(p))return f;var d=e(p);f.push(t(d)),l=a(d)}}}}}}};var bb=function(n){return function(e){return function(t){return function(a){return function(u){return function(i){for(var f=[],l=i;;){var p=u(l);f.push(t(p));var d=a(p);if(n(d))return f;l=e(d)}}}}}}};var oN=oa();var vv={unfoldr1:bb(Wo)(oN)(Ce)(Re)};var iN=oa(),Vo=function(n){return n.unfoldr};var Ll={unfoldr:Tb(Wo)(iN)(Ce)(Re),Unfoldable10:function(){return vv}};var lN=Of(Rt);var sN=M(ie);var pN=oa();var _N=qr(Rt);var mN=mn(cr);var Cb=function(){return Wf(kT)},Fb=Cb();var Dv=function(n){var e=Vo(n);return function(t){var a=fa(t),u=function(i){if(i<a)return new y(new nn(Fb(t)(i),i+1|0));if(ct)return b.value;throw new Error("Failed pattern match at Data.Array (line 163, column 3 - line 165, column 26): "+[i.constructor.name])};return e(u)(0)}};var hv=function(n){return Cu(WT)(n)(function(e){if(e instanceof Y)return 1;if(e instanceof Dn)return 0;if(e instanceof X)return-1;throw new Error("Failed pattern match at Data.Array (line 897, column 38 - line 900, column 11): "+[e.constructor.name])})};var yv=function(n){return function(e){return JT(tv(e))(n)()}},wb=Cu(UT);var xb=function(n){return[n]};var Lb=function(n){return fa(n)===0};var Hb=function(n){return lN(n)};var Xp=function(n){return _N(n)};var n_=function(){return Uf(RT)(y.create)(b.value)}(),Tv=function(n){return function(e){return sN(Fb(e))(n_(n)(e))}},Hl=Wf(PT);var Ib=function(n){var e=gn(n);return function(t){return n_(function(a){return e(a)(t)})}},bv=function(n){var e=Ib(n);return function(t){return function(a){return Wo(e(t)(a))}}};var Il=function(n){return function(e){var t=n<1;return t?e:wb(n)(fa(e))(e)}};var Sb=function(){return Uf(OT)(y.create)(b.value)}(),e_=function(n){return function(e){return function(t){return t.length===0?[]:Jn(t)(function(a){return pN(Sb(a)(t))})(n_(n(e))(t))}}},Mv=function(n){return e_(gn(n))};var Sl=function(n){return function(e){return mN([n])(e)}};var dN=ee(J(Lp)),Ev=function(n){return dN(function(){var e=Jn([])(xb);return function(t){return e(n(t))}}())};var t_=function(){return{}};var xv=El(function(n){return function(e){return e}}),Rb=function(n){var e=Dv(n),t=El(nn.create);return function(a){return e(t(a))}};var Ob=function(){return Uf(HT)(b.value)(y.create)}();var Pb=Ei;function Wb(n,e,t){try{return e(JSON.parse(t))}catch(a){return n(a.message)}}var Ub=function(n){return Wb(z.create,Q.create,n)};var Vf=function(n){return function(e){return function(t){return t.replace(new RegExp(n.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),e)}}},Vr=function(n){return function(e){return e.split(n)}},Nl=function(n){return n.toLowerCase()};var Fu=function(n){return function(e){return e.join(n)}};var Jr=function(n){return n===""};function $b(n){return n.replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16)})}function qb(n,e,t){try{return e($b(encodeURIComponent(t)))}catch(a){return n(a)}}function Bb(n,e,t){try{return e($b(encodeURIComponent(t)).replace(/%20/g,"+"))}catch(a){return n(a)}}function Vb(n,e,t){try{return e(decodeURIComponent(t))}catch(a){return n(a)}}var Jb=function(){return Cu(qb)($(b.value))(y.create)}();var a_=function(){return Cu(Bb)($(b.value))(y.create)}(),Qb=function(){return Cu(Vb)($(b.value))(y.create)}();var IN=oe(vu),zb=M(ie),SN=Xt(qf)(gu);var AN=function(n){return n};var Gb=function(){var n=function(a){if(a.value1 instanceof b)return a_(a.value0);if(a.value1 instanceof y)return IN(zb(function(u){return function(i){return u+("="+i)}})(a_(a.value0)))(a_(a.value1.value0));throw new Error("Failed pattern match at Data.FormURLEncoded (line 37, column 16 - line 39, column 114): "+[a.constructor.name])},e=zb(Fu("&")),t=SN(n);return function(a){return e(t(AN(a)))}}();var RN=function(){function n(){}return n.value=new n,n}(),Lv=function(){function n(){}return n.value=new n,n}(),ON=function(){function n(){}return n.value=new n,n}(),sa=function(){function n(){}return n.value=new n,n}(),Yb=function(){function n(){}return n.value=new n,n}(),Rl=function(){function n(){}return n.value=new n,n}(),PN=function(){function n(){}return n.value=new n,n}(),WN=function(){function n(){}return n.value=new n,n}(),UN=function(){function n(){}return n.value=new n,n}(),kN=function(){function n(){}return n.value=new n,n}(),$N=function(){function n(){}return n.value=new n,n}(),qN=function(){function n(){}return n.value=new n,n}(),BN=function(){function n(){}return n.value=new n,n}(),VN=function(){function n(){}return n.value=new n,n}(),JN=function(){function n(){}return n.value=new n,n}(),Kb=function(){function n(){}return n.value=new n,n}();var QN=function(n){return n},jN={show:function(n){if(n instanceof RN)return"OPTIONS";if(n instanceof Lv)return"GET";if(n instanceof ON)return"HEAD";if(n instanceof sa)return"POST";if(n instanceof Yb)return"PUT";if(n instanceof Rl)return"DELETE";if(n instanceof PN)return"TRACE";if(n instanceof WN)return"CONNECT";if(n instanceof UN)return"PROPFIND";if(n instanceof kN)return"PROPPATCH";if(n instanceof $N)return"MKCOL";if(n instanceof qN)return"COPY";if(n instanceof BN)return"MOVE";if(n instanceof VN)return"LOCK";if(n instanceof JN)return"UNLOCK";if(n instanceof Kb)return"PATCH";throw new Error("Failed pattern match at Data.HTTP.Method (line 43, column 1 - line 59, column 23): "+[n.constructor.name])}};var Zb=st(_n(jN))(QN);var io=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}();var Iv=function(n){var e=Kt(n);return function(t){return new io(t,e)}};var Sn=function(){function n(){}return n.value=new n,n}(),In=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Sv=function(n){return n},YN=function(n){return new In(n.value0,n.value1)};var KN=function(n){var e=function(t){return function(a){var u=t,i=!1,f;function l(p,d){if(d instanceof In&&d.value1 instanceof In&&d.value1.value1 instanceof In){u=new In(d,p),a=d.value1.value1.value1;return}var m=function(g){return g instanceof In&&g.value1 instanceof In&&g.value1.value1 instanceof Sn?new In(n(g.value0),new In(n(g.value1.value0),Sn.value)):g instanceof In&&g.value1 instanceof Sn?new In(n(g.value0),Sn.value):Sn.value},v=function(g){return function(h){var E=g,F=!1,W;function sn(wn,Rn){if(wn instanceof In&&wn.value0 instanceof In&&wn.value0.value1 instanceof In&&wn.value0.value1.value1 instanceof In){E=wn.value1,h=new In(n(wn.value0.value0),new In(n(wn.value0.value1.value0),new In(n(wn.value0.value1.value1.value0),Rn)));return}return F=!0,Rn}for(;!F;)W=sn(E,h);return W}};return i=!0,v(p)(m(d))}for(;!i;)f=l(u,a);return f}};return e(Sn.value)},tM={map:KN};var fo={foldr:function(n){return function(e){var t=function(){var u=function(i){return function(f){var l=i,p=!1,d;function m(v,g){if(g instanceof Sn)return p=!0,v;if(g instanceof In){l=new In(g.value0,v),f=g.value1;return}throw new Error("Failed pattern match at Data.List.Types (line 107, column 7 - line 107, column 23): "+[v.constructor.name,g.constructor.name])}for(;!p;)d=m(l,f);return d}};return u(Sn.value)}(),a=Mt(fo)(ee(n))(e);return function(u){return a(t(u))}}},foldl:function(n){var e=function(t){return function(a){var u=t,i=!1,f;function l(p,d){if(d instanceof Sn)return i=!0,p;if(d instanceof In){u=n(p)(d.value0),a=d.value1;return}throw new Error("Failed pattern match at Data.List.Types (line 111, column 12 - line 113, column 30): "+[d.constructor.name])}for(;!i;)f=l(u,a);return f}};return e},foldMap:function(n){var e=mn(n.Semigroup0()),t=Zn(n);return function(a){return Mt(fo)(function(u){var i=e(u);return function(f){return i(a(f))}})(t)}}};var ZN=Zt(fo);var Av={append:function(n){return function(e){return ZN(In.create)(e)(n)}}},rM=mn(Av);var Nv={append:function(n){return function(e){return new io(n.value0,rM(n.value1)(YN(e)))}}};var XN={alt:rM,Functor0:function(){return tM}},aM=function(){return{empty:Sn.value,Alt0:function(){return XN}}}();var Li=function(){var n=function(e){return function(t){var a=e,u=!1,i;function f(l,p){if(p instanceof Sn)return u=!0,l;if(p instanceof In){a=new In(p.value0,l),t=p.value1;return}throw new Error("Failed pattern match at Data.List (line 368, column 3 - line 368, column 19): "+[l.constructor.name,p.constructor.name])}for(;!u;)i=f(a,t);return i}};return n(Sn.value)}();var oM=function(n){return n instanceof Sn};var uM=function(n){return n()};var iM=function(n){throw new Error(n)};var fM=function(){return iM};var fR=fM(),cR=uM,Hi=function(n){return cR(function(){return fR(n)})};var Jf=function(){var n=Iv(aM);return function(e){return Sv(n(e))}}();var lM=function(n){return n.value0};var sM=function(n){return function(e){return new io(n,new In(e.value0,e.value1))}};function pM(n,e,t){return n==null?e:t(n)}function Ov(n){return n}var Bt=Jn(null)(Ov),Xn=function(n){return pM(n,b.value,y.create)};var nr=function(){var n={},e="Pure",t="Throw",a="Catch",u="Sync",i="Async",f="Bind",l="Bracket",p="Fork",d="Sequential",m="Map",v="Apply",g="Alt",h="Cons",E="Resume",F="Release",W="Finalizer",sn="Finalized",wn="Forked",Rn="Fiber",En="Thunk";function U(w,Qn,He,jn){this.tag=w,this._1=Qn,this._2=He,this._3=jn}function re(w){var Qn=function(He,jn,on){return new U(w,He,jn,on)};return Qn.tag=w,Qn}function An(w){return new U(e,void 0)}function wt(w){try{w()}catch(Qn){setTimeout(function(){throw Qn},0)}}function vr(w,Qn,He){try{return Qn(He())}catch(jn){return w(jn)}}function Ta(w,Qn,He){try{return Qn(He)()}catch(jn){return He(w(jn))(),An}}var xt=function(){var w=1024,Qn=0,He=0,jn=new Array(w),on=!1;function k(){var ne;for(on=!0;Qn!==0;)Qn--,ne=jn[He],jn[He]=void 0,He=(He+1)%w,ne();on=!1}return{isDraining:function(){return on},enqueue:function(ne){var Pn,ge;Qn===w&&(ge=on,k(),on=ge),jn[(He+Qn)%w]=ne,Qn++,on||k()}}}();function ti(w){var Qn={},He=0,jn=0;return{register:function(on){var k=He++;on.onComplete({rethrow:!0,handler:function(ne){return function(){jn--,delete Qn[k]}}})(),Qn[k]=on,jn++},isEmpty:function(){return jn===0},killAll:function(on,k){return function(){if(jn===0)return k();var ne=0,Pn={};function ge(ce){Pn[ce]=Qn[ce].kill(on,function(Ie){return function(){delete Pn[ce],ne--,w.isLeft(Ie)&&w.fromLeft(Ie)&&setTimeout(function(){throw w.fromLeft(Ie)},0),ne===0&&k()}})()}for(var at in Qn)Qn.hasOwnProperty(at)&&(ne++,ge(at));return Qn={},He=0,jn=0,function(ce){return new U(u,function(){for(var Ie in Pn)Pn.hasOwnProperty(Ie)&&Pn[Ie]()})}}}}}var gr=0,mt=1,na=2,ou=3,Mo=4,Le=5,Ar=6;function ba(w,Qn,He){var jn=0,on=gr,k=He,ne=null,Pn=null,ge=null,at=null,ce=null,Ie=0,Ma=0,Ln=null,G=!0;function $n(rn){for(var un,yn,Bn;;)switch(un=null,yn=null,Bn=null,on){case na:on=mt;try{k=ge(k),at===null?ge=null:(ge=at._1,at=at._2)}catch(Ve){on=Le,ne=w.left(Ve),k=null}break;case ou:w.isLeft(k)?(on=Le,ne=k,k=null):ge===null?on=Le:(on=na,k=w.fromRight(k));break;case mt:switch(k.tag){case f:ge&&(at=new U(h,ge,at)),ge=k._2,on=mt,k=k._1;break;case e:ge===null?(on=Le,k=w.right(k._1)):(on=na,k=k._1);break;case u:on=ou,k=vr(w.left,w.right,k._1);break;case i:on=Mo,k=Ta(w.left,k._1,function(Ve){return function(){jn===rn&&(jn++,xt.enqueue(function(){jn===rn+1&&(on=ou,k=Ve,$n(jn))}))}});return;case t:on=Le,ne=w.left(k._1),k=null;break;case a:ge===null?ce=new U(h,k,ce,Pn):ce=new U(h,k,new U(h,new U(E,ge,at),ce,Pn),Pn),ge=null,at=null,on=mt,k=k._1;break;case l:Ie++,ge===null?ce=new U(h,k,ce,Pn):ce=new U(h,k,new U(h,new U(E,ge,at),ce,Pn),Pn),ge=null,at=null,on=mt,k=k._1;break;case p:on=ou,un=ba(w,Qn,k._2),Qn&&Qn.register(un),k._1&&un.run(),k=w.right(un);break;case d:on=mt,k=Qa(w,Qn,k._1);break}break;case Le:if(ge=null,at=null,ce===null)on=Ar,k=Pn||ne||k;else switch(un=ce._3,Bn=ce._1,ce=ce._2,Bn.tag){case a:Pn&&Pn!==un&&Ie===0?on=Le:ne&&(on=mt,k=Bn._2(w.fromLeft(ne)),ne=null);break;case E:Pn&&Pn!==un&&Ie===0||ne?on=Le:(ge=Bn._1,at=Bn._2,on=na,k=w.fromRight(k));break;case l:Ie--,ne===null&&(yn=w.fromRight(k),ce=new U(h,new U(F,Bn._2,yn),ce,un),(Pn===un||Ie>0)&&(on=mt,k=Bn._3(yn)));break;case F:ce=new U(h,new U(sn,k,ne),ce,Pn),on=mt,Pn&&Pn!==un&&Ie===0?k=Bn._1.killed(w.fromLeft(Pn))(Bn._2):ne?k=Bn._1.failed(w.fromLeft(ne))(Bn._2):k=Bn._1.completed(w.fromRight(k))(Bn._2),ne=null,Ie++;break;case W:Ie++,ce=new U(h,new U(sn,k,ne),ce,Pn),on=mt,k=Bn._1;break;case sn:Ie--,on=Le,k=Bn._1,ne=Bn._2;break}break;case Ar:for(var De in Ln)Ln.hasOwnProperty(De)&&(G=G&&Ln[De].rethrow,wt(Ln[De].handler(k)));Ln=null,Pn&&ne?setTimeout(function(){throw w.fromLeft(ne)},0):w.isLeft(k)&&G&&setTimeout(function(){if(G)throw w.fromLeft(k)},0);return;case gr:on=mt;break;case Mo:return}}function q(rn){return function(){if(on===Ar)return G=G&&rn.rethrow,rn.handler(k)(),function(){};var un=Ma++;return Ln=Ln||{},Ln[un]=rn,function(){Ln!==null&&delete Ln[un]}}}function B(rn,un){return function(){if(on===Ar)return un(w.right(void 0))(),function(){};var yn=q({rethrow:!1,handler:function(){return un(w.right(void 0))}})();switch(on){case gr:Pn=w.left(rn),on=Ar,k=Pn,$n(jn);break;case Mo:Pn===null&&(Pn=w.left(rn)),Ie===0&&(on===Mo&&(ce=new U(h,new U(W,k(rn)),ce,Pn)),on=Le,k=null,ne=null,$n(++jn));break;default:Pn===null&&(Pn=w.left(rn)),Ie===0&&(on=Le,k=null,ne=null)}return yn}}function Cn(rn){return function(){var un=q({rethrow:!1,handler:rn})();return on===gr&&$n(jn),un}}return{kill:B,join:Cn,onComplete:q,isSuspended:function(){return on===gr},run:function(){on===gr&&(xt.isDraining()?$n(jn):xt.enqueue(function(){$n(jn)}))}}}function Ja(w,Qn,He,jn){var on=0,k={},ne=0,Pn={},ge=new Error("[ParAff] Early exit"),at=null,ce=n;function Ie(q,B,Cn){var rn=B,un=null,yn=null,Bn=0,De={},Ve,le;n:for(;;)switch(Ve=null,rn.tag){case wn:if(rn._3===n&&(Ve=k[rn._1],De[Bn++]=Ve.kill(q,function(Eo){return function(){Bn--,Bn===0&&Cn(Eo)()}})),un===null)break n;rn=un._2,yn===null?un=null:(un=yn._1,yn=yn._2);break;case m:rn=rn._2;break;case v:case g:un&&(yn=new U(h,un,yn)),un=rn,rn=rn._1;break}if(Bn===0)Cn(w.right(void 0))();else for(le=0,Ve=Bn;le<Ve;le++)De[le]=De[le]();return De}function Ma(q,B,Cn){var rn,un,yn,Bn,De,Ve;for(w.isLeft(q)?(rn=q,un=null):(un=q,rn=null);;){if(yn=null,Bn=null,De=null,Ve=null,at!==null)return;if(B===null){jn(rn||un)();return}if(B._3!==n)return;switch(B.tag){case m:rn===null?(B._3=w.right(B._1(w.fromRight(un))),un=B._3):B._3=rn;break;case v:if(yn=B._1._3,Bn=B._2._3,rn){if(B._3=rn,De=!0,Ve=ne++,Pn[Ve]=Ie(ge,rn===yn?B._2:B._1,function(){return function(){delete Pn[Ve],De?De=!1:Cn===null?Ma(rn,null,null):Ma(rn,Cn._1,Cn._2)}}),De){De=!1;return}}else{if(yn===n||Bn===n)return;un=w.right(w.fromRight(yn)(w.fromRight(Bn))),B._3=un}break;case g:if(yn=B._1._3,Bn=B._2._3,yn===n&&w.isLeft(Bn)||Bn===n&&w.isLeft(yn))return;if(yn!==n&&w.isLeft(yn)&&Bn!==n&&w.isLeft(Bn))rn=un===yn?Bn:yn,un=null,B._3=rn;else if(B._3=un,De=!0,Ve=ne++,Pn[Ve]=Ie(ge,un===yn?B._2:B._1,function(){return function(){delete Pn[Ve],De?De=!1:Cn===null?Ma(un,null,null):Ma(un,Cn._1,Cn._2)}}),De){De=!1;return}break}Cn===null?B=null:(B=Cn._1,Cn=Cn._2)}}function Ln(q){return function(B){return function(){delete k[q._1],q._3=B,Ma(B,q._2._1,q._2._2)}}}function G(){var q=mt,B=He,Cn=null,rn=null,un,yn;n:for(;;)switch(un=null,yn=null,q){case mt:switch(B.tag){case m:Cn&&(rn=new U(h,Cn,rn)),Cn=new U(m,B._1,n,n),B=B._2;break;case v:Cn&&(rn=new U(h,Cn,rn)),Cn=new U(v,n,B._2,n),B=B._1;break;case g:Cn&&(rn=new U(h,Cn,rn)),Cn=new U(g,n,B._2,n),B=B._1;break;default:yn=on++,q=Le,un=B,B=new U(wn,yn,new U(h,Cn,rn),n),un=ba(w,Qn,un),un.onComplete({rethrow:!1,handler:Ln(B)})(),k[yn]=un,Qn&&Qn.register(un)}break;case Le:if(Cn===null)break n;Cn._1===n?(Cn._1=B,q=mt,B=Cn._2,Cn._2=n):(Cn._2=B,B=Cn,rn===null?Cn=null:(Cn=rn._1,rn=rn._2))}for(ce=B,yn=0;yn<on;yn++)k[yn].run()}function $n(q,B){at=w.left(q);var Cn;for(var rn in Pn)if(Pn.hasOwnProperty(rn)){Cn=Pn[rn];for(rn in Cn)Cn.hasOwnProperty(rn)&&Cn[rn]()}Pn=null;var un=Ie(q,ce,B);return function(yn){return new U(i,function(Bn){return function(){for(var De in un)un.hasOwnProperty(De)&&un[De]();return An}})}}return G(),function(q){return new U(i,function(B){return function(){return $n(q,B)}})}}function Qa(w,Qn,He){return new U(i,function(jn){return function(){return Ja(w,Qn,He,jn)}})}return U.EMPTY=n,U.Pure=re(e),U.Throw=re(t),U.Catch=re(a),U.Sync=re(u),U.Async=re(i),U.Bind=re(f),U.Bracket=re(l),U.Fork=re(p),U.Seq=re(d),U.ParMap=re(m),U.ParApply=re(v),U.ParAlt=re(g),U.Fiber=ba,U.Supervisor=ti,U.Scheduler=xt,U.nonCanceler=An,U}(),_M=nr.Pure,mM=nr.Throw;function dM(n){return function(e){return nr.Catch(n,e)}}function vM(n){return function(e){return e.tag===nr.Pure.tag?nr.Pure(n(e._1)):nr.Bind(e,function(t){return nr.Pure(n(t))})}}function gM(n){return function(e){return nr.Bind(n,e)}}function Pv(n){return function(e){return nr.Fork(n,e)}}var DM=nr.Sync;function hM(n){return function(e){return nr.ParMap(n,e)}}function yM(n){return function(e){return nr.ParApply(n,e)}}var co=nr.Async;function u_(n){return function(e){return function(t){return nr.Bracket(n,e,t)}}}function TM(n,e){return function(){return nr.Fiber(n,null,e)}}var bM=nr.Seq;var f_={dimap:function(n){return function(e){return function(t){return function(a){return e(t(n(a)))}}}}},Qf=function(n){return n.dimap};var zf=function(n){return n.sequential},wu=function(n){return n.parallel};var TR=fn(cn),bR=function(n){var e=zf(n),t=wu(n);return function(a){var u=et(a);return function(i){var f=u(i);return function(l){var p=f(function(d){return t(l(d))});return function(d){return e(p(d))}}}}};var Gf=function(n){var e=bR(n);return function(t){var a=e(t);return function(u){return a(u)(TR)}}};var Yf=function(n){return n()};var ER=function(n,e,t){var a=0,u;return function(i){if(a===2)return u;if(a===1)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+i+")",e,i);return a=1,u=t(),a=2,u}},CR=S(Ee),xM=qn(On),LM=M(On);var FR=function(n){return n},HM=Pv(!1);var wR={map:hM},pa={map:vM},xR=M(pa),s_=Pv(!0),LR=function(){var n=function(a){if(a instanceof Q)return a.value0;if(a instanceof z)return Hi("unsafeFromRight: Left");throw new Error("Failed pattern match at Effect.Aff (line 412, column 21 - line 414, column 54): "+[a.constructor.name])},e=function(a){if(a instanceof z)return a.value0;if(a instanceof Q)return Hi("unsafeFromLeft: Right");throw new Error("Failed pattern match at Effect.Aff (line 407, column 20 - line 409, column 55): "+[a.constructor.name])},t=function(a){if(a instanceof z)return!0;if(a instanceof Q)return!1;throw new Error("Failed pattern match at Effect.Aff (line 402, column 12 - line 404, column 21): "+[a.constructor.name])};return{isLeft:t,fromLeft:e,fromRight:n,left:z.create,right:Q.create}}(),IM=function(n){return TM(LR,n)},qv=function(n){return function(){var t=IM(n)();return t.run(),t}};var HR=function(n){return function(e){return u_(n)({killed:$(e),failed:$(e),completed:$(e)})}},SM={apply:yM,Functor0:function(){return wR}};var Kf={Applicative0:function(){return er},Bind1:function(){return Ct}},Ct={bind:gM,Apply0:function(){return Bv(0)}},er={pure:_M,Apply0:function(){return Bv(0)}},Bv=ER("applyAff","Effect.Aff",function(){return{apply:Tr(Kf),Functor0:function(){return pa}}}),IR=Bv(73),p_=S(er),AM=J(Ct);var SR=fe(Ct);var NM=function(n){return function(e){return HR(p_(void 0))($(n))($(e))}};var xu={parallel:x,sequential:bM,Apply0:function(){return IR},Apply1:function(){return SM}},AR=wu(xu),Ii={pure:function(n){return AR(p_(n))},Apply0:function(){return SM}};var NR=Gf(xu)(Ii)(Rt);var RR={append:function(n){return function(e){return function(t){return NR([n(t),e(t)])}}}};var pt={liftEffect:DM,Monad0:function(){return Kf}},l_=Gn(pt),Vv=function(n){return FR($(l_(n)))},Ul=function(n){return co(function(e){return LM(Vv)(n.join(e))})},RM={map:function(n){return function(e){return Yf(IM(xR(n)(Ul(e))))}}};var kl=function(n){return function(e){return AM(l_(e.isSuspended))(function(t){return t?l_(xM(e.kill(n,$(CR(void 0))))):co(function(a){return LM(Vv)(e.kill(n,a))})})}};var Jv={throwError:mM,Monad0:function(){return Kf}},__={catchError:dM,MonadThrow0:function(){return Jv}},OR=_l(__);var PR=function(n){return function(e){return qv(SR(function(t){return l_(n(t))})(OR(e)))}},m_=function(n){return function(e){return xM(PR(n)(e))}};var OM={tailRecM:function(n){var e=function(t){return AM(n(t))(function(a){if(a instanceof Nt)return p_(a.value0);if(a instanceof qt)return e(a.value0);throw new Error("Failed pattern match at Effect.Aff (line 104, column 7 - line 106, column 23): "+[a.constructor.name])})};return e},Monad0:function(){return Kf}};var d_=$(p_(void 0)),PM={mempty:d_,Semigroup0:function(){return RR}};var BM=function(n){return co(function(e){return function(){var a=n(function(u){return e(z.create(u))()},function(u){return e(Q.create(u))()});return function(u){return co(function(i){return function(){return a(u,function(l){return i(z.create(l))()},function(l){return i(Q.create(l))()}),d_}})}}})};function $l(n){return typeof n}function Zf(n){return Object.prototype.toString.call(n).slice(8,-1)}var VM=Array.isArray||function(n){return Object.prototype.toString.call(n)==="[object Array]"};var JM=function(n){return function(e){return function(t){return(t|0)===t?n(t):e}}},Qo=function(n){return n};var jv=Math.log;var zM=function(){return JM(y.create)(b.value)}();var Gv=function(n){return n};var Xf=function(n){return n.length};var nc=function(n){return function(e){return e.substring(n)}};var Yv=function(n){return function(e){return{before:e.substring(0,n),after:e.substring(n)}}};var ec=function(n){return function(e){if(n>=0&&n<e.length)return e.charAt(n);throw new Error("Data.String.Unsafe.charAt: Invalid index.")}};var ql=function(n){return function(e){var t=Yv(Xf(n))(e),a=t.before===n;return a?new y(t.after):b.value}};var sO=_n(Za),pO=_n(Wr),_O=S($d);var h_=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),tc=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Xv=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),ng=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),_t=x,KM=x;var D_=function(n){if(n instanceof h_)return n.value0;if(n instanceof Xv)return"Error at array index "+(pO(n.value0)+(": "+D_(n.value1)));if(n instanceof ng)return"Error at property "+(sO(n.value0)+(": "+D_(n.value1)));if(n instanceof tc)return"Type mismatch: expected "+(n.value0+(", found "+n.value1));throw new Error("Failed pattern match at Foreign (line 78, column 1 - line 78, column 45): "+[n.constructor.name])};var rc=function(n){var e=br(LT(n));return function(t){return e(Jf(t))}};var Bl=function(n){var e=S(uo(n)),t=rc(n);return function(a){return function(u){if(Zf(u)===a)return e(KM(u));if(ct)return t(new tc(a,Zf(u)));throw new Error("Failed pattern match at Foreign (line 123, column 1 - line 123, column 104): "+[a.constructor.name,u.constructor.name])}}},eg=function(n){return Bl(n)("Boolean")},ZM=function(n){return Bl(n)("Number")},y_=function(n){var e=M(n.Bind1().Apply0().Functor0()),t=ZM(n);return function(a){var u=new z(Jf(new tc("Int",Zf(a)))),i=function(){var f=Jn(u)(_O);return function(l){return f(zM(l))}}();return bl(e(st($(u))(i)))(t(a))}},Vl=function(n){return Bl(n)("String")};var tg=S(uo($t)),mO=rc($t),Si=Bl($t),XM=ht(Xd(Nv)($t)),dO=Du(bi($t)),T_=M(ie),vO=Pf(Rt)(ro),gO=gn(lr),DO=fe(At),hO=M(Ae),yO=_i(pa),TO=_l(__),bO=S(er);var rg=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),ag=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),og=function(){function n(){}return n.value=new n,n}(),ug=function(){function n(){}return n.value=new n,n}(),ig=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),nE=function(n){return function(e){var t=function(m){return m===""?tg(Pb):st(function(v){return mO(h_.create(v))})(tg)(Ub(m))},a=function(){if(e.responseFormat instanceof Pd)return Si("ArrayBuffer");if(e.responseFormat instanceof Wd)return Si("Blob");if(e.responseFormat instanceof Ud)return function(m){return XM(Si("Document")(m))(XM(Si("XMLDocument")(m))(Si("HTMLDocument")(m)))};if(e.responseFormat instanceof sl)return dO(function(m){return e.responseFormat.value0(t(m))})(Si("String"));if(e.responseFormat instanceof Fp)return Si("String");if(e.responseFormat instanceof wp)return $(e.responseFormat.value0(tg(void 0)));throw new Error("Failed pattern match at Affjax (line 274, column 18 - line 283, column 57): "+[e.responseFormat.constructor.name])}(),u=function(m){if(m instanceof Wy)return new Q(m.value0(_t));if(m instanceof Uy)return new Q(_t(m.value0));if(m instanceof ky)return new Q(_t(m.value0));if(m instanceof Sd)return new Q(_t(m.value0));if(m instanceof $y)return new Q(_t(m.value0));if(m instanceof cl)return kd("Body contains values that cannot be encoded as application/x-www-form-urlencoded")(T_(_t)(Gb(m.value0)));if(m instanceof Ad)return new Q(_t(nv(m.value0)));throw new Error("Failed pattern match at Affjax (line 235, column 20 - line 250, column 69): "+[m.constructor.name])},i=function(m){return function(v){return m instanceof y&&!vO(Cd(gO)(Rd)(m.value0))(v)?yv(v)(m.value0):v}},f=function(m){return i(T_(yi.create)(DO(qy)(m)))(i(T_(Ep.create)(Ky(e.responseFormat)))(e.headers))},l=function(m){return{method:Zb(e.method),url:e.url,headers:hO(function(v){return{field:Rd(v),value:zy(v)}})(f(e.content)),content:m,responseType:Yy(e.responseFormat),username:Bt(e.username),password:Bt(e.password),withCredentials:e.withCredentials,timeout:Ne(0)(T_(function(v){return v})(e.timeout))}},p=function(m){return yO(TO(BM(py(n,"AffjaxTimeoutErrorMessageIdent","AffjaxRequestFailedMessageIdent",nT.create,l(m)))))(function(v){if(v instanceof Q){var g=Mi(a(v.value0.body));if(g instanceof z)return new z(new ag(lM(g.value0),v.value0));if(g instanceof Q)return new Q({headers:v.value0.headers,status:v.value0.status,statusText:v.value0.statusText,body:g.value0});throw new Error("Failed pattern match at Affjax (line 209, column 9 - line 211, column 52): "+[g.constructor.name])}if(v instanceof z)return new z(function(){var h=wf(v.value0),E=h==="AffjaxTimeoutErrorMessageIdent";if(E)return og.value;var F=h==="AffjaxRequestFailedMessageIdent";return F?ug.value:new ig(v.value0)}());throw new Error("Failed pattern match at Affjax (line 207, column 144 - line 219, column 28): "+[v.constructor.name])})};if(e.content instanceof b)return p(Bt(b.value));if(e.content instanceof y){var d=u(e.content.value0);if(d instanceof Q)return p(Bt(new y(d.value0)));if(d instanceof z)return bO(new z(new rg(d.value0)));throw new Error("Failed pattern match at Affjax (line 199, column 7 - line 203, column 48): "+[d.constructor.name])}throw new Error("Failed pattern match at Affjax (line 195, column 3 - line 203, column 48): "+[e.content.constructor.name])}},lo=function(n){if(n instanceof rg)return"There was a problem with the request content: "+n.value0;if(n instanceof ag)return"There was a problem with the response body: "+D_(n.value0);if(n instanceof og)return"There was a problem making the request: timeout";if(n instanceof ug)return"There was a problem making the request: request failed";if(n instanceof ig)return"There was a problem making the request: "+wf(n.value0);throw new Error("Failed pattern match at Affjax (line 113, column 14 - line 123, column 66): "+[n.constructor.name])},oc=function(){return{method:new z(Lv.value),url:"/",headers:[],content:b.value,username:b.value,password:b.value,withCredentials:!1,responseFormat:Xa,timeout:b.value}}();var eE={eq:function(n){return function(e){return n===e}}};var fg={newXHR:function(){return new XMLHttpRequest},fixupUrl:function(n){return n||"/"}};var tE=nE(fg);var lg=sy(rE(),1),sg=function(){return app};var pg=function(n,e,t,a){try{var u=(0,lg.default)(a,lg.default.ISO_8601),i=u.fromNow(),f=u.format("MMMM D YYYY, h:mm a")+" ("+u.format()+") ";return n(t(i)(f))}catch(l){return e}},_g=function(n){n.close()},mg=function(n){document.getElementById(n).focus()},dg=function(n){return new Date(n).toLocaleDateString(void 0,{dateStyle:"medium"})};var vg=function(n){return n},aE=function(n){return dg(n)},b_=function(n){return function(){return mg(n)}};var ic=function(n){return pg(y.create,b.value,nn.create,n)};var fc=function(n){return function(){return _g(n)}},_a=function(n){return sg()};var oE=JSON.stringify;function Hu(n){return n.charCodeAt(0)}function uE(n){return String.fromCharCode(n)}var iE=Ia(Di),fE=Ha(Di);var Ai=function(n){return n.toEnum};var M_=function(n){return n.fromEnum},cE=function(n){var e=Ai(n),t=M_(n),a=Ia(n.Bounded0());return function(u){return function(i){return function(f){var l=e(f);if(l instanceof y)return l.value0;if(l instanceof b){var p=f<t(a);return p?u:i}throw new Error("Failed pattern match at Data.Enum (line 158, column 33 - line 160, column 62): "+[l.constructor.name])}}}};var Ni=function(n){return function(e){return function(t){return n(e(t)+1|0)}}},Ri=function(n){return function(e){return function(t){return n(e(t)-1|0)}}};var gg=function(n){return n>=Hu(iE)&&n<=Hu(fE)?new y(uE(n)):b.value},$O={succ:Ni(gg)(Hu),pred:Ri(gg)(Hu),Ord0:function(){return hp}};var Dg=function(){return{cardinality:Hu(fE)-Hu(iE)|0,toEnum:gg,fromEnum:Hu,Bounded0:function(){return Di},Enum1:function(){return $O}}}();function lE(n,e,t,a){return a==null?n:e(a[t])}var JO=function(n){var e=rc(n),t=S(uo(n));return function(a){return function(u){return lE(e(new tc("object",$l(u))),t,a,u)}}},hg=function(n){return JO(n)};var _E=function(n){var e=lt(n);return function(){return function(t){return function(a){return ra(e(t))(a)}}}};function mE(n){var e={};for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e}function dE(n){return function(e){return function(t){return t[n]=e,t}}}var vE=Tf;var gE=function(){return function(){return function(n){var e=lt(n);return function(t){return function(a){return function(u){return dE(e(t))(a)(u)}}}}}};var DE=cn,hE=function(n){return function(e){return n(mE(e))}};var YO=fn(DE);var KO=bf(vE),ZO=gE()();var yE=function(n){return n.writeImplFields},Tg=function(n){return n.writeImpl},TE=function(n){var e=Tg(n);return function(t){return oE(e(t))}};var ma={writeImpl:_t};var bE=function(n){return{writeImpl:function(){var e=Jn(_t(Bt(b.value)))(Tg(n));return function(t){return e(Xn(t))}}()}},C_={writeImpl:_t},ME={writeImpl:fn(cn)};var so={writeImpl:_t};var EE=function(){return function(n){var e=yE(n);return{writeImpl:function(t){var a=e(he.value)(t);return _t(hE(a)({}))}}}};var Ql={writeImplFields:function(n){return function(e){return YO}}};var Be=function(n){var e=_E(n)(),t=ZO(n);return function(a){var u=Tg(a);return function(i){var f=yE(i);return function(){return function(){return function(){return{writeImplFields:function(l){return function(p){var d=f(he.value)(p),m=u(e(he.value)(p)),v=KO(t(he.value)(m))(d);return v}}}}}}}}};var F_=EE(),XO={reflectSymbol:function(){return"expanded"}},nP={reflectSymbol:function(){return"mode"}},eP={reflectSymbol:function(){return"value"}},tP={reflectSymbol:function(){return"created"}},rP={reflectSymbol:function(){return"id"}},aP={reflectSymbol:function(){return"isMarkdown"}},oP={reflectSymbol:function(){return"length"}},uP={reflectSymbol:function(){return"shared"}},iP={reflectSymbol:function(){return"slug"}},wE=Be(iP)(ma),fP={reflectSymbol:function(){return"text"}},cP={reflectSymbol:function(){return"title"}},xE=Be(cP)(ma),lP={reflectSymbol:function(){return"updated"}},sP={reflectSymbol:function(){return"archiveUrl"}},pP={reflectSymbol:function(){return"bid"}},_P={reflectSymbol:function(){return"description"}},mP={reflectSymbol:function(){return"private"}},dP={reflectSymbol:function(){return"selected"}},vP={reflectSymbol:function(){return"tags"}},gP={reflectSymbol:function(){return"time"}},DP={reflectSymbol:function(){return"toread"}},hP={reflectSymbol:function(){return"url"}},yP={reflectSymbol:function(){return"archiveDefault"}},TP={reflectSymbol:function(){return"privacyLock"}},bP={reflectSymbol:function(){return"privateDefault"}};var MP=gn(Mf(lr)),bg=M(Ml(Tu)),FE=y_($t),EP=Vl($t),CP=S(uo($t)),FP=Hb(Sa),jo=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Qr=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),po=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),da=function(){function n(){}return n.value=new n,n}();var LE=F_(Be(XO)(so)(Be(nP)(ma)(Be(eP)(ME)(Ql)()()())()()())()()()),HE=F_(Be(tP)(ma)(Be(rP)(C_)(Be(aP)(so)(Be(oP)(C_)(Be(uP)(so)(wE(Be(fP)(ma)(xE(Be(lP)(ma)(Ql)()()())()()())()()())()()())()()())()()())()()())()()())()()()),IE=F_(Be(sP)(bE(ma))(Be(pP)(C_)(Be(_P)(ma)(Be(mP)(so)(Be(dP)(so)(wE(Be(vP)(ma)(Be(gP)(ma)(xE(Be(DP)(so)(Be(hP)(ma)(Ql)()()())()()())()()())()()())()()())()()())()()())()()())()()())()()())()()()),SE=F_(Be(yP)(so)(Be(TP)(so)(Be(bP)(so)(Ql)()()())()()())()()());var AE={eq:function(n){return function(e){return n instanceof jo&&e instanceof jo||n instanceof Qr&&e instanceof Qr?n.value0===e.value0&&n.value1===e.value1:n instanceof po&&e instanceof po?n.value0===e.value0&&MP(n.value1)(e.value1):n instanceof da&&e instanceof da}}},NE=function(n){return Ne(da.value)(Ff(Mi(function(){return n.mode==="top"?bg(jo.create(n.expanded))(FE(n.value)):n.mode==="lowerBound"?bg(Qr.create(n.expanded))(FE(n.value)):n.mode==="related"?bg(function(e){return new po(n.expanded,Vr(" ")(e))})(EP(n.value)):CP(da.value)}())))},Mg=function(n){if(n instanceof jo)return{mode:"top",value:_t(n.value1),expanded:n.value0};if(n instanceof Qr)return{mode:"lowerBound",value:_t(n.value1),expanded:n.value0};if(n instanceof po)return{mode:"related",value:_t(FP(" ")(n.value1)),expanded:n.value0};if(n instanceof da)return{mode:"none",value:_t(""),expanded:!1};throw new Error("Failed pattern match at Model (line 92, column 1 - line 92, column 51): "+[n.constructor.name])};var Eg=function(n){return function(e){if(n instanceof jo)return new jo(e,n.value1);if(n instanceof Qr)return new Qr(e,n.value1);if(n instanceof po)return new po(e,n.value1);if(n instanceof da)return da.value;throw new Error("Failed pattern match at Model (line 112, column 1 - line 112, column 57): "+[n.constructor.name,e.constructor.name])}},RE=function(n){return n instanceof po},va=function(n){if(n instanceof jo||n instanceof Qr||n instanceof po)return n.value0;if(n instanceof da)return!1;throw new Error("Failed pattern match at Model (line 102, column 1 - line 102, column 39): "+[n.constructor.name])};var tr=function(){return window};var jl=function(n){return n};function OE(n){return n.referrer}var WE=x;var Fg=x;var w_=function(n){return function(){return OE(n)}};function UE(n,e,t){var a=Object.prototype.toString.call(t);return a.indexOf("[object HTML")===0&&a.indexOf("Element]")===a.length-8?e(t):n}var kE=x;var $E=x;var Gl=function(n){return UE(b.value,y.create,n)};function Iu(n){return function(e){return function(){e.href=n}}}function Kl(n){return function(){return n.origin}}function wg(n){return function(){return n.search}}function xg(n){return function(){n.reload()}}function Oi(n){return function(){return n.document}}function Zl(n){return function(){return n.location}}var fW=ke($e)(Ct),VE=qn(pa),cW=Gn(pt),BE=J(nt),JE=M(ie),H_=_n(Wr),QE=J(Ct),jE=S(er),zE=J(At),lW=S(gu),sW=gn(eE),Lg=function(){function n(){}return n.value=new n,n}(),Hg=function(){function n(){}return n.value=new n,n}(),pW={show:function(n){if(n instanceof Lg)return"star";if(n instanceof Hg)return"unstar";throw new Error("Failed pattern match at App (line 29, column 1 - line 31, column 25): "+[n.constructor.name])}},_W=_n(pW),GE=function(n){return function(e){return function(t){return function(a){return function(u){var i=_a(void 0);return tE({username:oc.username,password:oc.password,withCredentials:oc.withCredentials,timeout:oc.timeout,url:e,method:new z(n),headers:Sl(new Cp(i.csrfHeaderName,i.csrfToken))(t),content:a,responseFormat:u})}}}}},YE=function(n){var e=_a(n);return fW(VE(GE(sa.value)(e.authRlogoutR)([])(b.value)(Xa)))(function(){return cW(BE(BE(tr)(Zl))(xg))})},KE=function(n){return function(e){return function(t){return function(a){return function(u){return GE(n)(_a(void 0).homeR+e)(t)(a)(u)}}}}},I_=function(n){return function(e){return function(t){return function(a){return KE(n)(e)([new yi(bp)])(JE(cl.create)(t))(a)}}}},ZE=function(n){var e="bm/"+(H_(n)+"/read");return I_(sa.value)(e)(b.value)(Xa)},XE=function(n){return function(e){var t="bm/"+(H_(n)+("/"+_W(e)));return VE(I_(sa.value)(t)(b.value)(Xa))}},S_=function(n){var e=TE(n);return function(t){return function(a){return function(u){return function(i){return KE(t)(a)([new yi(Cf)])(JE(function(f){return By(e(f))})(u))(i)}}}}},nC=S_(LE),eC=S_(IE),mW=S_(HE),dW=S_(SE),tC=function(n){return QE(nC(sa.value)("api/tagcloud")(new y(n))(Zy))(function(e){return jE(zE(Ff(e))(function(t){return lW(t.body)}))})},A_=function(n){return QE(eC(sa.value)("api/lookuptitle")(new y(n))(xp))(function(e){return jE(zE(Ff(e))(function(t){var a=sW(t.status)(200);return a?new y(t.body):b.value}))})},rC=function(n){return nC(sa.value)("api/tagcloudmode")(new y(n))(Xa)},aC=function(n){return mW(sa.value)("api/note/add")(new y(n))(xp)},N_=function(n){return eC(sa.value)("api/add")(new y(n))(xp)},Ig=function(n){return dW(sa.value)("api/accountSettings")(new y(n))(Xa)},oC=function(n){return I_(Rl.value)("api/note/"+H_(n))(b.value)(Xa)},R_=function(n){return I_(Rl.value)("bm/"+H_(n))(b.value)(Xa)};var uC=function(){function n(){}return n.value=new n,n}(),_r=function(){function n(){}return n.value=new n,n}(),iC=function(){function n(){}return n.value=new n,n}(),fC=function(){function n(){}return n.value=new n,n}(),cC=function(){function n(){}return n.value=new n,n}(),lC=function(){function n(){}return n.value=new n,n}(),sC=function(){function n(){}return n.value=new n,n}(),pC=function(){function n(){}return n.value=new n,n}(),_C=function(){function n(){}return n.value=new n,n}(),mC=function(){function n(){}return n.value=new n,n}(),dC=function(){function n(){}return n.value=new n,n}(),vC=function(){function n(){}return n.value=new n,n}(),gC=function(){function n(){}return n.value=new n,n}(),DC=function(){function n(){}return n.value=new n,n}(),sc=function(){function n(){}return n.value=new n,n}(),hC=function(){function n(){}return n.value=new n,n}(),Su=function(){function n(){}return n.value=new n,n}(),yC=function(){function n(){}return n.value=new n,n}(),_o=function(){function n(){}return n.value=new n,n}(),TC=function(){function n(){}return n.value=new n,n}(),pc=function(){function n(){}return n.value=new n,n}(),bC=function(){function n(){}return n.value=new n,n}(),MC=function(n){if(n instanceof uC)return"button";if(n instanceof _r)return"checkbox";if(n instanceof iC)return"color";if(n instanceof fC)return"date";if(n instanceof cC)return"datetime-local";if(n instanceof lC)return"email";if(n instanceof sC)return"file";if(n instanceof pC)return"hidden";if(n instanceof _C)return"image";if(n instanceof mC)return"month";if(n instanceof dC)return"number";if(n instanceof vC)return"password";if(n instanceof gC)return"radio";if(n instanceof DC)return"range";if(n instanceof sc)return"reset";if(n instanceof hC)return"search";if(n instanceof Su)return"submit";if(n instanceof yC)return"tel";if(n instanceof _o)return"text";if(n instanceof TC)return"time";if(n instanceof pc)return"url";if(n instanceof bC)return"week";throw new Error("Failed pattern match at DOM.HTML.Indexed.InputType (line 33, column 19 - line 55, column 22): "+[n.constructor.name])};var hW={dimap:function(n){return function(e){return function(t){return function(a){return t(n(a))}}}}},mo={first:function(n){return function(e){return n(Ce(e))}},second:function(n){return function(e){return n(Re(e))}},Profunctor0:function(){return hW}};var Ft={first:function(n){return function(e){return new nn(n(e.value0),e.value1)}},second:M($o),Profunctor0:function(){return f_}};var P_=function(n){return n.first};var HW=kt(),IW=fn(cn);var SW=function(n){return HW(n(IW))},AW=function(n){return function(e){return SW(e)(n)}},Au=function(n){var e=Oa(n);return function(t){return e(function(a){return AW(a)(t)})}};var NW=function(n){return function(e){var t=Qf(e.Profunctor0()),a=P_(e);return function(u){return t(n)(function(i){return i.value1(i.value0)})(a(u))}}},Vt=function(n){return function(e){return function(t){return NW(function(a){return new nn(n(a),function(u){return e(a)(u)})})(t)}}};var CC=function(n){return n},RW=function(n){return function(e){return CC(n)($(e))}};var Nu=function(n){var e=qn(n.Monad0().Bind1().Apply0().Functor0()),t=Sf(n);return function(a){return function(u){return e(t(CC(a)(u)))}}};var _c=function(n){var e=qn(n.Monad0().Bind1().Apply0().Functor0()),t=Sf(n);return function(a){return function(u){return e(t(RW(a)(u)))}}};var ga={liftAff:fn(cn),MonadEffect0:function(){return pt}},rr=function(n){return n.liftAff};var Rg=x,xC=x;var BW=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}();var LC=function(n){return function(e){return Rg(function(t){return n(t.value0)(t.value1)})(e)}};var HC=function(n){return function(e){return xC(new BW(n,e))}},Og={map:function(n){return function(e){return Rg(function(t){return HC(function(a){return n(t.value0(a))})(t.value1)})(e)}}};var IC=HC(fn(cn));var $_=function(n,e,t){var a=0,u;return function(i){if(a===2)return u;if(a===1)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+i+")",e,i);return a=1,u=t(),a=2,u}};var VW=M(ie);var ft=function(){function n(){}return n.value=new n,n}(),je=function(){function n(e,t,a,u,i,f){this.value0=e,this.value1=t,this.value2=a,this.value3=u,this.value4=i,this.value5=f}return n.create=function(e){return function(t){return function(a){return function(u){return function(i){return function(f){return new n(e,t,a,u,i,f)}}}}}},n}();var k_=function(){function n(e,t,a){this.value0=e,this.value1=t,this.value2=a}return n.create=function(e){return function(t){return function(a){return new n(e,t,a)}}},n}(),SC=function(){function n(e,t,a){this.value0=e,this.value1=t,this.value2=a}return n.create=function(e){return function(t){return function(a){return new n(e,t,a)}}},n}(),Da=function(n,e,t,a){if(t instanceof ft){if(a instanceof ft)return new je(1,1,n,e,t,a);if(a instanceof je)return new je(1+a.value0|0,1+a.value1|0,n,e,t,a);throw new Error("Failed pattern match at Data.Map.Internal (line 680, column 5 - line 684, column 39): "+[a.constructor.name])}if(t instanceof je){if(a instanceof ft)return new je(1+t.value0|0,1+t.value1|0,n,e,t,a);if(a instanceof je)return new je(1+function(){var u=t.value0>a.value0;return u?t.value0:a.value0}()|0,(1+t.value1|0)+a.value1|0,n,e,t,a);throw new Error("Failed pattern match at Data.Map.Internal (line 686, column 5 - line 690, column 68): "+[a.constructor.name])}throw new Error("Failed pattern match at Data.Map.Internal (line 678, column 32 - line 690, column 68): "+[t.constructor.name])};var Ug=function(n){return function(e){return new je(1,1,n,e,ft.value,ft.value)}},Go=function(){var n=function(a){if(a instanceof ft)return 0;if(a instanceof je)return a.value0;throw new Error("Failed pattern match at Data.Map.Internal (line 735, column 12 - line 737, column 26): "+[a.constructor.name])},e=function(a,u,i,f,l,p,d){return p instanceof je&&p.value0>n(d)?Da(p.value2,p.value3,Da(a,u,i,p.value4),Da(f,l,p.value5,d)):Da(f,l,Da(a,u,i,p),d)},t=function(a,u,i,f,l,p,d){return p instanceof je&&n(l)<=p.value0?Da(p.value2,p.value3,Da(i,f,l,p.value4),Da(a,u,p.value5,d)):Da(i,f,l,Da(a,u,p,d))};return function(a,u,i,f){if(i instanceof ft)return f instanceof ft?Ug(a)(u):f instanceof je&&f.value0>1?e(a,u,i,f.value2,f.value3,f.value4,f.value5):Da(a,u,i,f);if(i instanceof je){if(f instanceof je){if(f.value0>(i.value0+1|0))return e(a,u,i,f.value2,f.value3,f.value4,f.value5);if(i.value0>(f.value0+1|0))return t(a,u,i.value2,i.value3,i.value4,i.value5,f)}return f instanceof ft&&i.value0>1?t(a,u,i.value2,i.value3,i.value4,i.value5,f):Da(a,u,i,f)}throw new Error("Failed pattern match at Data.Map.Internal (line 695, column 40 - line 716, column 34): "+[i.constructor.name])}}(),Wg=$_("unsafeSplit","Data.Map.Internal",function(){return function(n,e,t){if(t instanceof ft)return new k_(b.value,ft.value,ft.value);if(t instanceof je){var a=n(e)(t.value2);if(a instanceof X){var u=Wg(771)(n,e,t.value4);return new k_(u.value0,u.value1,Go(t.value2,t.value3,u.value2,t.value5))}if(a instanceof Y){var u=Wg(774)(n,e,t.value5);return new k_(u.value0,Go(t.value2,t.value3,t.value4,u.value1),u.value2)}if(a instanceof Dn)return new k_(new y(t.value3),t.value4,t.value5);throw new Error("Failed pattern match at Data.Map.Internal (line 769, column 5 - line 777, column 30): "+[a.constructor.name])}throw new Error("Failed pattern match at Data.Map.Internal (line 765, column 34 - line 777, column 30): "+[t.constructor.name])}}),AC=Wg(764),NC=$_("unsafeSplitLast","Data.Map.Internal",function(){return function(n,e,t,a){if(a instanceof ft)return new SC(n,e,t);if(a instanceof je){var u=NC(757)(a.value2,a.value3,a.value4,a.value5);return new SC(u.value0,u.value1,Go(n,e,t,u.value2))}throw new Error("Failed pattern match at Data.Map.Internal (line 754, column 37 - line 758, column 57): "+[a.constructor.name])}}),JW=NC(753),kg=function(n,e){if(n instanceof ft)return e;if(n instanceof je){var t=JW(n.value2,n.value3,n.value4,n.value5);return Go(t.value0,t.value1,t.value2,e)}throw new Error("Failed pattern match at Data.Map.Internal (line 742, column 25 - line 746, column 38): "+[n.constructor.name,e.constructor.name])};var RC=function(n){var e=ln(n);return function(t){return function(a){var u=AC(e,t,a);return VW(function(i){return new nn(i,kg(u.value1,u.value2))})(u.value0)}}};var mc=function(n){var e=ln(n);return function(t){var a=function(u){var i=!1,f;function l(p){if(p instanceof ft)return i=!0,b.value;if(p instanceof je){var d=e(t)(p.value2);if(d instanceof X){u=p.value4;return}if(d instanceof Y){u=p.value5;return}if(d instanceof Dn)return i=!0,new y(p.value3);throw new Error("Failed pattern match at Data.Map.Internal (line 281, column 7 - line 284, column 22): "+[d.constructor.name])}throw new Error("Failed pattern match at Data.Map.Internal (line 278, column 8 - line 284, column 22): "+[p.constructor.name])}for(;!i;)f=l(u);return f};return a}};var dc=function(n){var e=ln(n);return function(t){return function(a){var u=function(i){if(i instanceof ft)return Ug(t)(a);if(i instanceof je){var f=e(t)(i.value2);if(f instanceof X)return Go(i.value2,i.value3,u(i.value4),i.value5);if(f instanceof Y)return Go(i.value2,i.value3,i.value4,u(i.value5));if(f instanceof Dn)return new je(i.value0,i.value1,t,a,i.value4,i.value5);throw new Error("Failed pattern match at Data.Map.Internal (line 469, column 7 - line 472, column 35): "+[f.constructor.name])}throw new Error("Failed pattern match at Data.Map.Internal (line 466, column 8 - line 472, column 35): "+[i.constructor.name])};return u}}};var q_={foldr:function(n){return function(e){var t=$_("go","Data.Map.Internal",function(){return function(u,i){if(u instanceof ft)return i;if(u instanceof je)return t(170)(u.value4,n(u.value3)(t(170)(u.value5,i)));throw new Error("Failed pattern match at Data.Map.Internal (line 167, column 26 - line 170, column 43): "+[u.constructor.name])}}),a=t(167);return function(u){return a(u,e)}}},foldl:function(n){return function(e){var t=$_("go","Data.Map.Internal",function(){return function(u,i){if(i instanceof ft)return u;if(i instanceof je)return t(176)(n(t(176)(u,i.value4))(i.value3),i.value5);throw new Error("Failed pattern match at Data.Map.Internal (line 173, column 26 - line 176, column 43): "+[i.constructor.name])}}),a=t(173);return function(u){return a(e,u)}}},foldMap:function(n){var e=Zn(n),t=mn(n.Semigroup0());return function(a){var u=function(i){if(i instanceof ft)return e;if(i instanceof je)return t(u(i.value4))(t(a(i.value3))(u(i.value5)));throw new Error("Failed pattern match at Data.Map.Internal (line 179, column 10 - line 182, column 28): "+[i.constructor.name])};return u}}};var Yo=function(){return ft.value}();var OC=function(n){var e=ln(n);return function(t){var a=function(u){if(u instanceof ft)return ft.value;if(u instanceof je){var i=e(t)(u.value2);if(i instanceof X)return Go(u.value2,u.value3,a(u.value4),u.value5);if(i instanceof Y)return Go(u.value2,u.value3,u.value4,a(u.value5));if(i instanceof Dn)return kg(u.value4,u.value5);throw new Error("Failed pattern match at Data.Map.Internal (line 496, column 7 - line 499, column 43): "+[i.constructor.name])}throw new Error("Failed pattern match at Data.Map.Internal (line 493, column 8 - line 499, column 43): "+[u.constructor.name])};return a}};var PC=function(n){var e=ln(n);return function(t){return function(a){return function(u){var i=AC(e,a,u),f=t(i.value0);if(f instanceof b)return kg(i.value1,i.value2);if(f instanceof y)return Go(a,f.value0,i.value1,i.value2);throw new Error("Failed pattern match at Data.Map.Internal (line 512, column 3 - line 516, column 41): "+[f.constructor.name])}}}};var jW=function(){function n(e,t,a){this.value0=e,this.value1=t,this.value2=a}return n.create=function(e){return function(t){return function(a){return new n(e,t,a)}}},n}();var B_=function(n){return jW.create(gn(n.Eq0()))(ln(n))},zW={eq:function(n){return function(e){return n.value0(n.value2)(e.value2)}}},WC={compare:function(n){return function(e){return n.value1(n.value2)(e.value2)}},Eq0:function(){return zW}};var $g=vl(ut)(WC);var YW=RC($g),KW=mc($g),ZW=dc($g);var UC=function(){return function(n){var e=lt(n);return function(t){var a=B_(t);return function(u){return function(i){return function(f){return YW(new nn(e(u),a(i)))(f)}}}}}},qg=function(){return function(n){var e=lt(n);return function(t){var a=B_(t);return function(u){return function(i){return function(f){return KW(new nn(e(u),a(i)))(f)}}}}}},kC=function(){return function(n){var e=lt(n);return function(t){var a=B_(t);return function(u){return function(i){return function(f){return function(l){return ZW(new nn(e(u),a(i)))(f)(l)}}}}}}},$C=function(n){var e=et(n)(q_);return function(t){return function(a){return e(function(u){return a(u)})(t)}}},vc=Yo;var gc=function(){function n(){}return n.value=new n,n}(),qC=function(){function n(){}return n.value=new n,n}(),BC=function(){function n(){}return n.value=new n,n}(),VC=function(){function n(){}return n.value=new n,n}(),JC=function(){function n(){}return n.value=new n,n}(),QC=function(){function n(){}return n.value=new n,n}(),jC=function(){function n(){}return n.value=new n,n}(),zC=function(){function n(){}return n.value=new n,n}(),GC=function(){function n(){}return n.value=new n,n}(),YC=function(){function n(){}return n.value=new n,n}(),KC=function(){function n(){}return n.value=new n,n}(),ZC=function(){function n(){}return n.value=new n,n}(),XC=function(){function n(){}return n.value=new n,n}(),n0=function(){function n(){}return n.value=new n,n}(),e0=function(){function n(){}return n.value=new n,n}(),t0=function(){function n(){}return n.value=new n,n}(),r0=function(){function n(){}return n.value=new n,n}(),a0=function(){function n(){}return n.value=new n,n}(),o0=function(){function n(){}return n.value=new n,n}(),u0=function(){function n(){}return n.value=new n,n}(),i0=function(){function n(){}return n.value=new n,n}(),f0=function(){function n(){}return n.value=new n,n}(),c0=function(){function n(){}return n.value=new n,n}(),l0=function(){function n(){}return n.value=new n,n}(),s0=function(){function n(){}return n.value=new n,n}(),p0=function(){function n(){}return n.value=new n,n}(),_0=function(){function n(){}return n.value=new n,n}(),m0=function(){function n(){}return n.value=new n,n}(),d0=function(){function n(){}return n.value=new n,n}(),v0=function(){function n(){}return n.value=new n,n}(),g0=function(){function n(){}return n.value=new n,n}(),D0=function(){function n(){}return n.value=new n,n}(),h0=function(){function n(){}return n.value=new n,n}(),y0=function(){function n(){}return n.value=new n,n}(),T0=function(){function n(){}return n.value=new n,n}(),b0=function(){function n(){}return n.value=new n,n}(),M0=function(){function n(){}return n.value=new n,n}(),E0=function(){function n(){}return n.value=new n,n}(),C0=function(){function n(){}return n.value=new n,n}(),F0=function(){function n(){}return n.value=new n,n}(),w0=function(){function n(){}return n.value=new n,n}(),x0=function(){function n(){}return n.value=new n,n}(),L0=function(){function n(){}return n.value=new n,n}(),H0=function(){function n(){}return n.value=new n,n}(),I0=function(){function n(){}return n.value=new n,n}(),S0=function(){function n(){}return n.value=new n,n}(),A0=function(){function n(){}return n.value=new n,n}(),N0=function(){function n(){}return n.value=new n,n}(),R0=function(){function n(){}return n.value=new n,n}(),O0=function(){function n(){}return n.value=new n,n}(),P0=function(){function n(){}return n.value=new n,n}(),W0=function(){function n(){}return n.value=new n,n}(),U0=function(){function n(){}return n.value=new n,n}(),k0=function(){function n(){}return n.value=new n,n}(),$0=function(){function n(){}return n.value=new n,n}(),q0=function(){function n(){}return n.value=new n,n}(),B0=function(n){if(n instanceof gc)return"off";if(n instanceof qC)return"on";if(n instanceof BC)return"name";if(n instanceof VC)return"honorific-prefix";if(n instanceof JC)return"given-name";if(n instanceof QC)return"additional-name";if(n instanceof jC)return"family-name";if(n instanceof zC)return"honorific-suffix";if(n instanceof GC)return"nickname";if(n instanceof YC)return"email";if(n instanceof KC)return"username";if(n instanceof ZC)return"new-password";if(n instanceof XC)return"current-password";if(n instanceof n0)return"one-time-code";if(n instanceof e0)return"organization-title";if(n instanceof t0)return"organization";if(n instanceof r0)return"street-address";if(n instanceof a0)return"address-line1";if(n instanceof o0)return"address-line2";if(n instanceof u0)return"address-line3";if(n instanceof i0)return"address-level1";if(n instanceof f0)return"address-level2";if(n instanceof c0)return"address-level3";if(n instanceof l0)return"address-level4";if(n instanceof s0)return"country";if(n instanceof p0)return"country-name";if(n instanceof _0)return"postal-code";if(n instanceof m0)return"cc-name";if(n instanceof d0)return"cc-given-name";if(n instanceof v0)return"cc-additional-name";if(n instanceof g0)return"cc-family-name";if(n instanceof D0)return"cc-number";if(n instanceof h0)return"cc-exp";if(n instanceof y0)return"cc-exp-month";if(n instanceof T0)return"cc-exp-year";if(n instanceof b0)return"cc-csc";if(n instanceof M0)return"cc-type";if(n instanceof E0)return"transaction-currency";if(n instanceof C0)return"transaction-amount";if(n instanceof F0)return"language";if(n instanceof w0)return"bday";if(n instanceof x0)return"bday-day";if(n instanceof L0)return"bday-month";if(n instanceof H0)return"bday-year";if(n instanceof I0)return"sex";if(n instanceof S0)return"tel";if(n instanceof A0)return"tel-country-code";if(n instanceof N0)return"tel-national";if(n instanceof R0)return"telarea-code";if(n instanceof O0)return"tel-local";if(n instanceof P0)return"tel-local-prefix";if(n instanceof W0)return"tel-local-suffix";if(n instanceof U0)return"tel-extension";if(n instanceof k0)return"impp";if(n instanceof $0)return"url";if(n instanceof q0)return"photo";throw new Error("Failed pattern match at DOM.HTML.Indexed.AutocompleteType (line 67, column 26 - line 123, column 31): "+[n.constructor.name])};var Se=function(){function n(){}return n.value=new n,n}(),V0=function(){function n(){}return n.value=new n,n}(),J0=function(){function n(){}return n.value=new n,n}(),Q0=function(n){if(n instanceof Se)return"button";if(n instanceof V0)return"submit";if(n instanceof J0)return"reset";throw new Error("Failed pattern match at DOM.HTML.Indexed.ButtonType (line 14, column 20 - line 17, column 25): "+[n.constructor.name])};var J_=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Ru=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}();var ze=function(){function n(e,t,a,u){this.value0=e,this.value1=t,this.value2=a,this.value3=u}return n.create=function(e){return function(t){return function(a){return function(u){return new n(e,t,a,u)}}}},n}(),as=x,wr=function(n,e){return n.value2(n.value1,e)},Ge=x,xr=function(n){return n.value3(n.value1)},Jt=as(function(n){return n.value0});var j0=M(Ae),sU=M($o);var Ou=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Ko=function(){function n(e,t,a,u){this.value0=e,this.value1=t,this.value2=a,this.value3=u}return n.create=function(e){return function(t){return function(a){return function(u){return new n(e,t,a,u)}}}},n}(),Pu=function(){function n(e,t,a,u){this.value0=e,this.value1=t,this.value2=a,this.value3=u}return n.create=function(e){return function(t){return function(a){return function(u){return new n(e,t,a,u)}}}},n}(),Wu=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Zo=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),pU=function(){function n(e,t,a){this.value0=e,this.value1=t,this.value2=a}return n.create=function(e){return function(t){return function(a){return new n(e,t,a)}}},n}(),z0=function(n){return function(e){return n(e)}};var _U=x;var mU={bimap:function(n){return function(e){return z0(function(t){return _U(new pU(function(a){return n(t.value0(a))},function(a){return e(t.value1(a))},t.value2))})}}},dU=Bo(mU);var Wi=z0(function(n){var e=function(t){if(t instanceof Ou)return new Ou(t.value0);if(t instanceof Ko)return new Ko(t.value0,t.value1,n.value0(t.value2),j0(e)(t.value3));if(t instanceof Pu)return new Pu(t.value0,t.value1,n.value0(t.value2),j0(sU(e))(t.value3));if(t instanceof Wu)return new Wu(n.value1(t.value0));if(t instanceof Zo)return new Zo(dU(n.value0)(n.value1)(t.value0));throw new Error("Failed pattern match at Halogen.VDom.Types (line 86, column 7 - line 86, column 27): "+[t.constructor.name])};return e(n.value2)});function Ui(n,e){return e[n]}function Jg(n,e){return e.hasOwnProperty(n)}function Xo(n,e,t){t[n]=e}function Qg(n,e){for(var t=[],a=0;a<n.length;a++)t.push(e(a,n[a]));return t}function jg(n,e){for(var t=0;t<n.length;t++)e(n[t])}function zg(n,e){for(var t=Object.keys(n),a=0;a<t.length;a++){var u=t[a];e(u,n[u])}}function Gg(n,e,t,a,u){for(var i=[],f=n.length,l=e.length,p=0;;){if(p<f)p<l?i.push(t(p,n[p],e[p])):a(p,n[p]);else if(p<l)i.push(u(p,e[p]));else break;p++}return i}function os(n,e,t){for(var a={},u=0;u<n.length;u++){var i=n[u],f=e(i);a[f]=t(f,u,i)}return a}function us(n,e,t,a,u,i){for(var f={},l=0;l<e.length;l++){var p=e[l],d=t(p);n.hasOwnProperty(d)?f[d]=a(d,l,n[d],p):f[d]=i(d,l,p)}for(var d in n)d in f||u(d,n[d]);return f}function ki(n,e){return n===e}function Yg(n,e){return e.createTextNode(n)}function Kg(n,e){e.textContent=n}function j_(n,e,t){return n!=null?t.createElementNS(n,e):t.createElement(e)}function Uu(n,e,t){var a=t.childNodes.item(n)||null;a!==e&&t.insertBefore(e,a)}function is(n,e){e&&n.parentNode===e&&e.removeChild(n)}function fs(n){return n.parentNode}function z_(n,e,t,a){n!=null?a.setAttributeNS(n,e,t):a.setAttribute(e,t)}function G_(n,e,t){n!=null?t.removeAttributeNS(n,e):t.removeAttribute(e)}function Zg(n,e,t){return n!=null?t.hasAttributeNS(n,e):t.hasAttribute(e)}function Xg(n,e,t){t.addEventListener(n,e,!1)}function nD(n,e,t){t.removeEventListener(n,e,!1)}var eD=void 0;var tD=Ui,rD=x,aD=Xo,oD=t_;var Y_=function(n){return function(e){return e[n]}},DU=Y_("namespaceURI"),hU=Y_("prefix"),yU=Y_("localName"),TU=Y_("tagName");function iD(n){return function(e){return function(t){return function(){t.setAttribute(n,e)}}}}var K_=function(n){return function(e){return function(){return e[n]}}},MU=K_("children"),EU=K_("firstElementChild"),CU=K_("lastElementChild"),FU=K_("childElementCount");function G0(n){return function(e){return function(){return e.querySelector(n)}}}var LU=M(On);var fD=function(n){var e=LU(Xn),t=G0(n);return function(a){return e(t(a))}};var cD=x;var cs=function(n,e,t){var a=0,u;return function(i){if(a===2)return u;if(a===1)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+i+")",e,i);return a=1,u=t(),a=2,u}};var sD=function(n){return xr(n.widget)},pD=cs("patchWidget","Halogen.VDom.DOM",function(){return function(n,e){if(e instanceof Zo)return pD(291)(n,Wi(e.value0));if(e instanceof Wu){var t=wr(n.widget,e.value0),a=as(function(u){return Ge(new ze(u.value0,{build:n.build,widget:t},pD(296),sD))})(t);return a}return sD(n),n.build(e)}}),SU=pD(286),Z_=function(n){var e=fs(n.node);return is(n.node,e)},X_=cs("patchText","Halogen.VDom.DOM",function(){return function(n,e){if(e instanceof Zo)return X_(82)(n,Wi(e.value0));if(e instanceof Ou){if(n.value===e.value0)return Ge(new ze(n.node,n,X_(85),Z_));if(ct){var t={build:n.build,node:n.node,value:e.value0};return Kg(e.value0,n.node),Ge(new ze(n.node,t,X_(89),Z_))}}return Z_(n),n.build(e)}}),AU=X_(77),nm=function(n){var e=fs(n.node);return is(n.node,e),zg(n.children,function(t,a){return xr(a)}),xr(n.attrs)},em=function(n){var e=fs(n.node);return is(n.node,e),jg(n.children,xr),xr(n.attrs)},K0=function(n,e,t,a){var u=e===a;return u?n instanceof y&&t instanceof y&&n.value0===t.value0||n instanceof b&&t instanceof b:!1},tm=cs("patchElem","Halogen.VDom.DOM",function(){return function(n,e){if(e instanceof Zo)return tm(135)(n,Wi(e.value0));if(e instanceof Ko&&K0(n.ns,n.name,e.value0,e.value1)){var t=fa(e.value3),a=fa(n.children);if(a===0&&t===0){var p=wr(n.attrs,e.value2),d={build:n.build,node:n.node,attrs:p,ns:e.value0,name:e.value1,children:n.children};return Ge(new ze(n.node,d,tm(149),em))}var u=function(m,v){return xr(v)},i=function(m,v,g){var h=wr(v,g);return Uu(m,Jt(h),n.node),h},f=function(m,v){var g=n.build(v);return Uu(m,Jt(g),n.node),g},l=Gg(n.children,e.value3,i,u,f),p=wr(n.attrs,e.value2),d={build:n.build,node:n.node,attrs:p,ns:e.value0,name:e.value1,children:l};return Ge(new ze(n.node,d,tm(172),em))}return em(n),n.build(e)}}),NU=tm(130),rm=cs("patchKeyed","Halogen.VDom.DOM",function(){return function(n,e){if(e instanceof Zo)return rm(222)(n,Wi(e.value0));if(e instanceof Pu&&K0(n.ns,n.name,e.value0,e.value1)){var t=fa(e.value3);if(n.length===0&&t===0){var l=wr(n.attrs,e.value2),p={build:n.build,node:n.node,attrs:l,ns:e.value0,name:e.value1,children:n.children,length:0};return Ge(new ze(n.node,p,rm(237),nm))}var a=function(d,m){return xr(m)},u=function(d,m,v,g){var h=wr(v,g.value1);return Uu(m,Jt(h),n.node),h},i=function(d,m,v){var g=n.build(v.value1);return Uu(m,Jt(g),n.node),g},f=us(n.children,e.value3,Ce,u,a,i),l=wr(n.attrs,e.value2),p={build:n.build,node:n.node,attrs:l,ns:e.value0,name:e.value1,children:f,length:t};return Ge(new ze(n.node,p,rm(261),nm))}return nm(n),n.build(e)}}),RU=rm(217),OU=function(n,e,t){var a=n.buildWidget(n)(t),u=as(function(i){return Ge(new ze(i.value0,{build:e,widget:a},SU,sD))})(a);return u},PU=function(n,e,t){var a=Yg(t,n.document),u={build:e,node:a,value:t};return Ge(new ze(a,u,AU,Z_))},WU=function(n,e,t,a,u,i){var f=j_(Bt(t),a,n.document),l=cD(f),p=function(g,h,E){var F=e(E.value1);return Uu(h,Jt(F),l),F},d=os(i,Ce,p),m=n.buildAttributes(f)(u),v={build:e,node:l,attrs:m,ns:t,name:a,children:d,length:fa(i)};return Ge(new ze(l,v,RU,nm))},UU=function(n,e,t,a,u,i){var f=j_(Bt(t),a,n.document),l=cD(f),p=function(g,h){var E=e(h);return Uu(g,Jt(E),l),E},d=Qg(i,p),m=n.buildAttributes(f)(u),v={build:e,node:l,attrs:m,ns:t,name:a,children:d};return Ge(new ze(l,v,NU,em))},ls=function(n){var e=cs("build","Halogen.VDom.DOM",function(){return function(a){if(a instanceof Ou)return PU(n,e(59),a.value0);if(a instanceof Ko)return UU(n,e(60),a.value0,a.value1,a.value2,a.value3);if(a instanceof Pu)return WU(n,e(61),a.value0,a.value1,a.value2,a.value3);if(a instanceof Wu)return OU(n,e(62),a.value0);if(a instanceof Zo)return e(63)(Wi(a.value0));throw new Error("Failed pattern match at Halogen.VDom.DOM (line 58, column 27 - line 63, column 52): "+[a.constructor.name])}}),t=e(58);return t};function am(n){return function(){return function(e){return n(e)()}}}var qU=function(n,e,t){var a=0,u;return function(i){if(a===2)return u;if(a===1)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+i+")",e,i);return a=1,u=t(),a=2,u}};var vD=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),gD=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),nu=function(){function n(e,t,a){this.value0=e,this.value1=t,this.value2=a}return n.create=function(e){return function(t){return function(a){return new n(e,t,a)}}},n}(),ku=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),$u=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),$i=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),BU=Ui,dD=Xo,VU=function(n,e){var t=Zg(null,n,e);if(t)return G_(null,n,e);var a=$l(Ui(n,e));return a==="string"?Xo(n,"",e):n==="rowSpan"?Xo(n,1,e):n==="colSpan"?Xo(n,1,e):Xo(n,eD,e)},nF=function(n){if(n instanceof nu&&n.value0 instanceof y)return"attr/"+(n.value0.value0+(":"+n.value1));if(n instanceof nu)return"attr/:"+n.value1;if(n instanceof ku)return"prop/"+n.value0;if(n instanceof $u)return"handler/"+n.value0;if(n instanceof $i)return"ref";throw new Error("Failed pattern match at Halogen.VDom.DOM.Prop (line 182, column 16 - line 187, column 16): "+[n.constructor.name])},ss=x;var eF=x,tF=x;var rF=function(n){return function(e){var t=function(m){return function(v,g){if(g instanceof nu)return G_(Bt(g.value0),g.value1,e);if(g instanceof ku)return VU(g.value0,e);if(g instanceof $u){var h=tD(g.value0,m);return nD(g.value0,Ce(h),e)}if(g instanceof $i)return void 0;throw new Error("Failed pattern match at Halogen.VDom.DOM.Prop (line 169, column 5 - line 179, column 18): "+[g.constructor.name])}},a=function(m){return m instanceof y?n(m.value0)():void 0},u=function(m){var v=Ob("ref")(m.props);return v instanceof y&&v.value0 instanceof $i?a(v.value0.value0(new gD(e))):void 0},i=function(m,v){return function(g,h,E,F){if(E instanceof nu&&F instanceof nu){var W=E.value2===F.value2;return W||z_(Bt(F.value0),F.value1,F.value2,e),F}if(E instanceof ku&&F instanceof ku){var sn=ki(E.value1,F.value1);if(sn)return F;if(F.value0==="value"){var wn=BU("value",e),Rn=ki(wn,F.value1);return Rn||dD(F.value0,F.value1,e),F}return dD(F.value0,F.value1,e),F}if(E instanceof $u&&F instanceof $u){var En=tD(F.value0,m);return ve(F.value1)(Re(En))(),aD(F.value0,En,v),F}return F}},f=function(m){return function(v,g,h){if(h instanceof nu)return z_(Bt(h.value0),h.value1,h.value2,e),h;if(h instanceof ku)return dD(h.value0,h.value1,e),h;if(h instanceof $u){var E=Ui(h.value0,m);if(Jg(h.value0,m))return ve(h.value1)(Re(E))(),h;var F=qe(h.value1)(),W=am(function(sn){return function(){var Rn=hn(F)();return a(Rn(sn))}})();return aD(h.value0,new nn(W,F),m),Xg(h.value0,W,e),h}if(h instanceof $i)return a(h.value0(new vD(e))),h;throw new Error("Failed pattern match at Halogen.VDom.DOM.Prop (line 113, column 5 - line 135, column 15): "+[h.constructor.name])}},l=qU("patchProp","Halogen.VDom.DOM.Prop",function(){return function(m,v){var g=oD(),h=t(m.events),E=i(m.events,g),F=f(g),W=us(m.props,v,nF,E,h,F),sn={events:rD(g),props:W};return Ge(new ze(void 0,sn,l(100),u))}}),p=l(87),d=function(m){var v=oD(),g=os(m,nF,f(v)),h={events:rD(v),props:g};return Ge(new ze(void 0,h,p,u))};return d}};var hD=function(n){return n},uF=function(n){return hD(Wu.create(n))},jU=function(n){return n.toPropValue},P=function(n){return hD(Ou.create(n))},iF=function(n){return new $i(function(e){return n(function(t){if(t instanceof vD)return new y(t.value0);if(t instanceof gD)return b.value;throw new Error("Failed pattern match at Halogen.HTML.Core (line 109, column 21 - line 111, column 23): "+[t.constructor.name])}(e))})},fF=function(n){var e=jU(n);return function(t){var a=ku.create(t);return function(u){return a(e(u))}}};var qu={toPropValue:ss};var cF={toPropValue:eF},Bu={toPropValue:function(n){return ss(MC(n))}};var Vu={toPropValue:function(n){return ss(Q0(n))}},lF={toPropValue:tF},sF={toPropValue:function(n){return ss(B0(n))}},om=function(){return $u.create}(),pF=function(n){return function(e){return function(t){return function(a){return new Ko(n,e,t,a)}}}};var _F=function(n){return function(e){return nu.create(n)(e)}};var zU=fn(cn);var um=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),yD=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),TD=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),mF=function(n){return function(e){return new TD(n,e)}},dF=function(){return yD.create}(),vF=function(n){var e=S(n);return function(t){return function(a){return function(u){return function(i){return function(f){if(i instanceof um)return new nn(new In({func:e(i.value0),count:f},t),a);if(i instanceof yD)return new nn(new In({func:u(i.value0),count:f},t),a);if(i instanceof TD)return vF(n)(t)(sM(i.value1)(a))(u)(i.value0)(f+1|0);throw new Error("Failed pattern match at Control.Applicative.Free (line 102, column 41 - line 105, column 81): "+[i.constructor.name])}}}}}},gF=function(n){var e=oe(n.Apply0());return function(t){return function(a){return function(u){if(t instanceof Sn)return new z(u);if(t instanceof In){var i=e(t.value0.func)(u),f=t.value0.count===1;if(f)return t.value1 instanceof Sn?new z(i):gF(n)(t.value1)(a)(i);if(a instanceof Sn)return new z(i);if(a instanceof In)return new Q(new nn(new In({func:i,count:t.value0.count-1|0},t.value1),new io(a.value0,a.value1)));throw new Error("Failed pattern match at Control.Applicative.Free (line 83, column 11 - line 88, column 50): "+[a.constructor.name])}throw new Error("Failed pattern match at Control.Applicative.Free (line 72, column 3 - line 88, column 50): "+[t.constructor.name])}}}},DF={map:function(n){return function(e){return mF(new um(n))(e)}}},hF=function(n){var e=gF(n),t=S(n),a=vF(n);return function(u){return function(i){var f=function(l){var p=!1,d;function m(v){if(v.value1.value0 instanceof um){var g=e(v.value0)(v.value1.value1)(t(v.value1.value0.value0));if(g instanceof z)return p=!0,g.value0;if(g instanceof Q){l=g.value0;return}throw new Error("Failed pattern match at Control.Applicative.Free (line 54, column 17 - line 56, column 24): "+[g.constructor.name])}if(v.value1.value0 instanceof yD){var g=e(v.value0)(v.value1.value1)(u(v.value1.value0.value0));if(g instanceof z)return p=!0,g.value0;if(g instanceof Q){l=g.value0;return}throw new Error("Failed pattern match at Control.Applicative.Free (line 57, column 17 - line 59, column 24): "+[g.constructor.name])}if(v.value1.value0 instanceof TD){var h=new io(v.value1.value0.value1,v.value1.value1);l=a(v.value0)(h)(u)(v.value1.value0.value0)(1);return}throw new Error("Failed pattern match at Control.Applicative.Free (line 53, column 5 - line 62, column 47): "+[v.value1.value0.constructor.name])}for(;!p;)d=m(l);return d};return f(new nn(Sn.value,Jf(i)))}}},yF=function(n){return hF(n)(zU)},TF={apply:function(n){return function(e){return mF(n)(e)}},Functor0:function(){return DF}},bF=function(){return{pure:um.create,Apply0:function(){return TF}}}(),GU=hF(bF),bD=function(n){return GU(function(e){return dF(n(e))})};var im=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}();var EF=function(n){var e=!1,t;function a(u){if(u.value0 instanceof Sn&&u.value1 instanceof Sn)return e=!0,b.value;if(u.value0 instanceof Sn){n=new im(Li(u.value1),Sn.value);return}if(u.value0 instanceof In)return e=!0,new y(new nn(u.value0.value0,new im(u.value0.value1,u.value1)));throw new Error("Failed pattern match at Data.CatQueue (line 82, column 1 - line 82, column 63): "+[u.constructor.name])}for(;!e;)t=a(n);return t},CF=function(n){return function(e){return new im(n.value0,new In(e,n.value1))}};var FF=function(n){return n.value0 instanceof Sn&&n.value1 instanceof Sn};var wF=function(){return new im(Sn.value,Sn.value)}();var Dc=function(){function n(){}return n.value=new n,n}(),fm=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}();var xF=function(n){return function(e){if(n instanceof Dc)return e;if(e instanceof Dc)return n;if(n instanceof fm)return new fm(n.value0,CF(n.value1)(e));throw new Error("Failed pattern match at Data.CatList (line 108, column 1 - line 108, column 54): "+[n.constructor.name,e.constructor.name])}},KU=function(n){return function(e){return function(t){var a=function(i){return function(f){return function(l){var p=i,d=f,m=!1,v;function g(h,E,F){if(F instanceof Sn)return m=!0,E;if(F instanceof In){p=h,d=h(E)(F.value0),l=F.value1;return}throw new Error("Failed pattern match at Data.CatList (line 124, column 3 - line 124, column 59): "+[h.constructor.name,E.constructor.name,F.constructor.name])}for(;!m;)v=g(p,d,l);return v}}},u=function(i){return function(f){var l=i,p=!1,d;function m(v,g){var h=EF(v);if(h instanceof b)return p=!0,a(function(E){return function(F){return F(E)}})(e)(g);if(h instanceof y){l=h.value0.value1,f=new In(n(h.value0.value0),g);return}throw new Error("Failed pattern match at Data.CatList (line 120, column 14 - line 122, column 67): "+[h.constructor.name])}for(;!p;)d=m(l,f);return d}};return u(t)(Sn.value)}}},LF=function(n){if(n instanceof Dc)return b.value;if(n instanceof fm)return new y(new nn(n.value0,function(){var e=FF(n.value1);return e?Dc.value:KU(xF)(Dc.value)(n.value1)}()));throw new Error("Failed pattern match at Data.CatList (line 99, column 1 - line 99, column 61): "+[n.constructor.name])};var HF=function(){return Dc.value}(),IF=xF;var SF={append:IF};var AF=function(n){return function(e){return IF(n)(new fm(e,wF))}};var XU=function(n,e,t){var a=0,u;return function(i){if(a===2)return u;if(a===1)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+i+")",e,i);return a=1,u=t(),a=2,u}},nk=mn(SF);var MD=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),cm=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),lm=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),ek=function(n){var e=!1,t;function a(u){var i=function(p){return p},f=function(p){return function(d){return new MD(p.value0,nk(p.value1)(d))}};if(u.value0 instanceof cm){var l=LF(u.value1);if(l instanceof b)return e=!0,new cm(u.value0.value0);if(l instanceof y){n=f(i(l.value0.value0)(u.value0.value0))(l.value0.value1);return}throw new Error("Failed pattern match at Control.Monad.Free (line 227, column 7 - line 231, column 64): "+[l.constructor.name])}if(u.value0 instanceof lm)return e=!0,new lm(u.value0.value0,function(p){return f(u.value0.value1(p))(u.value1)});throw new Error("Failed pattern match at Control.Monad.Free (line 225, column 3 - line 233, column 56): "+[u.value0.constructor.name])}for(;!e;)t=a(n);return t};var NF=function(n){return new MD(n,HF)};var ED={Applicative0:function(){return ps},Bind1:function(){return sm}},CD={map:function(n){return function(e){return fe(sm)(function(){var t=S(ps);return function(a){return t(n(a))}}())(e)}}},sm={bind:function(n){return function(e){return new MD(n.value0,AF(n.value1)(e))}},Apply0:function(){return RF(0)}},ps={pure:function(n){return NF(cm.create(n))},Apply0:function(){return RF(0)}},RF=XU("freeApply","Control.Monad.Free",function(){return{apply:Tr(ED),Functor0:function(){return CD}}});var tk=S(ps);var hc=function(n){return NF(new lm(n,function(e){return tk(e)}))};var OF=function(n){var e=n.Monad0(),t=M(e.Bind1().Apply0().Functor0()),a=S(e.Applicative0()),u=ia(n);return function(i){var f=function(l){var p=ek(l);if(p instanceof cm)return t(Nt.create)(a(p.value0));if(p instanceof lm)return t(function(d){return qt.create(p.value1(d))})(i(p.value0));throw new Error("Failed pattern match at Control.Monad.Free (line 158, column 10 - line 160, column 37): "+[p.constructor.name])};return u(f)}};var WF=x;function FD(n){return function(e){return n===e}}var yc=FD;var ak=qn(On);var ok=J(nt);var uk=mn(cr),ik=et(Ee),fk=ik(Rt);var pm=function(n){return n},kF=function(n){return function(e){return n(function(t){return ak(e(t))})}};var $F=function(n){return function(e){return n(e)}};var qF=function(){var e=qe([])();return{emitter:function(t){return function(){return kr(function(u){return uk(u)([t])})(e)(),kr(e_(yc)(t))(e)}},listener:function(t){return ok(hn(e))(fk(function(a){return a(t)}))}}};var ck=fn(cn);var BF=function(n){return n},VF=function(n){return n},_s=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),_m=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),mm=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Tc=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),dm=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),ms=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),vm=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),gm=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Dm=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),hm=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),ds=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}();var vs=function(n){return n};var ym=function(n){return hc(new ms(n,void 0))};var LD=Tt,Tm=Tt;var JF=ED,Fe={state:function(n){return vs(hc(_s.create(n)))},Monad0:function(){return JF}};var qi=function(n){return{liftEffect:function(){var e=Gn(n);return function(t){return vs(hc(Tc.create(e(t))))}}(),Monad0:function(){return JF}}};var ya=function(n){var e=qi(n.MonadEffect0());return{liftAff:function(){var t=rr(n);return function(a){return vs(hc(Tc.create(t(a))))}}(),MonadEffect0:function(){return e}}};var bm=function(n){return hc(new ds(n,ck))},mr=CD;var Ot=sm;var ar=ps;var bc=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Mc=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Ec=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Cc=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Fc=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}();var lk=function(n,e,t){var a=0,u;return function(i){if(a===2)return u;if(a===1)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+i+")",e,i);return a=1,u=t(),a=2,u}};var sk=function(n,e){return ki(n.value0,e.value0)&&ki(n.value1,e.value1)&&n.value1(n.value3,e.value3)};var QF=function(n){return n.value2(n.value3)};var jF=function(n){var e=function(i){return xr(i.vdom)},t=lk("patchThunk","Halogen.VDom.Thunk",function(){return function(i,f){var l=sk(i.thunk,f);if(l)return Ge(new ze(Jt(i.vdom),i,t(112),e));var p=wr(i.vdom,n(QF(f)));return Ge(new ze(Jt(p),{vdom:p,thunk:f},t(115),e))}}),a=t(108),u=function(i){return function(f){var l=ls(i)(n(QF(f)));return Ge(new ze(Jt(l),{thunk:f,vdom:l},a,e))}};return u};var Mm=al(mr),SD=et(ar)(gt),pk=M(mr);var zF=S(ar),_k=qg(),mk=UC(),dk=kC(),gs=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Em=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),AD=x,ND=x,Qt=function(n){return function(e){if(e instanceof bc)return Mm(SD(n.handleAction)(n.initialize))(e.value0);if(e instanceof Mc)return Mm(SD(n.handleAction)(n.finalize))(e.value0);if(e instanceof Ec)return Mm(SD(n.handleAction)(n.receive(e.value0)))(e.value1);if(e instanceof Cc)return Mm(n.handleAction(e.value0))(e.value1);if(e instanceof Fc)return LC(function(t){var a=pk(Jn(e.value1(void 0))(t));return function(u){return a(n.handleQuery(u))}})(e.value0);throw new Error("Failed pattern match at Halogen.Component (line 182, column 15 - line 192, column 71): "+[e.constructor.name])}},vk=x,jt=x;var Yn=function(){return{handleAction:$(zF(void 0)),handleQuery:$(zF(b.value)),receive:$(b.value),initialize:b.value,finalize:b.value}}(),RD=function(){return function(n){var e=_k(n),t=mk(n),a=dk(n);return function(u){var i=e(u),f=t(u),l=a(u);return function(p){return function(d){return function(m){return function(v){return function(g){return vk({get:i(p)(d),pop:f(p)(d),set:l(p)(d),component:m,input:v,output:g})}}}}}}}};var dr=function(){return pF(b.value)}();var Bi=dr("form");var Oe=function(n){return dr("input")(n)([])};var Pt=dr("label");var Vi=dr("p");var vo=dr("span");var OD=dr("table");var GF=dr("tbody"),PD=GF([]),Ds=dr("td"),or=Ds([]),Ji=function(n){return dr("textarea")(n)([])};var YF=dr("tr"),go=YF([]);var xn=dr("div"),Do=xn([]);var we=dr("button");var KF=function(n){return dr("br")(n)([])},jr=KF([]);var Lr=dr("a");function ZF(n){return n.currentTarget}function eu(n){return function(){return n.preventDefault()}}var XF=function(n){return Xn(ZF(n))};var WD="change";var ew="click";var wk=M(ie),xk=tT(At),Lk=Du(bi($t)),Hk=hg($t),Ik=Vl($t);var Sk=x;var Ak=function(n){return function(e){return om(n)(function(t){return wk(Ru.create)(e(t))})}},tw=function(n){return function(e){return om(n)(function(t){return new y(new Ru(e(t)))})}};var Te=function(){var n=tw(ew);return function(e){return n(Sk(e))}}();var wc=tw("submit");var rw=function(n){return function(e){return function(t){return function(a){var u=function(i){return Lk(t)(Hk(e))(_t(i))};return Ak(n)(xk(XF)(function(i){return st($(b.value))(function(f){return y.create(a(f))})(Mi(u(i)))}))}}}},zr=rw(WD)("checked")(eg($t));var Gr=rw(WD)("value")(Ik);var Nk=kt();var aw=function(){var n=function(e){return function(t){return new y(new J_(e,t))}};return function(e){return iF(n(e))}}(),Qi=function(n){return fF(n)},Cm=Qi(lF),ji=Qi(qu),Rk=Qi(cF);var Fm=Cm("required");var xc=Rk("rows");var UD=ji("target"),ur=ji("title"),Yr=function(n){return Qi(n)("type")},Lc=function(n){return Qi(n)("value")};var tt=ji("name");var Ye=ji("id"),Kr=ji("href");var zt=ji("htmlFor");var wm=Cm("disabled");var ow=function(){var n=ji("className");return function(e){return n(Nk(e))}}(),Zr=Cm("checked");var Ts=Cm("autofocus"),xm=Qi(sF)("autocomplete");var bs=function(){return _F(b.value)}();var Yvn=typeof Array.from=="function",Ok=typeof Symbol<"u"&&Symbol!=null&&typeof Symbol.iterator<"u"&&typeof String.prototype[Symbol.iterator]=="function",Pk=typeof String.prototype.fromCodePoint=="function",Kvn=typeof String.prototype.codePointAt=="function";var uw=function(n){return Pk?String.fromCodePoint:n},iw=function(n){return function(e){return Ok?function(t){for(var a="",u=t[Symbol.iterator](),i=0;i<e;++i){var f=u.next();if(f.done)return a;a+=f.value}return a}:n(e)}};var kD=M_(Dg);var Uk=pl(Sp),kk=Ip(Sp);var $k=function(n){return function(e){return(((n-55296|0)*1024|0)+(e-56320|0)|0)+65536|0}};var qk=function(n){return 56320<=n&&n<=57343},Bk=function(n){return 55296<=n&&n<=56319},Vk=function(n){var e=Xf(n);if(e===0)return b.value;if(e===1)return new y({head:kD(ec(0)(n)),tail:""});var t=kD(ec(1)(n)),a=kD(ec(0)(n)),u=Bk(a)&&qk(t);return u?new y({head:$k(a)(t),tail:nc(2)(n)}):new y({head:a,tail:nc(1)(n)})};var $D=function(){var n=cE(Dg)(Ia(Di))(Ha(Di));return function(e){return Gv(n(e))}}(),Jk=function(n){if(n<=65535)return $D(n);var e=Uk(n-65536|0)(1024)+55296|0,t=kk(n-65536|0)(1024)+56320|0;return $D(e)+$D(t)};var Qk=uw(Jk),fw=function(n){return function(e){if(n<1)return"";var t=Vk(e);return t instanceof y?Qk(t.value0.head)+fw(n-1|0)(t.value0.tail):e}},ju=iw(fw);var cw=function(n){return function(e){return nc(Xf(ju(n)(e)))(e)}};var zi=function(n){return function(e){return function(){return e[n]}}},jk=zi("URL"),zk=zi("documentURI"),Gk=zi("origin"),Yk=zi("compatMode"),Kk=zi("characterSet"),Zk=zi("contentType");var Xk=zi("documentElement");var i$=oa(),lw=fe(nt);var f$=Hp(At),c$=M(ie),Hr=function(n){return function(e){return n?e(void 0):P("")}};var sw=function(n){return function(e){return n?e(void 0):[]}},l$=function(n){return i$(Qb(n))};var Gi=function(n){return function(e){return function(t){return n?e(void 0):t(void 0)}}},pw=function(n){return function(e){return function(t){return n?e(void 0):t(void 0)}}},tu=function(){var n=Ne("");return function(e){return n(Xn(e))}}(),Hc=function(){var n=Ne(""),e=Vf("+")("%2B");return function(t){return n(Jb(e(t)))}}();var L=function(n){return ow(jl(n))},Ic=function(n){return bs(n)};var s$=function(n){var e=function(){var u=Vf("+")(" ");return function(i){return l$(u(i))}}(),t=function(u){var i=Vr("=")(u);return i.length===1?new y(new nn(e(i[0]),b.value)):i.length===2?new y(new nn(e(i[0]),new y(e(i[1])))):b.value},a=function(){var u=ju(1)(n),i=u==="#"||u==="?";return i?cw(1)(n):n}();return Ev(t)(Hl(function(u){return u!==""})(Vr("&")(a)))};var Ms=function(n){return function(e){return f$(c$(Re)(Tv(function(t){return function(a){return a===e}(Ce(t))})(n)))}},Sc=lw(Zl)(tr);var Lm=lw(Oi)(tr),Es=function(){var e=Sc(),t=wg(e)();return s$(t)};var BD=Yr(Bu),p$=ke($e)(Ot),_$=Nu(Fe),_w=J(Ot),mw=Au(Fe),dw=qn(mr),vw=rr(ya(ga)),gw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Dw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),hw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),yw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),m$=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),bw=function(n){return Vt(function(e){return e.us})(function(e){return function(t){return{us:t}}})(n)},d$=bw(Ft),Tw=bw(mo),Mw=function(n){var e=function(u){var i=function(f){return function(l){return yw.create(f(l))}};return xn([L("settings-form")])([xn([L("fw7 mb2")])([P("Account Settings")]),xn([L("flex items-center mb2")])([Oe([BD(_r.value),L("pointer mr2"),Ye("archiveDefault"),tt("archiveDefault"),Zr(u.us.archiveDefault),zr(i(gw.create))]),Pt([zt("archiveDefault"),L("lh-copy")])([P("Archive Non-Private Bookmarks (archive.li)")])]),xn([L("flex items-center mb2")])([Oe([BD(_r.value),L("pointer mr2"),Ye("privateDefault"),tt("privateDefault"),Zr(u.us.privateDefault),zr(i(Dw.create))]),Pt([zt("privateDefault"),L("lh-copy")])([P("Default new bookmarks to Private")])]),xn([L("flex items-center mb2")])([Oe([BD(_r.value),L("pointer mr2"),Ye("privacyLock"),tt("privacyLock"),Zr(u.us.privacyLock),zr(i(hw.create))]),Pt([zt("privacyLock"),L("lh-copy")])([P("Privacy Lock (Private Account)")])])])},t=function(u){return{us:u}},a=function(u){if(u instanceof yw)return p$(_$(d$)(function(){if(u.value0 instanceof gw)return function(i){return{privateDefault:i.privateDefault,privacyLock:i.privacyLock,archiveDefault:u.value0.value0}};if(u.value0 instanceof Dw)return function(i){return{archiveDefault:i.archiveDefault,privacyLock:i.privacyLock,privateDefault:u.value0.value0}};if(u.value0 instanceof hw)return function(i){return{archiveDefault:i.archiveDefault,privateDefault:i.privateDefault,privacyLock:u.value0.value0}};throw new Error("Failed pattern match at Component.AccountSettings (line 77, column 12 - line 80, column 46): "+[u.value0.constructor.name])}()))(function(){return _w(mw(Tw))(function(i){return dw(vw(Ig(i)))})});if(u instanceof m$)return _w(mw(Tw))(function(i){return dw(vw(Ig(i)))});throw new Error("Failed pattern match at Component.AccountSettings (line 75, column 3 - line 75, column 69): "+[u.constructor.name])};return jt({initialState:$(t(n)),render:e,eval:Qt({handleQuery:Yn.handleQuery,receive:Yn.receive,initialize:Yn.initialize,finalize:Yn.finalize,handleAction:a})})};var ho=function(n){return function(){console.log(n)}},Cs=function(n){return function(){console.warn(n)}};var Lw=mn(cr),Im=Yr(Vu),Hw=no(Uo),Nc=Yr(Bu),Fs=Lc(qu),M$=no(Sa),Sm=pr(Fe),zu=ke($e)(Ot),yo=J(Ot),Iw=Oa(Fe),VD=rr(ya(ga)),Sw=Nu(Fe),E$=S(ar),C$=qn(mr),$a=Gn(qi(pt)),F$=Au(Fe),Am=_c(Fe),Aw=fe(nt),Nw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Rw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Ow=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Pw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Ww=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Uw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),kw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),$w=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),JD=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),qw=function(){function n(){}return n.value=new n,n}(),Bw=function(){function n(){}return n.value=new n,n}(),Jw=function(n){return Vt(function(e){return e.edit_bm})(function(e){return function(t){return{apiError:e.apiError,bm:e.bm,deleteAsk:e.deleteAsk,destroyed:e.destroyed,loading:e.loading,edit_bm:t}}})(n)},Vw=Jw(Ft),w$=Jw(mo),x$=function(n){return Vt(function(e){return e.bm})(function(e){return function(t){return{apiError:e.apiError,deleteAsk:e.deleteAsk,destroyed:e.destroyed,edit_bm:e.edit_bm,loading:e.loading,bm:t}}})(n)},L$=x$(Ft),H$=function(n){return Vt(function(e){return e.apiError})(function(e){return function(t){return{bm:e.bm,deleteAsk:e.deleteAsk,destroyed:e.destroyed,edit_bm:e.edit_bm,loading:e.loading,apiError:t}}})(n)},QD=H$(Ft),Qw=function(n){var e=function(u){var i=ic(u.bm.time),f=function(v){return function(g){return kw.create(v(g))}},l=function(v){return xn([L("alert")])([P("previously saved\xA0"),vo([L("link f7 dib gray pr3"),ur(Jn(u.bm.time)(Re)(i))])([P(Jn("\xA0")(Ce)(i))]),xn([L("edit_links dib ml1")])([xn([L("delete_link di")])([we(Lw([Im(Se.value),Te(function(g){return new JD(!0)}),L("delete")])(Hw(u.deleteAsk)([Ic("hidden")("hidden")])))([P("delete")]),vo(Lw([L("confirm red")])(Hw(!u.deleteAsk)([Ic("hidden")("hidden")])))([we([Im(Se.value),Te(function(g){return new JD(!1)})])([P("cancel\xA0/\xA0")]),we([Im(Se.value),Te(function(g){return Bw.value}),L("red")])([P("destroy")])])])])])},p=function(v){return Vi([L("red")])([P("you killed this bookmark")])},d=function(v){return function(g){return xn([L("alert alert-err")])([P(v)])}},m=function(v){return Bi([wc($w.create)])([OD([L("w-100")])([PD([go([Ds([L("w1")])([]),or([Hr(u.bm.bid>0)(l),Hr(Ur(u.apiError))(d(Ne("")(u.apiError)))])]),go([or([Pt([zt("url")])([P("URL")])]),or([Oe([Nc(pc.value),Ye("url"),L("w-100 mv1"),Fm(!0),tt("url"),Ts(Jr(u.bm.url)),Fs(u.edit_bm.url),Gr(f(Nw.create))])])]),go([or([Pt([zt("title")])([P("title")])]),Ds([L("flex")])([Oe([Nc(_o.value),Ye("title"),L("w-100 mv1 flex-auto"),tt("title"),Fs(u.edit_bm.title),Gr(f(Rw.create))]),we([wm(u.loading),Im(Se.value),Te(function(g){return qw.value}),L("ml2 input-reset ba b--navy pointer f6 di dim pa1 ma1 mr0 "+M$(u.loading)("bg-light-silver"))])([P("fetch")])])]),go([or([Pt([zt("description")])([P("description")])]),or([Ji([L("w-100 mt1 mid-gray"),Ye("description"),tt("description"),xc(4),Fs(u.edit_bm.description),Gr(f(Ow.create))])])]),go([or([Pt([zt("tags")])([P("tags")])]),or([Oe([Nc(_o.value),Ye("tags"),L("w-100 mv1"),tt("tags"),xm(gc.value),Ic("autocapitalize")("off"),Ts(!Jr(u.bm.url)),Fs(u.edit_bm.tags),Gr(f(Pw.create))])])]),go([or([Pt([zt("private")])([P("private")])]),or([Oe([Nc(_r.value),Ye("private"),L("private pointer"),tt("private"),Zr(u.edit_bm.private),zr(f(Ww.create))])])]),go([or([Pt([zt("toread")])([P("read later")])]),or([Oe([Nc(_r.value),Ye("toread"),L("toread pointer"),tt("toread"),Zr(u.edit_bm.toread),zr(f(Uw.create))])])]),go([or([]),or([Oe([Nc(Su.value),L("ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt1 dim"),Fs(function(){var g=u.bm.bid>0;return g?"update bookmark":"add bookmark"}())])])])])])])};return Gi(!u.destroyed)(m)(p)},t=function(u){return{bm:u,edit_bm:u,deleteAsk:!1,destroyed:!1,loading:!1,apiError:b.value}},a=function(u){if(u instanceof JD)return Sm(function(i){var f={};for(var l in i)({}).hasOwnProperty.call(i,l)&&(f[l]=i[l]);return f.deleteAsk=u.value0,f});if(u instanceof qw)return zu(Sm(function(i){var f={};for(var l in i)({}).hasOwnProperty.call(i,l)&&(f[l]=i[l]);return f.loading=!0,f}))(function(){return yo(Iw(function(i){return i.edit_bm}))(function(i){return yo(VD(A_(i)))(function(f){return zu(function(){if(f instanceof y)return Sw(Vw)(function(l){return{url:l.url,description:l.description,tags:l.tags,private:l.private,toread:l.toread,bid:l.bid,slug:l.slug,selected:l.selected,time:l.time,archiveUrl:l.archiveUrl,title:f.value0}});if(f instanceof b)return E$(void 0);throw new Error("Failed pattern match at Component.Add (line 177, column 5 - line 179, column 29): "+[f.constructor.name])}())(function(){return Sm(function(l){var p={};for(var d in l)({}).hasOwnProperty.call(l,d)&&(p[d]=l[d]);return p.loading=!1,p})})})})});if(u instanceof Bw)return yo(Iw(function(i){return i.bm.bid}))(function(i){return zu(C$(VD(R_(i))))(function(){return Sm(function(f){var l={};for(var p in f)({}).hasOwnProperty.call(f,p)&&(l[p]=f[p]);return l.destroyed=!0,l})})});if(u instanceof kw)return Sw(Vw)(function(){if(u.value0 instanceof Nw)return function(i){return{title:i.title,description:i.description,tags:i.tags,private:i.private,toread:i.toread,bid:i.bid,slug:i.slug,selected:i.selected,time:i.time,archiveUrl:i.archiveUrl,url:u.value0.value0}};if(u.value0 instanceof Rw)return function(i){return{url:i.url,description:i.description,tags:i.tags,private:i.private,toread:i.toread,bid:i.bid,slug:i.slug,selected:i.selected,time:i.time,archiveUrl:i.archiveUrl,title:u.value0.value0}};if(u.value0 instanceof Ow)return function(i){return{url:i.url,title:i.title,tags:i.tags,private:i.private,toread:i.toread,bid:i.bid,slug:i.slug,selected:i.selected,time:i.time,archiveUrl:i.archiveUrl,description:u.value0.value0}};if(u.value0 instanceof Pw)return function(i){return{url:i.url,title:i.title,description:i.description,private:i.private,toread:i.toread,bid:i.bid,slug:i.slug,selected:i.selected,time:i.time,archiveUrl:i.archiveUrl,tags:u.value0.value0}};if(u.value0 instanceof Ww)return function(i){return{url:i.url,title:i.title,description:i.description,tags:i.tags,toread:i.toread,bid:i.bid,slug:i.slug,selected:i.selected,time:i.time,archiveUrl:i.archiveUrl,private:u.value0.value0}};if(u.value0 instanceof Uw)return function(i){return{url:i.url,title:i.title,description:i.description,tags:i.tags,private:i.private,bid:i.bid,slug:i.slug,selected:i.selected,time:i.time,archiveUrl:i.archiveUrl,toread:u.value0.value0}};throw new Error("Failed pattern match at Component.Add (line 188, column 17 - line 194, column 36): "+[u.value0.constructor.name])}());if(u instanceof $w)return zu($a(eu(u.value0)))(function(){return yo(F$(w$))(function(i){return zu(Am(QD)(b.value))(function(){return yo(VD(N_(i)))(function(f){if(f instanceof z)return zu(Am(QD)(new y(lo(f.value0))))(function(){return $a(ho(lo(f.value0)))});if(f instanceof Q&&f.value0.status>=200&&f.value0.status<300)return zu(Am(L$)(i))(function(){return yo($a(Es))(function(l){return yo($a(Lm))(function(p){return yo($a(w_(p)))(function(d){return yo($a(Sc))(function(m){return yo($a(Kl(m)))(function(v){var g=Ms(l)("next");return g instanceof y&&g.value0==="closeWindow"?$a(Aw(fc)(tr)):g instanceof y&&g.value0==="back"?$a(function(){var h=ql(v)(d);if(h instanceof y)return Iu(d)(m);if(h instanceof b)return Iu(v)(m);throw new Error("Failed pattern match at Component.Add (line 214, column 13 - line 216, column 41): "+[h.constructor.name])}()):$a(Aw(fc)(tr))})})})})})});if(f instanceof Q)return zu(Am(QD)(new y(f.value0.body)))(function(){return $a(ho(f.value0.body))});throw new Error("Failed pattern match at Component.Add (line 200, column 42 - line 220, column 36): "+[f.constructor.name])})})})});throw new Error("Failed pattern match at Component.Add (line 169, column 3 - line 169, column 69): "+[u.constructor.name])};return jt({initialState:$(t(n)),render:e,eval:Qt({handleQuery:Yn.handleQuery,receive:Yn.receive,initialize:Yn.initialize,finalize:Yn.finalize,handleAction:a})})};var jD=function(n){return function(e){return function(){n.innerHTML=e}}};var k$=fe(At);var zD=function(){var n=M(mr)(function(e){return k$(Gl)(e)});return function(e){return n(bm(e))}}();var GD=J(Ot),Gw=gl(Fe),q$=ke($e),Yw=q$(Ot),B$=wi(ar)(gt),V$=rr(ya(ga)),J$=Gn(Af),Q$=Zn(Np(PM)),j$=S(ar),z$=pr(Fe),YD=function(){function n(){}return n.value=new n,n}(),Kw=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Zw=function(n){var e=function(a){return xn([aw(a.elRef)])([])},t=function(a){if(a instanceof YD)return GD(Gw)(function(u){return GD(zD(u.elRef))(function(i){return Yw(B$(i)(function(f){return GD(Gw)(function(l){return V$(s_(co(function(p){return function(){return J$(jD(f)(n(l.inputval)))(),Q$()}})))})}))(function(){return j$(void 0)})})});if(a instanceof Kw)return Yw(z$(function(u){var i={};for(var f in u)({}).hasOwnProperty.call(u,f)&&(i[f]=u[f]);return i.inputval=a.value0,i}))(function(){return t(YD.value)});throw new Error("Failed pattern match at Component.RawHtml (line 51, column 18 - line 64, column 34): "+[a.constructor.name])};return jt({initialState:function(a){return{elRef:"inputval",inputval:a}},render:e,eval:Qt({handleQuery:Yn.handleQuery,finalize:Yn.finalize,handleAction:t,initialize:new y(YD.value),receive:function(a){return y.create(Kw.create(a))}})})};function nh(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Zi=nh();function a1(n){Zi=n}var o1=/[&<>"']/,Y$=new RegExp(o1.source,"g"),u1=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,K$=new RegExp(u1.source,"g"),Z$={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Xw=n=>Z$[n];function Xr(n,e){if(e){if(o1.test(n))return n.replace(Y$,Xw)}else if(u1.test(n))return n.replace(K$,Xw);return n}var X$=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function n2(n){return n.replace(X$,(e,t)=>(t=t.toLowerCase(),t==="colon"?":":t.charAt(0)==="#"?t.charAt(1)==="x"?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}var e2=/(^|[^\[])\^/g;function xe(n,e){let t=typeof n=="string"?n:n.source;e=e||"";let a={replace:(u,i)=>{let f=typeof i=="string"?i:i.source;return f=f.replace(e2,"$1"),t=t.replace(u,f),a},getRegex:()=>new RegExp(t,e)};return a}function n1(n){try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n}var xs={exec:()=>null};function e1(n,e){let t=n.replace(/\|/g,(i,f,l)=>{let p=!1,d=f;for(;--d>=0&&l[d]==="\\";)p=!p;return p?"|":" |"}),a=t.split(/ \|/),u=0;if(a[0].trim()||a.shift(),a.length>0&&!a[a.length-1].trim()&&a.pop(),e)if(a.length>e)a.splice(e);else for(;a.length<e;)a.push("");for(;u<a.length;u++)a[u]=a[u].trim().replace(/\\\|/g,"|");return a}function Nm(n,e,t){let a=n.length;if(a===0)return"";let u=0;for(;u<a;){let i=n.charAt(a-u-1);if(i===e&&!t)u++;else if(i!==e&&t)u++;else break}return n.slice(0,a-u)}function t2(n,e){if(n.indexOf(e[1])===-1)return-1;let t=0;for(let a=0;a<n.length;a++)if(n[a]==="\\")a++;else if(n[a]===e[0])t++;else if(n[a]===e[1]&&(t--,t<0))return a;return-1}function t1(n,e,t,a){let u=e.href,i=e.title?Xr(e.title):null,f=n[1].replace(/\\([\[\]])/g,"$1");if(n[0].charAt(0)!=="!"){a.state.inLink=!0;let l={type:"link",raw:t,href:u,title:i,text:f,tokens:a.inlineTokens(f)};return a.state.inLink=!1,l}return{type:"image",raw:t,href:u,title:i,text:Xr(f)}}function r2(n,e){let t=n.match(/^(\s+)(?:```)/);if(t===null)return e;let a=t[1];return e.split(`-`).map(u=>{let i=u.match(/^\s+/);if(i===null)return u;let[f]=i;return f.length>=a.length?u.slice(a.length):u}).join(`-`)}var Rc=class{constructor(e){Ue(this,"options");Ue(this,"rules");Ue(this,"lexer");this.options=e||Zi}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 a=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?a:Nm(a,`-`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let a=t[0],u=r2(a,t[3]||"");return{type:"code",raw:a,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:u}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let a=t[2].trim();if(/#$/.test(a)){let u=Nm(a,"#");(this.options.pedantic||!u||/ $/.test(u))&&(a=u.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:a,tokens:this.lexer.inline(a)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let a=Nm(t[0].replace(/^ *>[ \t]?/gm,""),`-`),u=this.lexer.state.top;this.lexer.state.top=!0;let i=this.lexer.blockTokens(a);return this.lexer.state.top=u,{type:"blockquote",raw:t[0],tokens:i,text:a}}}list(e){let t=this.rules.block.list.exec(e);if(t){let a=t[1].trim(),u=a.length>1,i={type:"list",raw:"",ordered:u,start:u?+a.slice(0,-1):"",loose:!1,items:[]};a=u?`\\d{1,9}\\${a.slice(-1)}`:`\\${a}`,this.options.pedantic&&(a=u?a:"[*+-]");let f=new RegExp(`^( {0,3}${a})((?:[	 ][^\\n]*)?(?:\\n|$))`),l="",p="",d=!1;for(;e;){let m=!1;if(!(t=f.exec(e))||this.rules.block.hr.test(e))break;l=t[0],e=e.substring(l.length);let v=t[2].split(`-`,1)[0].replace(/^\t+/,sn=>" ".repeat(3*sn.length)),g=e.split(`-`,1)[0],h=0;this.options.pedantic?(h=2,p=v.trimStart()):(h=t[2].search(/[^ ]/),h=h>4?1:h,p=v.slice(h),h+=t[1].length);let E=!1;if(!v&&/^ *$/.test(g)&&(l+=g+`-`,e=e.substring(g.length+1),m=!0),!m){let sn=new RegExp(`^ {0,${Math.min(3,h-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`),wn=new RegExp(`^ {0,${Math.min(3,h-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),Rn=new RegExp(`^ {0,${Math.min(3,h-1)}}(?:\`\`\`|~~~)`),En=new RegExp(`^ {0,${Math.min(3,h-1)}}#`);for(;e;){let U=e.split(`-`,1)[0];if(g=U,this.options.pedantic&&(g=g.replace(/^ {1,4}(?=( {4})*[^ ])/g,"  ")),Rn.test(g)||En.test(g)||sn.test(g)||wn.test(e))break;if(g.search(/[^ ]/)>=h||!g.trim())p+=`-`+g.slice(h);else{if(E||v.search(/[^ ]/)>=4||Rn.test(v)||En.test(v)||wn.test(v))break;p+=`-`+g}!E&&!g.trim()&&(E=!0),l+=U+`-`,e=e.substring(U.length+1),v=g.slice(h)}}i.loose||(d?i.loose=!0:/\n *\n *$/.test(l)&&(d=!0));let F=null,W;this.options.gfm&&(F=/^\[[ xX]\] /.exec(p),F&&(W=F[0]!=="[ ] ",p=p.replace(/^\[[ xX]\] +/,""))),i.items.push({type:"list_item",raw:l,task:!!F,checked:W,loose:!1,text:p,tokens:[]}),i.raw+=l}i.items[i.items.length-1].raw=l.trimEnd(),i.items[i.items.length-1].text=p.trimEnd(),i.raw=i.raw.trimEnd();for(let m=0;m<i.items.length;m++)if(this.lexer.state.top=!1,i.items[m].tokens=this.lexer.blockTokens(i.items[m].text,[]),!i.loose){let v=i.items[m].tokens.filter(h=>h.type==="space"),g=v.length>0&&v.some(h=>/\n.*\n/.test(h.raw));i.loose=g}if(i.loose)for(let m=0;m<i.items.length;m++)i.items[m].loose=!0;return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let a=t[1].toLowerCase().replace(/\s+/g," "),u=t[2]?t[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:a,raw:t[0],href:u,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!/[:|]/.test(t[2]))return;let a=e1(t[1]),u=t[2].replace(/^\||\| *$/g,"").split("|"),i=t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split(`-`):[],f={type:"table",raw:t[0],header:[],align:[],rows:[]};if(a.length===u.length){for(let l of u)/^ *-+: *$/.test(l)?f.align.push("right"):/^ *:-+: *$/.test(l)?f.align.push("center"):/^ *:-+ *$/.test(l)?f.align.push("left"):f.align.push(null);for(let l of a)f.header.push({text:l,tokens:this.lexer.inline(l)});for(let l of i)f.rows.push(e1(l,f.header.length).map(p=>({text:p,tokens:this.lexer.inline(p)})));return f}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let a=t[1].charAt(t[1].length-1)===`-`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:a,tokens:this.lexer.inline(a)}}}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:Xr(t[1])}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^<a /i.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.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 a=t[2].trim();if(!this.options.pedantic&&/^</.test(a)){if(!/>$/.test(a))return;let f=Nm(a.slice(0,-1),"\\");if((a.length-f.length)%2===0)return}else{let f=t2(t[2],"()");if(f>-1){let p=(t[0].indexOf("!")===0?5:4)+t[1].length+f;t[2]=t[2].substring(0,f),t[0]=t[0].substring(0,p).trim(),t[3]=""}}let u=t[2],i="";if(this.options.pedantic){let f=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(u);f&&(u=f[1],i=f[3])}else i=t[3]?t[3].slice(1,-1):"";return u=u.trim(),/^</.test(u)&&(this.options.pedantic&&!/>$/.test(a)?u=u.slice(1):u=u.slice(1,-1)),t1(t,{href:u&&u.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer)}}reflink(e,t){let a;if((a=this.rules.inline.reflink.exec(e))||(a=this.rules.inline.nolink.exec(e))){let u=(a[2]||a[1]).replace(/\s+/g," "),i=t[u.toLowerCase()];if(!i){let f=a[0].charAt(0);return{type:"text",raw:f,text:f}}return t1(a,i,a[0],this.lexer)}}emStrong(e,t,a=""){let u=this.rules.inline.emStrongLDelim.exec(e);if(!u||u[3]&&a.match(/[\p{L}\p{N}]/u))return;if(!(u[1]||u[2]||"")||!a||this.rules.inline.punctuation.exec(a)){let f=[...u[0]].length-1,l,p,d=f,m=0,v=u[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(v.lastIndex=0,t=t.slice(-1*e.length+f);(u=v.exec(t))!=null;){if(l=u[1]||u[2]||u[3]||u[4]||u[5]||u[6],!l)continue;if(p=[...l].length,u[3]||u[4]){d+=p;continue}else if((u[5]||u[6])&&f%3&&!((f+p)%3)){m+=p;continue}if(d-=p,d>0)continue;p=Math.min(p,p+d+m);let g=[...u[0]][0].length,h=e.slice(0,f+u.index+g+p);if(Math.min(f,p)%2){let F=h.slice(1,-1);return{type:"em",raw:h,text:F,tokens:this.lexer.inlineTokens(F)}}let E=h.slice(2,-2);return{type:"strong",raw:h,text:E,tokens:this.lexer.inlineTokens(E)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let a=t[2].replace(/\n/g," "),u=/[^ ]/.test(a),i=/^ /.test(a)&&/ $/.test(a);return u&&i&&(a=a.substring(1,a.length-1)),a=Xr(a,!0),{type:"codespan",raw:t[0],text:a}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let a,u;return t[2]==="@"?(a=Xr(t[1]),u="mailto:"+a):(a=Xr(t[1]),u=a),{type:"link",raw:t[0],text:a,href:u,tokens:[{type:"text",raw:a,text:a}]}}}url(e){var a,u;let t;if(t=this.rules.inline.url.exec(e)){let i,f;if(t[2]==="@")i=Xr(t[0]),f="mailto:"+i;else{let l;do l=t[0],t[0]=(u=(a=this.rules.inline._backpedal.exec(t[0]))==null?void 0:a[0])!=null?u:"";while(l!==t[0]);i=Xr(t[0]),t[1]==="www."?f="http://"+t[0]:f=t[0]}return{type:"link",raw:t[0],text:i,href:f,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let a;return this.lexer.state.inRawBlock?a=t[0]:a=Xr(t[0]),{type:"text",raw:t[0],text:a}}}},a2=/^(?: *(?:\n|$))+/,o2=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,u2=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Is=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,i2=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,i1=/(?:[*+-]|\d{1,9}[.)])/,f1=xe(/^(?!bull )((?:.|\n(?!\s*?\n|bull ))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,i1).getRegex(),eh=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,f2=/^[^\n]+/,th=/(?!\s*\])(?:\\.|[^\[\]\\])+/,c2=xe(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",th).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),l2=xe(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,i1).getRegex(),Wm="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|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",rh=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,s2=xe("^ {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",rh).replace("tag",Wm).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),c1=xe(eh).replace("hr",Is).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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wm).getRegex(),p2=xe(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",c1).getRegex(),ah={blockquote:p2,code:o2,def:c2,fences:u2,heading:i2,hr:Is,html:s2,lheading:f1,list:l2,newline:a2,paragraph:c1,table:xs,text:f2},r1=xe("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Is).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wm).getRegex(),_2=yf(yr({},ah),{table:r1,paragraph:xe(eh).replace("hr",Is).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",r1).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Wm).getRegex()}),m2=yf(yr({},ah),{html:xe(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",rh).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:xs,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:xe(eh).replace("hr",Is).replace("heading",` *#{1,6} *[^-]`).replace("lheading",f1).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),l1=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,d2=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,s1=/^( {2,}|\\)\n(?!\s*$)/,v2=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Ss="\\p{P}$+<=>`^|~",g2=xe(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,Ss).getRegex(),D2=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,h2=xe(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Ss).getRegex(),y2=xe("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Ss).getRegex(),T2=xe("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Ss).getRegex(),b2=xe(/\\([punct])/,"gu").replace(/punct/g,Ss).getRegex(),M2=xe(/^<(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(),E2=xe(rh).replace("(?:-->|$)","-->").getRegex(),C2=xe("^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",E2).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Om=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,F2=xe(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",Om).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),p1=xe(/^!?\[(label)\]\[(ref)\]/).replace("label",Om).replace("ref",th).getRegex(),_1=xe(/^!?\[(ref)\](?:\[\])?/).replace("ref",th).getRegex(),w2=xe("reflink|nolink(?!\\()","g").replace("reflink",p1).replace("nolink",_1).getRegex(),oh={_backpedal:xs,anyPunctuation:b2,autolink:M2,blockSkip:D2,br:s1,code:d2,del:xs,emStrongLDelim:h2,emStrongRDelimAst:y2,emStrongRDelimUnd:T2,escape:l1,link:F2,nolink:_1,punctuation:g2,reflink:p1,reflinkSearch:w2,tag:C2,text:v2,url:xs},x2=yf(yr({},oh),{link:xe(/^!?\[(label)\]\((.*?)\)/).replace("label",Om).getRegex(),reflink:xe(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Om).getRegex()}),KD=yf(yr({},oh),{escape:xe(l1).replace("])","~|])").getRegex(),url:xe(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").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~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),L2=yf(yr({},KD),{br:xe(s1).replace("{2,}","*").getRegex(),text:xe(KD.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),Rm={normal:ah,gfm:_2,pedantic:m2},ws={normal:oh,gfm:KD,breaks:L2,pedantic:x2},ru=class n{constructor(e){Ue(this,"tokens");Ue(this,"options");Ue(this,"state");Ue(this,"tokenizer");Ue(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Zi,this.options.tokenizer=this.options.tokenizer||new Rc,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 t={block:Rm.normal,inline:ws.normal};this.options.pedantic?(t.block=Rm.pedantic,t.inline=ws.pedantic):this.options.gfm&&(t.block=Rm.gfm,this.options.breaks?t.inline=ws.breaks:t.inline=ws.gfm),this.tokenizer.rules=t}static get rules(){return{block:Rm,inline:ws}}static lex(e,t){return new n(t).lex(e)}static lexInline(e,t){return new n(t).inlineTokens(e)}lex(e){e=e.replace(/\r\n|\r/g,`-`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let a=this.inlineQueue[t];this.inlineTokens(a.src,a.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[]){this.options.pedantic?e=e.replace(/\t/g,"    ").replace(/^ +$/gm,""):e=e.replace(/^( *)(\t+)/gm,(l,p,d)=>p+"    ".repeat(d.length));let a,u,i,f;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(a=l.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))){if(a=this.tokenizer.space(e)){e=e.substring(a.raw.length),a.raw.length===1&&t.length>0?t[t.length-1].raw+=`-`:t.push(a);continue}if(a=this.tokenizer.code(e)){e=e.substring(a.raw.length),u=t[t.length-1],u&&(u.type==="paragraph"||u.type==="text")?(u.raw+=`-`+a.raw,u.text+=`-`+a.text,this.inlineQueue[this.inlineQueue.length-1].src=u.text):t.push(a);continue}if(a=this.tokenizer.fences(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.heading(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.hr(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.blockquote(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.list(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.html(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.def(e)){e=e.substring(a.raw.length),u=t[t.length-1],u&&(u.type==="paragraph"||u.type==="text")?(u.raw+=`-`+a.raw,u.text+=`-`+a.raw,this.inlineQueue[this.inlineQueue.length-1].src=u.text):this.tokens.links[a.tag]||(this.tokens.links[a.tag]={href:a.href,title:a.title});continue}if(a=this.tokenizer.table(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.lheading(e)){e=e.substring(a.raw.length),t.push(a);continue}if(i=e,this.options.extensions&&this.options.extensions.startBlock){let l=1/0,p=e.slice(1),d;this.options.extensions.startBlock.forEach(m=>{d=m.call({lexer:this},p),typeof d=="number"&&d>=0&&(l=Math.min(l,d))}),l<1/0&&l>=0&&(i=e.substring(0,l+1))}if(this.state.top&&(a=this.tokenizer.paragraph(i))){u=t[t.length-1],f&&u.type==="paragraph"?(u.raw+=`-`+a.raw,u.text+=`-`+a.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=u.text):t.push(a),f=i.length!==e.length,e=e.substring(a.raw.length);continue}if(a=this.tokenizer.text(e)){e=e.substring(a.raw.length),u=t[t.length-1],u&&u.type==="text"?(u.raw+=`-`+a.raw,u.text+=`-`+a.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=u.text):t.push(a);continue}if(e){let l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let a,u,i,f=e,l,p,d;if(this.tokens.links){let m=Object.keys(this.tokens.links);if(m.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(f))!=null;)m.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(f=f.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+f.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(f))!=null;)f=f.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+f.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(f))!=null;)f=f.slice(0,l.index)+"++"+f.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(p||(d=""),p=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(m=>(a=m.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))){if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),u=t[t.length-1],u&&a.type==="text"&&u.type==="text"?(u.raw+=a.raw,u.text+=a.text):t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length),u=t[t.length-1],u&&a.type==="text"&&u.type==="text"?(u.raw+=a.raw,u.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,f,d)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}if(i=e,this.options.extensions&&this.options.extensions.startInline){let m=1/0,v=e.slice(1),g;this.options.extensions.startInline.forEach(h=>{g=h.call({lexer:this},v),typeof g=="number"&&g>=0&&(m=Math.min(m,g))}),m<1/0&&m>=0&&(i=e.substring(0,m+1))}if(a=this.tokenizer.inlineText(i)){e=e.substring(a.raw.length),a.raw.slice(-1)!=="_"&&(d=a.raw.slice(-1)),p=!0,u=t[t.length-1],u&&u.type==="text"?(u.raw+=a.raw,u.text+=a.text):t.push(a);continue}if(e){let m="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(m);break}else throw new Error(m)}}return t}},Oc=class{constructor(e){Ue(this,"options");this.options=e||Zi}code(e,t,a){var i;let u=(i=(t||"").match(/^\S*/))==null?void 0:i[0];return e=e.replace(/\n$/,"")+`-`,u?'<pre><code class="language-'+Xr(u)+'">'+(a?e:Xr(e,!0))+`</code></pre>-`:"<pre><code>"+(a?e:Xr(e,!0))+`</code></pre>-`}blockquote(e){return`<blockquote>-${e}</blockquote>-`}html(e,t){return e}heading(e,t,a){return`<h${t}>${e}</h${t}>-`}hr(){return`<hr>-`}list(e,t,a){let u=t?"ol":"ul",i=t&&a!==1?' start="'+a+'"':"";return"<"+u+i+`>-`+e+"</"+u+`>-`}listitem(e,t,a){return`<li>${e}</li>-`}checkbox(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph(e){return`<p>${e}</p>-`}table(e,t){return t&&(t=`<tbody>${t}</tbody>`),`<table>-<thead>-`+e+`</thead>-`+t+`</table>-`}tablerow(e){return`<tr>-${e}</tr>-`}tablecell(e,t){let a=t.header?"th":"td";return(t.align?`<${a} align="${t.align}">`:`<${a}>`)+e+`</${a}>-`}strong(e){return`<strong>${e}</strong>`}em(e){return`<em>${e}</em>`}codespan(e){return`<code>${e}</code>`}br(){return"<br>"}del(e){return`<del>${e}</del>`}link(e,t,a){let u=n1(e);if(u===null)return a;e=u;let i='<a href="'+e+'"';return t&&(i+=' title="'+t+'"'),i+=">"+a+"</a>",i}image(e,t,a){let u=n1(e);if(u===null)return a;e=u;let i=`<img src="${e}" alt="${a}"`;return t&&(i+=` title="${t}"`),i+=">",i}text(e){return e}},Ls=class{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,a){return""+a}image(e,t,a){return""+a}br(){return""}},au=class n{constructor(e){Ue(this,"options");Ue(this,"renderer");Ue(this,"textRenderer");this.options=e||Zi,this.options.renderer=this.options.renderer||new Oc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Ls}static parse(e,t){return new n(t).parse(e)}static parseInline(e,t){return new n(t).parseInline(e)}parse(e,t=!0){let a="";for(let u=0;u<e.length;u++){let i=e[u];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let f=i,l=this.options.extensions.renderers[f.type].call({parser:this},f);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(f.type)){a+=l||"";continue}}switch(i.type){case"space":continue;case"hr":{a+=this.renderer.hr();continue}case"heading":{let f=i;a+=this.renderer.heading(this.parseInline(f.tokens),f.depth,n2(this.parseInline(f.tokens,this.textRenderer)));continue}case"code":{let f=i;a+=this.renderer.code(f.text,f.lang,!!f.escaped);continue}case"table":{let f=i,l="",p="";for(let m=0;m<f.header.length;m++)p+=this.renderer.tablecell(this.parseInline(f.header[m].tokens),{header:!0,align:f.align[m]});l+=this.renderer.tablerow(p);let d="";for(let m=0;m<f.rows.length;m++){let v=f.rows[m];p="";for(let g=0;g<v.length;g++)p+=this.renderer.tablecell(this.parseInline(v[g].tokens),{header:!1,align:f.align[g]});d+=this.renderer.tablerow(p)}a+=this.renderer.table(l,d);continue}case"blockquote":{let f=i,l=this.parse(f.tokens);a+=this.renderer.blockquote(l);continue}case"list":{let f=i,l=f.ordered,p=f.start,d=f.loose,m="";for(let v=0;v<f.items.length;v++){let g=f.items[v],h=g.checked,E=g.task,F="";if(g.task){let W=this.renderer.checkbox(!!h);d?g.tokens.length>0&&g.tokens[0].type==="paragraph"?(g.tokens[0].text=W+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&g.tokens[0].tokens[0].type==="text"&&(g.tokens[0].tokens[0].text=W+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:W+" "}):F+=W+" "}F+=this.parse(g.tokens,d),m+=this.renderer.listitem(F,E,!!h)}a+=this.renderer.list(m,l,p);continue}case"html":{let f=i;a+=this.renderer.html(f.text,f.block);continue}case"paragraph":{let f=i;a+=this.renderer.paragraph(this.parseInline(f.tokens));continue}case"text":{let f=i,l=f.tokens?this.parseInline(f.tokens):f.text;for(;u+1<e.length&&e[u+1].type==="text";)f=e[++u],l+=`-`+(f.tokens?this.parseInline(f.tokens):f.text);a+=t?this.renderer.paragraph(l):l;continue}default:{let f='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(f),"";throw new Error(f)}}}return a}parseInline(e,t){t=t||this.renderer;let a="";for(let u=0;u<e.length;u++){let i=e[u];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let f=this.options.extensions.renderers[i.type].call({parser:this},i);if(f!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){a+=f||"";continue}}switch(i.type){case"escape":{let f=i;a+=t.text(f.text);break}case"html":{let f=i;a+=t.html(f.text);break}case"link":{let f=i;a+=t.link(f.href,f.title,this.parseInline(f.tokens,t));break}case"image":{let f=i;a+=t.image(f.href,f.title,f.text);break}case"strong":{let f=i;a+=t.strong(this.parseInline(f.tokens,t));break}case"em":{let f=i;a+=t.em(this.parseInline(f.tokens,t));break}case"codespan":{let f=i;a+=t.codespan(f.text);break}case"br":{a+=t.br();break}case"del":{let f=i;a+=t.del(this.parseInline(f.tokens,t));break}case"text":{let f=i;a+=t.text(f.text);break}default:{let f='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(f),"";throw new Error(f)}}}return a}},Yi=class{constructor(e){Ue(this,"options");this.options=e||Zi}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}};Ue(Yi,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"]));var Hs,XD,Pm,m1,ZD=class{constructor(...e){Ed(this,Hs);Ed(this,Pm);Ue(this,"defaults",nh());Ue(this,"options",this.setOptions);Ue(this,"parse",dp(this,Hs,XD).call(this,ru.lex,au.parse));Ue(this,"parseInline",dp(this,Hs,XD).call(this,ru.lexInline,au.parseInline));Ue(this,"Parser",au);Ue(this,"Renderer",Oc);Ue(this,"TextRenderer",Ls);Ue(this,"Lexer",ru);Ue(this,"Tokenizer",Rc);Ue(this,"Hooks",Yi);this.use(...e)}walkTokens(e,t){var u,i;let a=[];for(let f of e)switch(a=a.concat(t.call(this,f)),f.type){case"table":{let l=f;for(let p of l.header)a=a.concat(this.walkTokens(p.tokens,t));for(let p of l.rows)for(let d of p)a=a.concat(this.walkTokens(d.tokens,t));break}case"list":{let l=f;a=a.concat(this.walkTokens(l.items,t));break}default:{let l=f;(i=(u=this.defaults.extensions)==null?void 0:u.childTokens)!=null&&i[l.type]?this.defaults.extensions.childTokens[l.type].forEach(p=>{a=a.concat(this.walkTokens(l[p],t))}):l.tokens&&(a=a.concat(this.walkTokens(l.tokens,t)))}}return a}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(a=>{let u=yr({},a);if(u.async=this.defaults.async||u.async||!1,a.extensions&&(a.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let f=t.renderers[i.name];f?t.renderers[i.name]=function(...l){let p=i.renderer.apply(this,l);return p===!1&&(p=f.apply(this,l)),p}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let f=t[i.level];f?f.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),u.extensions=t),a.renderer){let i=this.defaults.renderer||new Oc(this.defaults);for(let f in a.renderer){if(!(f in i))throw new Error(`renderer '${f}' does not exist`);if(f==="options")continue;let l=f,p=a.renderer[l],d=i[l];i[l]=(...m)=>{let v=p.apply(i,m);return v===!1&&(v=d.apply(i,m)),v||""}}u.renderer=i}if(a.tokenizer){let i=this.defaults.tokenizer||new Rc(this.defaults);for(let f in a.tokenizer){if(!(f in i))throw new Error(`tokenizer '${f}' does not exist`);if(["options","rules","lexer"].includes(f))continue;let l=f,p=a.tokenizer[l],d=i[l];i[l]=(...m)=>{let v=p.apply(i,m);return v===!1&&(v=d.apply(i,m)),v}}u.tokenizer=i}if(a.hooks){let i=this.defaults.hooks||new Yi;for(let f in a.hooks){if(!(f in i))throw new Error(`hook '${f}' does not exist`);if(f==="options")continue;let l=f,p=a.hooks[l],d=i[l];Yi.passThroughHooks.has(f)?i[l]=m=>{if(this.defaults.async)return Promise.resolve(p.call(i,m)).then(g=>d.call(i,g));let v=p.call(i,m);return d.call(i,v)}:i[l]=(...m)=>{let v=p.apply(i,m);return v===!1&&(v=d.apply(i,m)),v}}u.hooks=i}if(a.walkTokens){let i=this.defaults.walkTokens,f=a.walkTokens;u.walkTokens=function(l){let p=[];return p.push(f.call(this,l)),i&&(p=p.concat(i.call(this,l))),p}}this.defaults=yr(yr({},this.defaults),u)}),this}setOptions(e){return this.defaults=yr(yr({},this.defaults),e),this}lexer(e,t){return ru.lex(e,t!=null?t:this.defaults)}parser(e,t){return au.parse(e,t!=null?t:this.defaults)}};Hs=new WeakSet,XD=function(e,t){return(a,u)=>{let i=yr({},u),f=yr(yr({},this.defaults),i);this.defaults.async===!0&&i.async===!1&&(f.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),f.async=!0);let l=dp(this,Pm,m1).call(this,!!f.silent,!!f.async);if(typeof a>"u"||a===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof a!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(a)+", string expected"));if(f.hooks&&(f.hooks.options=f),f.async)return Promise.resolve(f.hooks?f.hooks.preprocess(a):a).then(p=>e(p,f)).then(p=>f.hooks?f.hooks.processAllTokens(p):p).then(p=>f.walkTokens?Promise.all(this.walkTokens(p,f.walkTokens)).then(()=>p):p).then(p=>t(p,f)).then(p=>f.hooks?f.hooks.postprocess(p):p).catch(l);try{f.hooks&&(a=f.hooks.preprocess(a));let p=e(a,f);f.hooks&&(p=f.hooks.processAllTokens(p)),f.walkTokens&&this.walkTokens(p,f.walkTokens);let d=t(p,f);return f.hooks&&(d=f.hooks.postprocess(d)),d}catch(p){return l(p)}}},Pm=new WeakSet,m1=function(e,t){return a=>{if(a.message+=`-Please report this to https://github.com/markedjs/marked.`,e){let u="<p>An error occurred:</p><pre>"+Xr(a.message+"",!0)+"</pre>";return t?Promise.resolve(u):u}if(t)return Promise.reject(a);throw a}};var Ki=new ZD;function de(n,e){return Ki.parse(n,e)}de.options=de.setOptions=function(n){return Ki.setOptions(n),de.defaults=Ki.defaults,a1(de.defaults),de};de.getDefaults=nh;de.defaults=Zi;de.use=function(...n){return Ki.use(...n),de.defaults=Ki.defaults,a1(de.defaults),de};de.walkTokens=function(n,e){return Ki.walkTokens(n,e)};de.parseInline=Ki.parseInline;de.Parser=au;de.parser=au.parse;de.Renderer=Oc;de.TextRenderer=Ls;de.Lexer=ru;de.lexer=ru.lex;de.Tokenizer=Rc;de.Hooks=Yi;de.parse=de;var zgn=de.options,Ggn=de.setOptions,Ygn=de.use,Kgn=de.walkTokens,Zgn=de.parseInline;var Xgn=au.parse,nDn=ru.lex;var v1=sy(d1(),1);de.setOptions({pedantic:!1,gfm:!0});var fh=function(n){return n?v1.default.sanitize(de.parse(n)):""};var g1=function(n){return vg(fh(n))};var Um=Zw(g1);var h1=function(n){var e=Gn(n);return function(t){return e(ho(t))}};var A2=RD();var Pc=function(){return function(n){var e=A2(n);return function(t){var a=e(t);return function(u){return function(i){return function(f){return function(l){return function(p){return uF(new gs(a(u)(i)(f)(l)(function(d){return y.create(p(d))})))}}}}}}}};var y1=_n(Wr),Gu=J(Ot),As=Au(Fe),Ir=ke($e)(Ot),Ns=rr(ya(ga)),Rs=Nu(Fe),lh=pr(Fe),T1=qn(mr),Yu=_c(Fe),km=Gn(qi(pt)),N2=aa(Ee),R2=Oa(Fe),O2=S(ar),b1=h1(Af),Ku=no(Sa),P2=Pc()({reflectSymbol:function(){return"markdown"}})(Ef),W2=M(Ae),Os=Yr(Vu),U2=no(Uo),Xi=Yr(Bu),Wc=Lc(qu),M1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),E1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),C1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),F1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),w1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),x1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),k2=function(){function n(){}return n.value=new n,n}(),L1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),sh=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),H1=function(){function n(){}return n.value=new n,n}(),I1=function(){function n(){}return n.value=new n,n}(),ph=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),S1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),A1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),N1=function(){function n(){}return n.value=new n,n}(),$2=function(){return he.value}(),O1=function(n){return Vt(function(e){return e.edit_bm})(function(e){return function(t){return{apiError:e.apiError,bm:e.bm,deleteAsk:e.deleteAsk,edit:e.edit,loading:e.loading,edit_bm:t}}})(n)},$m=O1(Ft),q2=O1(mo),B2=function(n){return Vt(function(e){return e.edit})(function(e){return function(t){return{apiError:e.apiError,bm:e.bm,deleteAsk:e.deleteAsk,edit_bm:e.edit_bm,loading:e.loading,edit:t}}})(n)},R1=B2(Ft),P1=function(n){return Vt(function(e){return e.bm})(function(e){return function(t){return{apiError:e.apiError,deleteAsk:e.deleteAsk,edit:e.edit,edit_bm:e.edit_bm,loading:e.loading,bm:t}}})(n)},qm=P1(mo),_h=P1(Ft),V2=function(n){return Vt(function(e){return e.apiError})(function(e){return function(t){return{bm:e.bm,deleteAsk:e.deleteAsk,edit:e.edit,edit_bm:e.edit_bm,loading:e.loading,apiError:t}}})(n)},Bm=V2(Ft),W1=function(n){var e=function(f){return y1(f.bid)+"_tags"},t=function(f){return{bm:f,edit_bm:f,deleteAsk:!1,edit:!1,loading:!1,apiError:b.value}},a=function(f){if(f instanceof L1)return Gu(As(qm))(function(l){return Ir(Ns(XE(l.bid)(function(){return f.value0?Lg.value:Hg.value}())))(function(){return Ir(Rs(_h)(function(p){return{url:p.url,title:p.title,description:p.description,tags:p.tags,private:p.private,toread:p.toread,bid:p.bid,slug:p.slug,time:p.time,archiveUrl:p.archiveUrl,selected:f.value0}}))(function(){return Rs($m)(function(p){return{url:p.url,title:p.title,description:p.description,tags:p.tags,private:p.private,toread:p.toread,bid:p.bid,slug:p.slug,time:p.time,archiveUrl:p.archiveUrl,selected:f.value0}})})})});if(f instanceof sh)return lh(function(l){var p={};for(var d in l)({}).hasOwnProperty.call(l,d)&&(p[d]=l[d]);return p.deleteAsk=f.value0,p});if(f instanceof I1)return Gu(As(qm))(function(l){return Ir(T1(Ns(R_(l.bid))))(function(){return ym(k2.value)})});if(f instanceof N1)return Gu(As(qm))(function(l){return Ir(T1(Ns(ZE(l.bid))))(function(){return Rs(_h)(function(p){return{url:p.url,title:p.title,description:p.description,tags:p.tags,private:p.private,bid:p.bid,slug:p.slug,selected:p.selected,time:p.time,archiveUrl:p.archiveUrl,toread:!1}})})});if(f instanceof ph)return Gu(As(qm))(function(l){return Ir(Yu($m)(l))(function(){return Ir(Yu(R1)(f.value0))(function(){return Ir(Yu(Bm)(b.value))(function(){return km(N2(f.value0)(b_(e(l))))})})})});if(f instanceof S1)return Rs($m)(function(){if(f.value0 instanceof M1)return function(l){return{title:l.title,description:l.description,tags:l.tags,private:l.private,toread:l.toread,bid:l.bid,slug:l.slug,selected:l.selected,time:l.time,archiveUrl:l.archiveUrl,url:f.value0.value0}};if(f.value0 instanceof E1)return function(l){return{url:l.url,description:l.description,tags:l.tags,private:l.private,toread:l.toread,bid:l.bid,slug:l.slug,selected:l.selected,time:l.time,archiveUrl:l.archiveUrl,title:f.value0.value0}};if(f.value0 instanceof C1)return function(l){return{url:l.url,title:l.title,tags:l.tags,private:l.private,toread:l.toread,bid:l.bid,slug:l.slug,selected:l.selected,time:l.time,archiveUrl:l.archiveUrl,description:f.value0.value0}};if(f.value0 instanceof F1)return function(l){return{url:l.url,title:l.title,description:l.description,private:l.private,toread:l.toread,bid:l.bid,slug:l.slug,selected:l.selected,time:l.time,archiveUrl:l.archiveUrl,tags:f.value0.value0}};if(f.value0 instanceof w1)return function(l){return{url:l.url,title:l.title,description:l.description,tags:l.tags,toread:l.toread,bid:l.bid,slug:l.slug,selected:l.selected,time:l.time,archiveUrl:l.archiveUrl,private:f.value0.value0}};if(f.value0 instanceof x1)return function(l){return{url:l.url,title:l.title,description:l.description,tags:l.tags,private:l.private,bid:l.bid,slug:l.slug,selected:l.selected,time:l.time,archiveUrl:l.archiveUrl,toread:f.value0.value0}};throw new Error("Failed pattern match at Component.BMark (line 253, column 17 - line 259, column 36): "+[f.value0.constructor.name])}());if(f instanceof H1)return Ir(lh(function(l){var p={};for(var d in l)({}).hasOwnProperty.call(l,d)&&(p[d]=l[d]);return p.loading=!0,p}))(function(){return Gu(R2(function(l){return l.edit_bm}))(function(l){return Gu(Ns(A_(l)))(function(p){return Ir(function(){if(p instanceof y)return Rs($m)(function(d){return{url:d.url,description:d.description,tags:d.tags,private:d.private,toread:d.toread,bid:d.bid,slug:d.slug,selected:d.selected,time:d.time,archiveUrl:d.archiveUrl,title:p.value0}});if(p instanceof b)return O2(void 0);throw new Error("Failed pattern match at Component.BMark (line 266, column 5 - line 268, column 29): "+[p.constructor.name])}())(function(){return lh(function(d){var m={};for(var v in d)({}).hasOwnProperty.call(d,v)&&(m[v]=d[v]);return m.loading=!1,m})})})})});if(f instanceof A1)return Ir(km(eu(f.value0)))(function(){return Gu(As(q2))(function(l){return Ir(Yu(Bm)(b.value))(function(){var p={archiveUrl:l.archiveUrl,bid:l.bid,description:l.description,private:l.private,selected:l.selected,slug:l.slug,time:l.time,title:l.title,toread:l.toread,url:l.url,tags:Vf(",")(" ")(l.tags)};return Gu(Ns(N_(p)))(function(d){if(d instanceof z)return Ir(Yu(Bm)(new y(lo(d.value0))))(function(){return km(b1(lo(d.value0)))});if(d instanceof Q&&d.value0.status>=200&&d.value0.status<300)return Ir(Yu(_h)(p))(function(){return Yu(R1)(!1)});if(d instanceof Q)return Ir(Yu(Bm)(new y(d.value0.body)))(function(){return km(b1(d.value0.body))});throw new Error("Failed pattern match at Component.BMark (line 277, column 43 - line 286, column 36): "+[d.constructor.name])})})})});throw new Error("Failed pattern match at Component.BMark (line 216, column 3 - line 216, column 84): "+[f.constructor.name])},u=_a(void 0),i=function(f){var l=function(W){return xn([L("star fl pointer"+Ku(f.bm.selected)(" selected"))])([we([L("moon-gray"),Te(function(sn){return new L1(!f.bm.selected)})])([P("\u272D")])])},p=ju(16)(f.bm.time)+"Z",d=aE(f.bm.time),m=function(W){return tu(u.userR)+("/t:"+Hc(W))},v=function(W){return tu(u.userR)+("/b:"+W)},g=function(W){return function(sn){return S1.create(W(sn))}},h=function(W){return xn([L("display")])([Lr([Kr(f.bm.url),UD("_blank"),L("link f5 lh-title"+Ku(f.bm.toread)(" unread"))])([P(function(){var sn=Jr(f.bm.title);return sn?"[no title]":f.bm.title}())]),jr,Lr([Kr(f.bm.url),L("link f7 gray hover-blue")])([P(f.bm.url)]),Lr([Kr(Ne("http://archive.is/"+f.bm.url)(Xn(f.bm.archiveUrl))),L("link f7 gray hover-blue ml2"+Ku(Ur(Xn(f.bm.archiveUrl)))(" green")),UD("_blank"),ur("archive link")])([function(){var sn=Ur(Xn(f.bm.archiveUrl));return sn?P("\u2611"):P("\u2610")}()]),jr,xn([L("description mt1 mid-gray")])([P2($2)(void 0)(Um)(f.bm.description)(mi)]),xn([L("tags")])(sw(!Jr(f.bm.tags))(function(sn){return W2(function(wn){return Lr([L("link tag mr1"+Ku(ju(1)(wn)===".")(" private")),Kr(m(wn))])([P(wn)])})(Vr(" ")(f.bm.tags))})),Lr([L("link f7 dib gray w4"),Kr(v(f.bm.slug)),ur(p)])([P(d)]),Hr(u.dat.isowner)(function(sn){return xn([L("edit_links di")])([we([Os(Se.value),Te(function(wn){return new ph(!0)}),L("edit light-silver hover-blue")])([P("edit\xA0\xA0")]),xn([L("delete_link di")])([we([Os(Se.value),Te(function(wn){return new sh(!0)}),L("delete light-silver hover-blue"+Ku(f.deleteAsk)(" dn"))])([P("delete")]),vo([L("confirm red"+Ku(!f.deleteAsk)(" dn"))])([we([Os(Se.value),Te(function(wn){return new sh(!1)})])([P("cancel\xA0/\xA0")]),we([Os(Se.value),Te(function(wn){return I1.value}),L("red")])([P("destroy")])])])])}),Hr(u.dat.isowner)(function(sn){return xn([L("read di")])(U2(f.bm.toread)([P("\xA0\xA0"),we([Te(function(wn){return N1.value}),L("mark_read")])([P("mark as read")])]))})])},E=function(W){return function(sn){return xn([L("alert alert-err")])([P(W)])}},F=function(W){return xn([L("edit_bookmark_form pa2 pt0 bg-white")])([Hr(Ur(f.apiError))(E(Ne("")(f.apiError))),Bi([wc(A1.create)])([Do([P("url")]),Oe([Xi(pc.value),L("url w-100 mb2 pt1 edit_form_input"),Fm(!0),tt("url"),Wc(f.edit_bm.url),Gr(g(M1.create))]),Do([P("title")]),xn([L("flex")])([Oe([Xi(_o.value),L("title w-100 mb2 pt1 edit_form_input"),tt("title"),Wc(f.edit_bm.title),Gr(g(E1.create))]),we([wm(f.loading),Os(Se.value),Te(function(sn){return H1.value}),L("ml1 pa1 mb2 dark-gray ba b--moon-gray bg-near-white pointer rdim f7 "+Ku(f.loading)("bg-light-silver"))])([P("fetch")])]),Do([P("description")]),Ji([L("description w-100 mb1 pt1 edit_form_input"),tt("description"),xc(5),Wc(f.edit_bm.description),Gr(g(C1.create))]),xn([Ye("tags_input_box")])([Do([P("tags")]),Oe([Ye(e(f.edit_bm)),Xi(_o.value),L("tags w-100 mb1 pt1 edit_form_input"),tt("tags"),xm(gc.value),Ic("autocapitalize")("off"),Wc(f.edit_bm.tags),Gr(g(F1.create))])]),xn([L("edit_form_checkboxes mv3")])([Oe([Xi(_r.value),L("private pointer"),Ye("edit_private"),tt("private"),Zr(f.edit_bm.private),zr(g(w1.create))]),P(" "),Pt([zt("edit_private"),L("mr2")])([P("private")]),P(" "),Oe([Xi(_r.value),L("toread pointer"),Ye("edit_toread"),tt("toread"),Zr(f.edit_bm.toread),zr(g(x1.create))]),P(" "),Pt([zt("edit_toread")])([P("to-read")])]),Oe([Xi(Su.value),L("mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),Wc("save")]),P(" "),Oe([Xi(sc.value),L("pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),Wc("cancel"),Te(function(sn){return new ph(!1)})])])])};return xn([Ye(y1(f.bm.bid)),L("bookmark w-100 mw7 pa1 mb3"+Ku(f.bm.private)(" private"))])([Hr(u.dat.isowner)(l),Gi(f.edit)(F)(h)])};return jt({initialState:$(t(n)),render:i,eval:Qt({handleQuery:Yn.handleQuery,receive:Yn.receive,initialize:Yn.initialize,finalize:Yn.finalize,handleAction:a})})};var Q2=M(Ae),j2=Pc()({reflectSymbol:function(){return"bookmark"}})(Tt),z2=pr(Fe),G2=function(){function n(e,t){this.value0=e,this.value1=t}return n.create=function(e){return function(t){return new n(e,t)}},n}(),Y2=function(){return he.value}(),U1=function(n){var e=function(a){return Do(Q2(function(u){return j2(Y2)(u.bid)(W1(u))(void 0)(G2.create(u.bid))})(a))},t=function(a){return z2(Hl(function(u){return u.bid!==a.value0}))};return jt({initialState:$(n),render:e,eval:Qt({handleQuery:Yn.handleQuery,receive:Yn.receive,initialize:Yn.initialize,finalize:Yn.finalize,handleAction:t})})};var Z2=Xp(Uo),X2=S(ar),nq=_n(Wr),eq=M(Ae);var k1=function(n){var e=function(p){return Il(1)(Z2(function(d){return[jr,P(d)]})(Vr(`-`)(p)))},t=function(p){return ic(p.created)},a=function(p){return{notes:p,cur:b.value,deleteAsk:!1,edit:!1}},u=function(p){return X2(void 0)},i=_a(void 0),f=function(p){return tu(i.userR)+("/notes/"+p)},l=function(p){var d=function(m){return xn([Ye(nq(m.id)),L("note w-100 mw7 pa1 mb2"+function(){return m.shared?"":" private"}())])([xn([L("display")])([Lr([Kr(f(m.slug)),L("link f5 lh-title")])([P(function(){var v=Jr(m.title);return v?"[no title]":m.title}())]),jr,xn([L("description mt1 mid-gray")])(e(ju(200)(m.text))),Lr([L("link f7 dib gray w4"),ur(Jn(m.created)(Re)(t(m))),Kr(f(m.slug))])([P(Jn("\xA0")(Ce)(t(m)))])])])};return Do(eq(d)(p.notes))};return jt({initialState:$(a(n)),render:l,eval:Qt({handleQuery:Yn.handleQuery,receive:Yn.receive,initialize:Yn.initialize,finalize:Yn.finalize,handleAction:u})})};var $1=_n(Wr),rq=S(ar),aq=Nu(Fe),q1=pr(Fe),To=J(Ot),mh=Au(Fe),Zu=ke($e)(Ot),oq=qn(mr),B1=rr(ya(ga)),nf=_c(Fe),Sr=Gn(qi(pt)),dh=fe(nt),uq=uT(Aa),iq=S(Ee),fq=Xp(Uo),cq=Pc()({reflectSymbol:function(){return"markdown"}})(Ef),Vm=Yr(Vu),V1=no(Sa),Ps=Yr(Bu),Jm=Lc(qu),J1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Q1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),j1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),z1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),lq=function(){function n(){}return n.value=new n,n}(),G1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),Y1=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),vh=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),gh=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),K1=function(){function n(){}return n.value=new n,n}(),ex=function(n){return Vt(function(e){return e.note})(function(e){return function(t){return{apiError:e.apiError,deleteAsk:e.deleteAsk,destroyed:e.destroyed,edit:e.edit,edit_note:e.edit_note,note:t}}})(n)},Z1=ex(mo),sq=ex(Ft),pq=function(){return he.value}(),tx=function(n){return Vt(function(e){return e.edit_note})(function(e){return function(t){return{apiError:e.apiError,deleteAsk:e.deleteAsk,destroyed:e.destroyed,edit:e.edit,note:e.note,edit_note:t}}})(n)},X1=tx(Ft),_q=tx(mo),mq=function(n){return Vt(function(e){return e.edit})(function(e){return function(t){return{apiError:e.apiError,deleteAsk:e.deleteAsk,destroyed:e.destroyed,edit_note:e.edit_note,note:e.note,edit:t}}})(n)},nx=mq(Ft),dq=function(n){return Vt(function(e){return e.apiError})(function(e){return function(t){return{deleteAsk:e.deleteAsk,destroyed:e.destroyed,edit:e.edit,edit_note:e.edit_note,note:e.note,apiError:t}}})(n)},Dh=dq(Ft),rx=function(n){var e=function(f){return $1(f.id)+"_text"},t=function(f){return{note:f,edit_note:f,deleteAsk:!1,edit:f.id<=0,destroyed:!1,apiError:b.value}},a=_a(void 0),u=function(f){if(f instanceof lq)return rq(void 0);if(f instanceof G1)return aq(X1)(function(){if(f.value0 instanceof J1)return function(l){return{id:l.id,slug:l.slug,text:l.text,length:l.length,isMarkdown:l.isMarkdown,shared:l.shared,created:l.created,updated:l.updated,title:f.value0.value0}};if(f.value0 instanceof Q1)return function(l){return{id:l.id,slug:l.slug,title:l.title,length:l.length,isMarkdown:l.isMarkdown,shared:l.shared,created:l.created,updated:l.updated,text:f.value0.value0}};if(f.value0 instanceof j1)return function(l){return{id:l.id,slug:l.slug,title:l.title,text:l.text,length:l.length,shared:l.shared,created:l.created,updated:l.updated,isMarkdown:f.value0.value0}};if(f.value0 instanceof z1)return function(l){return{id:l.id,slug:l.slug,title:l.title,text:l.text,length:l.length,isMarkdown:l.isMarkdown,created:l.created,updated:l.updated,shared:f.value0.value0}};throw new Error("Failed pattern match at Component.NNote (line 194, column 19 - line 198, column 36): "+[f.value0.constructor.name])}());if(f instanceof gh)return q1(function(l){var p={};for(var d in l)({}).hasOwnProperty.call(l,d)&&(p[d]=l[d]);return p.deleteAsk=f.value0,p});if(f instanceof K1)return To(mh(Z1))(function(l){return Zu(oq(B1(oC(l.id))))(function(){return q1(function(p){var d={};for(var m in p)({}).hasOwnProperty.call(p,m)&&(d[m]=p[m]);return d.destroyed=!0,d})})});if(f instanceof vh)return To(mh(Z1))(function(l){return Zu(nf(X1)(l))(function(){return Zu(nf(nx)(f.value0))(function(){return To(Sr(Es))(function(p){var d={e:f.value0,q:Ms(p)("next")};return!d.e&&d.q instanceof y&&d.q.value0==="closeWindow"?Sr(dh(fc)(tr)):Sr(uq(iq(f.value0))(b_(e(l))))})})})});if(f instanceof Y1)return Zu(Sr(eu(f.value0)))(function(){return To(mh(_q))(function(l){return Zu(nf(Dh)(b.value))(function(){return To(B1(aC(l)))(function(p){if(p instanceof z)return Zu(nf(Dh)(new y(lo(p.value0))))(function(){return Sr(ho(lo(p.value0)))});if(p instanceof Q&&p.value0.status>=200&&p.value0.status<300)return To(Sr(Es))(function(d){return To(Sr(Lm))(function(m){return To(Sr(w_(m)))(function(v){return To(Sr(Sc))(function(g){return To(Sr(Kl(g)))(function(h){var E=Ms(d)("next");if(E instanceof y&&E.value0==="closeWindow")return Sr(dh(fc)(tr));if(E instanceof y&&E.value0==="back")return Sr(function(){var W=Ur(ql(h)(v));return W?Iu(v)(g):Iu(h)(g)}());var F=l.id===0;return F?Sr(dh(Iu(tu(a.noteR)))(Sc)):Zu(nf(sq)(l))(function(){return nf(nx)(!1)})})})})})});if(p instanceof Q)return Zu(nf(Dh)(new y(p.value0.body)))(function(){return Sr(ho(p.value0.body))});throw new Error("Failed pattern match at Component.NNote (line 226, column 40 - line 249, column 36): "+[p.constructor.name])})})})});throw new Error("Failed pattern match at Component.NNote (line 189, column 3 - line 189, column 77): "+[f.constructor.name])},i=function(f){var l=function(E){return Il(1)(fq(function(F){return[jr,P(F)]})(Vr(`-`)(E)))},p=function(E){return ic(E.created)},d=function(E){return xn([Ye($1(f.note.id)),L("note w-100 mw7 pa1 mb2")])([xn([L("display")])([xn([L("link f5 lh-title")])([P(function(){var F=Jr(f.note.title);return F?"[no title]":f.note.title}())]),jr,function(){return f.note.isMarkdown?xn([L("description mt1")])([cq(pq)(void 0)(Um)(f.note.text)(mi)]):xn([L("description mt1 mid-gray")])(l(f.note.text))}(),xn([L("link f7 dib gray w4")])([vo([ur(Jn(f.note.created)(Re)(p(f.note)))])([P(Jn("\xA0")(Ce)(p(f.note)))]),P(" - "),vo([L("gray")])([P(function(){return f.note.shared?"public":"private"}())])])]),Hr(a.dat.isowner)(function(F){return xn([L("edit_links db mt3")])([we([Vm(Se.value),Te(function(W){return new vh(!0)}),L("edit light-silver hover-blue")])([P("edit\xA0\xA0")]),xn([L("delete_link di")])([we([Vm(Se.value),Te(function(W){return new gh(!0)}),L("delete light-silver hover-blue"+V1(f.deleteAsk)(" dn"))])([P("delete")]),vo([L("confirm red"+V1(!f.deleteAsk)(" dn"))])([we([Vm(Se.value),Te(function(W){return new gh(!1)})])([P("cancel\xA0/\xA0")]),we([Vm(Se.value),Te(function(W){return K1.value}),L("red")])([P("destroy")])])])])})])},m=function(E){return function(F){return G1.create(E(F))}},v=function(E){return Vi([L("red")])([P("you killed this note")])},g=function(E){return function(F){return xn([L("alert alert-err")])([P(E)])}},h=function(E){return Bi([wc(Y1.create)])([Hr(Ur(f.apiError))(g(Ne("")(f.apiError))),Vi([L("mt2 mb1")])([P("title:")]),Oe([Ps(_o.value),L("title w-100 mb1 pt1 edit_form_input"),tt("title"),Jm(f.edit_note.title),Gr(m(J1.create)),Ts(Jr(f.edit_note.title))]),jr,Vi([L("mt2 mb1")])([P("description:")]),Ji([Ye(e(f.edit_note)),L("description w-100 mb1 pt1 edit_form_input"),tt("text"),xc(25),Jm(f.edit_note.text),Gr(m(Q1.create))]),xn([L("edit_form_checkboxes mb3")])([Oe([Ps(_r.value),L("is-markdown pointer"),Ye("edit_ismarkdown"),tt("ismarkdown"),Zr(f.edit_note.isMarkdown),zr(m(j1.create))]),P(" "),Pt([zt("edit_ismarkdown"),L("mr2")])([P("use markdown?")]),jr]),xn([L("edit_form_checkboxes mb3")])([Oe([Ps(_r.value),L("is-markdown pointer"),Ye("edit_shared"),tt("shared"),Zr(f.edit_note.shared),zr(m(z1.create))]),P(" "),Pt([zt("edit_shared"),L("mr2")])([P("public?")]),jr]),Oe([Ps(Su.value),L("mr1 pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),Jm("save")]),P(" "),Oe([Ps(sc.value),L("pv1 ph2 dark-gray ba b--moon-gray bg-near-white pointer rdim"),Jm("cancel"),Te(function(F){return new vh(!1)})])])};return Gi(f.destroyed)(v)($(Gi(f.edit)(h)(d)))};return jt({initialState:$(t(n)),render:i,eval:Qt({handleQuery:Yn.handleQuery,receive:Yn.receive,initialize:Yn.initialize,finalize:Yn.finalize,handleAction:u})})};var gq=S(ar),Qm=J(Ot),ax=rr(ya(ga)),ox=pr(Fe),hh=Oa(Fe),Dq=ke($e)(Ot),hq=qn(mr),ef=gn(AE),yq=fn(cn),ux=_n(Tp),Tq=bv(lr),jm=M(Ae),bq=Mv(lr),Mq=yp(ut),Eq=Rb(Ll),Cq=mn(cr),Xu=Yr(Vu),Uc=no(Sa),Fq=lv(Tt)(Rt),wq=cv(Tt)(Rt),ix=function(){function n(){}return n.value=new n,n}(),zm=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),tf=function(){function n(e){this.value0=e}return n.create=function(e){return new n(e)},n}(),fx=function(n){var e=function(m){return function(v){return function(g){return function(h){return function(E){return function(F){return function(){var W=h-g<.01;return W?1:m(v-g)/m(h-g)}()*(F-E)+E}}}}}},t=function(m){return{mode:m,tagcloud:Ei}},a=function(m){return m instanceof da?gq(void 0):Qm(ax(tC(Mg(m))))(function(v){return ox(function(g){var h={};for(var E in g)({}).hasOwnProperty.call(g,E)&&(h[E]=g[E]);return h.mode=m,h.tagcloud=Ne(Ei)(v),h})})},u=function(m){if(m instanceof ix)return Qm(hh(function(v){return v.mode}))(function(v){return a(v)});if(m instanceof zm)return Dq(ox(function(v){var g={};for(var h in v)({}).hasOwnProperty.call(v,h)&&(g[h]=v[h]);return g.mode=Eg(v.mode)(m.value0),g}))(function(){return Qm(hh(function(v){return v.mode}))(function(v){return hq(ax(rC(Mg(v))))})});if(m instanceof tf)return Qm(hh(function(v){return v.mode}))(function(v){var g=ef(v)(m.value0);return g?u(new zm(!va(v))):a(Eg(m.value0)(!0))});throw new Error("Failed pattern match at Component.TagCloud (line 161, column 3 - line 161, column 69): "+[m.constructor.name])},i=_a(void 0),f=function(m){return tu(i.userR)+function(){var v=Jr(m);return v?"":"/t:"+m}()},l=function(m){return function(v){return function(g){return function(h){return function(E){var F=e(function(Rn){return jv(function(En){return 1+En}(Rn))})(Qo(E))(Qo(v))(Qo(g))(.6)(1),W=Nl(h),sn=e(yq)(Qo(E))(Qo(v))(Qo(g))(100)(150),wn=bs("style")("font-size:"+(ux(sn)+("%"+(";opacity:"+ux(F)))));return[Lr([Kr(f(Hc(h))),L("link tag mr1"),wn])([P(h)]),Hr(!Lb(m))(function(Rn){var En=Tq(W)(m);return En?Lr([Kr(f(Fu("+")(jm(Hc)(Sl(W)(m))))),L("link mr2 tag-include")])([P("\u2295")]):Lr([Kr(f(Fu("+")(jm(Hc)(bq(W)(m))))),L("link mr2 tag-exclude")])([P("\u2296")])})]}}}}},p=function(m){return function(v){return function(g){var h=jm(If(l(jm(Nl)(m))(v)(g))),E=hv(Mq(function(F){return Nl(Ce(F))}));return function(F){return kp(h(E(Eq(F))))}}}},d=function(m){if(m.mode instanceof da)return xn([L("tag_cloud")])([]);var v=new jo(va(m.mode),200),g=new Qr(va(m.mode),5),h=new Qr(va(m.mode),20),E=new Qr(va(m.mode),2),F=new Qr(va(m.mode),10),W=new Qr(va(m.mode),1);return xn([L("tag_cloud mv3")])([xn([L("tag_cloud_header mb2")])(Cq(pw(RE(m.mode))(function(sn){return[we([Xu(Se.value),L("pa1 f7 link hover-blue mr1 b"),Te(function(wn){return new zm(!va(m.mode))})])([P("Related Tags")])]})(function(sn){return[we([Xu(Se.value),L("pa1 f7 link hover-blue mr1"+Uc(ef(m.mode)(v))(" b")),ur("show a cloud of your most-used tags"),Te(function(wn){return new tf(v)})])([P("Top Tags")]),we([Xu(Se.value),L("pa1 f7 link hover-blue ml2 "+Uc(ef(m.mode)(W))(" b")),ur("show all tags"),Te(function(wn){return new tf(W)})])([P("all")]),P("\u2027"),we([Xu(Se.value),L("pa1 f7 link hover-blue"+Uc(ef(m.mode)(E))(" b")),ur("show tags with at least 2 bookmarks"),Te(function(wn){return new tf(E)})])([P("2")]),P("\u2027"),we([Xu(Se.value),L("pa1 f7 link hover-blue"+Uc(ef(m.mode)(g))(" b")),ur("show tags with at least 5 bookmarks"),Te(function(wn){return new tf(g)})])([P("5")]),P("\u2027"),we([Xu(Se.value),L("pa1 f7 link hover-blue"+Uc(ef(m.mode)(F))(" b")),ur("show tags with at least 10 bookmarks"),Te(function(wn){return new tf(F)})])([P("10")]),P("\u2027"),we([Xu(Se.value),L("pa1 f7 link hover-blue"+Uc(ef(m.mode)(h))(" b")),ur("show tags with at least 20 bookmarks"),Te(function(wn){return new tf(h)})])([P("20")])]}))([we([Xu(Se.value),L("pa1 ml2 f7 link silver hover-blue "),Te(function(sn){return new zm(!va(m.mode))})])([P(function(){var sn=va(m.mode);return sn?"hide":"show"}())])])),Hr(va(m.mode))(function(sn){var wn=Ne(1)(Fq(xv(m.tagcloud))),Rn=Ne(1)(wq(xv(m.tagcloud)));return xn([L("tag_cloud_body")])(function(){return m.mode instanceof da?[]:m.mode instanceof po?p(m.mode.value1)(wn)(Rn)(m.tagcloud):p([])(wn)(Rn)(m.tagcloud)}())})])};return jt({initialState:$(t(n)),render:d,eval:Qt({handleQuery:Yn.handleQuery,receive:Yn.receive,finalize:Yn.finalize,handleAction:u,initialize:new y(ix.value)})})};var Lq=J(Ct),Hq=Gn(pt),Iq=fe(nt),Sq=Du(nt),Aq=S(er),Nq=fe(At),Rq=S(Ee);var ni=function(n){return Lq(Hq(Iq(Sq(function(){var e=fD(n);return function(t){return e(WE(t))}}())(Oi))(tr)))(function(e){return Aq(Nq(Gl)(e))})},rf=m_(st(yu)($(Rq(void 0))));var Gm={suspend:HM,fork:s_,join:Ul,Monad0:function(){return Kf},Functor1:function(){return RM}};var Ym=function(n){return n.fork};var lx=x,qa=x,sx=function(n){var e=et(n)(gt);return function(t){return qa(function(a){return e(t)(a.rendering)})}},Pq=x,px=function(n){return function(e){return qa(function(t){return Pq(e(t.rendering))})}},Wq=x,Km=function(n){return function(e){return n(e)}},_x=function(n){return function(e){return function(t){return function(a){return function(){var i=qe({})(),f=qe(vc)(),l=qe(vc)(),p=qe(t)(),d=qe(new y(Sn.value))(),m=qe(new y(Sn.value))(),v=qe(b.value)(),g=qe(1)(),h=qe(new y(Yo))(),E=qe(Yo)(),F={component:n,state:n.initialState(e),refs:Yo,children:vc,childrenIn:f,childrenOut:l,selfRef:i,handlerRef:p,pendingQueries:d,pendingOuts:m,pendingHandlers:v,rendering:b.value,fresh:g,subscriptions:h,forks:E,lifecycleHandlers:a};return ve(F)(i)(),Wq(i)}}}}};var Uq=et(Ee)(gt),kq=fe(At),$q=mc(LD),rt=J(Ct),be=Gn(pt),qq=ke($e),Ba=qq(Ct),hx=et(er),Bq=hx(fo),yx=Ym(Gm),Vq=Gf(xu)(Ii)(fo),bo=S(er),Jq=M(Og),mx=wu(xu),Qq=M(pa),dx=zf(xu),jq=M(ie),zq=dc(LD),Gq=yF(Ii),Yq=OC(Tm),Kq=iT(Aa),Zq=dc(Tm),vx=hx(gt),gx=mc(Tm),Xq=mc(ut),nB=OF(OM),eB=PC(ut),tB=function(n){return function(e){return function(){var a=hn(e)(),u=hn(a.subscriptions)();return Uq(pm)(kq($q(n))(u))()}}},Zm=function(n){return function(e){return rt(be(hn(n)))(function(t){if(t instanceof b)return e;if(t instanceof y)return be(ve(new y(new In(e,t.value0)))(n));throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 188, column 33 - line 190, column 57): "+[t.constructor.name])})}},Xm=function(n){return function(e){return Ba(be(ve({initializers:Sn.value,finalizers:Sn.value})(n)))(function(){return rt(be(e))(function(t){return rt(be(hn(n)))(function(a){return Ba(Bq(yx)(a.finalizers))(function(){return Ba(Vq(a.initializers))(function(){return bo(t)})})})})})}},af=m_(st(yu)($(S(Ee)(void 0)))),Dx=function(n){return function(e){return rt(be(hn(e)))(function(t){return be(zd(function(a){return{state:a+1|0,value:n(a)}})(t.fresh))})}},Th=function(n){return function(e){return function(t){return rt(be(hn(e)))(function(a){return ei(n)(e)(a.component.eval(new Fc(Jq(y.create)(IC(t)),$(b.value))))})}}},ei=function(n){return function(e){return function(t){var a=function(i){return function(f){return rt(be(hn(i)))(function(l){return WF(function(p){var d=function(m){return mx(rt(be(hn(m)))(function(v){return qa(function(g){return Th(n)(g.selfRef)(p.value1)})(v)}))};return Qq(p.value2)(dx(p.value0(Ii)(d)(l.children)))})(f)})}},u=function(i){return function(f){if(f instanceof _s)return rt(be(hn(i)))(function(l){var p=f.value0(l.state);if(yc(l.state)(p.value1))return bo(p.value0);if(ct)return Ba(be(ve({component:l.component,refs:l.refs,children:l.children,childrenIn:l.childrenIn,childrenOut:l.childrenOut,selfRef:l.selfRef,handlerRef:l.handlerRef,pendingQueries:l.pendingQueries,pendingOuts:l.pendingOuts,pendingHandlers:l.pendingHandlers,rendering:l.rendering,fresh:l.fresh,subscriptions:l.subscriptions,forks:l.forks,lifecycleHandlers:l.lifecycleHandlers,state:p.value1})(i)))(function(){return Ba(Xm(l.lifecycleHandlers)(n(l.lifecycleHandlers)(i)))(function(){return bo(p.value0)})});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 86, column 7 - line 92, column 21): "+[p.constructor.name])});if(f instanceof _m)return rt(Dx(BF)(i))(function(l){return rt(be(kF(f.value0(l))(function(p){return af(bh(n)(i)(new Ru(p)))})))(function(p){return rt(be(hn(i)))(function(d){return Ba(be(kr(jq(zq(l)(p)))(d.subscriptions)))(function(){return bo(f.value1(l))})})})});if(f instanceof mm)return Ba(be(tB(f.value0)(i)))(function(){return bo(f.value1)});if(f instanceof Tc)return f.value0;if(f instanceof dm)return a(i)(f.value0);if(f instanceof ms)return rt(be(hn(i)))(function(l){return rt(be(hn(l.handlerRef)))(function(p){return Ba(Zm(l.pendingOuts)(p(f.value0)))(function(){return bo(f.value1)})})});if(f instanceof vm)return dx(Gq(bD(function(){var l=ei(n)(i);return function(p){return mx(l(p))}}())(f.value0)));if(f instanceof gm)return rt(Dx(VF)(i))(function(l){return rt(be(hn(i)))(function(p){return rt(be(qe(!1)))(function(d){return rt(yx(NM(be(function(){return kr(Yq(l))(p.forks)(),ve(!0)(d)()}))(ei(n)(i)(f.value0))))(function(m){return Ba(be(Kq(hn(d))(kr(Zq(l)(m))(p.forks))))(function(){return bo(f.value1(l))})})})})});if(f instanceof Dm)return rt(be(hn(i)))(function(l){return rt(be(hn(l.forks)))(function(p){return Ba(vx(Ul)(gx(f.value0)(p)))(function(){return bo(f.value1)})})});if(f instanceof hm)return rt(be(hn(i)))(function(l){return rt(be(hn(l.forks)))(function(p){return Ba(vx(kl(eo("Cancelled")))(gx(f.value0)(p)))(function(){return bo(f.value1)})})});if(f instanceof ds)return rt(be(hn(i)))(function(l){return bo(f.value1(Xq(f.value0)(l.refs)))});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 83, column 12 - line 139, column 33): "+[f.constructor.name])}};return nB(u(e))(t)}}},bh=function(n){return function(e){return function(t){if(t instanceof J_)return be(ee(kr)(e)(Km(function(a){return{component:a.component,state:a.state,children:a.children,childrenIn:a.childrenIn,childrenOut:a.childrenOut,selfRef:a.selfRef,handlerRef:a.handlerRef,pendingQueries:a.pendingQueries,pendingOuts:a.pendingOuts,pendingHandlers:a.pendingHandlers,rendering:a.rendering,fresh:a.fresh,subscriptions:a.subscriptions,forks:a.forks,lifecycleHandlers:a.lifecycleHandlers,refs:eB($(t.value1))(t.value0)(a.refs)}})));if(t instanceof Ru)return rt(be(hn(e)))(function(a){return ei(n)(e)(a.component.eval(new Cc(t.value0,void 0)))});throw new Error("Failed pattern match at Halogen.Aff.Driver.Eval (line 52, column 20 - line 58, column 62): "+[t.constructor.name])}}};var aB=J(nt),oB=ke($e),wx=wi(Ee)(gt),xx=et(er)(fo),Lx=Ym(Gm),Us=fe(nt),Hx=et(Ee),Ix=Hx(gt),Tx=Hx(q_),bx=oB(Ct),uB=Gf(xu)(Ii)(fo),Ws=Gn(pt),Mx=S(Ee),Mh=M(On),Eh=S(er),Ch=aa(Ee),iB=px(On),fB=qn(pa),Ex=$C(Ee),cB=sx(Ee),lB=ia(bT),sB=al(On),Fh=J(Ct),pB=Gn(Af),Cx=function(){return qe({initializers:Sn.value,finalizers:Sn.value})}(),Fx=function(n){return function(){var t=hn(n)();return ve(b.value)(n)(),wx(t)(function(){var a=xx(Lx);return function(u){return af(a(Li(u)))}}())()}},_B=function(n){return function(){return Us(Ix(Tx(pm)))(hn(n.subscriptions))(),ve(b.value)(n.subscriptions)(),Us(Tx(function(){var t=kl(eo("finalized"));return function(a){return af(t(a))}}()))(hn(n.forks))(),ve(Yo)(n.forks)()}},Sx=function(n){return function(e){return function(t){var a=function(m){return function(v){return qa(function(g){var h=ei(f)(g.selfRef)(g.component.eval(new bc(void 0)));return kr(function(E){return{initializers:new In(bx(uB(Li(E.initializers)))(function(){return bx(h)(function(){return Ws(function(){return Fx(g.pendingQueries)(),Fx(g.pendingOuts)()})})}),v),finalizers:E.finalizers}})(m)})}},u=function(m){return function(v){return function(g){return ND(function(h){return function(){var F=Cx(),W=_x(h)(g)(v)(F)(),sn=hn(m)();return ve({initializers:Sn.value,finalizers:sn.finalizers})(m)(),Us(qa(function(){var wn=f(m);return function(Rn){return wn(function(En){return En.selfRef}(Rn))}}()))(hn(W))(),Us(a(m)(sn.initializers))(hn(W))(),W}})}}},i=function(m){return function(v){return function(g){return function(h){return AD(function(E){return function(){var W=Mh(E.pop)(hn(g))(),sn=function(){if(W instanceof y){ve(W.value0.value1)(g)();var Rn=hn(W.value0.value0)();return qa(function(En){return function(){return ee(ve)(En.handlerRef)(function(){var re=Jn(Eh(void 0))(v);return function(An){return re(E.output(An))}}())(),af(ei(f)(En.selfRef)(En.component.eval(new Ec(E.input,void 0))))()}})(Rn)(),W.value0.value0}if(W instanceof b)return u(m)(function(){var En=Jn(Eh(void 0))(v);return function(U){return En(E.output(U))}}())(E.input)(E.component)();throw new Error("Failed pattern match at Halogen.Aff.Driver (line 213, column 14 - line 222, column 98): "+[W.constructor.name])}(),wn=Mh(function(Rn){return Ur(E.get(Rn))})(hn(h))();return Ch(wn)(Cs("Halogen: Duplicate slot address was detected during rendering, unexpected results may occur"))(),kr(E.set(sn))(h)(),aB(hn(sn))(iB(function(Rn){if(Rn instanceof b)return vT("Halogen internal error: child was not initialized in renderChild");if(Rn instanceof y)return Mx(n.renderChild(Rn.value0));throw new Error("Failed pattern match at Halogen.Aff.Driver (line 227, column 37 - line 229, column 50): "+[Rn.constructor.name])}))()}})}}}},f=function(m){return function(v){return function(){var h=hn(v)(),E=Mh(Wo)(hn(h.pendingHandlers))();Ch(E)(ve(new y(Sn.value))(h.pendingHandlers))(),ve(vc)(h.childrenOut)(),ve(h.children)(h.childrenIn)();var F=function(){var En=Zm(h.pendingHandlers),U=bh(f)(h.selfRef);return function(re){return En(fB(U(re)))}}(),W=function(){var En=Zm(h.pendingQueries);return function(U){return En(F(Ru.create(U)))}}(),sn=n.render(function(En){return af(F(En))})(i(m)(W)(h.childrenIn)(h.childrenOut))(h.component.render(h.state))(h.rendering)(),wn=hn(h.childrenOut)(),Rn=hn(h.childrenIn)();return Ex(Rn)(function(En){return function(){var re=hn(En)();return cB(n.removeChild)(re)(),l(m)(re)()}})(),ee(kr)(h.selfRef)(Km(function(En){return{component:En.component,state:En.state,refs:En.refs,childrenIn:En.childrenIn,childrenOut:En.childrenOut,selfRef:En.selfRef,handlerRef:En.handlerRef,pendingQueries:En.pendingQueries,pendingOuts:En.pendingOuts,pendingHandlers:En.pendingHandlers,fresh:En.fresh,subscriptions:En.subscriptions,forks:En.forks,lifecycleHandlers:En.lifecycleHandlers,rendering:new y(sn),children:wn}}))(),Ch(E)(ee(lB)(void 0)(function(En){return function(){var re=hn(h.pendingHandlers)();ve(new y(Sn.value))(h.pendingHandlers)(),Ix(function(){var vr=xx(Lx);return function(Ta){return af(vr(Li(Ta)))}}())(re)();var An=hn(h.pendingHandlers)(),wt=Jn(!1)(oM)(An);return wt?sB(ve(b.value)(h.pendingHandlers))(new Nt(void 0))():new qt(void 0)}}))()}}},l=function(m){return qa(function(v){return function(){_B(v)();var h=ei(f)(v.selfRef)(v.component.eval(new Mc(void 0)));return kr(function(E){return{initializers:E.initializers,finalizers:new In(h,E.finalizers)}})(m)(),Ex(v.children)(function(E){return function(){var W=hn(E)();return l(m)(W)()}})()}})},p=function(m){return function(v){return function(g){return Fh(Ws(hn(m)))(function(h){return h?Eh(b.value):Th(f)(v)(g)})}}},d=function(m){return function(v){return function(g){return Xm(v)(function(){var E=hn(m)();return E?void 0:(ve(!0)(m)(),l(v)(g)(),qa(function(F){return function(){var sn=pB(hn(F.selfRef))();return wx(sn.rendering)(n.dispose)()}})(g)())})}}};return Fh(Ws(Cx))(function(m){return Fh(Ws(qe(!1)))(function(v){return Xm(m)(function(){var h=qF(),E=Us(hn)(u(m)(function(){var F=$F(h.listener);return function(W){return Ws(F(W))}}())(t)(e))();return qa(function(F){return Mx({query:p(v)(F.selfRef),messages:h.emitter,dispose:d(v)(m)(E)})})(E)()})})})}}};var Va=function(n){return function(e){return function(){return e[n]}}};var dB=Va("baseURI"),vB=Va("ownerDocument"),Ax=Va("parentNode"),gB=Va("parentElement");var DB=Va("childNodes"),hB=Va("firstChild"),yB=Va("lastChild"),TB=Va("previousSibling"),Nx=Va("nextSibling"),bB=Va("nodeValue");var MB=Va("textContent");function wh(n){return function(e){return function(t){return function(){t.insertBefore(n,e)}}}}function nd(n){return function(e){return function(){e.appendChild(n)}}}function xh(n){return function(e){return function(){e.removeChild(n)}}}var Rx=M(On);var Lh=function(){var n=Rx(Xn);return function(e){return n(Ax(e))}}();var Ox=function(){var n=Rx(Xn);return function(e){return n(Nx(e))}}();var Hh=function(n,e,t){var a=0,u;return function(i){if(a===2)return u;if(a===1)throw new ReferenceError(n+" was needed before it finished initializing (module "+e+", line "+i+")",e,i);return a=1,u=t(),a=2,u}},Ih=qn(On),xB=S(Ee),LB=et(Ee)(gt),HB=kt(),IB=aa(Ee),SB=Mu(Kd(Kd(ro))),AB=fn(cn),NB=J(Ct),RB=Gn(pt),OB=M(On),PB=fe(nt);var WB=function(n){return function(e){return function(t){return e instanceof y&&t instanceof y?Ih(wh(n)(e.value0)(t.value0)):e instanceof b&&t instanceof y?Ih(nd(n)(t.value0)):xB(void 0)}}},Px=function(n){return function(){var t=Lh(n.node)();return LB(function(a){return xh(n.node)(a)})(t)()}},UB=function(n){return function(e){return function(t){var a=lx(function(l){return l.node}),u=function(l){return l instanceof y?xr(l.value0):void 0},i=function(l){var p=jF(HB)(l),d=Hh("patch","Halogen.VDom.Driver",function(){return function(F,W){if(F instanceof y){if(W instanceof gs)return xr(F.value0),v(100)(W.value0);if(W instanceof Em){var sn=wr(F.value0,W.value0);return Ge(new ze(Jt(sn),new y(sn),d(103),u))}throw new Error("Failed pattern match at Halogen.VDom.Driver (line 97, column 22 - line 103, column 79): "+[W.constructor.name])}return m(104)(W)}}),m=Hh("render","Halogen.VDom.Driver",function(){return function(F){if(F instanceof gs)return v(86)(F.value0);if(F instanceof Em){var W=p(F.value0);return Ge(new ze(Jt(W),new y(W),d(89),u))}throw new Error("Failed pattern match at Halogen.VDom.Driver (line 84, column 7 - line 89, column 75): "+[F.constructor.name])}}),v=Hh("renderComponentSlot","Halogen.VDom.Driver",function(){return function(F){var W=hn(e)(),sn=W(F)(),wn=a(sn);return Ge(new ze(wn,b.value,d(117),u))}}),g=d(91),h=m(82),E=v(109);return h},f=rF(n);return{buildWidget:i,buildAttributes:f,document:t}}}},kB=function(n){return function(e){var t=function(a){return function(u){return function(i){return function(f){if(f instanceof b)return function(){var p=qe(u)(),d=UB(a)(p)(n),m=ls(d)(i),v=Jt(m);return Ih(nd(v)(kE(e)))(),{machine:m,node:v,renderChildRef:p}};if(f instanceof y)return function(){ve(u)(f.value0.renderChildRef)();var p=Lh(f.value0.node)(),d=Ox(f.value0.node)(),m=wr(f.value0.machine,i),v=Jt(m);return IB(SB(yc)(f.value0.node)(v))(WB(v)(d)(p))(),{machine:m,node:v,renderChildRef:f.value0.renderChildRef}};throw new Error("Failed pattern match at Halogen.VDom.Driver (line 157, column 5 - line 173, column 80): "+[f.constructor.name])}}}};return{render:t,renderChild:AB,removeChild:Px,dispose:Px}}},of=function(n){return function(e){return function(t){return NB(RB(OB(Fg)(PB(Oi)(tr))))(function(a){return Sx(kB(a)(t))(n)(e)})}}};var uf=J(Ct),ff=et(er)(gt),qB=Gn(pt),kc=qn(pa),ks=ke($e)(Ct),BB=fe(nt),VB=qn(On),$c=uf(ni("#content"))(ff(function(n){return qB(iD("view-rendered")("")($E(n)))})),JB=function(n){return function(e){return rf(uf(ni(n))(ff(function(t){return kc(of(fx(NE(e)))(void 0)(t))})))}},QB=function(n){return function(e){return rf(uf(ni(n))(ff(function(t){return ks(kc(of(k1(e))(void 0)(t)))(function(){return $c})})))}},jB=function(n){return function(e){return rf(uf(ni(n))(ff(function(t){return ks(kc(of(rx(e))(void 0)(t)))(function(){return $c})})))}},zB=function(n){return function(e){return rf(uf(ni(n))(ff(function(t){return ks(kc(of(U1(e))(void 0)(t)))(function(){return $c})})))}},GB=function(n){return function(e){return rf(uf(ni(n))(ff(function(t){return ks(kc(of(Qw(e))(void 0)(t)))(function(){return $c})})))}},YB=function(n){return function(e){return rf(uf(ni(n))(ff(function(t){return ks(kc(of(Mw(e))(void 0)(t)))(function(){return $c})})))}},KB=function(n){return BB(function(e){return VB(qv(YE(e)))})(eu(n))};return AI(ZB);})();-/*! Bundled license information:--moment/moment.js:-  (*! moment.js *)-  (*! version : 2.30.1 *)-  (*! authors : Tim Wood, Iskren Chernev, Moment.js contributors *)-  (*! license : MIT *)-  (*! momentjs.com *)--dompurify/dist/purify.js:-  (*! @license DOMPurify 3.0.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.8/LICENSE *)-*/-//# sourceMappingURL=app.min.js.map
− static/js/app.min.js.gz

binary file changed (79157 → absent bytes)

− static/js/app.min.js.map

file too large to diff

− static/js/app.min.js.map.gz

binary file changed (380451 → absent bytes)

− static/js/html5shiv.min.js
@@ -1,4 +0,0 @@-/**-* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed-*/-!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
− static/js/html5shiv.min.js.gz

binary file changed (1365 → absent bytes)

+ static/js/manifest.json view
@@ -0,0 +1,1 @@+{"appBundle":"app-OTQLPXA7.min.js"}
templates/change-password.hamlet view
@@ -15,4 +15,4 @@           <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 class="ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt3 dim" type="submit" value="Save Changes">+        <input class="ph3 pv2 input-reset black ba b--navy bg-transparent pointer f6 dib mt3 dim" type="submit" value="Save Changes">
templates/default-layout-wrapper.hamlet view
@@ -17,10 +17,6 @@      ^{pageHead pc} -    \<!--[if lt IE 9]>-    \<script src="@{StaticR js_html5shiv_min_js}"></script>-    \<![endif]-->-     <script>document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, 'js');     <script src="@{StaticR js_js_cookie_2_2_0_min_js}">     <script>@@ -36,3 +32,7 @@         };   <body .f6.dark-gray.helvetica>     ^{pageBody pc}++  <script type="module">+    import { logoutE } from '@{StaticR (StaticRoute ["js", frontendBundleName] [])}';+    Array.from(document.getElementsByClassName('logout-btn')).forEach(_ => _.addEventListener('click', (e) => logoutE(e)()));
templates/default-layout.hamlet view
@@ -18,7 +18,7 @@           <a .link href="@{AddNoteViewR (UserNameP userName)}">add note&nbsp;&nbsp;           <a .link href="@{NotesR (UserNameP userName)}">notes&nbsp;&nbsp;           <a .link href="@{AccountSettingsR}">settings&nbsp;&nbsp;-          <a .link onclick="PS.logoutE(event)()" href="@{AuthR LogoutR}">+          <a .link.logout-btn href="@{AuthR LogoutR}">               log out         $nothing           <a .link href="@{AuthR LoginR}">
templates/login.hamlet view
@@ -14,7 +14,7 @@         <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 class="ph3 pv2 input-reset ba b--navy bg-transparent pointer f6 dib mt3 dim" type="submit" value="Log In">++        <input class="ph3 pv2 input-reset black ba b--navy bg-transparent pointer f6 dib mt3 dim" type="submit" value="Log In">  <script> document.body.classList.add("bg-near-white");
templates/popup-layout.hamlet view
@@ -5,7 +5,7 @@       - (#{userName})   <div .fr>     $maybe userName <- musername-      <a .link onclick="PS.logoutE(event)()" href="@{AuthR LogoutR}">+      <a .link.logout-btn href="@{AuthR LogoutR}">         [log out]     $nothing       <a .link href="@{AuthR LoginR}">