{"version":3,"sources":["../../src/lib/InteractionOptionResolver.ts","../../src/lib/limits.ts","../../src/lib/regexes.ts","../../src/lib/TwemojiRegex.ts"],"names":["ApplicationCommandOptionType","InteractionType","ApplicationCommandType","option"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n\tApplicationCommandOptionType,\n\tApplicationCommandType,\n\tInteractionType,\n\ttype APIApplicationCommandAutocompleteInteraction,\n\ttype APIApplicationCommandInteraction,\n\ttype APIApplicationCommandInteractionDataBasicOption,\n\ttype APIApplicationCommandInteractionDataIntegerOption,\n\ttype APIApplicationCommandInteractionDataNumberOption,\n\ttype APIApplicationCommandInteractionDataOption,\n\ttype APIApplicationCommandInteractionDataStringOption,\n\ttype APIAttachment,\n\ttype APIInteractionDataResolved,\n\ttype APIInteractionDataResolvedChannel,\n\ttype APIInteractionDataResolvedGuildMember,\n\ttype APIMessage,\n\ttype APIMessageApplicationCommandInteractionDataResolved,\n\ttype APIModalSubmitInteraction,\n\ttype APIRole,\n\ttype APIUser,\n\ttype APIUserInteractionDataResolved\n} from 'discord-api-types/v10';\n\n/**\n * Utility class for resolving command interaction options while working with the raw API.\n * Based on {@linkplain https://github.com/discordjs/discord.js/blob/main/packages/discord.js/src/structures/CommandInteractionOptionResolver.js}\n */\nexport class InteractionOptionResolver {\n\tprivate readonly interaction: APIApplicationCommandInteraction | APIApplicationCommandAutocompleteInteraction | APIModalSubmitInteraction;\n\n\t/**\n\t * The interaction options array\n\t */\n\tprivate readonly data: APIApplicationCommandInteractionDataOption[] | null = null;\n\n\t/**\n\t * The interaction resolved data\n\t */\n\tprivate readonly resolved:\n\t\t| APIInteractionDataResolved\n\t\t| APIUserInteractionDataResolved\n\t\t| APIMessageApplicationCommandInteractionDataResolved\n\t\t| null = null;\n\n\t/**\n\t * Bottom-level options for the interaction\n\t * If there is a subcommand (or subcommand and group), this represents the options for the subcommand.\n\t */\n\tprivate readonly hoistedOptions: APIApplicationCommandInteractionDataOption[] | null = null;\n\n\t/**\n\t * The name of the subcommand group\n\t */\n\tprivate readonly group: string | null = null;\n\n\t/**\n\t * The name of the subcommand\n\t */\n\tprivate readonly subcommand: string | null = null;\n\n\tpublic constructor(interaction: APIApplicationCommandInteraction | APIApplicationCommandAutocompleteInteraction | APIModalSubmitInteraction) {\n\t\tthis.interaction = interaction;\n\n\t\tthis.data = 'options' in interaction.data ? (interaction.data.options ?? null) : null;\n\n\t\tthis.resolved = 'resolved' in interaction.data ? (interaction.data.resolved ?? null) : null;\n\n\t\tthis.hoistedOptions = this.data;\n\n\t\t// Hoist subcommand group if present\n\t\tif (this.hoistedOptions?.[0]?.type === ApplicationCommandOptionType.SubcommandGroup) {\n\t\t\tthis.group = this.hoistedOptions[0].name;\n\t\t\tthis.hoistedOptions = this.hoistedOptions[0].options ?? [];\n\t\t}\n\n\t\t// Hoist subcommand if present\n\t\tif (this.hoistedOptions?.[0]?.type === ApplicationCommandOptionType.Subcommand) {\n\t\t\tthis.subcommand = this.hoistedOptions[0].name;\n\t\t\tthis.hoistedOptions = this.hoistedOptions[0].options ?? [];\n\t\t}\n\t}\n\n\t/**\n\t * Gets an option by its name\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic get<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIApplicationCommandInteractionDataOption>;\n\n\tpublic get(name: string, required = false): APIApplicationCommandInteractionDataOption | null {\n\t\tconst option = this.hoistedOptions?.find((opt) => opt.name === name);\n\t\tif (!option) {\n\t\t\tif (required) {\n\t\t\t\tthrow new Error(`Missing required option \"${name}\"`);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\treturn option;\n\t}\n\n\t/**\n\t * Gets the selected subcommand\n\t * @param required Whether to throw an error if there is no subcommand\n\t */\n\tpublic getSubcommand<Required extends boolean = false>(required?: Required): RequiredIf<Required, string>;\n\tpublic getSubcommand(required = true): string | null {\n\t\tif (required && !this.subcommand) {\n\t\t\tthrow new Error('A subcommand was not selected');\n\t\t}\n\n\t\treturn this.subcommand;\n\t}\n\n\t/**\n\t * Gets the selected subcommand group\n\t * @param required Whether to throw an error if there is no subcommand group\n\t */\n\tpublic getSubcommandGroup<Required extends boolean = false>(required?: Required): RequiredIf<Required, string>;\n\tpublic getSubcommandGroup(required = true): string | null {\n\t\tif (required && !this.group) {\n\t\t\tthrow new Error('A subcommand group was not selected');\n\t\t}\n\n\t\treturn this.group;\n\t}\n\n\t/**\n\t * Gets a boolean option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getBoolean<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, boolean>;\n\tpublic getBoolean(name: string, required = false): boolean | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Boolean, required);\n\t\treturn option?.value ?? null;\n\t}\n\n\t/**\n\t * Gets a channel option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getChannel<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIInteractionDataResolvedChannel>;\n\n\tpublic getChannel(name: string, required = false): APIInteractionDataResolvedChannel | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Channel, required);\n\t\treturn option && this.resolved && 'channels' in this.resolved ? (this.resolved.channels?.[option.value] ?? null) : null;\n\t}\n\n\t/**\n\t * Gets a string option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getString<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, string>;\n\tpublic getString(name: string, required = false): string | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.String, required);\n\t\treturn option?.value ?? null;\n\t}\n\n\t/**\n\t * Gets an integer option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getInteger<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, number>;\n\tpublic getInteger(name: string, required = false): number | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Integer, required);\n\t\treturn option?.value ?? null;\n\t}\n\n\t/**\n\t * Gets a number option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getNumber<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, number>;\n\tpublic getNumber(name: string, required = false): number | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Number, required);\n\t\treturn option?.value ?? null;\n\t}\n\n\t/**\n\t * Gets a user option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getUser<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIUser>;\n\tpublic getUser(name: string, required = false): APIUser | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.User, required);\n\t\treturn option && this.resolved && 'users' in this.resolved ? (this.resolved.users?.[option.value] ?? null) : null;\n\t}\n\n\t/**\n\t * Gets a member option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getMember<Required extends boolean = false>(\n\t\tname: string,\n\t\trequired?: Required\n\t): RequiredIf<Required, APIInteractionDataResolvedGuildMember>;\n\n\tpublic getMember(name: string, required = false): APIInteractionDataResolvedGuildMember | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.User, required);\n\t\treturn option && this.resolved && 'members' in this.resolved ? (this.resolved.members?.[option.value] ?? null) : null;\n\t}\n\n\t/**\n\t * Gets a role option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getRole<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIRole>;\n\tpublic getRole(name: string, required = false): APIRole | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Role, required);\n\t\treturn option && this.resolved && 'roles' in this.resolved ? (this.resolved.roles?.[option.value] ?? null) : null;\n\t}\n\n\t/**\n\t * Gets an attachment option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getAttachment<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIAttachment>;\n\tpublic getAttachment(name: string, required = false): APIAttachment | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Attachment, required);\n\t\treturn option && this.resolved && 'attachments' in this.resolved ? (this.resolved.attachments?.[option.value] ?? null) : null;\n\t}\n\n\t/**\n\t * Gets a mentionable option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getMentionable<Required extends boolean = false>(\n\t\tname: string,\n\t\trequired?: Required\n\t): RequiredIf<Required, APIUser | APIInteractionDataResolvedGuildMember | APIRole>;\n\n\tpublic getMentionable(name: string, required = false): APIUser | APIInteractionDataResolvedGuildMember | APIRole | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Mentionable, required);\n\n\t\tif (!option || !this.resolved) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ('members' in this.resolved && this.resolved.members && option.value in this.resolved.members) {\n\t\t\treturn this.resolved.members[option.value] ?? null;\n\t\t}\n\n\t\tif ('users' in this.resolved && this.resolved.users && option.value in this.resolved.users) {\n\t\t\treturn this.resolved.users[option.value] ?? null;\n\t\t}\n\n\t\tif ('roles' in this.resolved && this.resolved.roles && option.value in this.resolved.roles) {\n\t\t\treturn this.resolved.roles[option.value] ?? null;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Gets the target user for a context menu interaction\n\t */\n\tpublic getTargetUser(): APIUser {\n\t\tif (this.interaction.type !== InteractionType.ApplicationCommand || this.interaction.data.type !== ApplicationCommandType.User) {\n\t\t\tthrow new Error('This method can only be used on user context menu interactions');\n\t\t}\n\n\t\treturn (this.resolved as APIUserInteractionDataResolved).users[this.interaction.data.target_id];\n\t}\n\n\t/**\n\t * Gets the target member for a context menu interaction\n\t * @param required Whether to throw an error if the member data is not present\n\t */\n\tpublic getTargetMember<Required extends boolean = false>(required?: Required): RequiredIf<Required, APIInteractionDataResolvedGuildMember>;\n\tpublic getTargetMember(required = false): APIInteractionDataResolvedGuildMember | null {\n\t\tif (this.interaction.type !== InteractionType.ApplicationCommand || this.interaction.data.type !== ApplicationCommandType.User) {\n\t\t\tthrow new Error('This method can only be used on user context menu interactions');\n\t\t}\n\n\t\tconst member = (this.resolved as APIUserInteractionDataResolved).members?.[this.interaction.data.target_id] ?? null;\n\n\t\tif (!member && required) {\n\t\t\tthrow new Error('Member data is not present');\n\t\t}\n\n\t\treturn member;\n\t}\n\n\t/**\n\t * Gets the target message for a context menu interaction\n\t */\n\tpublic getTargetMessage(): APIMessage {\n\t\tif (this.interaction.type !== InteractionType.ApplicationCommand || this.interaction.data.type !== ApplicationCommandType.Message) {\n\t\t\tthrow new Error('This method can only be used on message context menu interactions');\n\t\t}\n\n\t\treturn (this.resolved as APIMessageApplicationCommandInteractionDataResolved).messages[this.interaction.data.target_id];\n\t}\n\n\t/**\n\t * Gets the focused option for an autocomplete interaction\n\t */\n\tpublic getFocusedOption() {\n\t\tif (this.interaction.type !== InteractionType.ApplicationCommandAutocomplete) {\n\t\t\tthrow new Error('This method can only be used on autocomplete interactions');\n\t\t}\n\n\t\tconst focusedOption = this.hoistedOptions?.find((option) => 'focused' in option && option.focused) as\n\t\t\t| APIApplicationCommandInteractionDataStringOption\n\t\t\t| APIApplicationCommandInteractionDataIntegerOption\n\t\t\t| APIApplicationCommandInteractionDataNumberOption\n\t\t\t| undefined;\n\n\t\t// Considering the earlier check, this should be impossible, but it's here for good measure\n\t\tif (!focusedOption) {\n\t\t\tthrow new Error('No focused option for autocomplete interaction');\n\t\t}\n\n\t\tconst { focused, ...option } = focusedOption;\n\n\t\treturn option;\n\t}\n\n\tprivate getTypedOption<Option extends BasicApplicationCommandOptionType, Required extends boolean = false>(\n\t\tname: string,\n\t\ttype: Option,\n\t\trequired: Required\n\t): RequiredIf<Required, TypeToOptionMap[Option]>;\n\n\tprivate getTypedOption<Option extends BasicApplicationCommandOptionType>(\n\t\tname: string,\n\t\ttype: Option,\n\t\trequired: boolean\n\t): TypeToOptionMap[Option] | null {\n\t\tconst option = this.get(name, required);\n\t\tif (!option) {\n\t\t\treturn null;\n\t\t} else if (option.type !== type) {\n\t\t\tthrow new Error(`Option with name \"${name}\" is not of the correct type`);\n\t\t}\n\n\t\treturn option as TypeToOptionMap[Option];\n\t}\n}\n\ntype BasicApplicationCommandOptionType = APIApplicationCommandInteractionDataBasicOption['type'];\n\n// This extra type is required because apparently just inlining what `_TypeToOptionMap` does into `TypeToOptionMap` does not behave the same\ntype _TypeToOptionMap = {\n\t[Option in BasicApplicationCommandOptionType]: APIApplicationCommandInteractionDataBasicOption & { type: Option };\n};\n\ntype TypeToOptionMap = {\n\t[Option in keyof _TypeToOptionMap]: _TypeToOptionMap[Option];\n};\n\ntype If<Value extends boolean, TrueResult, FalseResult> = Value extends true\n\t? TrueResult\n\t: Value extends false\n\t\t? FalseResult\n\t\t: TrueResult | FalseResult;\n\ntype RequiredIf<Value extends boolean, ValueType, FallbackType = null> = If<Value, ValueType, ValueType | FallbackType>;\n","/**\n * Namespace containing limits related to Discord channels.\n */\nexport const ChannelLimits = {\n\t/**\n\t * Maximum characters allowed in a channel description.\n\t */\n\tMaximumDescriptionLength: 1024,\n\n\t/**\n\t * Maximum characters allowed in a channel name.\n\t */\n\tMaximumNameLength: 100,\n\n\t/**\n\t * Maximum viewers allowed per screen share.\n\t * @deprecated Use `VoiceChannelLimits.MaximumViewersPerScreenShare` instead.\n\t */\n\tMaximumViewersPerScreenShare: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord voice channels.\n */\nexport const VoiceChannelLimits = {\n\t/**\n\t * Maximum viewers allowed per screen share.\n\t */\n\tMaximumViewersPerScreenShare: 50,\n\n\t/**\n\t * Maximum user limit of voice channel.\n\t */\n\tMaximumUserLimit: 99\n};\n\n/**\n * Namespace containing limits related to Discord stage channels.\n */\nexport const StageChannelLimits = {\n\t/**\n\t * Maximum user limit of stage channel.\n\t */\n\tMaximumUserLimit: 250\n};\n\n/**\n * Namespace containing limits related to Discord text channels.\n */\nexport const TextChannelLimits = {\n\t/**\n\t * Maximum pins allowed in a text channel.\n\t */\n\tMaximumMessagePins: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord threads.\n */\nexport const ThreadLimits = {\n\t/**\n\t * Minimum number of threads to return from the threads API.\n\t */\n\tMinimumThreadsToFetch: 1,\n\n\t/**\n\t * Maximum number of threads to return from the threads API.\n\t */\n\tMaximumThreadsToFetch: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord embeds.\n */\nexport const EmbedLimits = {\n\t/**\n\t * Maximum characters allowed in the author field of an embed.\n\t */\n\tMaximumAuthorNameLength: 256,\n\n\t/**\n\t * Maximum characters allowed in an embed description.\n\t */\n\tMaximumDescriptionLength: 4096,\n\n\t/**\n\t * Maximum characters allowed in the name of a field in an embed.\n\t */\n\tMaximumFieldNameLength: 256,\n\n\t/**\n\t * Maximum fields allowed in an embed.\n\t */\n\tMaximumFields: 25,\n\n\t/**\n\t * Maximum characters allowed in the value of a field in an embed.\n\t */\n\tMaximumFieldValueLength: 1024,\n\n\t/**\n\t * Maximum characters allowed in a footer of an embed.\n\t */\n\tMaximumFooterLength: 2048,\n\n\t/**\n\t * Maximum characters allowed in the title of an embed.\n\t */\n\tMaximumTitleLength: 256,\n\n\t/**\n\t * Maximum characters allowed in an embed, in total.\n\t */\n\tMaximumTotalCharacters: 6000\n} as const;\n\n/**\n * Namespace containing limits related to Discord emojis.\n */\nexport const EmojiLimits = {\n\t/**\n\t * Maximum characters allowed in a custom guild emoji.\n\t */\n\tMaximumEmojiNameLength: 32,\n\n\t/**\n\t * Maximum size allowed for a custom guild emoji.\n\t * Size is in bytes, and corresponds to 256KB.\n\t */\n\tMaximumEmojiSize: 256_000\n} as const;\n\n/**\n * Namespace containing limits related to Discord guilds.\n */\nexport const GuildLimits = {\n\t/**\n\t * Maximum channels allowed per guild, including category channels.\n\t */\n\tMaximumChannels: 500,\n\n\t/**\n\t * Maximum roles allowed in a guild.\n\t */\n\tMaximumRoles: 250,\n\n\t/**\n\t * Maximum scheduled or active events allowed in a guild.\n\t */\n\tMaximumScheduledOrActiveEvents: 100,\n\n\t/**\n\t * Minimum number of user guilds to return from the user guilds API.\n\t */\n\tMinimumUserGuildsToFetch: 1,\n\n\t/**\n\t * Maximum number of user guilds to return from the user guilds API.\n\t */\n\tMaximumUserGuildsToFetch: 200,\n\n\t/**\n\t * Maximum static emojis allowed in a guild.\n\t */\n\tMaximumStaticEmojis: 50,\n\n\t/**\n\t * Maximum animated emojis allowed in a guild.\n\t */\n\tMaximumAnimatedEmojis: 50,\n\n\t/**\n\t * Maximum emojis (static and animated) allowed in a guild.\n\t */\n\tMaximumEmojis: 100,\n\n\t/**\n\t * Maximum stickers allowed in a guild.\n\t */\n\tMaximumStickers: 5\n} as const;\n\n/**\n * Namespace containing limits related to premium Discord guilds.\n */\nexport const PremiumGuildLimits = {\n\tTierOne: {\n\t\t/**\n\t\t * Maximum static emojis allowed in a guild.\n\t\t */\n\t\tMaximumStaticEmojis: 100,\n\n\t\t/**\n\t\t * Maximum animated emojis allowed in a guild.\n\t\t */\n\t\tMaximumAnimatedEmojis: 100,\n\n\t\t/**\n\t\t * Maximum emojis (static and animated) allowed in a guild.\n\t\t */\n\t\tMaximumEmojis: 200,\n\n\t\t/**\n\t\t * Maximum stickers allowed in a guild.\n\t\t */\n\t\tMaximumStickers: 15\n\t},\n\tTierTwo: {\n\t\t/**\n\t\t * Maximum static emojis allowed in a guild.\n\t\t */\n\t\tMaximumStaticEmojis: 150,\n\n\t\t/**\n\t\t * Maximum animated emojis allowed in a guild.\n\t\t */\n\t\tMaximumAnimatedEmojis: 150,\n\n\t\t/**\n\t\t * Maximum emojis (static and animated) allowed in a guild.\n\t\t */\n\t\tMaximumEmojis: 300,\n\n\t\t/**\n\t\t * Maximum stickers allowed in a guild.\n\t\t */\n\t\tMaximumStickers: 30\n\t},\n\tTierThree: {\n\t\t/**\n\t\t * Maximum static emojis allowed in a guild.\n\t\t */\n\t\tMaximumStaticEmojis: 250,\n\n\t\t/**\n\t\t * Maximum animated emojis allowed in a guild.\n\t\t */\n\t\tMaximumAnimatedEmojis: 250,\n\n\t\t/**\n\t\t * Maximum emojis (static and animated) allowed in a guild.\n\t\t */\n\t\tMaximumEmojis: 500,\n\n\t\t/**\n\t\t * Maximum stickers allowed in a guild.\n\t\t */\n\t\tMaximumStickers: 60\n\t}\n} as const;\n\n/**\n * Namespace containing limits related to Discord guild scheduled events.\n */\nexport const GuildScheduledEventLimits = {\n\t/**\n\t * Maximum number of users to return from the guild scheduled event users API.\n\t */\n\tMaximumUsersToFetch: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord guild members.\n */\nexport const GuildMemberLimits = {\n\t/**\n\t * Maximum characters allowed in the display name of a guild member.\n\t */\n\tMaximumDisplayNameLength: 32,\n\n\t/**\n\t * Minimum number of members to return from the guild members API.\n\t */\n\tMinimumMembersToFetch: 1,\n\n\t/**\n\t * Maximum number of members to return from the guild members API.\n\t */\n\tMaximumMembersToFetch: 1000\n} as const;\n\n/**\n * Namespace containing limits related to Discord guild bans.\n */\nexport const GuildBansLimits = {\n\t/**\n\t * Minimum number of bans to return from the guild bans API.\n\t */\n\tMinimumBansToFetch: 1,\n\n\t/**\n\t * Maximum number of bans to return from the guild bans API.\n\t */\n\tMaximumBansToFetch: 1000\n} as const;\n\n/**\n * Namespace containing limits related to Discord interactions.\n */\nexport const InteractionLimits = {\n\t/**\n\t * Maximum buttons allowed in a single action row.\n\t */\n\tMaximumButtonsPerActionRow: 5,\n\n\t/**\n\t * Maximum select menus allowed in a single action row.\n\t */\n\tMaximumSelectMenusPerActionRow: 1,\n\n\t/**\n\t * Maximum text inputs allowed in a single action row.\n\t */\n\tMaximumTextInputsPerActionRow: 1,\n\n\t/**\n\t * Maximum options allowed in a single select menu.\n\t */\n\tMaximumOptionsInSelectMenus: 25\n} as const;\n\n/**\n * Namespace containing limits related to Discord application commands (slash commands).\n */\nexport const ApplicationCommandLimits = {\n\t/**\n\t * Maximum characters allowed in an application command name.\n\t */\n\tMaximumNameCharacters: 32,\n\n\t/**\n\t * Maximum characters allowed in an application command description.\n\t */\n\tMaximumDescriptionCharacters: 100,\n\n\t/**\n\t * Maximum options allowed in an application command.\n\t */\n\tMaximumOptionsLength: 25,\n\n\t/**\n\t * Maximum combined characters allowed in the name, description, and value properties of an application command, its options (including subcommands and groups), and choices.\n\t */\n\tMaximumCombinedCharacters: 4000\n} as const;\n\n/**\n * Namespace containing limits related to Choices of Discord Application Commands.\n */\nexport const ApplicationCommandOptionLimits = {\n\t/**\n\t * Maximum characters allowed in the name of an option of an application command.\n\t */\n\tMaximumNameCharacters: 32,\n\n\t/**\n\t * Maximum characters allowed in the description of an option of an application command.\n\t */\n\tMaximumDescriptionCharacters: 100,\n\n\t/**\n\t * Maximum length of choices allowed in the option of an application command.\n\t */\n\tMaximumChoicesLength: 25,\n\n\t/**\n\t * Maximum length of string allowed in the string option of an application command.\n\t */\n\tMaximumStringLength: 6000\n} as const;\n\n/**\n * Namespace containing limits related to Permissions of Discord Application Commands.\n */\nexport const ApplicationCommandPermissionLimits = {\n\t/**\n\t * Maximum length of permissions allowed in the option of an application command.\n\t */\n\tMaximumPermissionsLength: 100\n} as const;\n\n/**\n * Namespace containing limits related to Message Buttons.\n */\nexport const ButtonLimits = {\n\t/**\n\t * Maximum characters allowed in a button label.\n\t */\n\tMaximumLabelCharacters: 80,\n\n\t/**\n\t * Maximum characters allowed in a button custom ID.\n\t */\n\tMaximumCustomIdCharacters: 100\n} as const;\n\n/**\n * Namespace containing limits related to Select Menus.\n */\nexport const SelectMenuLimits = {\n\t/**\n\t * Maximum characters allowed in a select menu custom ID.\n\t */\n\tMaximumCustomIdCharacters: 100,\n\n\t/**\n\t * Maximum amount of options allowed in a select menu.\n\t */\n\tMaximumOptionsLength: 25,\n\n\t/**\n\t * Maximum characters allowed in a select menu placeholder.\n\t */\n\tMaximumPlaceholderCharacters: 150,\n\n\t/**\n\t * Maximum \"minimum\" values allowed in a select menu.\n\t */\n\tMaximumMinValuesSize: 25,\n\n\t/**\n\t * Maximum \"maximum\" values allowed in a select menu.\n\t */\n\tMaximumMaxValuesSize: 25,\n\n\t/**\n\t * Maximum characters allowed in a select menu option's name.\n\t */\n\tMaximumLengthOfNameOfOption: 100,\n\n\t/**\n\t * Maximum characters allowed in a select menu option's description.\n\t */\n\tMaximumLengthOfDescriptionOfOption: 100,\n\n\t/**\n\t * Maximum characters allowed in a select menu option's value.\n\t */\n\tMaximumLengthOfValueOfOption: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord messages.\n */\nexport const MessageLimits = {\n\t/**\n\t * Maximum embeds allowed in a single message.\n\t */\n\tMaximumEmbeds: 10,\n\n\t/**\n\t * Maximum action rows allowed in a single message.\n\t */\n\tMaximumActionRows: 5,\n\n\t/**\n\t * Maximum characters allowed in a single message for a user.\n\t */\n\tMaximumLength: 2000,\n\n\t/**\n\t * Maximum characters allowed in a single message for a nitro user.\n\t */\n\tMaximumNitroLength: 4000,\n\n\t/**\n\t * Maximum numbers of reactions allowed for a message.\n\t */\n\tMaximumReactions: 20,\n\n\t/**\n\t * Maximum upload size for a free user in a guild of tier 1 or below, or in DMs.\n\t * Size is in bytes, and corresponds to 25MB.\n\t */\n\tMaximumUploadSize: 25_000_000,\n\n\t/**\n\t * Maximum upload size for a Nitro Basic user, in any guild or in DMs.\n\t * Size is in bytes, and corresponds to 50MB.\n\t */\n\tMaximumNitroBasicUploadSize: 50_000_000,\n\n\t/**\n\t * Maximum upload size for a Nitro user, in any guild or in DMs.\n\t * Size is in bytes, and corresponds to 500MB.\n\t */\n\tMaximumNitroUploadSize: 500_000_000,\n\n\t/**\n\t * Maximum upload size for a free user for all different boost levels available in a guild.\n\t * Sizes are in bytes, and correspond to 25MB, 25MB, 50MB, and 100MB.\n\t */\n\tMaximumUploadSizeInGuild: [25_000_000, 25_000_000, 50_000_000, 100_000_000],\n\n\t/**\n\t * Minimum number of messages to return from the channel messages API.\n\t */\n\tMinimumMessagesToFetch: 1,\n\n\t/**\n\t * Maximum number of messages to return from the channel messages API.\n\t */\n\tMaximumMessagesToFetch: 100,\n\n\t/**\n\t * Maximum request size when sending a messages.\n\t * Size is in bytes, and corresponds to 25MB.\n\t */\n\tMaximumRequestSize: 25_000_000,\n\n\t/**\n\t * Minimum number of messages to delete in a single bulk delete request.\n\t */\n\tMinimumMessagesToBulkDelete: 2,\n\n\t/**\n\t * Maximum number of messages to delete in a single bulk delete request.\n\t */\n\tMaximumMessagesToBulkDelete: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord message reactions.\n */\nexport const ReactionLimits = {\n\t/**\n\t * Minimum number of reactions to fetch from the message reactions API.\n\t */\n\tMinimumReactionToFetch: 1,\n\n\t/**\n\t * Maximum number of reactions to fetch from the message reactions API.\n\t */\n\tMaximumReactionsToFetch: 100\n};\n\n/**\n * Namespace containing limits related to built-in moderation features.\n */\nexport const ModerationLimits = {\n\t/**\n\t * Maximum duration of a guild timeout, in seconds (corresponds to 28 days).\n\t */\n\tMaximumTimeoutDuration: 2_419_200\n} as const;\n\n/**\n * Namespace containing limits related to Discord roles.\n */\nexport const RoleLimits = {\n\t/**\n\t * Maximum characters allowed in a role name.\n\t */\n\tMaximumNameLength: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord users and Direct Messages.\n */\nexport const UserLimits = {\n\t/**\n\t * Maximum numbers of users in a DM group.\n\t */\n\tMaximumUsersPerDMGroup: 10,\n\n\t/**\n\t * Maximum characters allowed in a user's biography (the \"About Me\" section).\n\t */\n\tMaximumBiographyLength: 190\n} as const;\n\n/**\n * Namespace container limits related to Discord autocomplete interactions.\n */\nexport const AutoCompleteLimits = {\n\t/**\n\t * Maximum options allowed in a single autocomplete response.\n\t */\n\tMaximumAmountOfOptions: 25,\n\n\t/**\n\t * Maximum characters allowed in a select menu option's name.\n\t */\n\tMaximumLengthOfNameOfOption: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Modals.\n */\nexport const ModalLimits = {\n\t/**\n\t * Maximum characters allowed in a modal custom ID.\n\t */\n\tMaximumCustomIdCharacters: 100,\n\n\t/**\n\t * Maximum characters allowed in a modal title.\n\t */\n\tMaximumTitleCharacters: 45,\n\n\t/**\n\t * Maximum components allowed in a modal.\n\t */\n\tMaximumComponents: 5\n} as const;\n\n/**\n * Namespace containing limits related to Discord Modal Text Input component.\n */\nexport const TextInputLimits = {\n\t/**\n\t * Maximum characters allowed in a text input custom ID.\n\t */\n\tMaximumCustomIdCharacters: 100,\n\n\t/**\n\t * Maximum characters allowed in a text input label.\n\t */\n\tMaximumLabelCharacters: 45,\n\n\t/**\n\t * Maximum characters allowed in a text input placeholder.\n\t */\n\tMaximumPlaceholderCharacters: 100,\n\n\t/**\n\t * Maximum characters allowed in a text input value.\n\t */\n\tMaximumValueCharacters: 4000\n} as const;\n\n/**\n * Namespace containing limits related to Discord Application Role Connections.\n */\nexport const ApplicationRoleConnectionLimits = {\n\t/**\n\t * Maximum application role connection metadata records an application can have.\n\t */\n\tMaximumMetadataRecords: 5,\n\n\t/**\n\t * Maximum characters allowed in metadata values.\n\t */\n\tMaximumMetadataValueLength: 100,\n\n\t/**\n\t * Maximum characters allowed in a platform name.\n\t */\n\tMaximumPlatformNameLength: 50,\n\n\t/**\n\t * Maximum characters allowed in a platform username.\n\t */\n\tMaximumPlatformUsernameLength: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Guild Audit Logs.\n */\nexport const GuildAuditLogsLimits = {\n\t/**\n\t * Minimum number of entries to return from the guild audit log API.\n\t */\n\tMinimumEntriesToFetch: 1,\n\n\t/**\n\t * Maximum number of entries to return from the guild audit log API.\n\t */\n\tMaximumEntriesToFetch: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Auto Moderation Rules.\n */\nexport const AutoModerationRuleLimits = {\n\t/**\n\t * Maximum number of exempt roles a rule can have.\n\t */\n\tMaximumExemptRoles: 20,\n\n\t/**\n\t * Maximum number of exempt channels a rule can have.\n\t */\n\tMaximumExemptChannels: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord Auto Moderation Triggers.\n */\nexport const TriggerTypeLimits = {\n\t/**\n\t * Maximum number of keyword triggers a guild can have.\n\t */\n\tMaximumKeywordTriggersPerGuild: 6,\n\n\t/**\n\t * Maximum number of mention spam triggers a guild can have.\n\t */\n\tMaximumSpamTriggersPerGuild: 1,\n\n\t/**\n\t * Maximum number of keyword triggers a channel can have.\n\t */\n\tMaximumKeywordPresetTriggersPerChannel: 1,\n\n\t/**\n\t * Maximum number of mention spam triggers a channel can have.\n\t */\n\tMaximumMentionSpamTriggersPerChannel: 1\n} as const;\n\n/**\n * Namespace containing limits related to Discord Auto Moderation Trigger Metadata.\n */\nexport const TriggerMetadataLimits = {\n\t/**\n\t * Maximum number of substrings which will be searched for in content.\n\t */\n\tMaximumKeywordFilters: 1000,\n\n\t/**\n\t * Maximum number of characters allowed in a keyword filter.\n\t */\n\tMaximumKeywordFilterLength: 60,\n\n\t/**\n\t * Maximum number of regular expression patterns which will be matched against content.\n\t */\n\tMaximumRegexPatterns: 10,\n\n\t/**\n\t * Maximum number of characters allowed in a regular expression pattern.\n\t */\n\tMaximumCharactersPerRegexPattern: 260,\n\n\t/**\n\t * Maximum number of substrings which should not trigger the keyword rule.\n\t */\n\tMaximumKeywordAllowListLength: 100,\n\n\t/**\n\t * Maximum characters per keyword that should not trigger the keyword rule.\n\t */\n\tMaximumKeywordAllowListKeywordLength: 60,\n\n\t/**\n\t * Maximum characters per keyword should not trigger the keyword preset rule.\n\t */\n\tMaximumKeywordPresetAllowListKeywordPresetLength: 60,\n\n\t/**\n\t * Maximum number of substrings which should not trigger the keyword preset rule.\n\t */\n\tMaximumKeywordPresetAllowListLength: 1000,\n\n\t/**\n\t * Maximum number of unique role and user mentions allowed per message.\n\t */\n\tMaximumMentionSpamTotalMentions: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord Auto Moderation Action Metadata.\n */\nexport const ActionMetadataLimits = {\n\t/**\n\t * Maximum timeout duration in seconds.\n\t */\n\tMaximumTimeoutDurationSeconds: 2_419_200,\n\n\t/**\n\t * Maximum number of characters allowed in a custom block message.\n\t */\n\tMaximumCustomBlockMessageLength: 150\n} as const;\n\n/**\n * Namespace containing limits related to Discord Message Allowed Mentions.\n */\nexport const AllowedMentionsLimits = {\n\t/**\n\t * Maximum number of users allowed in an allowed mentions object.\n\t */\n\tMaximumUsers: 100,\n\n\t/**\n\t * Maximum number of roles allowed in an allowed mentions object.\n\t */\n\tMaximumRoles: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Channel Invites.\n */\nexport const ChannelInviteLimits = {\n\t/**\n\t * Maximum age of an invite in seconds.\n\t */\n\tMaximumAgeSeconds: 604_800,\n\n\t/**\n\t * Maximum number of uses allowed for an invite.\n\t */\n\tMaximumUses: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Guild Integrations.\n */\nexport const GuildIntegrationLimits = {\n\t/**\n\t * Maximum number of integrations returned from the guild integrations API. Needs a more description name than \"MaximumIntegrations\".\n\t */\n\tMaximumIntegrationsToFetch: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord Stickers.\n */\nexport const StickerLimits = {\n\t/**\n\t * Maximum number of characters allowed in the autocomplete/suggestion tags for the sticker.\n\t */\n\tMaximumTagsLength: 200,\n\n\t/**\n\t * Maximum size allowed for a sticker.\n\t * Size is in bytes, and corresponds to 512KB.\n\t */\n\tMaximumStickerSize: 512_000\n};\n","/**\n * Regex that can capture the ID in Discord Channel mentions\n * @raw `/^<#(?<id>\\d{17,20})>$/`\n * @remark Capture group 1 is the ID of the channel. It is named `id`.\n */\nexport const ChannelMentionRegex = /^<#(?<id>\\d{17,20})>$/;\n\n/**\n * Regex that can capture the channel and message IDs in a channelId-messageId pattern\n * This pattern can be found when you hold Shift and hover over a message, and click the \"ID\" button\n * @raw `/^(?<channelId>\\d{17,20})-(?<messageId>\\d{17,20})$/`\n * @remark Capture group 1 is the ID of the channel, named `channelId`.\n * @remark Capture group 2 is the ID of the message, named `messageId`.\n */\nexport const ChannelMessageRegex = /^(?<channelId>\\d{17,20})-(?<messageId>\\d{17,20})$/;\n\n/**\n * Regex that matches links on the known Discord host names\n * @raw `/(?<subdomain>\\w+)\\.?(?<hostname>dis(?:cord)?(?:app|merch|status)?)\\.(?<tld>com|g(?:d|g|ift)|(?:de(?:sign|v))|media|new|store|net)/i`\n * @remark The regex is case insensitive\n * @remark Capture group 1 is the subdomain for this URL. It is named `subdomain`.\n * @remark Capture group 2 is the hostname for this URL, primarily `discord` but can also be `discordmerch`, `discordstatus`, `dis`, and `discordapp`. It is named `hostname`.\n * @remark Capture group 3 is the Top-Level Domain *without* `.`. It is named `tld`.\n */\nexport const DiscordHostnameRegex =\n\t/(?<subdomain>\\w+)\\.?(?<hostname>dis(?:cord)?(?:app|merch|status)?)\\.(?<tld>com|g(?:d|g|ift)|(?:de(?:sign|v))|media|new|store|net)/i;\n\n/**\n * Regex that can can capture the code of Discord invite links\n * @raw `/(?:^|\\b)discord(?:(?:app)?\\.com\\/invite|\\.gg(?:\\/invite)?)\\/(?<code>[\\w-]{2,255})(?:$|\\b)/gi`\n * @remark Capture group 1 is the invite URL's unique code. It is named `code`.\n */\nexport const DiscordInviteLinkRegex = /(?:^|\\b)discord(?:(?:app)?\\.com\\/invite|\\.gg(?:\\/invite)?)\\/(?<code>[\\w-]{2,255})(?:$|\\b)/gi;\n\n/**\n * Regex that can capture the ID of any animated or non-animated custom Discord emoji\n * @raw `/^(?:<(?<animated>a)?:(?<name>\\w{2,32}):)?(?<id>\\d{17,21})>?$/`\n * @remark Capture group 1 can be used to determine whether the emoji is animated or not. It is named `animated`.\n * @remark Capture group 2 is the name of the emoji as it is typed in a message. It is named `name`.\n * @remark Capture group 3 is the ID of the emoji. It is named `id`.\n */\nexport const EmojiRegex = /^(?:<(?<animated>a)?:(?<name>\\w{2,32}):)?(?<id>\\d{17,21})>?$/;\n\n/**\n * Regex that matches any animated or non-animated custom Discord emoji.\n * Unlike {@link EmojiRegex} It can be a substring of a larger string.\n * @raw `/<a?:\\w{2,32}:\\d{17,20}>/`\n */\nexport const FormattedCustomEmoji = /<a?:\\w{2,32}:\\d{17,20}>/;\n\n/**\n * Regex that can capture any animated or non-animated custom Discord emoji.\n * Similar to {@link FormattedCustomEmoji} and unlike {@link EmojiRegex} can also be a substring of a larger string.\n * @raw `/(?<animated>a?):(?<name>[^:]+):(?<id>\\d{17,20})/`\n * @remark Capture group 1 can be used to determine whether the emoji is animated or not. It is named `animated`.\n * @remark Capture group 2 is the name of the emoji as it is typed in a message. It is named `name`.\n * @remark Capture group 3 is the ID of the emoji. It is named `id`.\n */\nexport const FormattedCustomEmojiWithGroups = /(?<animated>a?):(?<name>[^:]+):(?<id>\\d{17,20})/;\n\n/**\n * Regex that matches any URL starting with `http` or `https`\n * @raw `/^https?:\\/\\//`\n * @remark for WebSocket URLs see {@link WebSocketUrlRegex}\n */\nexport const HttpUrlRegex = /^https?:\\/\\//;\n\n/**\n * Regex that can capture the Guild, Channel, and Message ID based on a shareable Discord message link.\n * @raw `/^(?:https:\\/\\/)?(?:ptb\\.|canary\\.)?discord(?:app)?\\.com\\/channels\\/(?<guildId>(?:\\d{17,20}|@me))\\/(?<channelId>\\d{17,20})\\/(?<messageId>\\d{17,20})$/`\n * @remark Capture group 1 is the ID of the guild the message was sent in. It is named `guildId`.\n * @remark Capture group 2 is the ID of the channel in that guild the message was sent in. It is named `channelId`.\n * @remark Capture group 3 is the ID of the message itself. It is named `messageId`.\n */\nexport const MessageLinkRegex =\n\t/^(?:https:\\/\\/)?(?:ptb\\.|canary\\.)?discord(?:app)?\\.com\\/channels\\/(?<guildId>(?:\\d{17,20}|@me))\\/(?<channelId>\\d{17,20})\\/(?<messageId>\\d{17,20})$/;\n\n/**\n * Regex that matches any animated or non-animated custom Discord emoji *without the wrapping `<...>` symbols.\n * This means that a string that matches this regex can directly be send inside a Discord message.\n * Other than this difference it is similar to {@link FormattedCustomEmoji}.\n * @raw `/a?:\\w{2,32}:\\d{17,20}/`\n */\nexport const ParsedCustomEmoji = /a?:\\w{2,32}:\\d{17,20}/;\n\n/**\n * Regex that matches any animated or non-animated custom Discord emoji *without the wrapping `<...>` symbols.\n * This means that a string that matches this regex can directly be send inside a Discord message.\n * Other than this difference it is similar to {@link FormattedCustomEmojiWithGroups}.\n * @raw `/(?<animated>a?):(?<name>[^:]+):(?<id>\\d{17,20})/`\n * @remark Capture group 1 can be used to determine whether the emoji is animated or not. It is named `animated`.\n * @remark Capture group 2 is the name of the emoji as it is typed in a message. It is named `name`.\n * @remark Capture group 3 is the ID of the emoji. It is named `id`.\n */\nexport const ParsedCustomEmojiWithGroups = /(?<animated>a?):(?<name>[^:]+):(?<id>\\d{17,20})/;\n\n/**\n * Regex that can capture the ID in Discord Role mentions\n * @raw `/^<@&(?<id>\\d{17,20})>$/`\n * @remark Capture group 1 is the ID of the role. It is named `id`.\n */\nexport const RoleMentionRegex = /^<@&(?<id>\\d{17,20})>$/;\n\n/**\n * Regex that can capture any Discord Snowflake ID\n * @raw `/^(?<id>\\d{17,20})$/`\n * @remark Capture group 1 is the Snowflake. It is named `id`.\n */\nexport const SnowflakeRegex = /^(?<id>\\d{17,20})$/;\n\n/**\n * Regex that can capture a Discord Token\n * @raw `/(?<mfaToken>mfa\\.[a-z0-9_-]{20,})|(?<basicToken>[a-z0-9_-]{23,28}\\.[a-z0-9_-]{6,7}\\.[a-z0-9_-]{27})/i`\n * @remark Capture group 1 can be used to retrieve a token for a User that has Multi-Factor Authentication enabled. It is named `mfaToken`.\n * @remark Capture group 2 can be used to retrieve a token for a User that doesn't have Multi-Factor Authentication enabled, or a Bot application. It is named `basicToken`.\n * @remark For a valid token, either Capture group 1 or Capture group 2 will always be undefined, whereas the other group will then be defined and\n * contain the matched token.\n * You can use the name of the capture group to determine if the validated token was configured for a user with Multi-Factor Authentication, for a user without Multi-Factor Authentication, or for a bot application.\n * If both capture groups are undefined, then the token is invalid.\n */\nexport const TokenRegex = /(?<mfaToken>mfa\\.[a-z0-9_-]{20,})|(?<basicToken>[a-z0-9_-]{23,28}\\.[a-z0-9_-]{6,7}\\.[a-z0-9_-]{27})/i;\n\n/**\n * Regex that can capture the ID of a user in Discord user mentions\n * @raw `/^<@!?(?<id>\\d{17,20})>$/`\n * @remark Capture group 1 is the ID of the user. It is named `id`.\n */\nexport const UserOrMemberMentionRegex = /^<@!?(?<id>\\d{17,20})>$/;\n\n/**\n * Regex that matches any WebSocket URL starting with `ws` or `wss`\n * @raw `/^wss?:\\/\\//`\n * @remark for regular HTTP URLs see {@link HttpUrlRegex}\n */\nexport const WebSocketUrlRegex = /^wss?:\\/\\//;\n\n/**\n * Regex that captures the Webhook ID and token from a Discord Webhook URL.\n * @raw `/(?<url>^https:\\/\\/(?:(?:canary|ptb).)?discord(?:app)?.com\\/api(?:\\/v\\d+)?\\/webhooks\\/(?<id>\\d+)\\/(?<token>[\\w-]+)\\/?$)/`\n * @remark Capture group 1 is the full URL of the Discord Webhook. It is named `url`.\n * @remark Capture group 2 is the ID of the Discord Webhook. It is named `id`.\n * @remark Capture group 3 is the token of the Discord Webhook. It is named `token`.\n * @remark for regular HTTP URLs see {@link HttpUrlRegex}\n */\nexport const WebhookRegex = /(?<url>^https:\\/\\/(?:(?:canary|ptb).)?discord(?:app)?.com\\/api(?:\\/v\\d+)?\\/webhooks\\/(?<id>\\d+)\\/(?<token>[\\w-]+)\\/?$)/;\n","/**\n * Regex that can capture a Twemoji (Twitter Emoji)\n * @raw {@linkplain https://github.com/jdecked/twemoji-parser/blob/main/src/lib/regex.js See official source code}\n */\nexport const TwemojiRegex =\n\t/(?:\\ud83d\\udc68\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffc-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffc-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d[\\udc68\\udc69]|\\ud83e\\udef1\\ud83c\\udffb\\u200d\\ud83e\\udef2\\ud83c[\\udffc-\\udfff]|\\ud83e\\udef1\\ud83c\\udffc\\u200d\\ud83e\\udef2\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\udef1\\ud83c\\udffd\\u200d\\ud83e\\udef2\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\udef1\\ud83c\\udffe\\u200d\\ud83e\\udef2\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\udef1\\ud83c\\udfff\\u200d\\ud83e\\udef2\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1|\\ud83d\\udc6b\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6c\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6d\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc8f\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc91\\ud83c[\\udffb-\\udfff]|\\ud83e\\udd1d\\ud83c[\\udffb-\\udfff]|\\ud83d[\\udc6b-\\udc6d\\udc8f\\udc91]|\\ud83e\\udd1d)|(?:\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1)(?:\\ud83c[\\udffb-\\udfff])?\\u200d(?:\\u2695\\ufe0f|\\u2696\\ufe0f|\\u2708\\ufe0f|\\ud83c[\\udf3e\\udf73\\udf7c\\udf84\\udf93\\udfa4\\udfa8\\udfeb\\udfed]|\\ud83d[\\udcbb\\udcbc\\udd27\\udd2c\\ude80\\ude92]|\\ud83e[\\uddaf-\\uddb3\\uddbc\\uddbd])(?:\\u200d\\u27a1\\ufe0f)?|(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75]|\\u26f9)((?:\\ud83c[\\udffb-\\udfff]|\\ufe0f)\\u200d[\\u2640\\u2642]\\ufe0f(?:\\u200d\\u27a1\\ufe0f)?)|(?:\\ud83c[\\udfc3\\udfc4\\udfca]|\\ud83d[\\udc6e\\udc70\\udc71\\udc73\\udc77\\udc81\\udc82\\udc86\\udc87\\ude45-\\ude47\\ude4b\\ude4d\\ude4e\\udea3\\udeb4-\\udeb6]|\\ud83e[\\udd26\\udd35\\udd37-\\udd39\\udd3d\\udd3e\\uddb8\\uddb9\\uddcd-\\uddcf\\uddd4\\uddd6-\\udddd])(?:\\ud83c[\\udffb-\\udfff])?\\u200d[\\u2640\\u2642]\\ufe0f(?:\\u200d\\u27a1\\ufe0f)?|(?:\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83e\\uddd1\\u200d\\ud83e\\uddd1\\u200d\\ud83e\\uddd2\\u200d\\ud83e\\uddd2|\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83e\\uddd1\\u200d\\ud83e\\uddd1\\u200d\\ud83e\\uddd2|\\ud83e\\uddd1\\u200d\\ud83e\\uddd2\\u200d\\ud83e\\uddd2|\\ud83c\\udff3\\ufe0f\\u200d\\u26a7\\ufe0f|\\ud83c\\udff3\\ufe0f\\u200d\\ud83c\\udf08|\\ud83d\\ude36\\u200d\\ud83c\\udf2b\\ufe0f|\\u26d3\\ufe0f\\u200d\\ud83d\\udca5|\\u2764\\ufe0f\\u200d\\ud83d\\udd25|\\u2764\\ufe0f\\u200d\\ud83e\\ude79|\\ud83c\\udf44\\u200d\\ud83d\\udfeb|\\ud83c\\udf4b\\u200d\\ud83d\\udfe9|\\ud83c\\udff4\\u200d\\u2620\\ufe0f|\\ud83d\\udc15\\u200d\\ud83e\\uddba|\\ud83d\\udc26\\u200d\\ud83d\\udd25|\\ud83d\\udc3b\\u200d\\u2744\\ufe0f|\\ud83d\\udc41\\u200d\\ud83d\\udde8|\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc6f\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\u200d\\u2642\\ufe0f|\\ud83d\\ude2e\\u200d\\ud83d\\udca8|\\ud83d\\ude35\\u200d\\ud83d\\udcab|\\ud83d\\ude42\\u200d\\u2194\\ufe0f|\\ud83d\\ude42\\u200d\\u2195\\ufe0f|\\ud83e\\udd3c\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\u200d\\u2642\\ufe0f|\\ud83e\\uddd1\\u200d\\ud83e\\uddd2|\\ud83e\\uddde\\u200d\\u2640\\ufe0f|\\ud83e\\uddde\\u200d\\u2642\\ufe0f|\\ud83e\\udddf\\u200d\\u2640\\ufe0f|\\ud83e\\udddf\\u200d\\u2642\\ufe0f|\\ud83d\\udc08\\u200d\\u2b1b|\\ud83d\\udc26\\u200d\\u2b1b)|[#*0-9]\\ufe0f?\\u20e3|(?:[©®\\u2122\\u265f]\\ufe0f)|(?:\\ud83c[\\udc04\\udd70\\udd71\\udd7e\\udd7f\\ude02\\ude1a\\ude2f\\ude37\\udf21\\udf24-\\udf2c\\udf36\\udf7d\\udf96\\udf97\\udf99-\\udf9b\\udf9e\\udf9f\\udfcd\\udfce\\udfd4-\\udfdf\\udff3\\udff5\\udff7]|\\ud83d[\\udc3f\\udc41\\udcfd\\udd49\\udd4a\\udd6f\\udd70\\udd73\\udd76-\\udd79\\udd87\\udd8a-\\udd8d\\udda5\\udda8\\uddb1\\uddb2\\uddbc\\uddc2-\\uddc4\\uddd1-\\uddd3\\udddc-\\uddde\\udde1\\udde3\\udde8\\uddef\\uddf3\\uddfa\\udecb\\udecd-\\udecf\\udee0-\\udee5\\udee9\\udef0\\udef3]|[\\u203c\\u2049\\u2139\\u2194-\\u2199\\u21a9\\u21aa\\u231a\\u231b\\u2328\\u23cf\\u23ed-\\u23ef\\u23f1\\u23f2\\u23f8-\\u23fa\\u24c2\\u25aa\\u25ab\\u25b6\\u25c0\\u25fb-\\u25fe\\u2600-\\u2604\\u260e\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262a\\u262e\\u262f\\u2638-\\u263a\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267b\\u267f\\u2692-\\u2697\\u2699\\u269b\\u269c\\u26a0\\u26a1\\u26a7\\u26aa\\u26ab\\u26b0\\u26b1\\u26bd\\u26be\\u26c4\\u26c5\\u26c8\\u26cf\\u26d1\\u26d3\\u26d4\\u26e9\\u26ea\\u26f0-\\u26f5\\u26f8\\u26fa\\u26fd\\u2702\\u2708\\u2709\\u270f\\u2712\\u2714\\u2716\\u271d\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u2764\\u27a1\\u2934\\u2935\\u2b05-\\u2b07\\u2b1b\\u2b1c\\u2b50\\u2b55\\u3030\\u303d\\u3297\\u3299])(?:\\ufe0f|(?!\\ufe0e))|(?:(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75\\udd90]|\\ud83e\\udef0|[\\u261d\\u26f7\\u26f9\\u270c\\u270d])(?:\\ufe0f|(?!\\ufe0e))|(?:\\ud83c\\udfc3|\\ud83d\\udeb6|\\ud83e\\uddce)(?:\\ud83c[\\udffb-\\udfff])?(?:\\u200d\\u27a1\\ufe0f)?|(?:\\ud83c[\\udf85\\udfc2\\udfc4\\udfc7\\udfca]|\\ud83d[\\udc42\\udc43\\udc46-\\udc50\\udc66-\\udc69\\udc6e\\udc70-\\udc78\\udc7c\\udc81-\\udc83\\udc85-\\udc87\\udcaa\\udd7a\\udd95\\udd96\\ude45-\\ude47\\ude4b-\\ude4f\\udea3\\udeb4\\udeb5\\udec0\\udecc]|\\ud83e[\\udd0c\\udd0f\\udd18-\\udd1c\\udd1e\\udd1f\\udd26\\udd30-\\udd39\\udd3d\\udd3e\\udd77\\uddb5\\uddb6\\uddb8\\uddb9\\uddbb\\uddcd\\uddcf\\uddd1-\\udddd\\udec3-\\udec5\\udef1-\\udef8]|[\\u270a\\u270b]))(?:\\ud83c[\\udffb-\\udfff])?|(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc65\\udb40\\udc6e\\udb40\\udc67\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc73\\udb40\\udc63\\udb40\\udc74\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc77\\udb40\\udc6c\\udb40\\udc73\\udb40\\udc7f|\\ud83c\\udde6\\ud83c[\\udde8-\\uddec\\uddee\\uddf1\\uddf2\\uddf4\\uddf6-\\uddfa\\uddfc\\uddfd\\uddff]|\\ud83c\\udde7\\ud83c[\\udde6\\udde7\\udde9-\\uddef\\uddf1-\\uddf4\\uddf6-\\uddf9\\uddfb\\uddfc\\uddfe\\uddff]|\\ud83c\\udde8\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\uddee\\uddf0-\\uddf5\\uddf7\\uddfa-\\uddff]|\\ud83c\\udde9\\ud83c[\\uddea\\uddec\\uddef\\uddf0\\uddf2\\uddf4\\uddff]|\\ud83c\\uddea\\ud83c[\\udde6\\udde8\\uddea\\uddec\\udded\\uddf7-\\uddfa]|\\ud83c\\uddeb\\ud83c[\\uddee-\\uddf0\\uddf2\\uddf4\\uddf7]|\\ud83c\\uddec\\ud83c[\\udde6\\udde7\\udde9-\\uddee\\uddf1-\\uddf3\\uddf5-\\uddfa\\uddfc\\uddfe]|\\ud83c\\udded\\ud83c[\\uddf0\\uddf2\\uddf3\\uddf7\\uddf9\\uddfa]|\\ud83c\\uddee\\ud83c[\\udde8-\\uddea\\uddf1-\\uddf4\\uddf6-\\uddf9]|\\ud83c\\uddef\\ud83c[\\uddea\\uddf2\\uddf4\\uddf5]|\\ud83c\\uddf0\\ud83c[\\uddea\\uddec-\\uddee\\uddf2\\uddf3\\uddf5\\uddf7\\uddfc\\uddfe\\uddff]|\\ud83c\\uddf1\\ud83c[\\udde6-\\udde8\\uddee\\uddf0\\uddf7-\\uddfb\\uddfe]|\\ud83c\\uddf2\\ud83c[\\udde6\\udde8-\\udded\\uddf0-\\uddff]|\\ud83c\\uddf3\\ud83c[\\udde6\\udde8\\uddea-\\uddec\\uddee\\uddf1\\uddf4\\uddf5\\uddf7\\uddfa\\uddff]|\\ud83c\\uddf4\\ud83c\\uddf2|\\ud83c\\uddf5\\ud83c[\\udde6\\uddea-\\udded\\uddf0-\\uddf3\\uddf7-\\uddf9\\uddfc\\uddfe]|\\ud83c\\uddf6\\ud83c\\udde6|\\ud83c\\uddf7\\ud83c[\\uddea\\uddf4\\uddf8\\uddfa\\uddfc]|\\ud83c\\uddf8\\ud83c[\\udde6-\\uddea\\uddec-\\uddf4\\uddf7-\\uddf9\\uddfb\\uddfd-\\uddff]|\\ud83c\\uddf9\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\udded\\uddef-\\uddf4\\uddf7\\uddf9\\uddfb\\uddfc\\uddff]|\\ud83c\\uddfa\\ud83c[\\udde6\\uddec\\uddf2\\uddf3\\uddf8\\uddfe\\uddff]|\\ud83c\\uddfb\\ud83c[\\udde6\\udde8\\uddea\\uddec\\uddee\\uddf3\\uddfa]|\\ud83c\\uddfc\\ud83c[\\uddeb\\uddf8]|\\ud83c\\uddfd\\ud83c\\uddf0|\\ud83c\\uddfe\\ud83c[\\uddea\\uddf9]|\\ud83c\\uddff\\ud83c[\\udde6\\uddf2\\uddfc]|\\ud83c[\\udccf\\udd8e\\udd91-\\udd9a\\udde6-\\uddff\\ude01\\ude32-\\ude36\\ude38-\\ude3a\\ude50\\ude51\\udf00-\\udf20\\udf2d-\\udf35\\udf37-\\udf7c\\udf7e-\\udf84\\udf86-\\udf93\\udfa0-\\udfc1\\udfc5\\udfc6\\udfc8\\udfc9\\udfcf-\\udfd3\\udfe0-\\udff0\\udff4\\udff8-\\udfff]|\\ud83d[\\udc00-\\udc3e\\udc40\\udc44\\udc45\\udc51-\\udc65\\udc6a\\udc6f\\udc79-\\udc7b\\udc7d-\\udc80\\udc84\\udc88-\\udc8e\\udc90\\udc92-\\udca9\\udcab-\\udcfc\\udcff-\\udd3d\\udd4b-\\udd4e\\udd50-\\udd67\\udda4\\uddfb-\\ude44\\ude48-\\ude4a\\ude80-\\udea2\\udea4-\\udeb3\\udeb7-\\udebf\\udec1-\\udec5\\uded0-\\uded2\\uded5-\\uded7\\udedc-\\udedf\\udeeb\\udeec\\udef4-\\udefc\\udfe0-\\udfeb\\udff0]|\\ud83e[\\udd0d\\udd0e\\udd10-\\udd17\\udd20-\\udd25\\udd27-\\udd2f\\udd3a\\udd3c\\udd3f-\\udd45\\udd47-\\udd76\\udd78-\\uddb4\\uddb7\\uddba\\uddbc-\\uddcc\\uddd0\\uddde-\\uddff\\ude70-\\ude7c\\ude80-\\ude88\\ude90-\\udebd\\udebf-\\udec2\\udece-\\udedb\\udee0-\\udee8]|[\\u23e9-\\u23ec\\u23f0\\u23f3\\u267e\\u26ce\\u2705\\u2728\\u274c\\u274e\\u2753-\\u2755\\u2795-\\u2797\\u27b0\\u27bf\\ue50a])|\\ufe0f/g;\n\n/**\n * Creates a fresh instance of the Twemoji regex, which is useful if you don't want to worry about the effects of a global regex and the lastIndex\n * @returns A clone of the Twemoji regex\n */\nexport function createTwemojiRegex(): RegExp {\n\treturn new RegExp(TwemojiRegex);\n}\n"]}