diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 6b88380a9d..89450679ad 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -4098,7 +4098,7 @@ Unused sets are archived when you add more."; "GroupPermission.PermissionGloballyDisabled" = "This permission is disabled in this group."; -"ChannelInfo.Stats" = "Statistics"; +"ChannelInfo.Stats" = "View Statistics"; "Conversation.PressVolumeButtonForSound" = "Press volume button\nto unmute the video"; @@ -5813,3 +5813,5 @@ Any member of this group will be able to see messages in the channel."; "Channel.CommentsGroup.HeaderGroupSet" = "%@ is linking the group as it's discussion board."; "RepliesChat.DescriptionText" = "This chat helps you keep track of replies to your comments in Channels."; + +"Conversation.ContextViewStats" = "View Statistics"; diff --git a/submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift b/submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift index 9611d3e41c..db0f293924 100644 --- a/submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift +++ b/submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift @@ -1494,6 +1494,18 @@ final class ChatListSearchListPaneNode: ASDisplayNode, ChatListSearchPaneNode { if let strongSelf = self { strongSelf.presentationData = presentationData strongSelf.presentationDataPromise.set(.single(ChatListPresentationData(theme: presentationData.theme, fontSize: presentationData.listsFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameSortOrder: presentationData.nameSortOrder, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations))) + + strongSelf.listNode.forEachItemHeaderNode({ itemHeaderNode in + if let itemHeaderNode = itemHeaderNode as? ChatListSearchItemHeaderNode { + itemHeaderNode.updateTheme(theme: presentationData.theme) + } + }) + + strongSelf.recentListNode.forEachItemHeaderNode({ itemHeaderNode in + if let itemHeaderNode = itemHeaderNode as? ChatListSearchItemHeaderNode { + itemHeaderNode.updateTheme(theme: presentationData.theme) + } + }) } }) diff --git a/submodules/GalleryUI/Sources/GalleryController.swift b/submodules/GalleryUI/Sources/GalleryController.swift index 40169e17d0..8661146b86 100644 --- a/submodules/GalleryUI/Sources/GalleryController.swift +++ b/submodules/GalleryUI/Sources/GalleryController.swift @@ -210,7 +210,9 @@ public func galleryItemForEntry(context: AccountContext, presentationData: Prese content = SystemVideoContent(url: embedUrl, imageReference: .webPage(webPage: WebpageReference(webpage), media: image), dimensions: webpageContent.embedSize?.cgSize ?? CGSize(width: 640.0, height: 640.0), duration: Int32(webpageContent.duration ?? 0)) } } - if content == nil, let webEmbedContent = WebEmbedVideoContent(webPage: webpage, webpageContent: webpageContent, forcedTimestamp: timecode.flatMap(Int.init)) { + if content == nil, let webEmbedContent = WebEmbedVideoContent(webPage: webpage, webpageContent: webpageContent, forcedTimestamp: timecode.flatMap(Int.init), openUrl: { url in + performAction(.url(url: url.absoluteString, concealed: false)) + }) { content = webEmbedContent } } diff --git a/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift b/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift index 51c829cb97..36f09bb9c2 100644 --- a/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift +++ b/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift @@ -493,6 +493,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { var disablePictureInPicture = false var disablePlayerControls = false var forceEnablePiP = false + var forceEnableUserInteraction = false var isAnimated = false if let content = item.content as? NativeVideoContent { isAnimated = content.fileReference.media.isAnimated @@ -503,6 +504,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { let type = webEmbedType(content: content.webpageContent) switch type { case .youtube: + forceEnableUserInteraction = true disablePictureInPicture = !(item.configuration?.youtubePictureInPictureEnabled ?? false) self.videoFramePreview = YoutubeEmbedFramePreview(context: item.context, content: content) case .iframe: @@ -527,7 +529,14 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { let mediaManager = item.context.sharedContext.mediaManager let videoNode = UniversalVideoNode(postbox: item.context.account.postbox, audioSession: mediaManager.audioSession, manager: mediaManager.universalVideoManager, decoration: GalleryVideoDecoration(), content: item.content, priority: .gallery) - let videoSize = CGSize(width: item.content.dimensions.width * 2.0, height: item.content.dimensions.height * 2.0) + + let videoScale: CGFloat + if item.content is WebEmbedVideoContent { + videoScale = 1.0 + } else { + videoScale = 2.0 + } + let videoSize = CGSize(width: item.content.dimensions.width * videoScale, height: item.content.dimensions.height * videoScale) videoNode.updateLayout(size: videoSize, transition: .immediate) videoNode.ownsContentNodeUpdated = { [weak self] value in if let strongSelf = self { @@ -546,7 +555,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { } } self.videoNode = videoNode - videoNode.isUserInteractionEnabled = disablePlayerControls + videoNode.isUserInteractionEnabled = disablePlayerControls || forceEnableUserInteraction videoNode.backgroundColor = videoNode.ownsContentNode ? UIColor.black : UIColor(rgb: 0x333335) if item.fromPlayingVideo { videoNode.canAttachContent = false diff --git a/submodules/GraphCore/Sources/Charts/Controllers/Lines/BaseLinesChartController.swift b/submodules/GraphCore/Sources/Charts/Controllers/Lines/BaseLinesChartController.swift index b8b0963833..2094f3d084 100644 --- a/submodules/GraphCore/Sources/Charts/Controllers/Lines/BaseLinesChartController.swift +++ b/submodules/GraphCore/Sources/Charts/Controllers/Lines/BaseLinesChartController.swift @@ -44,6 +44,15 @@ public class BaseLinesChartController: BaseChartController { self.setBackButtonVisibilityClosure?(isZoomed, animated) updateChartRangeTitle(animated: animated) + + let initial = initialChartsCollection + DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { + if let lastDate = initial.axisValues.last { + TimeInterval.animationDurationMultipler = 0.00001 + self.didTapZoomIn(date: lastDate, pointIndex: initial.axisValues.count - 1) + TimeInterval.animationDurationMultipler = 1.0 + } + } } func updateChartRangeTitle(animated: Bool) { diff --git a/submodules/InstantPageUI/Sources/InstantPageGalleryController.swift b/submodules/InstantPageUI/Sources/InstantPageGalleryController.swift index ea351f7630..91b2d00545 100644 --- a/submodules/InstantPageUI/Sources/InstantPageGalleryController.swift +++ b/submodules/InstantPageUI/Sources/InstantPageGalleryController.swift @@ -137,7 +137,9 @@ public struct InstantPageGalleryEntry: Equatable { })) }), caption: NSAttributedString(string: ""), fromPlayingVideo: fromPlayingVideo, landscape: landscape, performAction: { _ in }, openActionOptions: { _ in }, storeMediaPlaybackState: { _, _ in }, present: { _, _ in }) } else { - if let content = WebEmbedVideoContent(webPage: embedWebpage, webpageContent: webpageContent) { + if let content = WebEmbedVideoContent(webPage: embedWebpage, webpageContent: webpageContent, openUrl: { url in + + }) { return UniversalVideoGalleryItem(context: context, presentationData: presentationData, content: content, originData: nil, indexData: nil, contentInfo: .webPage(webPage, embedWebpage, nil), caption: NSAttributedString(string: ""), fromPlayingVideo: fromPlayingVideo, landscape: landscape, performAction: { _ in }, openActionOptions: { _ in }, storeMediaPlaybackState: { _, _ in }, present: { _, _ in }) } else { preconditionFailure() diff --git a/submodules/StatisticsUI/Sources/MessageStatsController.swift b/submodules/StatisticsUI/Sources/MessageStatsController.swift index fe20ab3a1f..c220272475 100644 --- a/submodules/StatisticsUI/Sources/MessageStatsController.swift +++ b/submodules/StatisticsUI/Sources/MessageStatsController.swift @@ -39,7 +39,7 @@ private enum StatsEntry: ItemListNodeEntry { case overview(PresentationTheme, MessageStats, Int32?) case interactionsTitle(PresentationTheme, String) - case interactionsGraph(PresentationTheme, PresentationStrings, PresentationDateTimeFormat, StatsGraph, ChartType) + case interactionsGraph(PresentationTheme, PresentationStrings, PresentationDateTimeFormat, StatsGraph, StatsGraph?, ChartType) case publicForwardsTitle(PresentationTheme, String) case publicForward(Int32, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, Message) @@ -92,8 +92,8 @@ private enum StatsEntry: ItemListNodeEntry { } else { return false } - case let .interactionsGraph(lhsTheme, lhsStrings, lhsDateTimeFormat, lhsGraph, lhsType): - if case let .interactionsGraph(rhsTheme, rhsStrings, rhsDateTimeFormat, rhsGraph, rhsType) = rhs, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsDateTimeFormat == rhsDateTimeFormat, lhsGraph == rhsGraph, lhsType == rhsType { + case let .interactionsGraph(lhsTheme, lhsStrings, lhsDateTimeFormat, lhsGraph, lhsDetailedGraph, lhsType): + if case let .interactionsGraph(rhsTheme, rhsStrings, rhsDateTimeFormat, rhsGraph, rhsDetailedGraph, rhsType) = rhs, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsDateTimeFormat == rhsDateTimeFormat, lhsGraph == rhsGraph, lhsDetailedGraph == rhsDetailedGraph, lhsType == rhsType { return true } else { return false @@ -126,13 +126,17 @@ private enum StatsEntry: ItemListNodeEntry { return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) case let .overview(_, stats, publicShares): return MessageStatsOverviewItem(presentationData: presentationData, stats: stats, publicShares: publicShares, sectionId: self.section, style: .blocks) - case let .interactionsGraph(_, _, _, graph, type): + case let .interactionsGraph(_, _, _, graph, detailedGraph, type): return StatsGraphItem(presentationData: presentationData, graph: graph, type: type, getDetailsData: { date, completion in - let _ = arguments.loadDetailedGraph(graph, Int64(date.timeIntervalSince1970) * 1000).start(next: { graph in - if let graph = graph, case let .Loaded(_, data) = graph { - completion(data) - } - }) + if let detailedGraph = detailedGraph, case let .Loaded(_, data) = detailedGraph { + completion(data) + } else { + let _ = arguments.loadDetailedGraph(graph, Int64(date.timeIntervalSince1970) * 1000).start(next: { graph in + if let graph = graph, case let .Loaded(_, data) = graph { + completion(data) + } + }) + } }, sectionId: self.section, style: .blocks) case let .publicForward(_, _, _, _, message): var views: Int = 0 @@ -148,9 +152,6 @@ private enum StatsEntry: ItemListNodeEntry { return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .military, dateFormat: .dayFirst, dateSeparator: ".", decimalSeparator: ",", groupingSeparator: ""), nameDisplayOrder: .firstLast, context: arguments.context, peer: message.peers[message.id.peerId]!, height: .generic, aliasHandling: .standard, nameColor: .primary, nameStyle: .plain, presence: nil, text: .text(text), label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: nil), revealOptions: nil, switchValue: nil, enabled: true, highlighted: false, selectable: true, sectionId: self.section, action: { arguments.openMessage(message.id) }, setPeerIdWithRevealedOptions: { _, _ in }, removePeer: { _ in }, toggleUpdated: nil, contextAction: nil) -// return StatsMessageItem(context: arguments.context, presentationData: presentationData, message: message, views: 0, forwards: 0, sectionId: self.section, style: .blocks, action: { -// arguments.openMessage(message.id) -// }) } } } @@ -164,7 +165,7 @@ private func messageStatsControllerEntries(data: MessageStats?, messages: Search if !data.interactionsGraph.isEmpty { entries.append(.interactionsTitle(presentationData.theme, presentationData.strings.Stats_MessageInteractionsTitle.uppercased())) - entries.append(.interactionsGraph(presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, data.interactionsGraph, .twoAxisStep)) + entries.append(.interactionsGraph(presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, data.interactionsGraph, data.detailedInteractionsGraph, .twoAxisStep)) } if let messages = messages, !messages.messages.isEmpty { diff --git a/submodules/TelegramCore/Sources/MessageStatistics.swift b/submodules/TelegramCore/Sources/MessageStatistics.swift index 7e2cb5bf61..1ee2e47aa9 100644 --- a/submodules/TelegramCore/Sources/MessageStatistics.swift +++ b/submodules/TelegramCore/Sources/MessageStatistics.swift @@ -9,11 +9,13 @@ public struct MessageStats: Equatable { public let views: Int public let forwards: Int public let interactionsGraph: StatsGraph + public let detailedInteractionsGraph: StatsGraph? - init(views: Int, forwards: Int, interactionsGraph: StatsGraph) { + init(views: Int, forwards: Int, interactionsGraph: StatsGraph, detailedInteractionsGraph: StatsGraph?) { self.views = views self.forwards = forwards self.interactionsGraph = interactionsGraph + self.detailedInteractionsGraph = detailedInteractionsGraph } public static func == (lhs: MessageStats, rhs: MessageStats) -> Bool { @@ -26,11 +28,14 @@ public struct MessageStats: Equatable { if lhs.interactionsGraph != rhs.interactionsGraph { return false } + if lhs.detailedInteractionsGraph != rhs.detailedInteractionsGraph { + return false + } return true } public func withUpdatedInteractionsGraph(_ interactionsGraph: StatsGraph) -> MessageStats { - return MessageStats(views: self.views, forwards: self.forwards, interactionsGraph: self.interactionsGraph) + return MessageStats(views: self.views, forwards: self.forwards, interactionsGraph: interactionsGraph, detailedInteractionsGraph: self.detailedInteractionsGraph) } } @@ -39,8 +44,7 @@ public struct MessageStatsContextState: Equatable { } private func requestMessageStats(postbox: Postbox, network: Network, datacenterId: Int32, messageId: MessageId, dark: Bool = false) -> Signal { - return .single(nil) - /*return postbox.transaction { transaction -> (Peer, Message)? in + return postbox.transaction { transaction -> (Peer, Message)? in if let peer = transaction.getPeer(messageId.peerId), let message = transaction.getMessage(messageId) { return (peer, message) } else { @@ -79,15 +83,25 @@ private func requestMessageStats(postbox: Postbox, network: Network, datacenterI } return signal - |> map { result -> MessageStats? in + |> mapToSignal { result -> Signal in if case let .messageStats(apiViewsGraph) = result { - return MessageStats(views: views, forwards: forwards, interactionsGraph: StatsGraph(apiStatsGraph: apiViewsGraph)) + let interactionsGraph = StatsGraph(apiStatsGraph: apiViewsGraph) + let timestamp = Int32(CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970) + if case let .Loaded(tokenValue, _) = interactionsGraph, let token = tokenValue, Int64(message.timestamp + 60 * 60 * 24 * 2) > Int64(timestamp) { + return requestGraph(network: network, datacenterId: datacenterId, token: token, x: 1601596800000) + |> castError(MTRpcError.self) + |> map { detailedGraph -> MessageStats? in + return MessageStats(views: views, forwards: forwards, interactionsGraph: interactionsGraph, detailedInteractionsGraph: detailedGraph) + } + } else { + return .single(MessageStats(views: views, forwards: forwards, interactionsGraph: interactionsGraph, detailedInteractionsGraph: nil)) + } } else { - return nil + return .single(nil) } } |> retryRequest - }*/ + } } private final class MessageStatsContextImpl { diff --git a/submodules/TelegramCore/Sources/SearchMessages.swift b/submodules/TelegramCore/Sources/SearchMessages.swift index 19eb12abc5..50c9bc8fbb 100644 --- a/submodules/TelegramCore/Sources/SearchMessages.swift +++ b/submodules/TelegramCore/Sources/SearchMessages.swift @@ -345,15 +345,32 @@ public func searchMessages(account: Account, location: SearchMessagesLocation, q |> mapToSignal { result, additionalResult -> Signal<(SearchMessagesResult, SearchMessagesState), NoError> in return account.postbox.transaction { transaction -> (SearchMessagesResult, SearchMessagesState) in var additional: SearchMessagesPeerState? = mergedState(transaction: transaction, state: state?.additional, result: additionalResult) - if state?.additional == nil, case let .general(tags, _, _) = location { - let secretMessages = transaction.searchMessages(peerId: nil, query: query, tags: tags) - var readStates: [PeerId: CombinedPeerReadState] = [:] - for message in secretMessages { - if let readState = transaction.getCombinedPeerReadState(message.id.peerId) { - readStates[message.id.peerId] = readState - } + + if state?.additional == nil { + switch location { + case let .general(tags, minDate, maxDate), let .group(_, tags, minDate, maxDate): + let secretMessages = transaction.searchMessages(peerId: nil, query: query, tags: tags) + var filteredMessages: [Message] = [] + var readStates: [PeerId: CombinedPeerReadState] = [:] + for message in secretMessages { + var match = true + if let minDate = minDate, message.timestamp < minDate { + match = false + } + if let maxDate = maxDate, message.timestamp > maxDate { + match = false + } + if match { + filteredMessages.append(message) + if let readState = transaction.getCombinedPeerReadState(message.id.peerId) { + readStates[message.id.peerId] = readState + } + } + } + additional = SearchMessagesPeerState(messages: filteredMessages, readStates: readStates, totalCount: Int32(filteredMessages.count), completed: true, nextRate: nil) + default: + break } - additional = SearchMessagesPeerState(messages: secretMessages, readStates: readStates, totalCount: Int32(secretMessages.count), completed: true, nextRate: nil) } let updatedState = SearchMessagesState(main: mergedState(transaction: transaction, state: state?.main, result: result) ?? SearchMessagesPeerState(messages: [], readStates: [:], totalCount: 0, completed: true, nextRate: nil), additional: additional) diff --git a/submodules/TelegramCore/Sources/Serialization.swift b/submodules/TelegramCore/Sources/Serialization.swift index 94cd1882c6..d03f659a53 100644 --- a/submodules/TelegramCore/Sources/Serialization.swift +++ b/submodules/TelegramCore/Sources/Serialization.swift @@ -210,7 +210,7 @@ public class BoxedMessage: NSObject { public class Serialization: NSObject, MTSerialization { public func currentLayer() -> UInt { - return 119 + return 120 } public func parseMessage(_ data: Data!) -> Any! { diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 429101fc0a..a8c6bbf674 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -4384,1187 +4384,1188 @@ public final class PresentationStrings: Equatable { public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3929]!, self._r[3929]!, [_1, _2]) } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3931]! } - public var PasscodeSettings_Title: String { return self._s[3932]! } - public var Channel_AdminLog_SendPolls: String { return self._s[3933]! } - public var LastSeen_ALongTimeAgo: String { return self._s[3934]! } + public var Conversation_ContextViewStats: String { return self._s[3931]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3932]! } + public var PasscodeSettings_Title: String { return self._s[3933]! } + public var Channel_AdminLog_SendPolls: String { return self._s[3934]! } + public var LastSeen_ALongTimeAgo: String { return self._s[3935]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1]) + return formatWithArgumentRanges(self._s[3936]!, self._r[3936]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3936]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[3937]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[3938]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[3939]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3937]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[3938]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[3939]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[3940]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_0]) + return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[3942]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3945]! } - public var SharedMedia_TitleAll: String { return self._s[3946]! } - public var Settings_Context_Logout: String { return self._s[3947]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[3949]! } - public var Settings_About_Title: String { return self._s[3950]! } - public var StickerSettings_ContextHide: String { return self._s[3951]! } + public var Passport_Identity_GenderFemale: String { return self._s[3943]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3946]! } + public var SharedMedia_TitleAll: String { return self._s[3947]! } + public var Settings_Context_Logout: String { return self._s[3948]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[3950]! } + public var Settings_About_Title: String { return self._s[3951]! } + public var StickerSettings_ContextHide: String { return self._s[3952]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3952]!, self._r[3952]!, [_0]) - } - public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3953]!, self._r[3953]!, [_0]) } - public var Common_Cancel: String { return self._s[3955]! } - public var CallFeedback_Title: String { return self._s[3957]! } - public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3958]!, self._r[3958]!, [_0]) + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) } - public var Activity_UploadingVideoMessage: String { return self._s[3959]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[3960]! } - public var MediaPicker_Send: String { return self._s[3961]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[3962]! } - public var Conversation_LiveLocationYou: String { return self._s[3963]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[3964]! } + public var Common_Cancel: String { return self._s[3956]! } + public var CallFeedback_Title: String { return self._s[3958]! } + public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3959]!, self._r[3959]!, [_0]) + } + public var Activity_UploadingVideoMessage: String { return self._s[3960]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[3961]! } + public var MediaPicker_Send: String { return self._s[3962]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[3963]! } + public var Conversation_LiveLocationYou: String { return self._s[3964]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[3965]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3965]!, self._r[3965]!, [_0]) + return formatWithArgumentRanges(self._s[3966]!, self._r[3966]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3966]!, self._r[3966]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3967]!, self._r[3967]!, [_1, _2]) } - public var Conversation_ViewBackground: String { return self._s[3967]! } - public var ChatSettings_PrivateChats: String { return self._s[3970]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[3971]! } - public var Wallet_Receive_AmountInfo: String { return self._s[3972]! } - public var Appearance_ThemeNight: String { return self._s[3973]! } - public var Common_Search: String { return self._s[3974]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[3975]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[3977]! } - public var Stickers_SuggestAdded: String { return self._s[3978]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[3981]! } - public var NetworkUsageSettings_Cellular: String { return self._s[3982]! } - public var CheckoutInfo_Title: String { return self._s[3983]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[3984]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3985]! } + public var Conversation_ViewBackground: String { return self._s[3968]! } + public var ChatSettings_PrivateChats: String { return self._s[3971]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[3972]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3973]! } + public var Appearance_ThemeNight: String { return self._s[3974]! } + public var Common_Search: String { return self._s[3975]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[3976]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3978]! } + public var Stickers_SuggestAdded: String { return self._s[3979]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[3982]! } + public var NetworkUsageSettings_Cellular: String { return self._s[3983]! } + public var CheckoutInfo_Title: String { return self._s[3984]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[3985]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3986]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3986]!, self._r[3986]!, [_0]) + return formatWithArgumentRanges(self._s[3987]!, self._r[3987]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[3987]! } - public var GroupRemoved_DeleteUser: String { return self._s[3988]! } - public var Contacts_ShareTelegram: String { return self._s[3989]! } - public var Group_UpgradeNoticeText1: String { return self._s[3990]! } + public var MaskStickerSettings_Info: String { return self._s[3988]! } + public var GroupRemoved_DeleteUser: String { return self._s[3989]! } + public var Contacts_ShareTelegram: String { return self._s[3990]! } + public var Group_UpgradeNoticeText1: String { return self._s[3991]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3991]!, self._r[3991]!, [_1]) + return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[3992]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[3996]! } - public var PhotoEditor_TintTool: String { return self._s[3997]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3999]! } - public var GroupPermission_NoSendPolls: String { return self._s[4000]! } - public var NotificationsSound_None: String { return self._s[4001]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[3993]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[3997]! } + public var PhotoEditor_TintTool: String { return self._s[3998]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[4000]! } + public var GroupPermission_NoSendPolls: String { return self._s[4001]! } + public var NotificationsSound_None: String { return self._s[4002]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4002]!, self._r[4002]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4003]!, self._r[4003]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4004]! } - public var ExplicitContent_AlertChannel: String { return self._s[4006]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4007]! } - public var Contacts_SortedByPresence: String { return self._s[4008]! } - public var WallpaperSearch_ColorGray: String { return self._s[4009]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4010]! } - public var Conversation_ReportSpam: String { return self._s[4011]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4014]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4015]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4016]! } - public var Conversation_DefaultRestrictedText: String { return self._s[4017]! } - public var Settings_Devices: String { return self._s[4018]! } - public var Call_AudioRouteSpeaker: String { return self._s[4019]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4020]! } - public var Passport_Address_Country: String { return self._s[4022]! } - public var Cache_MaximumCacheSize: String { return self._s[4023]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4024]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[4026]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4027]! } - public var Login_TermsOfServiceLabel: String { return self._s[4028]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4029]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4030]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4031]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4032]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4033]! } - public var ConvertToSupergroup_Note: String { return self._s[4035]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4036]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4037]! } - public var Common_More: String { return self._s[4038]! } - public var ShareMenu_SelectChats: String { return self._s[4040]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4005]! } + public var ExplicitContent_AlertChannel: String { return self._s[4007]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4008]! } + public var Contacts_SortedByPresence: String { return self._s[4009]! } + public var WallpaperSearch_ColorGray: String { return self._s[4010]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4011]! } + public var Conversation_ReportSpam: String { return self._s[4012]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4015]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4016]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4017]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4018]! } + public var Settings_Devices: String { return self._s[4019]! } + public var Call_AudioRouteSpeaker: String { return self._s[4020]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4021]! } + public var Passport_Address_Country: String { return self._s[4023]! } + public var Cache_MaximumCacheSize: String { return self._s[4024]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4025]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[4027]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4028]! } + public var Login_TermsOfServiceLabel: String { return self._s[4029]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4030]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4031]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4032]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4033]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4034]! } + public var ConvertToSupergroup_Note: String { return self._s[4036]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4037]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4038]! } + public var Common_More: String { return self._s[4039]! } + public var ShareMenu_SelectChats: String { return self._s[4041]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4043]!, self._r[4043]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4045]! } + public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_0]) + } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4046]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4046]!, self._r[4046]!, [_0]) + return formatWithArgumentRanges(self._s[4047]!, self._r[4047]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4047]! } + public var WatchRemote_AlertOpen: String { return self._s[4048]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4048]!, self._r[4048]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4049]!, self._r[4049]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4049]! } - public var Shortcut_SwitchAccount: String { return self._s[4050]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4051]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4050]! } + public var Shortcut_SwitchAccount: String { return self._s[4051]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4052]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_0]) + return formatWithArgumentRanges(self._s[4053]!, self._r[4053]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4053]! } - public var DialogList_You: String { return self._s[4054]! } - public var ReportPeer_ReasonViolence: String { return self._s[4055]! } + public var Compose_NewGroupTitle: String { return self._s[4054]! } + public var DialogList_You: String { return self._s[4055]! } + public var ReportPeer_ReasonViolence: String { return self._s[4056]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4056]!, self._r[4056]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4057]!, self._r[4057]!, [_1, _2]) } - public var KeyCommand_ScrollDown: String { return self._s[4060]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4061]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4062]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4063]! } - public var ArchivedChats_IntroText3: String { return self._s[4064]! } - public var HashtagSearch_AllChats: String { return self._s[4066]! } - public var Channel_Info_BlackList: String { return self._s[4068]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4069]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4070]! } - public var Paint_Neon: String { return self._s[4072]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4073]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4074]! } + public var KeyCommand_ScrollDown: String { return self._s[4061]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4062]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4063]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4064]! } + public var ArchivedChats_IntroText3: String { return self._s[4065]! } + public var HashtagSearch_AllChats: String { return self._s[4067]! } + public var Channel_Info_BlackList: String { return self._s[4069]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4070]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4071]! } + public var Paint_Neon: String { return self._s[4073]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4074]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4075]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_0]) + return formatWithArgumentRanges(self._s[4077]!, self._r[4077]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4077]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4078]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4079]! } - public var InstantPage_Reference: String { return self._s[4080]! } - public var ChatList_HideAction: String { return self._s[4082]! } - public var Conversation_FileICloudDrive: String { return self._s[4084]! } + public var Map_StopLiveLocation: String { return self._s[4078]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4079]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4080]! } + public var InstantPage_Reference: String { return self._s[4081]! } + public var ChatList_HideAction: String { return self._s[4083]! } + public var Conversation_FileICloudDrive: String { return self._s[4085]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_1]) + return formatWithArgumentRanges(self._s[4086]!, self._r[4086]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4087]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4089]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4090]! } - public var Calls_AddTab: String { return self._s[4091]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4092]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4093]! } - public var Privacy_GroupsAndChannels: String { return self._s[4095]! } - public var AutoNightTheme_Disabled: String { return self._s[4096]! } - public var CreatePoll_MultipleChoice: String { return self._s[4097]! } + public var Passport_PasswordReset: String { return self._s[4088]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4090]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4091]! } + public var Calls_AddTab: String { return self._s[4092]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4093]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4094]! } + public var Privacy_GroupsAndChannels: String { return self._s[4096]! } + public var AutoNightTheme_Disabled: String { return self._s[4097]! } + public var CreatePoll_MultipleChoice: String { return self._s[4098]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4098]!, self._r[4098]!, [_1]) + return formatWithArgumentRanges(self._s[4099]!, self._r[4099]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4100]! } + public var Watch_Bot_Restart: String { return self._s[4101]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4101]!, self._r[4101]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4102]!, self._r[4102]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4102]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4103]! } - public var Appearance_PreviewIncomingText: String { return self._s[4104]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4105]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4107]! } - public var Stats_GroupOverview: String { return self._s[4109]! } - public var ScheduledMessages_EditTime: String { return self._s[4111]! } - public var Month_GenFebruary: String { return self._s[4112]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4113]! } - public var Stickers_ClearRecent: String { return self._s[4114]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4115]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4103]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4104]! } + public var Appearance_PreviewIncomingText: String { return self._s[4105]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4106]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4108]! } + public var Stats_GroupOverview: String { return self._s[4110]! } + public var ScheduledMessages_EditTime: String { return self._s[4112]! } + public var Month_GenFebruary: String { return self._s[4113]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4114]! } + public var Stickers_ClearRecent: String { return self._s[4115]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4116]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4116]!, self._r[4116]!, [_0]) + return formatWithArgumentRanges(self._s[4117]!, self._r[4117]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4117]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4118]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4119]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4120]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4122]! } - public var CreatePoll_Create: String { return self._s[4123]! } - public var ChatList_Search_FilterLinks: String { return self._s[4124]! } - public var Your_cards_number_is_invalid: String { return self._s[4125]! } - public var Month_ShortApril: String { return self._s[4126]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4127]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4128]! } - public var SocksProxySetup_Status: String { return self._s[4129]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4130]! } - public var ChatListFolder_CategoryBots: String { return self._s[4131]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4133]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4134]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4135]! } - public var Conversation_TitleUnmute: String { return self._s[4136]! } - public var Group_Setup_TypeHeader: String { return self._s[4137]! } - public var Stats_ViewsPerPost: String { return self._s[4138]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4139]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4140]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4118]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4119]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4120]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4121]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4123]! } + public var CreatePoll_Create: String { return self._s[4124]! } + public var ChatList_Search_FilterLinks: String { return self._s[4125]! } + public var Your_cards_number_is_invalid: String { return self._s[4126]! } + public var Month_ShortApril: String { return self._s[4127]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4128]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4129]! } + public var SocksProxySetup_Status: String { return self._s[4130]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4131]! } + public var ChatListFolder_CategoryBots: String { return self._s[4132]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4134]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4135]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4136]! } + public var Conversation_TitleUnmute: String { return self._s[4137]! } + public var Group_Setup_TypeHeader: String { return self._s[4138]! } + public var Stats_ViewsPerPost: String { return self._s[4139]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4140]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4141]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4141]!, self._r[4141]!, [_1]) + return formatWithArgumentRanges(self._s[4142]!, self._r[4142]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4142]! } + public var GroupInfo_Administrators_Title: String { return self._s[4143]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4143]!, self._r[4143]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4144]!, self._r[4144]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4144]!, self._r[4144]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4145]!, self._r[4145]!, [_1, _2, _3]) } - public var Wallet_Receive_Title: String { return self._s[4145]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4146]! } - public var Passport_Language_my: String { return self._s[4148]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4149]! } - public var Map_PlacesNearby: String { return self._s[4150]! } - public var Channel_About_Help: String { return self._s[4151]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4152]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4153]! } - public var Channel_Username_Title: String { return self._s[4154]! } - public var Activity_RecordingVideoMessage: String { return self._s[4155]! } + public var Wallet_Receive_Title: String { return self._s[4146]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4147]! } + public var Passport_Language_my: String { return self._s[4149]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4150]! } + public var Map_PlacesNearby: String { return self._s[4151]! } + public var Channel_About_Help: String { return self._s[4152]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4153]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4154]! } + public var Channel_Username_Title: String { return self._s[4155]! } + public var Activity_RecordingVideoMessage: String { return self._s[4156]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_0]) + return formatWithArgumentRanges(self._s[4157]!, self._r[4157]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4157]! } - public var Passport_DiscardMessageDescription: String { return self._s[4158]! } - public var Conversation_LinkDialogOpen: String { return self._s[4159]! } - public var ChatList_Context_HideArchive: String { return self._s[4160]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4158]! } + public var Passport_DiscardMessageDescription: String { return self._s[4159]! } + public var Conversation_LinkDialogOpen: String { return self._s[4160]! } + public var ChatList_Context_HideArchive: String { return self._s[4161]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_0]) + return formatWithArgumentRanges(self._s[4162]!, self._r[4162]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4162]! } - public var Conversation_Admin: String { return self._s[4163]! } - public var DialogList_TabTitle: String { return self._s[4164]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4163]! } + public var Conversation_Admin: String { return self._s[4164]! } + public var DialogList_TabTitle: String { return self._s[4165]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4165]!, self._r[4165]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4166]!, self._r[4166]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4166]! } - public var Passport_Identity_GenderMale: String { return self._s[4168]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4170]! } - public var PhoneNumberHelp_Alert: String { return self._s[4171]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4172]! } - public var Notifications_InAppNotifications: String { return self._s[4173]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4167]! } + public var Passport_Identity_GenderMale: String { return self._s[4169]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4171]! } + public var PhoneNumberHelp_Alert: String { return self._s[4172]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4173]! } + public var Notifications_InAppNotifications: String { return self._s[4174]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4174]!, self._r[4174]!, [_0]) + return formatWithArgumentRanges(self._s[4175]!, self._r[4175]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4175]! } - public var Login_InvalidCodeError: String { return self._s[4176]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4177]! } + public var Notification_VideoCallOutgoing: String { return self._s[4176]! } + public var Login_InvalidCodeError: String { return self._s[4177]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4178]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4178]!, self._r[4178]!, [_0]) + return formatWithArgumentRanges(self._s[4179]!, self._r[4179]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4179]! } - public var ReportPeer_Report: String { return self._s[4180]! } - public var Camera_FlashOff: String { return self._s[4182]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4185]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4187]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4188]! } - public var Passport_FieldEmail: String { return self._s[4189]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4180]! } + public var ReportPeer_Report: String { return self._s[4181]! } + public var Camera_FlashOff: String { return self._s[4183]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4186]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4188]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4189]! } + public var Passport_FieldEmail: String { return self._s[4190]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4190]!, self._r[4190]!, [_1]) + return formatWithArgumentRanges(self._s[4191]!, self._r[4191]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4191]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4192]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4193]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4194]! } - public var Login_PhoneNumberHelp: String { return self._s[4196]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4197]! } - public var Conversation_PinnedQuiz: String { return self._s[4198]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4199]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4200]! } - public var Group_MessagePhotoUpdated: String { return self._s[4201]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4202]! } - public var Passport_Identity_Translations: String { return self._s[4204]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4205]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4207]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4208]! } - public var Channel_Members_AddMembers: String { return self._s[4209]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4210]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4212]! } - public var Conversation_HoldForAudio: String { return self._s[4213]! } - public var Watch_LastSeen_Lately: String { return self._s[4215]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4216]! } - public var Conversation_PinnedMessage: String { return self._s[4217]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4218]! } - public var Passport_UpdateRequiredError: String { return self._s[4220]! } - public var PrivacySettings_Passcode: String { return self._s[4221]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4192]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4193]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4194]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4195]! } + public var Login_PhoneNumberHelp: String { return self._s[4197]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4198]! } + public var Conversation_PinnedQuiz: String { return self._s[4199]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4200]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4201]! } + public var Group_MessagePhotoUpdated: String { return self._s[4202]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4203]! } + public var Passport_Identity_Translations: String { return self._s[4205]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4206]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4208]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4209]! } + public var Channel_Members_AddMembers: String { return self._s[4210]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4211]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4213]! } + public var Conversation_HoldForAudio: String { return self._s[4214]! } + public var Watch_LastSeen_Lately: String { return self._s[4216]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4217]! } + public var Conversation_PinnedMessage: String { return self._s[4218]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4219]! } + public var Passport_UpdateRequiredError: String { return self._s[4221]! } + public var PrivacySettings_Passcode: String { return self._s[4222]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4222]!, self._r[4222]!, [_0]) + return formatWithArgumentRanges(self._s[4223]!, self._r[4223]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4223]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4224]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4225]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4226]! } - public var Channel_SignMessages_Help: String { return self._s[4227]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4228]! } - public var Conversation_TitleNoComments: String { return self._s[4229]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4230]! } - public var GroupInfo_Permissions: String { return self._s[4231]! } - public var GroupPermission_NoSendLinks: String { return self._s[4234]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[4235]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4237]! } - public var ChatList_ArchiveAction: String { return self._s[4238]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4224]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4225]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4226]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4227]! } + public var Channel_SignMessages_Help: String { return self._s[4228]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4229]! } + public var Conversation_TitleNoComments: String { return self._s[4230]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4231]! } + public var GroupInfo_Permissions: String { return self._s[4232]! } + public var GroupPermission_NoSendLinks: String { return self._s[4235]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4236]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4238]! } + public var ChatList_ArchiveAction: String { return self._s[4239]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4239]!, self._r[4239]!, [_0]) + return formatWithArgumentRanges(self._s[4240]!, self._r[4240]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4240]! } + public var GroupInfo_GroupHistory: String { return self._s[4241]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4242]!, self._r[4242]!, [_0]) + return formatWithArgumentRanges(self._s[4243]!, self._r[4243]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4244]! } - public var Channel_Info_Banned: String { return self._s[4245]! } - public var Paint_RecentStickers: String { return self._s[4246]! } - public var VoiceOver_MessageContextSend: String { return self._s[4247]! } - public var Group_ErrorNotMutualContact: String { return self._s[4248]! } - public var ReportPeer_ReasonOther: String { return self._s[4250]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4251]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4253]! } - public var KeyCommand_Find: String { return self._s[4254]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4245]! } + public var Channel_Info_Banned: String { return self._s[4246]! } + public var Paint_RecentStickers: String { return self._s[4247]! } + public var VoiceOver_MessageContextSend: String { return self._s[4248]! } + public var Group_ErrorNotMutualContact: String { return self._s[4249]! } + public var ReportPeer_ReasonOther: String { return self._s[4251]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4252]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4254]! } + public var KeyCommand_Find: String { return self._s[4255]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4255]!, self._r[4255]!, [_0]) + return formatWithArgumentRanges(self._s[4256]!, self._r[4256]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4256]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4257]! } - public var Stickers_GroupStickersHelp: String { return self._s[4258]! } - public var Wallet_Configuration_BlockchainIdPlaceholder: String { return self._s[4259]! } - public var Checkout_Title: String { return self._s[4260]! } - public var Activity_RecordingAudio: String { return self._s[4261]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4262]! } - public var BlockedUsers_BlockTitle: String { return self._s[4263]! } - public var Wallet_Month_ShortFebruary: String { return self._s[4265]! } - public var Calls_All: String { return self._s[4266]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4268]! } - public var Settings_FAQ_Button: String { return self._s[4269]! } + public var ChatList_Context_Unmute: String { return self._s[4257]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4258]! } + public var Stickers_GroupStickersHelp: String { return self._s[4259]! } + public var Wallet_Configuration_BlockchainIdPlaceholder: String { return self._s[4260]! } + public var Checkout_Title: String { return self._s[4261]! } + public var Activity_RecordingAudio: String { return self._s[4262]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4263]! } + public var BlockedUsers_BlockTitle: String { return self._s[4264]! } + public var Wallet_Month_ShortFebruary: String { return self._s[4266]! } + public var Calls_All: String { return self._s[4267]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4269]! } + public var Settings_FAQ_Button: String { return self._s[4270]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4271]!, self._r[4271]!, [_0]) + return formatWithArgumentRanges(self._s[4272]!, self._r[4272]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4272]! } - public var Passport_Scans_Upload: String { return self._s[4273]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4275]! } - public var ChatList_UnarchiveAction: String { return self._s[4276]! } - public var Stats_GroupTopInviter_History: String { return self._s[4277]! } - public var GroupInfo_Permissions_Title: String { return self._s[4278]! } - public var Passport_Language_el: String { return self._s[4279]! } + public var Conversation_ReportGroupLocation: String { return self._s[4273]! } + public var Passport_Scans_Upload: String { return self._s[4274]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4276]! } + public var ChatList_UnarchiveAction: String { return self._s[4277]! } + public var Stats_GroupTopInviter_History: String { return self._s[4278]! } + public var GroupInfo_Permissions_Title: String { return self._s[4279]! } + public var Passport_Language_el: String { return self._s[4280]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4280]!, self._r[4280]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4281]!, self._r[4281]!, [_1, _2, _3]) } - public var GroupInfo_ActionPromote: String { return self._s[4281]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4282]! } + public var GroupInfo_ActionPromote: String { return self._s[4282]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4283]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4283]!, self._r[4283]!, [_0]) + return formatWithArgumentRanges(self._s[4284]!, self._r[4284]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4284]! } - public var Month_GenMay: String { return self._s[4285]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4286]! } - public var Chat_PsaTooltip_covid: String { return self._s[4287]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4288]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4289]! } - public var AppUpgrade_Running: String { return self._s[4290]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4293]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4294]! } - public var SharedMedia_EmptyText: String { return self._s[4295]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4296]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4297]! } - public var Message_PinnedGame: String { return self._s[4298]! } - public var KeyCommand_SearchInChat: String { return self._s[4299]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4300]! } - public var ChatList_Search_FilterMedia: String { return self._s[4301]! } - public var Message_PinnedAudioMessage: String { return self._s[4302]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4303]! } + public var VoiceOver_Chat_Reply: String { return self._s[4285]! } + public var Month_GenMay: String { return self._s[4286]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4287]! } + public var Chat_PsaTooltip_covid: String { return self._s[4288]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4289]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4290]! } + public var AppUpgrade_Running: String { return self._s[4291]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4294]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4295]! } + public var SharedMedia_EmptyText: String { return self._s[4296]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4297]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4298]! } + public var Message_PinnedGame: String { return self._s[4299]! } + public var KeyCommand_SearchInChat: String { return self._s[4300]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4301]! } + public var ChatList_Search_FilterMedia: String { return self._s[4302]! } + public var Message_PinnedAudioMessage: String { return self._s[4303]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4304]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4304]!, self._r[4304]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4305]!, self._r[4305]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4305]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4306]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4306]!, self._r[4306]!, [_0]) + return formatWithArgumentRanges(self._s[4307]!, self._r[4307]!, [_0]) } - public var Wallet_Receive_AddressCopied: String { return self._s[4307]! } + public var Wallet_Receive_AddressCopied: String { return self._s[4308]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4308]!, self._r[4308]!, [_0]) + return formatWithArgumentRanges(self._s[4309]!, self._r[4309]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4309]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4310]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4311]! } - public var Channel_JoinChannel: String { return self._s[4312]! } - public var Watch_UserInfo_Unblock: String { return self._s[4313]! } - public var PhoneLabel_Title: String { return self._s[4314]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4316]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4317]! } + public var Settings_AddAccount: String { return self._s[4310]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4311]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4312]! } + public var Channel_JoinChannel: String { return self._s[4313]! } + public var Watch_UserInfo_Unblock: String { return self._s[4314]! } + public var PhoneLabel_Title: String { return self._s[4315]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4317]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4318]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4318]!, self._r[4318]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4319]!, self._r[4319]!, [_1, _2, _3, _4, _5, _6]) } - public var Wallet_Month_GenOctober: String { return self._s[4319]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[4320]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4321]! } - public var DialogList_EncryptionProcessing: String { return self._s[4322]! } - public var ChatList_Search_FilterChats: String { return self._s[4323]! } - public var WatchRemote_NotificationText: String { return self._s[4324]! } - public var EditTheme_ChangeColors: String { return self._s[4325]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4326]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[4327]! } - public var CallSettings_OnMobile: String { return self._s[4329]! } - public var Month_ShortFebruary: String { return self._s[4331]! } - public var VoiceOver_MessageContextReply: String { return self._s[4332]! } + public var Wallet_Month_GenOctober: String { return self._s[4320]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4321]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4322]! } + public var DialogList_EncryptionProcessing: String { return self._s[4323]! } + public var ChatList_Search_FilterChats: String { return self._s[4324]! } + public var WatchRemote_NotificationText: String { return self._s[4325]! } + public var EditTheme_ChangeColors: String { return self._s[4326]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4327]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[4328]! } + public var CallSettings_OnMobile: String { return self._s[4330]! } + public var Month_ShortFebruary: String { return self._s[4332]! } + public var VoiceOver_MessageContextReply: String { return self._s[4333]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4333]!, self._r[4333]!, [_1]) + return formatWithArgumentRanges(self._s[4334]!, self._r[4334]!, [_1]) } - public var Group_Location_ChangeLocation: String { return self._s[4334]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4335]! } - public var Wallet_Send_EncryptComment: String { return self._s[4336]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4337]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4338]! } + public var Group_Location_ChangeLocation: String { return self._s[4335]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4336]! } + public var Wallet_Send_EncryptComment: String { return self._s[4337]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4338]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4339]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4340]!, self._r[4340]!, [_0]) + return formatWithArgumentRanges(self._s[4341]!, self._r[4341]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4341]! } - public var Login_InfoAvatarPhoto: String { return self._s[4342]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4343]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4344]! } - public var Map_PlacesInThisArea: String { return self._s[4345]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4346]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4347]! } + public var PhotoEditor_WarmthTool: String { return self._s[4342]! } + public var Login_InfoAvatarPhoto: String { return self._s[4343]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4344]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4345]! } + public var Map_PlacesInThisArea: String { return self._s[4346]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4347]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4348]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4348]!, self._r[4348]!, [_1]) + return formatWithArgumentRanges(self._s[4349]!, self._r[4349]!, [_1]) } - public var ShareMenu_Send: String { return self._s[4349]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4350]! } - public var Appearance_AppIconClassicX: String { return self._s[4351]! } + public var ShareMenu_Send: String { return self._s[4350]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4351]! } + public var Appearance_AppIconClassicX: String { return self._s[4352]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4352]!, self._r[4352]!, [_1]) + return formatWithArgumentRanges(self._s[4353]!, self._r[4353]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4353]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4355]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4356]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4357]! } - public var Wallet_WordCheck_Title: String { return self._s[4358]! } - public var Conversation_Timer_Title: String { return self._s[4359]! } - public var Common_Next: String { return self._s[4360]! } - public var Notification_Exceptions_NewException: String { return self._s[4361]! } + public var Conversation_StopPoll: String { return self._s[4354]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4356]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4357]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4358]! } + public var Wallet_WordCheck_Title: String { return self._s[4359]! } + public var Conversation_Timer_Title: String { return self._s[4360]! } + public var Common_Next: String { return self._s[4361]! } + public var Notification_Exceptions_NewException: String { return self._s[4362]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4362]!, self._r[4362]!, [_0]) + return formatWithArgumentRanges(self._s[4363]!, self._r[4363]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4363]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4364]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4365]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4366]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4367]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4368]! } + public var AccessDenied_CallMicrophone: String { return self._s[4364]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4365]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4366]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4367]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4368]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4369]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4369]!, self._r[4369]!, [_0]) + return formatWithArgumentRanges(self._s[4370]!, self._r[4370]!, [_0]) } - public var Group_About_Help: String { return self._s[4370]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4371]! } - public var Tour_Title3: String { return self._s[4372]! } - public var Watch_Conversation_Unblock: String { return self._s[4373]! } - public var Watch_UserInfo_Block: String { return self._s[4374]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4375]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4376]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4377]! } - public var Wallet_Alert_Cancel: String { return self._s[4378]! } - public var TextFormat_AddLinkTitle: String { return self._s[4379]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4380]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4381]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4382]! } - public var Compose_ChannelMembers: String { return self._s[4383]! } - public var Conversation_ForwardTitle: String { return self._s[4384]! } + public var Group_About_Help: String { return self._s[4371]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4372]! } + public var Tour_Title3: String { return self._s[4373]! } + public var Watch_Conversation_Unblock: String { return self._s[4374]! } + public var Watch_UserInfo_Block: String { return self._s[4375]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4376]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4377]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4378]! } + public var Wallet_Alert_Cancel: String { return self._s[4379]! } + public var TextFormat_AddLinkTitle: String { return self._s[4380]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4381]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4382]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4383]! } + public var Compose_ChannelMembers: String { return self._s[4384]! } + public var Conversation_ForwardTitle: String { return self._s[4385]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4385]!, self._r[4385]!, [_0]) + return formatWithArgumentRanges(self._s[4386]!, self._r[4386]!, [_0]) } - public var Conversation_PinnedPoll: String { return self._s[4387]! } + public var Conversation_PinnedPoll: String { return self._s[4388]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4388]!, self._r[4388]!, [_0]) + return formatWithArgumentRanges(self._s[4389]!, self._r[4389]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4389]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4390]! } - public var Stats_Overview: String { return self._s[4391]! } - public var Map_HomeAndWorkTitle: String { return self._s[4392]! } - public var Wallet_Intro_Terms: String { return self._s[4393]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4390]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4391]! } + public var Stats_Overview: String { return self._s[4392]! } + public var Map_HomeAndWorkTitle: String { return self._s[4393]! } + public var Wallet_Intro_Terms: String { return self._s[4394]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4394]!, self._r[4394]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4395]!, self._r[4395]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4395]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4396]! } - public var Privacy_PhoneNumber: String { return self._s[4397]! } - public var ChatList_Search_FilterFiles: String { return self._s[4398]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4399]! } - public var ChannelIntro_CreateChannel: String { return self._s[4400]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4401]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4396]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4397]! } + public var Privacy_PhoneNumber: String { return self._s[4398]! } + public var ChatList_Search_FilterFiles: String { return self._s[4399]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4400]! } + public var ChannelIntro_CreateChannel: String { return self._s[4401]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4402]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4402]!, self._r[4402]!, [_0]) + return formatWithArgumentRanges(self._s[4403]!, self._r[4403]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4403]! } - public var Passport_Language_ar: String { return self._s[4405]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4406]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4407]! } - public var Calls_RatingFeedback: String { return self._s[4408]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4409]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4412]! } - public var Watch_Compose_Send: String { return self._s[4413]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4414]! } - public var WebSearch_RecentSectionClear: String { return self._s[4415]! } + public var Weekday_ShortMonday: String { return self._s[4404]! } + public var Passport_Language_ar: String { return self._s[4406]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4407]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4408]! } + public var Calls_RatingFeedback: String { return self._s[4409]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4410]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4413]! } + public var Watch_Compose_Send: String { return self._s[4414]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4415]! } + public var WebSearch_RecentSectionClear: String { return self._s[4416]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4416]!, self._r[4416]!, [_0]) + return formatWithArgumentRanges(self._s[4417]!, self._r[4417]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4417]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4418]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4419]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4421]! } - public var Settings_SavedMessages: String { return self._s[4422]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4423]! } - public var Month_ShortMarch: String { return self._s[4424]! } - public var Message_Location: String { return self._s[4425]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4418]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4419]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4420]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4422]! } + public var Settings_SavedMessages: String { return self._s[4423]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4424]! } + public var Month_ShortMarch: String { return self._s[4425]! } + public var Message_Location: String { return self._s[4426]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4426]!, self._r[4426]!, [_1]) + return formatWithArgumentRanges(self._s[4427]!, self._r[4427]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4427]!, self._r[4427]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4428]!, self._r[4428]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4429]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4430]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4430]!, self._r[4430]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4431]!, self._r[4431]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4431]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4432]! } - public var SharedMedia_CategoryDocs: String { return self._s[4433]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4434]! } - public var Paint_Framed: String { return self._s[4435]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4436]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4437]! } - public var Channel_SignMessages: String { return self._s[4438]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4439]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4440]! } + public var GroupPermission_NoSendMedia: String { return self._s[4432]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4433]! } + public var SharedMedia_CategoryDocs: String { return self._s[4434]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4435]! } + public var Paint_Framed: String { return self._s[4436]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4437]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4438]! } + public var Channel_SignMessages: String { return self._s[4439]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4440]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4441]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4441]!, self._r[4441]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4442]!, self._r[4442]!, [_1, _2]) } - public var GroupInfo_UpgradeButton: String { return self._s[4442]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4443]! } - public var AutoDownloadSettings_Files: String { return self._s[4444]! } + public var GroupInfo_UpgradeButton: String { return self._s[4443]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4444]! } + public var AutoDownloadSettings_Files: String { return self._s[4445]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4445]!, self._r[4445]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4446]!, self._r[4446]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4447]! } - public var Update_UpdateApp: String { return self._s[4448]! } - public var Channel_Setup_TypePublic: String { return self._s[4449]! } - public var Watch_Compose_CreateMessage: String { return self._s[4450]! } + public var Login_SendCodeViaSms: String { return self._s[4448]! } + public var Update_UpdateApp: String { return self._s[4449]! } + public var Channel_Setup_TypePublic: String { return self._s[4450]! } + public var Watch_Compose_CreateMessage: String { return self._s[4451]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4451]!, self._r[4451]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4452]!, self._r[4452]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4452]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4453]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4453]!, self._r[4453]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4454]!, self._r[4454]!, [_1, _2, _3]) } - public var VoiceOver_Chat_Video: String { return self._s[4454]! } - public var Forward_ChannelReadOnly: String { return self._s[4455]! } - public var StickerPack_HideStickers: String { return self._s[4456]! } - public var ChatListFolder_NameContacts: String { return self._s[4457]! } - public var Profile_BotInfo: String { return self._s[4458]! } - public var Document_TargetConfirmationFormat: String { return self._s[4459]! } - public var GroupInfo_InviteByLink: String { return self._s[4460]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4461]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4462]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4463]! } - public var Passport_NotLoggedInMessage: String { return self._s[4464]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4465]! } - public var Checkout_PaymentMethod: String { return self._s[4466]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4470]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4471]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4472]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4473]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4474]! } - public var Camera_Title: String { return self._s[4475]! } - public var Map_Directions: String { return self._s[4476]! } - public var Wallet_Intro_ImportExisting: String { return self._s[4477]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4478]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4480]! } - public var Profile_EncryptionKey: String { return self._s[4481]! } + public var VoiceOver_Chat_Video: String { return self._s[4455]! } + public var Forward_ChannelReadOnly: String { return self._s[4456]! } + public var StickerPack_HideStickers: String { return self._s[4457]! } + public var ChatListFolder_NameContacts: String { return self._s[4458]! } + public var Profile_BotInfo: String { return self._s[4459]! } + public var Document_TargetConfirmationFormat: String { return self._s[4460]! } + public var GroupInfo_InviteByLink: String { return self._s[4461]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4462]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4463]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4464]! } + public var Passport_NotLoggedInMessage: String { return self._s[4465]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4466]! } + public var Checkout_PaymentMethod: String { return self._s[4467]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4471]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4472]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4473]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4474]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4475]! } + public var Camera_Title: String { return self._s[4476]! } + public var Map_Directions: String { return self._s[4477]! } + public var Wallet_Intro_ImportExisting: String { return self._s[4478]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[4479]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4481]! } + public var Profile_EncryptionKey: String { return self._s[4482]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4482]!, self._r[4482]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4483]!, self._r[4483]!, [_1, "\(_2)"]) } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4483]!, self._r[4483]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4484]!, self._r[4484]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[4484]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[4486]! } - public var Common_No: String { return self._s[4487]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4488]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4489]! } - public var Settings_AboutEmpty: String { return self._s[4490]! } - public var TwoStepAuth_FloodError: String { return self._s[4492]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4493]! } + public var Passport_Identity_TypePassport: String { return self._s[4485]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[4487]! } + public var Common_No: String { return self._s[4488]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4489]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4490]! } + public var Settings_AboutEmpty: String { return self._s[4491]! } + public var TwoStepAuth_FloodError: String { return self._s[4493]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4494]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4495]!, self._r[4495]!, [_1]) + return formatWithArgumentRanges(self._s[4496]!, self._r[4496]!, [_1]) } - public var Conversation_Edit: String { return self._s[4498]! } - public var CheckoutInfo_SaveInfo: String { return self._s[4499]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4500]! } - public var Call_CameraTooltip: String { return self._s[4502]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[4503]! } - public var Contacts_InviteToTelegram: String { return self._s[4504]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[4505]! } - public var Notifications_ResetAllNotifications: String { return self._s[4506]! } - public var Calls_NewCall: String { return self._s[4507]! } - public var VoiceOver_Chat_Music: String { return self._s[4510]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4511]! } - public var Channel_Edit_AboutItem: String { return self._s[4512]! } - public var Message_VideoExpired: String { return self._s[4513]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4514]! } + public var Conversation_Edit: String { return self._s[4499]! } + public var CheckoutInfo_SaveInfo: String { return self._s[4500]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4501]! } + public var Call_CameraTooltip: String { return self._s[4503]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[4504]! } + public var Contacts_InviteToTelegram: String { return self._s[4505]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[4506]! } + public var Notifications_ResetAllNotifications: String { return self._s[4507]! } + public var Calls_NewCall: String { return self._s[4508]! } + public var VoiceOver_Chat_Music: String { return self._s[4511]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4512]! } + public var Channel_Edit_AboutItem: String { return self._s[4513]! } + public var Message_VideoExpired: String { return self._s[4514]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4515]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4515]!, self._r[4515]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4516]!, self._r[4516]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[4517]! } - public var Notifications_ClassicTones: String { return self._s[4518]! } - public var Conversation_StatusTyping: String { return self._s[4519]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4520]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4521]! } - public var Wallet_Month_ShortSeptember: String { return self._s[4522]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4523]! } - public var Conversation_MessageLeaveComment: String { return self._s[4524]! } - public var UserInfo_TapToCall: String { return self._s[4525]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4526]! } - public var Conversation_ClearAll: String { return self._s[4528]! } - public var UserInfo_NotificationsDefault: String { return self._s[4529]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[4530]! } - public var Map_ChooseAPlace: String { return self._s[4531]! } + public var NotificationsSound_Input: String { return self._s[4518]! } + public var Notifications_ClassicTones: String { return self._s[4519]! } + public var Conversation_StatusTyping: String { return self._s[4520]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4521]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4522]! } + public var Wallet_Month_ShortSeptember: String { return self._s[4523]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4524]! } + public var Conversation_MessageLeaveComment: String { return self._s[4525]! } + public var UserInfo_TapToCall: String { return self._s[4526]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4527]! } + public var Conversation_ClearAll: String { return self._s[4529]! } + public var UserInfo_NotificationsDefault: String { return self._s[4530]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[4531]! } + public var Map_ChooseAPlace: String { return self._s[4532]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4532]!, self._r[4532]!, [_0]) + return formatWithArgumentRanges(self._s[4533]!, self._r[4533]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[4533]! } - public var ChatList_PeerTypeNonContact: String { return self._s[4534]! } - public var Conversation_SlideToCancel: String { return self._s[4535]! } - public var Month_ShortJuly: String { return self._s[4536]! } - public var SocksProxySetup_ProxyType: String { return self._s[4537]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[4534]! } + public var ChatList_PeerTypeNonContact: String { return self._s[4535]! } + public var Conversation_SlideToCancel: String { return self._s[4536]! } + public var Month_ShortJuly: String { return self._s[4537]! } + public var SocksProxySetup_ProxyType: String { return self._s[4538]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4538]!, self._r[4538]!, [_0]) + return formatWithArgumentRanges(self._s[4539]!, self._r[4539]!, [_0]) } - public var ChatList_EditFolders: String { return self._s[4539]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[4540]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[4542]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[4543]! } + public var ChatList_EditFolders: String { return self._s[4540]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[4541]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[4543]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[4544]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4544]!, self._r[4544]!, [_0]) + return formatWithArgumentRanges(self._s[4545]!, self._r[4545]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[4545]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[4546]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[4547]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[4549]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[4550]! } - public var Passport_DeleteAddress: String { return self._s[4552]! } - public var Passport_DeletePassportConfirmation: String { return self._s[4553]! } - public var Passport_Identity_ReverseSide: String { return self._s[4554]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[4555]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[4556]! } - public var Passport_FieldAddress: String { return self._s[4557]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[4558]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[4560]! } - public var Map_Home: String { return self._s[4562]! } - public var PollResults_Title: String { return self._s[4563]! } - public var ArchivedChats_IntroText2: String { return self._s[4565]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[4566]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[4567]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[4569]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[4571]! } - public var Group_Info_AdminLog: String { return self._s[4573]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4574]! } - public var Appearance_Animations: String { return self._s[4575]! } - public var Appearance_TextSizeSetting: String { return self._s[4576]! } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[4546]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[4547]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[4548]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[4550]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[4551]! } + public var Passport_DeleteAddress: String { return self._s[4553]! } + public var Passport_DeletePassportConfirmation: String { return self._s[4554]! } + public var Passport_Identity_ReverseSide: String { return self._s[4555]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[4556]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[4557]! } + public var Passport_FieldAddress: String { return self._s[4558]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[4559]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[4561]! } + public var Map_Home: String { return self._s[4563]! } + public var PollResults_Title: String { return self._s[4564]! } + public var ArchivedChats_IntroText2: String { return self._s[4566]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[4567]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[4568]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[4570]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[4572]! } + public var Group_Info_AdminLog: String { return self._s[4574]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4575]! } + public var Appearance_Animations: String { return self._s[4576]! } + public var Appearance_TextSizeSetting: String { return self._s[4577]! } + public func ChatList_MessagePhotos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { + public func ForwardedPhotos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func MuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func StickerPack_AddMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_InviteContacts(_ value: Int32) -> String { + public func MessageTimer_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + public func OldChannels_GroupFormat(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Generic(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func UserCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedLocations(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_TitleComments(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_ContextViewReplies(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_SelectedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_Search_Messages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveWeek(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, _1, _2) } public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_TitleReplies(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + public func Stats_GroupTopAdminBans(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_SelectedChats(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Years(_ value: Int32) -> String { + public func Watch_UserInfo_Mute(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Link(_ value: Int32) -> String { + public func Conversation_ContextViewReplies(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageForwards(_ value: Int32) -> String { + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessagePhotos(_ value: Int32) -> String { + public func Passport_Scans(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPolls(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageVideos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func Stats_MessageViews(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopPosterChars(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PollResults_ShowMore(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } public func MuteFor_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func Invitation_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, _1, _2) } public func Media_ShareItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ChatList_Search_Messages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InstantPage_Views(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveYear(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_MessageViewComments(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideoMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveMonth(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Weeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_TitleReplies(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveWeek(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeletedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + } + public func UserCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_InviteContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_Leave(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_MessageViews(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ value: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) @@ -5574,208 +5575,208 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreExtended(_ value: Int32) -> String { + public func ForwardedAudios(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideos(_ value: Int32) -> String { + public func StickerPack_AddStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_File(_ value: Int32) -> String { + public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedAudios(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + public func ForwardedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) } - public func InstantPage_Views(_ value: Int32) -> String { + public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { + public func Stats_GroupTopPosterChars(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, _1, _2) + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, _1, _2) + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, _1, _2) + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Days(_ value: Int32) -> String { + public func ForwardedGifs(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_GroupFormat(_ value: Int32) -> String { + public func ChatList_MessageVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_ImportersCount(_ value: Int32) -> String { + public func MessagePoll_QuizCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { + public func MessageTimer_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideoMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_QuizCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_Leave(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func OldChannels_InactiveYear(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeletedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[140 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_MessageViewComments(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, _0, _1) } public func GroupInfo_ParticipantCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminBans(_ value: Int32) -> String { + public func ForwardedPolls(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[144 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Stats_MessageForwards(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_TitleComments(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_SelectedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, _1, _2) } public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PollResults_ShowMore(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[140 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[144 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[145 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func ForwardedVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index d5ec1f5bd8..bb0292c1c3 100644 Binary files a/submodules/TelegramUI/Resources/PresentationStrings.mapping and b/submodules/TelegramUI/Resources/PresentationStrings.mapping differ diff --git a/submodules/TelegramUI/Resources/WebEmbed/Youtube.html b/submodules/TelegramUI/Resources/WebEmbed/Youtube.html index 4d4c6cd65c..8e3f1b5096 100755 --- a/submodules/TelegramUI/Resources/WebEmbed/Youtube.html +++ b/submodules/TelegramUI/Resources/WebEmbed/Youtube.html @@ -38,7 +38,7 @@ function getCurrentTime() { downloadProgress = player.getVideoLoadedFraction(); position = player.getCurrentTime(); - storyboardSpec = player.getStoryboardFormat(); + //storyboardSpec = player.getStoryboardFormat(); updateState(); invoke("tick"); @@ -67,6 +67,7 @@ function onReady(event) { window.location.href = "embed://onReady?data=" + event.data; iframe = document.getElementById("player"); + iframe.referrerPolicy = "origin"; duration = player.getDuration(); invoke("tick"); } diff --git a/submodules/TelegramUI/Resources/WebEmbed/YoutubeUserScript.js b/submodules/TelegramUI/Resources/WebEmbed/YoutubeUserScript.js index 7d71ac168c..1877b7a711 100644 --- a/submodules/TelegramUI/Resources/WebEmbed/YoutubeUserScript.js +++ b/submodules/TelegramUI/Resources/WebEmbed/YoutubeUserScript.js @@ -16,56 +16,56 @@ function initialize() { function tick() { var watermark = document.getElementsByClassName("ytp-watermark")[0]; if (watermark != null) { - watermark.style.display = "none"; +// watermark.style.display = "none"; } var button = document.getElementsByClassName("ytp-large-play-button")[0]; if (button != null) { - button.style.display = "none"; - button.style.opacity = "0"; +// button.style.display = "none"; +// button.style.opacity = "0"; } var progress = document.getElementsByClassName("ytp-spinner-container")[0]; if (progress != null) { - progress.style.display = "none"; - progress.style.opacity = "0"; +// progress.style.display = "none"; +// progress.style.opacity = "0"; } var pause = document.getElementsByClassName("ytp-pause-overlay")[0]; if (pause != null) { - pause.style.display = "none"; - pause.style.opacity = "0"; +// pause.style.display = "none"; +// pause.style.opacity = "0"; } var chrome = document.getElementsByClassName("ytp-chrome-top")[0]; if (chrome != null) { - chrome.style.display = "none"; - chrome.style.opacity = "0"; +// chrome.style.display = "none"; +// chrome.style.opacity = "0"; } var paid = document.getElementsByClassName("ytp-paid-content-overlay")[0]; if (paid != null) { - paid.style.display = "none"; - paid.style.opacity = "0"; +// paid.style.display = "none"; +// paid.style.opacity = "0"; } var gradient = document.getElementsByClassName("ytp-gradient-top")[0]; if (gradient != null) { - gradient.style.display = "none"; - gradient.style.opacity = "0"; +// gradient.style.display = "none"; +// gradient.style.opacity = "0"; } var end = document.getElementsByClassName("html5-endscreen")[0]; if (end != null) { - end.style.display = "none"; - end.style.opacity = "0"; +// end.style.display = "none"; +// end.style.opacity = "0"; } var elements = document.getElementsByClassName("ytp-ce-element"); for (var i = 0; i < elements.length; i++) { var element = elements[i] - element.style.display = "none"; - element.style.opacity = "0"; +// element.style.display = "none"; +// element.style.opacity = "0"; } var video = document.getElementsByTagName("video")[0]; diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index a2a872e1d7..d8c155b80a 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -2219,6 +2219,15 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G break } } + }, openMessageStats: { [weak self] id in + let _ = (context.account.postbox.transaction { transaction -> CachedPeerData? in + return transaction.getPeerCachedData(peerId: id.peerId) + } |> deliverOnMainQueue).start(next: { [weak self] cachedPeerData in + guard let strongSelf = self, let cachedPeerData = cachedPeerData else { + return + } + strongSelf.push(messageStatsController(context: context, messageId: id, cachedPeerData: cachedPeerData)) + }) }, requestMessageUpdate: { [weak self] id in if let strongSelf = self { strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) diff --git a/submodules/TelegramUI/Sources/ChatControllerInteraction.swift b/submodules/TelegramUI/Sources/ChatControllerInteraction.swift index e621793b77..a82478a91c 100644 --- a/submodules/TelegramUI/Sources/ChatControllerInteraction.swift +++ b/submodules/TelegramUI/Sources/ChatControllerInteraction.swift @@ -114,6 +114,7 @@ public final class ChatControllerInteraction { let openPeerContextMenu: (Peer, ASDisplayNode, CGRect, ContextGesture?) -> Void let openMessageReplies: (MessageId, Bool, Bool) -> Void let openReplyThreadOriginalMessage: (Message) -> Void + let openMessageStats: (MessageId) -> Void let requestMessageUpdate: (MessageId) -> Void let cancelInteractiveKeyboardGestures: () -> Void @@ -199,6 +200,7 @@ public final class ChatControllerInteraction { openPeerContextMenu: @escaping (Peer, ASDisplayNode, CGRect, ContextGesture?) -> Void, openMessageReplies: @escaping (MessageId, Bool, Bool) -> Void, openReplyThreadOriginalMessage: @escaping (Message) -> Void, + openMessageStats: @escaping (MessageId) -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, @@ -271,6 +273,7 @@ public final class ChatControllerInteraction { self.openPeerContextMenu = openPeerContextMenu self.openMessageReplies = openMessageReplies self.openReplyThreadOriginalMessage = openReplyThreadOriginalMessage + self.openMessageStats = openMessageStats self.requestMessageUpdate = requestMessageUpdate self.cancelInteractiveKeyboardGestures = cancelInteractiveKeyboardGestures @@ -321,6 +324,7 @@ public final class ChatControllerInteraction { }, openPeerContextMenu: { _, _, _, _ in }, openMessageReplies: { _, _, _ in }, openReplyThreadOriginalMessage: { _ in + }, openMessageStats: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/Sources/ChatInterfaceStateContextMenus.swift b/submodules/TelegramUI/Sources/ChatInterfaceStateContextMenus.swift index 3a5e6be5fb..a0957b131d 100644 --- a/submodules/TelegramUI/Sources/ChatInterfaceStateContextMenus.swift +++ b/submodules/TelegramUI/Sources/ChatInterfaceStateContextMenus.swift @@ -605,7 +605,7 @@ func contextMenuForChatPresentationIntefaceState(chatPresentationInterfaceState: }) }))) } - + if data.canEdit { actions.append(.action(ContextMenuActionItem(text: chatPresentationInterfaceState.strings.Conversation_MessageDialogEdit, icon: { theme in return generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Edit"), color: theme.actionSheet.primaryTextColor) @@ -808,9 +808,26 @@ func contextMenuForChatPresentationIntefaceState(chatPresentationInterfaceState: } var clearCacheAsDelete = false - if let _ = message.peers[message.id.peerId] as? TelegramChannel { + if message.id.peerId.namespace == Namespaces.Peer.CloudChannel { + var views: Int = 0 + for attribute in message.attributes { + if let attribute = attribute as? ViewCountMessageAttribute { + views = attribute.count + } + } + if views >= 100 { + actions.append(.action(ContextMenuActionItem(text: chatPresentationInterfaceState.strings.Conversation_ContextViewStats, icon: { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Statistics"), color: theme.actionSheet.primaryTextColor) + }, action: { c, _ in + c.dismiss(completion: { + controllerInteraction.openMessageStats(messages[0].id) + }) + }))) + } + clearCacheAsDelete = true } + if !isReplyThreadHead, (!data.messageActions.options.intersection([.deleteLocally, .deleteGlobally]).isEmpty || clearCacheAsDelete) && !isAction { let title: String var isSending = false diff --git a/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift index e73b020249..eee2deff98 100644 --- a/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift @@ -453,6 +453,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { }, openPeerContextMenu: { _, _, _, _ in }, openMessageReplies: { _, _, _ in }, openReplyThreadOriginalMessage: { _ in + }, openMessageStats: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: self.automaticMediaDownloadSettings, diff --git a/submodules/TelegramUI/Sources/DrawingStickersScreen.swift b/submodules/TelegramUI/Sources/DrawingStickersScreen.swift index 21a0be632a..bca3e25df1 100644 --- a/submodules/TelegramUI/Sources/DrawingStickersScreen.swift +++ b/submodules/TelegramUI/Sources/DrawingStickersScreen.swift @@ -146,6 +146,7 @@ private final class DrawingStickersScreenNode: ViewControllerTracingNode { }, openPeerContextMenu: { _, _, _, _ in }, openMessageReplies: { _, _, _ in }, openReplyThreadOriginalMessage: { _ in + }, openMessageStats: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/Sources/OverlayAudioPlayerControllerNode.swift b/submodules/TelegramUI/Sources/OverlayAudioPlayerControllerNode.swift index 0f8bb7cdc3..3478f43a4c 100644 --- a/submodules/TelegramUI/Sources/OverlayAudioPlayerControllerNode.swift +++ b/submodules/TelegramUI/Sources/OverlayAudioPlayerControllerNode.swift @@ -136,6 +136,7 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, UIGestu }, openPeerContextMenu: { _, _, _, _ in }, openMessageReplies: { _, _, _ in }, openReplyThreadOriginalMessage: { _ in + }, openMessageStats: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, pollActionState: ChatInterfacePollActionState(), stickerSettings: ChatInterfaceStickerSettings(loopAnimatedStickers: false)) diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index 6873b25754..b3f23f2133 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -1961,6 +1961,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD }, openPeerContextMenu: { _, _, _, _ in }, openMessageReplies: { _, _, _ in }, openReplyThreadOriginalMessage: { _ in + }, openMessageStats: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/Sources/SharedAccountContext.swift b/submodules/TelegramUI/Sources/SharedAccountContext.swift index c138ed9e9f..85e6b8cda5 100644 --- a/submodules/TelegramUI/Sources/SharedAccountContext.swift +++ b/submodules/TelegramUI/Sources/SharedAccountContext.swift @@ -1200,6 +1200,7 @@ public final class SharedAccountContextImpl: SharedAccountContext { }, openPeerContextMenu: { _, _, _, _ in }, openMessageReplies: { _, _, _ in }, openReplyThreadOriginalMessage: { _ in + }, openMessageStats: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUniversalVideoContent/Sources/WebEmbedPlayerNode.swift b/submodules/TelegramUniversalVideoContent/Sources/WebEmbedPlayerNode.swift index 40cf0fec67..a1befcddf1 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/WebEmbedPlayerNode.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/WebEmbedPlayerNode.swift @@ -75,18 +75,24 @@ final class WebEmbedPlayerNode: ASDisplayNode, WKNavigationDelegate { let impl: WebEmbedImplementation + private let openUrl: (URL) -> Void private let intrinsicDimensions: CGSize private let webView: WKWebView private let semaphore = DispatchSemaphore(value: 0) private let queue = Queue() - init(impl: WebEmbedImplementation, intrinsicDimensions: CGSize) { + init(impl: WebEmbedImplementation, intrinsicDimensions: CGSize, openUrl: @escaping (URL) -> Void) { self.impl = impl self.intrinsicDimensions = intrinsicDimensions + self.openUrl = openUrl let userContentController = WKUserContentController() - userContentController.addUserScript(WKUserScript(source: "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta)", injectionTime: .atDocumentEnd, forMainFrameOnly: true)) + if impl is YoutubeEmbedImplementation { + + } else { + userContentController.addUserScript(WKUserScript(source: "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta)", injectionTime: .atDocumentEnd, forMainFrameOnly: true)) + } let configuration = WKWebViewConfiguration() configuration.allowsInlineMediaPlayback = true @@ -112,6 +118,8 @@ final class WebEmbedPlayerNode: ASDisplayNode, WKNavigationDelegate { self.webView.navigationDelegate = self self.webView.scrollView.isScrollEnabled = false + self.webView.allowsLinkPreview = false + self.webView.allowsBackForwardNavigationGestures = false if #available(iOSApplicationExtension 11.0, iOS 11.0, *) { self.webView.accessibilityIgnoresInvertColors = true self.webView.scrollView.contentInsetAdjustmentBehavior = .never @@ -159,19 +167,19 @@ final class WebEmbedPlayerNode: ASDisplayNode, WKNavigationDelegate { } func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { - + print("w") } - + func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { self.impl.pageReady() } - + func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { if let error = error as? WKError, error.code.rawValue == 204 { return } } - + func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { if let url = navigationAction.request.url, url.scheme == "embed" { self.impl.callback(url: url) @@ -179,6 +187,9 @@ final class WebEmbedPlayerNode: ASDisplayNode, WKNavigationDelegate { } else if let _ = navigationAction.targetFrame { decisionHandler(.allow) } else { + if let url = navigationAction.request.url, url.absoluteString.contains("youtube") { + self.openUrl(url) + } decisionHandler(.cancel) } } diff --git a/submodules/TelegramUniversalVideoContent/Sources/WebEmbedVideoContent.swift b/submodules/TelegramUniversalVideoContent/Sources/WebEmbedVideoContent.swift index 182b2953dc..705ad529b6 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/WebEmbedVideoContent.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/WebEmbedVideoContent.swift @@ -19,8 +19,9 @@ public final class WebEmbedVideoContent: UniversalVideoContent { public let dimensions: CGSize public let duration: Int32 let forcedTimestamp: Int? + let openUrl: (URL) -> Void - public init?(webPage: TelegramMediaWebpage, webpageContent: TelegramMediaWebpageLoadedContent, forcedTimestamp: Int? = nil) { + public init?(webPage: TelegramMediaWebpage, webpageContent: TelegramMediaWebpageLoadedContent, forcedTimestamp: Int? = nil, openUrl: @escaping (URL) -> Void) { guard let embedUrl = webpageContent.embedUrl else { return nil } @@ -30,10 +31,11 @@ public final class WebEmbedVideoContent: UniversalVideoContent { self.dimensions = webpageContent.embedSize?.cgSize ?? CGSize(width: 128.0, height: 128.0) self.duration = Int32(webpageContent.duration ?? (0 as Int)) self.forcedTimestamp = forcedTimestamp + self.openUrl = openUrl } public func makeContentNode(postbox: Postbox, audioSession: ManagedAudioSession) -> UniversalVideoContentNode & ASDisplayNode { - return WebEmbedVideoContentNode(postbox: postbox, audioSessionManager: audioSession, webPage: self.webPage, webpageContent: self.webpageContent, forcedTimestamp: self.forcedTimestamp) + return WebEmbedVideoContentNode(postbox: postbox, audioSessionManager: audioSession, webPage: self.webPage, webpageContent: self.webpageContent, forcedTimestamp: self.forcedTimestamp, openUrl: self.openUrl) } } @@ -70,7 +72,7 @@ final class WebEmbedVideoContentNode: ASDisplayNode, UniversalVideoContentNode { private var readyDisposable = MetaDisposable() - init(postbox: Postbox, audioSessionManager: ManagedAudioSession, webPage: TelegramMediaWebpage, webpageContent: TelegramMediaWebpageLoadedContent, forcedTimestamp: Int? = nil) { + init(postbox: Postbox, audioSessionManager: ManagedAudioSession, webPage: TelegramMediaWebpage, webpageContent: TelegramMediaWebpageLoadedContent, forcedTimestamp: Int? = nil, openUrl: @escaping (URL) -> Void) { self.webpageContent = webpageContent if let embedSize = webpageContent.embedSize { @@ -83,7 +85,7 @@ final class WebEmbedVideoContentNode: ASDisplayNode, UniversalVideoContentNode { let embedType = webEmbedType(content: webpageContent, forcedTimestamp: forcedTimestamp) let embedImpl = webEmbedImplementation(for: embedType) - self.playerNode = WebEmbedPlayerNode(impl: embedImpl, intrinsicDimensions: self.intrinsicDimensions) + self.playerNode = WebEmbedPlayerNode(impl: embedImpl, intrinsicDimensions: self.intrinsicDimensions, openUrl: openUrl) super.init() diff --git a/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift b/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift index 534a88ed92..7bb56feac0 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift @@ -174,8 +174,8 @@ final class YoutubeEmbedImplementation: WebEmbedImplementation { updateStatus(self.status) let html = String(format: htmlTemplate, paramsJson) - webView.loadHTMLString(html, baseURL: URL(string: "https://youtube.com/")) - webView.isUserInteractionEnabled = false + webView.loadHTMLString(html, baseURL: URL(string: "https://messenger.telegram.org")) +// webView.isUserInteractionEnabled = false userContentController.addUserScript(WKUserScript(source: userScript, injectionTime: .atDocumentEnd, forMainFrameOnly: false)) }