diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index f1ccd42e62..11479a87cb 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6465,8 +6465,12 @@ Sorry for the inconvenience."; "VoiceChat.VideoPreviewDescription" = "Are you sure you want to share your video?"; "VoiceChat.VideoPreviewShareCamera" = "Share Camera Video"; "VoiceChat.VideoPreviewShareScreen" = "Share Screen"; +"VoiceChat.VideoPreviewStopScreenSharing" = "Stop Screen Sharing"; "VoiceChat.TapToViewCameraVideo" = "Tap to view camera video"; "VoiceChat.TapToViewScreenVideo" = "Tap to view screen sharing"; +"VoiceChat.ShareScreen" = "Share Screen"; +"VoiceChat.StopScreenSharing" = "Stop Screen Sharing"; + "WallpaperPreview.WallpaperColors" = "Colors"; diff --git a/submodules/AvatarNode/Sources/PeerAvatar.swift b/submodules/AvatarNode/Sources/PeerAvatar.swift index d2cdecf82b..4012e26d00 100644 --- a/submodules/AvatarNode/Sources/PeerAvatar.swift +++ b/submodules/AvatarNode/Sources/PeerAvatar.swift @@ -89,10 +89,23 @@ public func peerAvatarImageData(account: Account, peerReference: PeerReference?, public func peerAvatarCompleteImage(account: Account, peer: Peer, size: CGSize, font: UIFont = avatarPlaceholderFont(size: 13.0), fullSize: Bool = false) -> Signal { let iconSignal: Signal - if let signal = peerAvatarImage(account: account, peerReference: PeerReference(peer), authorOfMessage: nil, representation: peer.profileImageRepresentations.first, displayDimensions: size, inset: 0.0, emptyColor: nil, synchronousLoad: false) { - iconSignal = signal + if let signal = peerAvatarImage(account: account, peerReference: PeerReference(peer), authorOfMessage: nil, representation: peer.profileImageRepresentations.first, displayDimensions: size, inset: 0.0, emptyColor: nil, synchronousLoad: fullSize) { + if fullSize, let fullSizeSignal = peerAvatarImage(account: account, peerReference: PeerReference(peer), authorOfMessage: nil, representation: peer.profileImageRepresentations.last, displayDimensions: size, emptyColor: nil, synchronousLoad: true) { + iconSignal = combineLatest(.single(nil) |> then(signal), .single(nil) |> then(fullSizeSignal)) + |> mapToSignal { thumbnailImage, fullSizeImage -> Signal in + if let fullSizeImage = fullSizeImage { + return .single(fullSizeImage.0) + } else if let thumbnailImage = thumbnailImage { + return .single(thumbnailImage.0) + } else { + return .complete() + } + } + } else { + iconSignal = signal |> map { imageVersions -> UIImage? in return imageVersions?.0 + } } } else { let peerId = peer.id diff --git a/submodules/GalleryUI/Sources/GalleryPagerNode.swift b/submodules/GalleryUI/Sources/GalleryPagerNode.swift index 199d822c0b..5dc2538661 100644 --- a/submodules/GalleryUI/Sources/GalleryPagerNode.swift +++ b/submodules/GalleryUI/Sources/GalleryPagerNode.swift @@ -9,7 +9,8 @@ private func edgeWidth(width: CGFloat) -> CGFloat { return min(44.0, floor(width / 6.0)) } -private let leftFadeImage = generateImage(CGSize(width: 64.0, height: 1.0), opaque: false, rotatedContext: { size, context in +let fadeWidth: CGFloat = 70.0 +private let leftFadeImage = generateImage(CGSize(width: fadeWidth, height: 32.0), opaque: false, rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) @@ -19,10 +20,10 @@ private let leftFadeImage = generateImage(CGSize(width: 64.0, height: 1.0), opaq let colorSpace = CGColorSpaceCreateDeviceRGB() let gradient = CGGradient(colorsSpace: colorSpace, colors: gradientColors, locations: &locations)! - context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 64.0, y: 0.0), options: CGGradientDrawingOptions()) + context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: size.width, y: 0.0), options: CGGradientDrawingOptions()) }) -private let rightFadeImage = generateImage(CGSize(width: 64.0, height: 1.0), opaque: false, rotatedContext: { size, context in +private let rightFadeImage = generateImage(CGSize(width: fadeWidth, height: 32.0), opaque: false, rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) @@ -32,7 +33,7 @@ private let rightFadeImage = generateImage(CGSize(width: 64.0, height: 1.0), opa let colorSpace = CGColorSpaceCreateDeviceRGB() let gradient = CGGradient(colorsSpace: colorSpace, colors: gradientColors, locations: &locations)! - context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 64.0, y: 0.0), options: CGGradientDrawingOptions()) + context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: size.width, y: 0.0), options: CGGradientDrawingOptions()) }) public struct GalleryPagerInsertItem { @@ -80,8 +81,8 @@ public final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate, UIGest private let scrollView: UIScrollView - private let leftFadeNode: ASImageNode - private let rightFadeNode: ASImageNode + private let leftFadeNode: ASDisplayNode + private let rightFadeNode: ASDisplayNode private var highlightedSide: Bool? private var tapRecognizer: TapLongTapOrDoubleTapGestureRecognizer? @@ -117,15 +118,13 @@ public final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate, UIGest self.scrollView.contentInsetAdjustmentBehavior = .never } - self.leftFadeNode = ASImageNode() - self.leftFadeNode.contentMode = .scaleToFill - self.leftFadeNode.image = leftFadeImage + self.leftFadeNode = ASDisplayNode() self.leftFadeNode.alpha = 0.0 + self.leftFadeNode.backgroundColor = leftFadeImage.flatMap { UIColor(patternImage: $0) } - self.rightFadeNode = ASImageNode() - self.rightFadeNode.contentMode = .scaleToFill - self.rightFadeNode.image = rightFadeImage + self.rightFadeNode = ASDisplayNode() self.rightFadeNode.alpha = 0.0 + self.rightFadeNode.backgroundColor = rightFadeImage.flatMap { UIColor(patternImage: $0) } super.init() @@ -293,7 +292,6 @@ public final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate, UIGest transition.animatePosition(node: centralItemNode, from: centralItemNode.position.offsetBy(dx: -updatedCentralPoint.x + centralPoint.x, dy: -updatedCentralPoint.y + centralPoint.y)) } - let fadeWidth = min(72.0, layout.size.width * 0.2) self.leftFadeNode.frame = CGRect(x: 0.0, y: 0.0, width: fadeWidth, height: layout.size.height) self.rightFadeNode.frame = CGRect(x: layout.size.width - fadeWidth, y: 0.0, width: fadeWidth, height: layout.size.height) } diff --git a/submodules/PeerInfoAvatarListNode/Sources/PeerInfoAvatarListNode.swift b/submodules/PeerInfoAvatarListNode/Sources/PeerInfoAvatarListNode.swift index e81bc7750d..79fea03e4c 100644 --- a/submodules/PeerInfoAvatarListNode/Sources/PeerInfoAvatarListNode.swift +++ b/submodules/PeerInfoAvatarListNode/Sources/PeerInfoAvatarListNode.swift @@ -432,6 +432,8 @@ public final class PeerInfoAvatarListItemNode: ASDisplayNode { } } +private let fadeWidth: CGFloat = 70.0 + public final class PeerInfoAvatarListContainerNode: ASDisplayNode { private let context: AccountContext public var peer: Peer? @@ -442,8 +444,8 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { public let shadowNode: ASImageNode public let contentNode: ASDisplayNode - let leftHighlightNode: ASImageNode - let rightHighlightNode: ASImageNode + let leftHighlightNode: ASDisplayNode + let rightHighlightNode: ASDisplayNode var highlightedSide: Bool? public let stripContainerNode: ASDisplayNode public let highlightContainerNode: ASDisplayNode @@ -564,11 +566,9 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { self.contentNode = ASDisplayNode() - self.leftHighlightNode = ASImageNode() + self.leftHighlightNode = ASDisplayNode() self.leftHighlightNode.displaysAsynchronously = false - self.leftHighlightNode.displayWithoutProcessing = true - self.leftHighlightNode.contentMode = .scaleToFill - self.leftHighlightNode.image = generateImage(CGSize(width: 88.0, height: 1.0), contextGenerator: { size, context in + self.leftHighlightNode.backgroundColor = generateImage(CGSize(width: fadeWidth, height: 24.0), contextGenerator: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) let topColor = UIColor(rgb: 0x000000, alpha: 0.1) @@ -581,14 +581,12 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { let gradient = CGGradient(colorsSpace: colorSpace, colors: colors as CFArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: size.width, y: 0.0), options: [.drawsBeforeStartLocation, .drawsAfterEndLocation]) - }) + }).flatMap { UIColor(patternImage: $0) } self.leftHighlightNode.alpha = 0.0 - self.rightHighlightNode = ASImageNode() + self.rightHighlightNode = ASDisplayNode() self.rightHighlightNode.displaysAsynchronously = false - self.rightHighlightNode.displayWithoutProcessing = true - self.rightHighlightNode.contentMode = .scaleToFill - self.rightHighlightNode.image = generateImage(CGSize(width: 88.0, height: 1.0), contextGenerator: { size, context in + self.rightHighlightNode.backgroundColor = generateImage(CGSize(width: fadeWidth, height: 24.0), contextGenerator: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) let topColor = UIColor(rgb: 0x000000, alpha: 0.1) @@ -601,7 +599,7 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { let gradient = CGGradient(colorsSpace: colorSpace, colors: colors as CFArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(x: size.width, y: 0.0), end: CGPoint(x: 0.0, y: 0.0), options: [.drawsBeforeStartLocation, .drawsAfterEndLocation]) - }) + }).flatMap { UIColor(patternImage: $0) } self.rightHighlightNode.alpha = 0.0 self.stripContainerNode = ASDisplayNode() @@ -963,8 +961,8 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { if !isExpanded && previousExpanded { self.isCollapsing = true } - self.leftHighlightNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: floor(size.width * 1.0 / 5.0), height: size.height)) - self.rightHighlightNode.frame = CGRect(origin: CGPoint(x: size.width - floor(size.width * 1.0 / 5.0), y: 0.0), size: CGSize(width: floor(size.width * 1.0 / 5.0), height: size.height)) + self.leftHighlightNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: fadeWidth, height: size.height)) + self.rightHighlightNode.frame = CGRect(origin: CGPoint(x: size.width - fadeWidth, y: 0.0), size: CGSize(width: fadeWidth, height: size.height)) if let peer = peer, !self.initializedList { self.initializedList = true diff --git a/submodules/TelegramCallsUI/Sources/CallControllerButton.swift b/submodules/TelegramCallsUI/Sources/CallControllerButton.swift index 109d74a374..42468535b8 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerButton.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerButton.swift @@ -71,12 +71,15 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { private var statusNode: SemanticStatusNode? let textNode: ImmediateTextNode - private let largeButtonSize: CGFloat = 72.0 + private let largeButtonSize: CGFloat + private var size: CGSize? private(set) var currentContent: Content? private(set) var currentText: String = "" - init() { + init(largeButtonSize: CGFloat = 72.0) { + self.largeButtonSize = largeButtonSize + self.wrapperNode = ASDisplayNode() self.contentContainer = ASDisplayNode() @@ -145,9 +148,10 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { self.contentNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: self.largeButtonSize, height: self.largeButtonSize)) self.overlayHighlightNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: self.largeButtonSize, height: self.largeButtonSize)) - if self.currentContent != content { + if self.currentContent != content || self.size != size { let previousContent = self.currentContent self.currentContent = content + self.size = size if content.hasProgress { let statusFrame = CGRect(origin: CGPoint(), size: CGSize(width: self.largeButtonSize, height: self.largeButtonSize)) @@ -201,7 +205,8 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { self.contentContainer.insertSubnode(animationNode, aboveSubnode: self.contentNode) } if let animationNode = self.animationNode { - animationNode.frame = animationFrame + animationNode.bounds = animationFrame + animationNode.position = CGPoint(x: self.largeButtonSize / 2.0, y: self.largeButtonSize / 2.0) if previousContent == nil { animationNode.seekToEnd() } else if previousContent?.image != content.image { @@ -371,6 +376,9 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { transition.updatePosition(node: self.contentContainer, position: CGPoint(x: size.width / 2.0, y: size.height / 2.0)) transition.updateSublayerTransformScale(node: self.contentContainer, scale: scaleFactor) + if let animationNode = self.animationNode { + transition.updateTransformScale(node: animationNode, scale: isSmall ? 1.35 : 1.12) + } if self.currentText != text { self.textNode.attributedText = NSAttributedString(string: text, font: labelFont, textColor: .white) diff --git a/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift b/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift index 90d0e21530..19f4ef1ff6 100644 --- a/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift @@ -11,8 +11,8 @@ import AccountContext import LegacyComponents import AnimatedCountLabelNode -private let blue = UIColor(rgb: 0x0078ff) -private let lightBlue = UIColor(rgb: 0x59c7f8) +private let blue = UIColor(rgb: 0x007fff) +private let lightBlue = UIColor(rgb: 0x00affe) private let green = UIColor(rgb: 0x33c659) private let activeBlue = UIColor(rgb: 0x00a0b9) private let purple = UIColor(rgb: 0x3252ef) diff --git a/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift b/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift index 8f460fa659..9d74db9fed 100644 --- a/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift +++ b/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift @@ -130,11 +130,11 @@ final class GroupVideoNode: ASDisplayNode { } UIView.transition(with: withBackground ? self.videoViewContainer : self.view, duration: 0.4, options: [.transitionFlipFromLeft, .curveEaseOut], animations: { UIView.performWithoutAnimation { - self.updateIsBlurred(isBlurred: true, light: true, animated: false) + self.updateIsBlurred(isBlurred: true, light: false, animated: false) } }) { finished in self.backgroundColor = nil - Queue.mainQueue().after(0.5) { + Queue.mainQueue().after(0.4) { self.updateIsBlurred(isBlurred: false) } } @@ -202,7 +202,8 @@ final class GroupVideoNode: ASDisplayNode { } var rotatedVideoSize = CGSize(width: 100.0, height: rotatedAspect * 100.0) - + let videoSize = rotatedVideoSize + var containerSize = size if switchOrientation { rotatedVideoSize = CGSize(width: rotatedVideoSize.height, height: rotatedVideoSize.width) @@ -217,13 +218,13 @@ final class GroupVideoNode: ASDisplayNode { case .fillOrFitToSquare: rotatedVideoSize = filledToSquareSize case .fillHorizontal: - if rotatedVideoSize.width > rotatedVideoSize.height { + if videoSize.width > videoSize.height { rotatedVideoSize = filledSize } else { rotatedVideoSize = fittedSize } case .fillVertical: - if rotatedVideoSize.width < rotatedVideoSize.height { + if videoSize.width < videoSize.height { rotatedVideoSize = filledSize } else { rotatedVideoSize = fittedSize @@ -236,11 +237,11 @@ final class GroupVideoNode: ASDisplayNode { rotatedVideoFrame.size.width = ceil(rotatedVideoFrame.size.width) rotatedVideoFrame.size.height = ceil(rotatedVideoFrame.size.height) - let videoSize = rotatedVideoFrame.size.aspectFilled(CGSize(width: 1080.0, height: 1080.0)) + let normalizedVideoSize = rotatedVideoFrame.size.aspectFilled(CGSize(width: 1080.0, height: 1080.0)) transition.updatePosition(layer: self.videoView.view.layer, position: rotatedVideoFrame.center) - transition.updateBounds(layer: self.videoView.view.layer, bounds: CGRect(origin: CGPoint(), size: videoSize)) + transition.updateBounds(layer: self.videoView.view.layer, bounds: CGRect(origin: CGPoint(), size: normalizedVideoSize)) - let transformScale: CGFloat = rotatedVideoFrame.width / videoSize.width + let transformScale: CGFloat = rotatedVideoFrame.width / normalizedVideoSize.width transition.updateTransformScale(layer: self.videoViewContainer.layer, scale: transformScale) if let backdropVideoView = self.backdropVideoView { @@ -251,11 +252,11 @@ final class GroupVideoNode: ASDisplayNode { rotatedVideoFrame.size.width = ceil(rotatedVideoFrame.size.width) rotatedVideoFrame.size.height = ceil(rotatedVideoFrame.size.height) - let videoSize = rotatedVideoFrame.size.aspectFilled(CGSize(width: 1080.0, height: 1080.0)) + let normalizedVideoSize = rotatedVideoFrame.size.aspectFilled(CGSize(width: 1080.0, height: 1080.0)) transition.updatePosition(layer: backdropVideoView.view.layer, position: rotatedVideoFrame.center) - transition.updateBounds(layer: backdropVideoView.view.layer, bounds: CGRect(origin: CGPoint(), size: videoSize)) + transition.updateBounds(layer: backdropVideoView.view.layer, bounds: CGRect(origin: CGPoint(), size: normalizedVideoSize)) - let transformScale: CGFloat = rotatedVideoFrame.width / videoSize.width + let transformScale: CGFloat = rotatedVideoFrame.width / normalizedVideoSize.width transition.updateTransformScale(layer: self.backdropVideoViewContainer.layer, scale: transformScale) let transition: ContainedViewLayoutTransition = .immediate @@ -263,10 +264,26 @@ final class GroupVideoNode: ASDisplayNode { } if let backdropEffectView = self.backdropEffectView { - let maxSide = max(bounds.width, bounds.height) * 2.0 - let squareBounds = CGRect(x: (bounds.width - maxSide) / 2.0, y: (bounds.width - maxSide) / 2.0, width: maxSide, height: maxSide) - transition.animateView { - backdropEffectView.frame = squareBounds + let maxSide = max(bounds.width, bounds.height) + 32.0 + let squareBounds = CGRect(x: (bounds.width - maxSide) / 2.0, y: (bounds.height - maxSide) / 2.0, width: maxSide, height: maxSide) + + if case let .animated(duration, .spring) = transition { + if false, #available(iOS 10.0, *) { + let timing = UISpringTimingParameters(mass: 3.0, stiffness: 1000.0, damping: 500.0, initialVelocity: CGVector(dx: 0.0, dy: 0.0)) + let animator = UIViewPropertyAnimator(duration: 0.34, timingParameters: timing) + animator.addAnimations { + backdropEffectView.frame = squareBounds + } + animator.startAnimation() + } else { + UIView.animate(withDuration: duration, delay: 0.0, usingSpringWithDamping: 500.0, initialSpringVelocity: 0.0, options: .layoutSubviews, animations: { + backdropEffectView.frame = squareBounds + }) + } + } else { + transition.animateView { + backdropEffectView.frame = squareBounds + } } } diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index a9a7283452..a51febc85d 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -2512,15 +2512,11 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } private func requestScreencast() { - if self.screencastCallContext != nil { - return - } - - let maybeCallInfo: GroupCallInfo? = self.internalState.callInfo - - guard let callInfo = maybeCallInfo else { + guard let callInfo = self.internalState.callInfo, self.screencastCallContext == nil else { return } + + self.hasScreencast = true let screencastCallContext = OngoingGroupCallContext(video: self.screencastCapturer, requestMediaChannelDescriptions: { _, _ in EmptyDisposable }, audioStreamData: nil, rejoinNeeded: { }, outgoingAudioBitrateKbit: nil, videoContentType: .screencast, enableNoiseSuppression: false) self.screencastCallContext = screencastCallContext @@ -2553,109 +2549,6 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } })) })) - - /*if self.screencastIpcContext != nil { - return - } - - let maybeCallInfo: GroupCallInfo? = self.internalState.callInfo - - guard let callInfo = maybeCallInfo else { - return - } - - let screencastIpcContext = IpcGroupCallAppContext(basePath: self.accountContext.sharedContext.basePath + "/broadcast-coordination") - self.screencastIpcContext = screencastIpcContext - self.hasScreencast = true - - self.screencastJoinDisposable.set((screencastIpcContext.joinPayload - |> take(1) - |> deliverOnMainQueue).start(next: { [weak self] joinPayload in - guard let strongSelf = self else { - return - } - - strongSelf.requestDisposable.set((joinGroupCallAsScreencast( - account: strongSelf.account, - peerId: strongSelf.peerId, - callId: callInfo.id, - accessHash: callInfo.accessHash, - joinPayload: joinPayload - ) - |> deliverOnMainQueue).start(next: { joinCallResult in - guard let strongSelf = self, let screencastIpcContext = strongSelf.screencastIpcContext else { - return - } - let clientParams = joinCallResult.jsonParams - - screencastIpcContext.setJoinResponsePayload(clientParams) - - strongSelf.genericCallContext?.setIgnoreVideoEndpointIds(endpointIds: [joinCallResult.endpointId]) - }, error: { error in - guard let _ = self else { - return - } - })) - })) - - /*if self.screenCapturer == nil { - let screenCapturer = OngoingCallVideoCapturer() - self.screenCapturer = screenCapturer - } - - let screencastCallContext = OngoingGroupCallContext( - video: self.screenCapturer, - requestMediaChannelDescriptions: { _, completion in - completion([]) - return EmptyDisposable - }, - audioStreamData: nil, - rejoinNeeded: {}, - outgoingAudioBitrateKbit: nil, - videoContentType: .screencast, - enableNoiseSuppression: false - ) - - self.screencastCallContext = screencastCallContext - - self.screencastJoinDisposable.set((screencastCallContext.joinPayload - |> distinctUntilChanged(isEqual: { lhs, rhs in - if lhs.0 != rhs.0 { - return false - } - if lhs.1 != rhs.1 { - return false - } - return true - }) - |> deliverOnMainQueue).start(next: { [weak self] joinPayload, _ in - guard let strongSelf = self else { - return - } - - strongSelf.requestDisposable.set((joinGroupCallAsScreencast( - account: strongSelf.account, - peerId: strongSelf.peerId, - callId: callInfo.id, - accessHash: callInfo.accessHash, - joinPayload: joinPayload - ) - |> deliverOnMainQueue).start(next: { joinCallResult in - guard let strongSelf = self, let screencastCallContext = strongSelf.screencastCallContext else { - return - } - let clientParams = joinCallResult.jsonParams - - screencastCallContext.setConnectionMode(.rtc, keepBroadcastConnectedIfWasEnabled: false) - screencastCallContext.setJoinResponse(payload: clientParams) - - strongSelf.genericCallContext?.setIgnoreVideoEndpointIds(endpointIds: [joinCallResult.endpointId]) - }, error: { error in - guard let _ = self else { - return - } - })) - }))*/*/ } public func disableScreencast() { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift index da6e7e3bdb..1b88b3e3a9 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift @@ -14,8 +14,8 @@ private let subtitleFont = Font.regular(13.0) private let white = UIColor(rgb: 0xffffff) private let greyColor = UIColor(rgb: 0x2c2c2e) private let secondaryGreyColor = UIColor(rgb: 0x1c1c1e) -private let blue = UIColor(rgb: 0x0078ff) -private let lightBlue = UIColor(rgb: 0x59c7f8) +private let blue = UIColor(rgb: 0x007fff) +private let lightBlue = UIColor(rgb: 0x00affe) private let green = UIColor(rgb: 0x33c659) private let activeBlue = UIColor(rgb: 0x00a0b9) private let purple = UIColor(rgb: 0x3252ef) @@ -607,7 +607,7 @@ private final class VoiceChatActionButtonBackgroundNode: ASDisplayNode { self.foregroundGradientLayer.type = .radial self.foregroundGradientLayer.colors = [lightBlue.cgColor, blue.cgColor, blue.cgColor] - self.foregroundGradientLayer.locations = [0.0, 0.85, 1.0] + self.foregroundGradientLayer.locations = [0.0, 0.55, 1.0] self.foregroundGradientLayer.startPoint = CGPoint(x: 1.0, y: 0.0) self.foregroundGradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0) @@ -798,12 +798,12 @@ private final class VoiceChatActionButtonBackgroundNode: ASDisplayNode { case .speaking: targetColors = [activeBlue.cgColor, green.cgColor, green.cgColor] targetScale = 0.89 - outerColor = UIColor(rgb: 0x21674f) + outerColor = UIColor(rgb: 0x134b22) activeColor = green case .active: targetColors = [lightBlue.cgColor, blue.cgColor, blue.cgColor] targetScale = 0.85 - outerColor = UIColor(rgb: 0x1d588d) + outerColor = UIColor(rgb: 0x002e5d) activeColor = blue case .connecting: targetColors = [lightBlue.cgColor, blue.cgColor, blue.cgColor] @@ -1296,8 +1296,8 @@ private final class VoiceBlobView: UIView { } public func setColor(_ color: UIColor) { - mediumBlob.setColor(color.withAlphaComponent(0.55)) - bigBlob.setColor(color.withAlphaComponent(0.35)) + mediumBlob.setColor(color.withAlphaComponent(0.5)) + bigBlob.setColor(color.withAlphaComponent(0.21)) } public func updateLevel(_ level: CGFloat) { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift index ead97f3d25..14c4d5bec3 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift @@ -133,6 +133,8 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U private var applicationStateDisposable: Disposable? + private let hapticFeedback = HapticFeedback() + var shareCamera: ((Bool) -> Void)? var switchCamera: (() -> Void)? var dismiss: (() -> Void)? @@ -298,11 +300,13 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U } @objc private func microphonePressed() { + self.hapticFeedback.impact(.light) self.microphoneButton.isSelected = !self.microphoneButton.isSelected self.microphoneIconNode.update(state: .init(muted: !self.microphoneButton.isSelected, filled: true, color: .white), animated: true) } @objc private func switchCameraPressed() { + self.hapticFeedback.impact(.light) self.switchCamera?() let springDuration: Double = 0.7 diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 6afe9c01a1..fbc2896e00 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -70,15 +70,18 @@ func decorationCornersImage(top: Bool, bottom: Bool, dark: Bool) -> UIImage? { } private func decorationBottomGradientImage(dark: Bool) -> UIImage? { - return generateImage(CGSize(width: 1.0, height: bottomGradientHeight), rotatedContext: { size, context in + return generateImage(CGSize(width: 24.0, height: bottomGradientHeight), rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) let color = dark ? fullscreenBackgroundColor : panelBackgroundColor let colorsArray = [color.withAlphaComponent(0.0).cgColor, color.cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] + var locations: [CGFloat] = [1.0, 0.0] let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) +// +// context.setFillColor(UIColor.red.cgColor) +// context.fill(bounds) }) } @@ -676,9 +679,8 @@ public final class VoiceChatController: ViewController { private let closeButton: VoiceChatHeaderButton private let topCornersNode: ASImageNode private let videoBottomCornersNode: ASImageNode - private let bottomPanelCoverNode: ASDisplayNode fileprivate let bottomPanelNode: ASDisplayNode - private let bottomGradientNode: ASImageNode + private let bottomGradientNode: ASDisplayNode private let bottomPanelBackgroundNode: ASDisplayNode private let bottomCornersNode: ASImageNode fileprivate let audioButton: CallControllerButtonItemNode @@ -693,8 +695,10 @@ public final class VoiceChatController: ViewController { private let mainStageNode: VoiceChatMainStageNode private let transitionMaskView: UIView + private let transitionMaskTopFillLayer: CALayer private let transitionMaskFillLayer: CALayer - private let transitionMaskFillGradientLayer: CAGradientLayer + private let transitionMaskGradientLayer: CAGradientLayer + private let transitionMaskBottomFillLayer: CALayer private let transitionContainerNode: ASDisplayNode private var isScheduling = false @@ -791,10 +795,10 @@ public final class VoiceChatController: ViewController { private var requestedVideoChannels: [PresentationGroupCallRequestedVideo] = [] private var videoNodes: [String: GroupVideoNode] = [:] + private var wideVideoNodes = Set() + private var videoOrder: [String] = [] private var readyVideoNodes = Set() private var readyVideoDisposables = DisposableDict() - private var wideVideoNodes = Set() - private var videoNodesOrder: [String] = [] private var endpointToPeerId: [String: PeerId] = [:] private var peerIdToEndpoint: [PeerId: String] = [:] @@ -906,9 +910,6 @@ public final class VoiceChatController: ViewController { self.topCornersNode.displaysAsynchronously = false self.topCornersNode.displayWithoutProcessing = true self.topCornersNode.image = decorationCornersImage(top: true, bottom: false, dark: false) - - self.bottomPanelCoverNode = ASDisplayNode() - self.bottomPanelCoverNode.backgroundColor = fullscreenBackgroundColor self.bottomPanelNode = ASDisplayNode() self.bottomPanelNode.clipsToBounds = false @@ -917,10 +918,9 @@ public final class VoiceChatController: ViewController { self.bottomPanelBackgroundNode.backgroundColor = panelBackgroundColor self.bottomPanelBackgroundNode.isUserInteractionEnabled = false - self.bottomGradientNode = ASImageNode() + self.bottomGradientNode = ASDisplayNode() self.bottomGradientNode.displaysAsynchronously = false - self.bottomGradientNode.contentMode = .scaleToFill - self.bottomGradientNode.image = decorationBottomGradientImage(dark: false) + self.bottomGradientNode.backgroundColor = decorationBottomGradientImage(dark: false).flatMap { UIColor(patternImage: $0) } self.bottomCornersNode = ASImageNode() self.bottomCornersNode.displaysAsynchronously = false @@ -935,7 +935,7 @@ public final class VoiceChatController: ViewController { self.videoBottomCornersNode.isUserInteractionEnabled = false self.audioButton = CallControllerButtonItemNode() - self.cameraButton = CallControllerButtonItemNode() + self.cameraButton = CallControllerButtonItemNode(largeButtonSize: sideButtonSize.width) self.switchCameraButton = CallControllerButtonItemNode() self.switchCameraButton.alpha = 0.0 self.switchCameraButton.isUserInteractionEnabled = false @@ -967,24 +967,34 @@ public final class VoiceChatController: ViewController { self.mainStageContainerNode.isHidden = true self.mainStageBackgroundNode = ASDisplayNode() -// self.mainStageBackgroundNode.backgroundColor = .black + self.mainStageBackgroundNode.backgroundColor = .black self.mainStageBackgroundNode.alpha = 0.0 self.mainStageBackgroundNode.isUserInteractionEnabled = false self.mainStageNode = VoiceChatMainStageNode(context: self.context, call: self.call) self.transitionMaskView = UIView() + self.transitionMaskTopFillLayer = CALayer() + self.transitionMaskTopFillLayer.backgroundColor = UIColor.white.cgColor + self.transitionMaskTopFillLayer.opacity = 0.0 + self.transitionMaskFillLayer = CALayer() self.transitionMaskFillLayer.backgroundColor = UIColor.white.cgColor + + self.transitionMaskGradientLayer = CAGradientLayer() + self.transitionMaskGradientLayer.colors = [UIColor.white.cgColor, UIColor.white.withAlphaComponent(0.0).cgColor] + self.transitionMaskGradientLayer.locations = [0.0, 1.0] + self.transitionMaskGradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) + self.transitionMaskGradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0) - self.transitionMaskFillGradientLayer = CAGradientLayer() - self.transitionMaskFillGradientLayer.colors = [UIColor.white.cgColor, UIColor.white.withAlphaComponent(0.0).cgColor] - self.transitionMaskFillGradientLayer.locations = [0.0, 1.0] - self.transitionMaskFillGradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) - self.transitionMaskFillGradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0) + self.transitionMaskBottomFillLayer = CALayer() + self.transitionMaskBottomFillLayer.backgroundColor = UIColor.white.cgColor + self.transitionMaskBottomFillLayer.opacity = 0.0 + self.transitionMaskView.layer.addSublayer(self.transitionMaskTopFillLayer) self.transitionMaskView.layer.addSublayer(self.transitionMaskFillLayer) - self.transitionMaskView.layer.addSublayer(self.transitionMaskFillGradientLayer) + self.transitionMaskView.layer.addSublayer(self.transitionMaskGradientLayer) + self.transitionMaskView.layer.addSublayer(self.transitionMaskBottomFillLayer) self.transitionContainerNode = ASDisplayNode() self.transitionContainerNode.clipsToBounds = true @@ -1657,20 +1667,16 @@ public final class VoiceChatController: ViewController { self.contentContainer.addSubnode(self.topPanelNode) self.contentContainer.addSubnode(self.leftBorderNode) self.contentContainer.addSubnode(self.rightBorderNode) -// self.contentContainer.addSubnode(self.bottomPanelCoverNode) self.contentContainer.addSubnode(self.bottomCornersNode) self.contentContainer.addSubnode(self.bottomGradientNode) self.contentContainer.addSubnode(self.bottomPanelBackgroundNode) + self.contentContainer.addSubnode(self.mainStageContainerNode) self.contentContainer.addSubnode(self.transitionContainerNode) self.contentContainer.addSubnode(self.bottomPanelNode) - self.contentContainer.addSubnode(self.mainStageContainerNode) self.contentContainer.addSubnode(self.timerNode) self.contentContainer.addSubnode(self.scheduleTextNode) self.contentContainer.addSubnode(self.fullscreenListNode) - - - self.mainStageContainerNode.addSubnode(self.mainStageBackgroundNode) self.mainStageContainerNode.addSubnode(self.mainStageNode) @@ -1715,6 +1721,7 @@ public final class VoiceChatController: ViewController { if strongSelf.callState != state { strongSelf.callState = state + strongSelf.mainStageNode.callState = state if let muteState = state.muteState, !muteState.canUnmute { if strongSelf.pushingToTalk { @@ -1829,10 +1836,10 @@ public final class VoiceChatController: ViewController { } } - if case .fullscreen = strongSelf.displayMode { + if case .fullscreen = strongSelf.displayMode, !strongSelf.mainStageNode.animating { if let (peerId, _) = maxLevelWithVideo { if let peer = strongSelf.currentDominantSpeaker, CACurrentMediaTime() - peer.1 < 2.5 { - } else { + } else if strongSelf.currentDominantSpeaker?.0 != peerId { strongSelf.currentDominantSpeaker = (peerId, CACurrentMediaTime()) strongSelf.updateMainVideo(waitForFullSize: false) } @@ -1878,7 +1885,7 @@ public final class VoiceChatController: ViewController { self.listNode.updateFloatingHeaderOffset = { [weak self] offset, transition in if let strongSelf = self { strongSelf.currentContentOffset = offset - if !(strongSelf.animatingExpansion || strongSelf.animatingInsertion || strongSelf.animatingAppearance) && strongSelf.panGestureArguments == nil { + if !(strongSelf.animatingExpansion || strongSelf.animatingInsertion || strongSelf.animatingAppearance) && (strongSelf.panGestureArguments == nil || strongSelf.isExpanded) { strongSelf.updateDecorationsLayout(transition: transition) } } @@ -2098,9 +2105,19 @@ public final class VoiceChatController: ViewController { } if #available(iOS 12.0, *) { - items.append(.custom(VoiceChatShareScreenContextItem(context: strongSelf.context, text: strongSelf.presentationData.strings.VoiceChat_VideoPreviewShareScreen, icon: { theme in - return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/ShareScreen"), color: theme.actionSheet.primaryTextColor) - }, action: { _, _ in }), false)) + if strongSelf.call.hasScreencast { + items.append(.action(ContextMenuActionItem(text: strongSelf.presentationData.strings.VoiceChat_StopScreenSharing, icon: { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/ShareScreen"), color: theme.actionSheet.primaryTextColor) + }, action: { _, f in + f(.default) + + self?.call.disableScreencast() + }))) + } else { + items.append(.custom(VoiceChatShareScreenContextItem(context: strongSelf.context, text: strongSelf.presentationData.strings.VoiceChat_ShareScreen, icon: { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/ShareScreen"), color: theme.actionSheet.primaryTextColor) + }, action: { _, _ in }), false)) + } } if canManageCall { @@ -2989,6 +3006,7 @@ public final class VoiceChatController: ViewController { } @objc private func cameraPressed() { + self.hapticFeedback.impact(.light) if self.call.hasVideo || self.call.hasScreencast { self.call.disableVideo() self.call.disableScreencast() @@ -3014,7 +3032,9 @@ public final class VoiceChatController: ViewController { } } }, switchCamera: { [weak self] in - self?.call.switchVideoCamera() + Queue.mainQueue().after(0.1) { + self?.call.switchVideoCamera() + } }) strongSelf.controller?.present(controller, in: .window(.root)) } @@ -3022,7 +3042,24 @@ public final class VoiceChatController: ViewController { } @objc private func switchCameraPressed() { - self.call.switchVideoCamera() + self.hapticFeedback.impact(.light) + Queue.mainQueue().after(0.1) { + self.call.switchVideoCamera() + } + + if let callState = self.callState { + for entry in self.currentFullscreenEntries { + if case let .peer(peerEntry, _) = entry { + if peerEntry.peer.id == callState.myPeerId { + if let videoEndpointId = peerEntry.videoEndpointId, let videoNode = self.videoNodes[videoEndpointId] { + videoNode.flip(withBackground: false) + } + break + } + } + } + } + self.mainStageNode.flipVideoIfNeeded() let springDuration: Double = 0.7 let springDamping: CGFloat = 100.0 @@ -3132,22 +3169,21 @@ public final class VoiceChatController: ViewController { let sideInset: CGFloat = 14.0 - let bottomPanelCoverHeight = bottomAreaHeight + layout.intrinsicInsets.bottom let bottomGradientFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelCoverHeight), size: CGSize(width: size.width, height: bottomGradientHeight)) - let topEdgeY = topPanelFrame.maxY - var bottomEdgeY = self.isFullscreen ? layout.size.height - (self.isLandscape ? 0.0 : effectiveBottomAreaHeight) : bottomGradientFrame.maxY - if case .modal(_, true) = self.effectiveDisplayMode { - bottomEdgeY += 36.0 - } - - let transitionContainerFrame = CGRect(x: sideInset, y: topEdgeY, width: layout.size.width - sideInset * 2.0, height: max(0.0, bottomEdgeY - topEdgeY)) + let additionalMaskHeight: CGFloat = 62.0 + let topEdgeY = isLandscape ? 0.0 : layoutTopInset + let bottomEdgeY = (self.isLandscape ? layout.size.height + bottomGradientHeight : bottomGradientFrame.maxY) + additionalMaskHeight + + let transitionContainerFrame = CGRect(x: 0.0, y: topEdgeY, width: layout.size.width, height: max(0.0, bottomEdgeY - topEdgeY)) transition.updateFrame(node: self.transitionContainerNode, frame: transitionContainerFrame) transition.updateFrame(view: self.transitionMaskView, frame: CGRect(x: 0.0, y: 0.0, width: transitionContainerFrame.width, height: transitionContainerFrame.height)) let updateMaskLayers = { - transition.updateFrame(layer: self.transitionMaskFillLayer, frame: CGRect(x: 0.0, y: 0.0, width: transitionContainerFrame.width, height: transitionContainerFrame.height - bottomGradientHeight)) - transition.updateFrame(layer: self.transitionMaskFillGradientLayer, frame: CGRect(x: 0.0, y: transitionContainerFrame.height - bottomGradientHeight, width: transitionContainerFrame.width, height: bottomGradientHeight)) + transition.updateFrame(layer: self.transitionMaskTopFillLayer, frame: CGRect(x: 0.0, y: 0.0, width: transitionContainerFrame.width, height: topPanelFrame.height)) + transition.updateFrame(layer: self.transitionMaskFillLayer, frame: CGRect(x: 0.0, y: topPanelFrame.height, width: transitionContainerFrame.width, height: transitionContainerFrame.height - bottomGradientHeight - additionalMaskHeight - topPanelFrame.height)) + transition.updateFrame(layer: self.transitionMaskGradientLayer, frame: CGRect(x: 0.0, y: transitionContainerFrame.height - bottomGradientHeight - additionalMaskHeight, width: transitionContainerFrame.width, height: bottomGradientHeight)) + transition.updateFrame(layer: self.transitionMaskBottomFillLayer, frame: CGRect(x: 0.0, y: transitionContainerFrame.height - bottomGradientHeight - additionalMaskHeight, width: transitionContainerFrame.width, height: bottomGradientHeight + additionalMaskHeight)) } if transition.isAnimated { updateMaskLayers() @@ -3336,7 +3372,7 @@ public final class VoiceChatController: ViewController { } UIView.transition(with: self.bottomGradientNode.view, duration: 0.3, options: [.transitionCrossDissolve, .curveLinear]) { - self.bottomGradientNode.image = decorationBottomGradientImage(dark: isFullscreen) + self.bottomGradientNode.backgroundColor = decorationBottomGradientImage(dark: isFullscreen).flatMap { UIColor(patternImage: $0) } } completion: { _ in } @@ -3476,7 +3512,7 @@ public final class VoiceChatController: ViewController { buttonsTitleAlpha = 0.0 } - let hasVideo = self.call.hasVideo || self.call.hasScreencast + let hasVideo = self.call.hasVideo self.cameraButton.update(size: hasVideo ? sideButtonSize : videoButtonSize, content: CallControllerButtonItemNode.Content(appearance: hasVideo ? activeButtonAppearance : normalButtonAppearance, image: hasVideo ? .cameraOn : .cameraOff), text: self.presentationData.strings.VoiceChat_Video, transition: transition) self.switchCameraButton.update(size: videoButtonSize, content: CallControllerButtonItemNode.Content(appearance: normalButtonAppearance, image: .flipCamera), text: "", transition: transition) @@ -3627,13 +3663,11 @@ public final class VoiceChatController: ViewController { var bottomPanelFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelHeight), size: CGSize(width: size.width, height: bottomPanelHeight)) let bottomPanelCoverHeight = bottomAreaHeight + layout.intrinsicInsets.bottom - let bottomPanelCoverFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelCoverHeight), size: CGSize(width: size.width, height: bottomPanelCoverHeight)) if isLandscape { bottomPanelFrame = CGRect(origin: CGPoint(x: layout.size.width - fullscreenBottomAreaHeight - layout.safeInsets.right, y: 0.0), size: CGSize(width: fullscreenBottomAreaHeight + layout.safeInsets.right, height: layout.size.height)) } let bottomGradientFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelCoverHeight), size: CGSize(width: size.width, height: bottomGradientHeight)) transition.updateAlpha(node: self.optionsButton, alpha: self.optionsButton.isUserInteractionEnabled ? 1.0 : 0.0) - transition.updateFrame(node: self.bottomPanelCoverNode, frame: bottomPanelCoverFrame) transition.updateFrame(node: self.bottomGradientNode, frame: bottomGradientFrame) transition.updateFrame(node: self.bottomPanelNode, frame: bottomPanelFrame) @@ -4155,8 +4189,8 @@ public final class VoiceChatController: ViewController { var isTile = false if let interaction = self.itemInteraction { if let videoEndpointId = member.presentationEndpointId, self.readyVideoNodes.contains(videoEndpointId) { - if !self.videoNodesOrder.contains(videoEndpointId) { - self.videoNodesOrder.append(videoEndpointId) + if !self.videoOrder.contains(videoEndpointId) { + self.videoOrder.append(videoEndpointId) } if let tileItem = ListEntry.peer(peerEntry, 0).tileItem(context: self.context, presentationData: self.presentationData, interaction: interaction, videoEndpointId: videoEndpointId) { isTile = true @@ -4167,8 +4201,8 @@ public final class VoiceChatController: ViewController { } } if let videoEndpointId = member.videoEndpointId, self.readyVideoNodes.contains(videoEndpointId) { - if !self.videoNodesOrder.contains(videoEndpointId) { - self.videoNodesOrder.append(videoEndpointId) + if !self.videoOrder.contains(videoEndpointId) { + self.videoOrder.append(videoEndpointId) } if let tileItem = ListEntry.peer(peerEntry, 0).tileItem(context: self.context, presentationData: self.presentationData, interaction: interaction, videoEndpointId: videoEndpointId) { isTile = true @@ -4204,18 +4238,18 @@ public final class VoiceChatController: ViewController { } var preList: [String] = [] - for tileVideoEndpoint in self.videoNodesOrder { + for tileVideoEndpoint in self.videoOrder { if let _ = tileByVideoEndpoint[tileVideoEndpoint] { preList.append(tileVideoEndpoint) } } if (tileByVideoEndpoint.count % 2) != 0, let last = preList.last, !self.wideVideoNodes.contains(last), let latestWide = latestWideVideo { - self.videoNodesOrder.removeAll(where: { $0 == latestWide }) - self.videoNodesOrder.append(latestWide) + self.videoOrder.removeAll(where: { $0 == latestWide }) + self.videoOrder.append(latestWide) } - for tileVideoEndpoint in self.videoNodesOrder { + for tileVideoEndpoint in self.videoOrder { if let tileItem = tileByVideoEndpoint[tileVideoEndpoint] { tileItems.append(tileItem) if let fullscreenEntry = entryByPeerId[tileItem.peer.id] { @@ -4352,13 +4386,16 @@ public final class VoiceChatController: ViewController { strongSelf.readyVideoDisposables.set((videoNode.ready |> filter { $0 } |> take(1) + |> deliverOnMainQueue ).start(next: { [weak self, weak videoNode] _ in if let strongSelf = self, let videoNode = videoNode { - strongSelf.readyVideoNodes.insert(channel.endpointId) - if videoNode.aspectRatio > 1.25 { - strongSelf.wideVideoNodes.insert(channel.endpointId) + Queue.mainQueue().after(0.1) { + strongSelf.readyVideoNodes.insert(channel.endpointId) + if videoNode.aspectRatio <= 0.77 { + strongSelf.wideVideoNodes.insert(channel.endpointId) + } + strongSelf.updateMembers() } - strongSelf.updateMembers() } }), forKey: channel.endpointId) strongSelf.videoNodes[channel.endpointId] = videoNode @@ -4386,6 +4423,8 @@ public final class VoiceChatController: ViewController { for (videoEndpointId, _) in self.videoNodes { if !validSources.contains(videoEndpointId) { self.videoNodes[videoEndpointId] = nil + self.videoOrder.removeAll(where: { $0 == videoEndpointId }) + self.readyVideoNodes.remove(videoEndpointId) self.readyVideoDisposables.set(nil, forKey: videoEndpointId) } } @@ -4637,7 +4676,7 @@ public final class VoiceChatController: ViewController { } } } else if !self.isScheduling && (velocity.y < -300.0 || offset < topInset / 2.0) { - if velocity.y > -1500.0 && !self.isFullscreen { + if velocity.y > -2200.0 && !self.isFullscreen { DispatchQueue.main.async { self.listNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: ListViewScrollToItem(index: 0, position: .top(0.0), animated: true, curve: .Default(duration: nil), directionHint: .Up), updateSizeAndInsets: nil, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in }) } @@ -5057,20 +5096,20 @@ public final class VoiceChatController: ViewController { self.updateDecorationsLayout(transition: .immediate) - var minimalVisiblePeerid: (PeerId, CGFloat)? + var minimalVisiblePeerid: (PeerId, CGPoint)? var verticalItemNodes: [PeerId: ASDisplayNode] = [:] self.listNode.forEachItemNode { itemNode in if let itemNode = itemNode as? VoiceChatTilesGridItemNode { for tileNode in itemNode.tileNodes { let convertedFrame = tileNode.view.convert(tileNode.bounds, to: self.transitionContainerNode.view) if let item = tileNode.item { - if let (_, y) = minimalVisiblePeerid { - if convertedFrame.minY >= 0.0 && convertedFrame.minY < y { - minimalVisiblePeerid = (item.peer.id, convertedFrame.minY) + if let (_, point) = minimalVisiblePeerid { + if convertedFrame.minY >= 0.0 && (convertedFrame.minY < point.y || (convertedFrame.minY == point.y && convertedFrame.minX < point.x)) { + minimalVisiblePeerid = (item.peer.id, convertedFrame.origin) } } else { if convertedFrame.minY >= 0.0 { - minimalVisiblePeerid = (item.peer.id, convertedFrame.minY) + minimalVisiblePeerid = (item.peer.id, convertedFrame.origin) } } verticalItemNodes[item.peer.id] = tileNode @@ -5078,13 +5117,13 @@ public final class VoiceChatController: ViewController { } } else if let itemNode = itemNode as? VoiceChatParticipantItemNode, let item = itemNode.item { let convertedFrame = itemNode.view.convert(itemNode.bounds, to: self.transitionContainerNode.view) - if let (_, y) = minimalVisiblePeerid { - if convertedFrame.minY >= 0.0 && convertedFrame.minY < y { - minimalVisiblePeerid = (item.peer.id, convertedFrame.minY) + if let (_, point) = minimalVisiblePeerid { + if convertedFrame.minY >= 0.0 && convertedFrame.minY < point.y { + minimalVisiblePeerid = (item.peer.id, convertedFrame.origin) } } else { if convertedFrame.minY >= 0.0 { - minimalVisiblePeerid = (item.peer.id, convertedFrame.minY) + minimalVisiblePeerid = (item.peer.id, convertedFrame.origin) } } verticalItemNodes[item.peer.id] = itemNode @@ -5104,30 +5143,44 @@ public final class VoiceChatController: ViewController { self.fullscreenListNode.forEachItemNode { itemNode in if let itemNode = itemNode as? VoiceChatFullscreenParticipantItemNode, let item = itemNode.item, let otherItemNode = verticalItemNodes[item.peer.id] { - itemNode.animateTransitionIn(from: otherItemNode, containerNode: self, transition: transition, animate: item.peer.id != effectiveSpeakerPeerId) + itemNode.animateTransitionIn(from: otherItemNode, containerNode: self.transitionContainerNode, transition: transition, animate: item.peer.id != effectiveSpeakerPeerId) } } + + self.transitionMaskBottomFillLayer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3, removeOnCompletion: false, completion: { [weak self] _ in + Queue.mainQueue().after(0.2) { + self?.transitionMaskBottomFillLayer.removeAllAnimations() + } + }) if let (layout, navigationHeight) = self.validLayout { self.containerLayoutUpdated(layout, navigationHeight: navigationHeight, transition: transition) self.updateDecorationsLayout(transition: transition) } } - if false, let (peerId, _) = minimalVisiblePeerid { +// if let (peerId, _) = minimalVisiblePeerid { + let effectiveSpeakerPeerId = self.effectiveSpeaker?.0 var index = 0 - for item in self.currentEntries { - if case let .peer(entry, _) = item, entry.peer.id == peerId { + for item in self.currentFullscreenEntries { + if case let .peer(entry, _) = item, entry.peer.id == effectiveSpeakerPeerId { break } else { index += 1 } } - self.fullscreenListNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: ListViewScrollToItem(index: index, position: .top(0.0), animated: false, curve: .Default(duration: nil), directionHint: .Up), updateSizeAndInsets: nil, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in + let position: ListViewScrollPosition + if index > self.currentFullscreenEntries.count - 3 { + index = self.currentFullscreenEntries.count - 1 + position = .bottom(0.0) + } else { + position = .center(.bottom) + } + self.fullscreenListNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: ListViewScrollToItem(index: index, position: position, animated: false, curve: .Default(duration: nil), directionHint: .Up), updateSizeAndInsets: nil, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in completion() }) - } else { - completion() - } +// } else { +// completion() +// } } else if case .fullscreen = previousDisplayMode, case .modal = self.displayMode { var minimalVisiblePeerid: (PeerId, CGFloat)? var fullscreenItemNodes: [PeerId: VoiceChatFullscreenParticipantItemNode] = [:] @@ -5151,6 +5204,8 @@ public final class VoiceChatController: ViewController { let effectiveSpeakerPeerId = self.effectiveSpeaker?.0 var targetTileNode: VoiceChatTileItemNode? + self.transitionContainerNode.addSubnode(self.mainStageNode) + self.listNode.forEachItemNode { itemNode in if let itemNode = itemNode as? VoiceChatTilesGridItemNode { for tileNode in itemNode.tileNodes { @@ -5168,15 +5223,25 @@ public final class VoiceChatController: ViewController { } self.mainStageNode.animateTransitionOut(to: targetTileNode, transition: transition, completion: { [weak self] in - self?.effectiveSpeaker = nil - self?.mainStageNode.update(peer: nil, waitForFullSize: false) - self?.fullscreenListNode.isHidden = true - self?.mainStageContainerNode.isHidden = true + guard let strongSelf = self else { + return + } + strongSelf.effectiveSpeaker = nil + strongSelf.mainStageNode.update(peer: nil, waitForFullSize: false) + strongSelf.fullscreenListNode.isHidden = true + strongSelf.mainStageContainerNode.isHidden = true + strongSelf.mainStageContainerNode.addSubnode(strongSelf.mainStageNode) }) self.mainStageBackgroundNode.alpha = 0.0 self.mainStageBackgroundNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) + self.transitionMaskTopFillLayer.animateAlpha(from: 1.0, to: 0.0, duration: 0.3, removeOnCompletion: false, completion: { [weak self] _ in + Queue.mainQueue().after(0.2) { + self?.transitionMaskTopFillLayer.removeAllAnimations() + } + }) + if let (layout, navigationHeight) = self.validLayout { self.containerLayoutUpdated(layout, navigationHeight: navigationHeight, transition: transition) self.updateDecorationsLayout(transition: transition) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatFullscreenParticipantItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatFullscreenParticipantItem.swift index 517f8c2fe4..290a7ddd68 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatFullscreenParticipantItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatFullscreenParticipantItem.swift @@ -42,15 +42,20 @@ private let borderImage = generateImage(CGSize(width: tileSize.width, height: ti context.strokePath() }) -private let fadeImage = generateImage(CGSize(width: 1.0, height: 30.0), rotatedContext: { size, context in - let bounds = CGRect(origin: CGPoint(), size: size) - context.clear(bounds) - - let colorsArray = [UIColor(rgb: 0x000000, alpha: 0.0).cgColor, UIColor(rgb: 0x000000, alpha: 0.7).cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] - let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! - context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) -}) +private let fadeColor = UIColor(rgb: 0x000000, alpha: 0.5) +private let fadeHeight: CGFloat = 50.0 + +private var fadeImage: UIImage? = { + return generateImage(CGSize(width: fadeHeight, height: fadeHeight), rotatedContext: { size, context in + let bounds = CGRect(origin: CGPoint(), size: size) + context.clear(bounds) + + let colorsArray = [fadeColor.withAlphaComponent(0.0).cgColor, fadeColor.cgColor] as CFArray + var locations: [CGFloat] = [1.0, 0.0] + let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! + context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) + }) +}() final class VoiceChatFullscreenParticipantItem: ListViewItem { enum Icon { @@ -168,7 +173,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { private var raiseHandNode: VoiceChatRaiseHandNode? private var actionButtonNode: HighlightableButtonNode - private var audioLevelView: VoiceBlobView? + var audioLevelView: VoiceBlobView? private let audioLevelDisposable = MetaDisposable() private var didSetupAudioLevel = false @@ -181,7 +186,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { private var wavesColor: UIColor? let videoContainerNode: ASDisplayNode - private let videoFadeNode: ASImageNode + private let videoFadeNode: ASDisplayNode var videoNode: GroupVideoNode? private let videoReadyDisposable = MetaDisposable() private var videoReadyDelayed = false @@ -225,12 +230,12 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { self.videoContainerNode = ASDisplayNode() self.videoContainerNode.clipsToBounds = true - self.videoFadeNode = ASImageNode() + self.videoFadeNode = ASDisplayNode() self.videoFadeNode.displaysAsynchronously = false - self.videoFadeNode.displayWithoutProcessing = true - self.videoFadeNode.contentMode = .scaleToFill - self.videoFadeNode.image = fadeImage - self.videoContainerNode.addSubnode(videoFadeNode) + if let image = fadeImage { + self.videoFadeNode.backgroundColor = UIColor(patternImage: image) + } + self.videoContainerNode.addSubnode(self.videoFadeNode) self.titleNode = TextNode() self.titleNode.isUserInteractionEnabled = false @@ -310,7 +315,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { if let sourceNode = sourceNode as? VoiceChatTileItemNode { var startContainerPosition = sourceNode.view.convert(sourceNode.bounds, to: containerNode.view).center var animate = initialAnimate - if startContainerPosition.y > containerNode.frame.height - 238.0 { + if startContainerPosition.y < -tileHeight || startContainerPosition.y > containerNode.frame.height + tileHeight { animate = false } @@ -373,13 +378,14 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { } else if let sourceNode = sourceNode as? VoiceChatParticipantItemNode, let _ = sourceNode.item { var startContainerPosition = sourceNode.avatarNode.view.convert(sourceNode.avatarNode.bounds, to: containerNode.view).center var animate = true - if startContainerPosition.y > containerNode.frame.height - 238.0 { + if startContainerPosition.y > containerNode.frame.height { animate = false } startContainerPosition = startContainerPosition.offsetBy(dx: 0.0, dy: 9.0) if animate { sourceNode.avatarNode.alpha = 0.0 + sourceNode.audioLevelView?.alpha = 0.0 let initialPosition = self.contextSourceNode.position let targetContainerPosition = self.contextSourceNode.view.convert(self.contextSourceNode.bounds, to: containerNode.view).center @@ -388,8 +394,9 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { containerNode.addSubnode(self.contextSourceNode) self.contextSourceNode.layer.animatePosition(from: startContainerPosition, to: targetContainerPosition, duration: duration, timingFunction: timingFunction, completion: { [weak self, weak sourceNode] _ in - if let strongSelf = self { - sourceNode?.avatarNode.alpha = 1.0 + if let strongSelf = self, let sourceNode = sourceNode { + sourceNode.avatarNode.alpha = 1.0 + sourceNode.audioLevelView?.alpha = 1.0 strongSelf.contextSourceNode.position = initialPosition strongSelf.containerNode.addSubnode(strongSelf.contextSourceNode) } @@ -668,7 +675,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { audioLevelView.updateLevel(CGFloat(value)) let avatarScale: CGFloat - if value > 0.0 { + if value > 0.02 { audioLevelView.startAnimating() avatarScale = 1.03 + level * 0.13 if let wavesColor = strongSelf.wavesColor { @@ -683,7 +690,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { avatarScale = 1.0 if strongSelf.silenceTimer == nil { let silenceTimer = SwiftSignalKit.Timer(timeout: 1.0, repeat: false, completion: { [weak self] in - self?.audioLevelView?.stopAnimating(duration: 0.5) + self?.audioLevelView?.stopAnimating(duration: 0.75) self?.silenceTimer = nil }, queue: Queue.mainQueue()) strongSelf.silenceTimer = silenceTimer @@ -810,7 +817,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { let videoContainerScale = tileSize.width / videoSize.width if !strongSelf.isExtracted && !strongSelf.animatingExtraction { - strongSelf.videoFadeNode.frame = CGRect(x: 0.0, y: videoSize.height - 75.0, width: videoSize.width, height: 75.0) + strongSelf.videoFadeNode.frame = CGRect(x: 0.0, y: videoSize.height - fadeHeight, width: videoSize.width, height: fadeHeight) strongSelf.videoContainerNode.bounds = CGRect(origin: CGPoint(), size: videoSize) if let videoNode = strongSelf.videoNode { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift index 260f94e4f2..280c41595f 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift @@ -19,19 +19,23 @@ import AudioBlob private let backArrowImage = NavigationBarTheme.generateBackArrowImage(color: .white) private let backgroundCornerRadius: CGFloat = 11.0 +private let fadeColor = UIColor(rgb: 0x000000, alpha: 0.5) +private let fadeHeight: CGFloat = 50.0 final class VoiceChatMainStageNode: ASDisplayNode { private let context: AccountContext private let call: PresentationGroupCall private var currentPeer: (PeerId, String?)? private var currentPeerEntry: VoiceChatPeerEntry? + + var callState: PresentationGroupCallState? private var currentVideoNode: GroupVideoNode? - private var candidateVideoNode: GroupVideoNode? private let backgroundNode: ASDisplayNode - private let topFadeNode: ASImageNode - private let bottomFadeNode: ASImageNode + private let topFadeNode: ASDisplayNode + private let bottomFadeNode: ASDisplayNode + private let bottomFillNode: ASDisplayNode private let headerNode: ASDisplayNode private let backButtonNode: HighlightableButtonNode private let backButtonArrowNode: ASImageNode @@ -42,10 +46,12 @@ final class VoiceChatMainStageNode: ASDisplayNode { private let audioLevelDisposable = MetaDisposable() private let speakingPeerDisposable = MetaDisposable() private let speakingAudioLevelDisposable = MetaDisposable() - private var avatarNode: AvatarNode + private var avatarNode: ASImageNode private let titleNode: ImmediateTextNode private let microphoneNode: VoiceChatMicrophoneNode + private let avatarDisposable = MetaDisposable() + private let speakingContainerNode: ASDisplayNode private var speakingEffectView: UIVisualEffectView? private let speakingAvatarNode: AvatarNode @@ -70,34 +76,37 @@ final class VoiceChatMainStageNode: ASDisplayNode { self.backgroundNode.alpha = 0.0 self.backgroundNode.backgroundColor = UIColor(rgb: 0x1c1c1e) - self.topFadeNode = ASImageNode() + self.topFadeNode = ASDisplayNode() self.topFadeNode.alpha = 0.0 self.topFadeNode.displaysAsynchronously = false - self.topFadeNode.displayWithoutProcessing = true - self.topFadeNode.contentMode = .scaleToFill - self.topFadeNode.image = generateImage(CGSize(width: 1.0, height: 50.0), rotatedContext: { size, context in + if let image = generateImage(CGSize(width: fadeHeight, height: fadeHeight), rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) - let colorsArray = [UIColor(rgb: 0x000000, alpha: 0.7).cgColor, UIColor(rgb: 0x000000, alpha: 0.0).cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] + let colorsArray = [fadeColor.cgColor, fadeColor.withAlphaComponent(0.0).cgColor] as CFArray + var locations: [CGFloat] = [1.0, 0.0] let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) - }) + }) { + self.topFadeNode.backgroundColor = UIColor(patternImage: image) + } - self.bottomFadeNode = ASImageNode() + self.bottomFadeNode = ASDisplayNode() self.bottomFadeNode.displaysAsynchronously = false - self.bottomFadeNode.displayWithoutProcessing = true - self.bottomFadeNode.contentMode = .scaleToFill - self.bottomFadeNode.image = generateImage(CGSize(width: 1.0, height: 50.0), rotatedContext: { size, context in + if let image = generateImage(CGSize(width: fadeHeight, height: fadeHeight), rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) - let colorsArray = [UIColor(rgb: 0x000000, alpha: 0.0).cgColor, UIColor(rgb: 0x000000, alpha: 0.7).cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] + let colorsArray = [fadeColor.withAlphaComponent(0.0).cgColor, fadeColor.cgColor] as CFArray + var locations: [CGFloat] = [1.0, 0.0] let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) - }) + }) { + self.bottomFadeNode.backgroundColor = UIColor(patternImage: image) + } + + self.bottomFillNode = ASDisplayNode() + self.bottomFillNode.backgroundColor = fadeColor self.headerNode = ASDisplayNode() self.headerNode.alpha = 0.0 @@ -117,7 +126,8 @@ final class VoiceChatMainStageNode: ASDisplayNode { self.pinButtonTitleNode.attributedText = NSAttributedString(string: "Unpin", font: Font.regular(17.0), textColor: .white) self.pinButtonNode = HighlightableButtonNode() - self.avatarNode = AvatarNode(font: avatarPlaceholderFont(size: 42.0)) + self.avatarNode = ASImageNode() + self.avatarNode.displaysAsynchronously = false self.avatarNode.isHidden = true self.titleNode = ImmediateTextNode() @@ -144,6 +154,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { self.addSubnode(self.backgroundNode) self.addSubnode(self.topFadeNode) self.addSubnode(self.bottomFadeNode) + self.addSubnode(self.bottomFillNode) self.addSubnode(self.avatarNode) self.addSubnode(self.titleNode) self.addSubnode(self.microphoneNode) @@ -194,6 +205,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { } deinit { + self.avatarDisposable.dispose() self.videoReadyDisposable.dispose() self.audioLevelDisposable.dispose() self.speakingPeerDisposable.dispose() @@ -233,7 +245,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { return } - let alphaTransition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .linear) + let alphaTransition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .easeInOut) alphaTransition.updateAlpha(node: self.backgroundNode, alpha: 1.0) alphaTransition.updateAlpha(node: self.topFadeNode, alpha: 1.0) alphaTransition.updateAlpha(node: self.titleNode, alpha: 1.0) @@ -271,7 +283,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { return } - let alphaTransition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .linear) + let alphaTransition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .easeInOut) alphaTransition.updateAlpha(node: self.backgroundNode, alpha: 0.0) alphaTransition.updateAlpha(node: self.topFadeNode, alpha: 0.0) alphaTransition.updateAlpha(node: self.titleNode, alpha: 0.0) @@ -326,9 +338,33 @@ final class VoiceChatMainStageNode: ASDisplayNode { return } - var wavesColor = UIColor(rgb: 0x34c759) if let getAudioLevel = self.getAudioLevel, let peerId = speakingPeerId { - self.speakingAudioLevelView?.removeFromSuperview() + let wavesColor = UIColor(rgb: 0x34c759) + if let speakingAudioLevelView = self.speakingAudioLevelView { + speakingAudioLevelView.removeFromSuperview() + self.speakingAudioLevelView = nil + } + + self.speakingPeerDisposable.set((self.context.account.postbox.loadedPeerWithId(peerId) + |> deliverOnMainQueue).start(next: { [weak self] peer in + guard let strongSelf = self else { + return + } + + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + strongSelf.speakingAvatarNode.setPeer(context: strongSelf.context, theme: presentationData.theme, peer: peer) + strongSelf.speakingTitleNode.attributedText = NSAttributedString(string: peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), font: Font.regular(14.0), textColor: .white) + + strongSelf.speakingContainerNode.alpha = 0.0 + + if let (size, sideInset, bottomInset, isLandscape) = strongSelf.validLayout { + strongSelf.update(size: size, sideInset: sideInset, bottomInset: bottomInset, isLandscape: isLandscape, transition: .immediate) + } + + strongSelf.speakingContainerNode.alpha = 1.0 + strongSelf.speakingContainerNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3) + strongSelf.speakingContainerNode.layer.animateScale(from: 0.01, to: 1.0, duration: 0.3, timingFunction: kCAMediaTimingFunctionSpring) + })) let blobFrame = self.speakingAvatarNode.frame.insetBy(dx: -14.0, dy: -14.0) self.speakingAudioLevelDisposable.set((getAudioLevel(peerId) @@ -373,10 +409,19 @@ final class VoiceChatMainStageNode: ASDisplayNode { })) } else { self.speakingPeerDisposable.set(nil) + self.speakingAudioLevelDisposable.set(nil) - if let audioLevelView = self.audioLevelView { - audioLevelView.removeFromSuperview() - self.audioLevelView = nil + let audioLevelView = self.audioLevelView + self.audioLevelView = nil + + if !self.speakingContainerNode.alpha.isZero { + self.speakingContainerNode.alpha = 0.0 + self.speakingContainerNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.3, completion: { _ in + audioLevelView?.removeFromSuperview() + }) + self.speakingContainerNode.layer.animateScale(from: 1.0, to: 0.01, duration: 0.3) + } else { + audioLevelView?.removeFromSuperview() } } } @@ -387,16 +432,12 @@ final class VoiceChatMainStageNode: ASDisplayNode { if !arePeersEqual(previousPeerEntry?.peer, peerEntry.peer) { let peer = peerEntry.peer let presentationData = self.context.sharedContext.currentPresentationData.with { $0 } - if previousPeerEntry?.peer.id == peerEntry.peer.id { - self.avatarNode.setPeer(context: self.context, theme: presentationData.theme, peer: peer) - } else { - let previousAvatarNode = self.avatarNode - self.avatarNode = AvatarNode(font: avatarPlaceholderFont(size: 42.0)) - self.avatarNode.setPeer(context: self.context, theme: presentationData.theme, peer: peer, synchronousLoad: true) - self.avatarNode.frame = previousAvatarNode.frame - previousAvatarNode.supernode?.insertSubnode(self.avatarNode, aboveSubnode: previousAvatarNode) - previousAvatarNode.removeFromSupernode() - } + self.avatarDisposable.set((peerAvatarCompleteImage(account: self.context.account, peer: peer, size: CGSize(width: 180.0, height: 180.0), font: avatarPlaceholderFont(size: 78.0), fullSize: true) + |> deliverOnMainQueue).start(next: { [weak self] image in + if let strongSelf = self { + strongSelf.avatarNode.image = image + } + })) self.titleNode.attributedText = NSAttributedString(string: peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), font: Font.semibold(15.0), textColor: .white) if let (size, sideInset, bottomInset, isLandscape) = self.validLayout { self.update(size: size, sideInset: sideInset, bottomInset: bottomInset, isLandscape: isLandscape, transition: .immediate) @@ -408,7 +449,10 @@ final class VoiceChatMainStageNode: ASDisplayNode { var wavesColor = UIColor(rgb: 0x34c759) if let getAudioLevel = self.getAudioLevel, previousPeerEntry?.peer.id != peerEntry.peer.id { - self.audioLevelView?.removeFromSuperview() + if let audioLevelView = self.audioLevelView { + self.audioLevelView = nil + audioLevelView.removeFromSuperview() + } let blobFrame = self.avatarNode.frame.insetBy(dx: -60.0, dy: -60.0) self.audioLevelDisposable.set((getAudioLevel(peerEntry.peer.id) @@ -452,7 +496,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { avatarScale = 1.0 if strongSelf.silenceTimer == nil { let silenceTimer = SwiftSignalKit.Timer(timeout: 1.0, repeat: false, completion: { [weak self] in - self?.audioLevelView?.stopAnimating(duration: 0.5) + self?.audioLevelView?.stopAnimating(duration: 0.75) self?.silenceTimer = nil }, queue: Queue.mainQueue()) strongSelf.silenceTimer = silenceTimer @@ -612,11 +656,12 @@ final class VoiceChatMainStageNode: ASDisplayNode { transition.updateFrame(node: self.microphoneNode, frame: CGRect(origin: CGPoint(x: sideInset + 7.0, y: size.height - bottomInset - animationSize.height - 6.0), size: animationSize)) - var fadeHeight: CGFloat = 50.0 - if size.height != 180.0 && size.width < size.height { - fadeHeight = 140.0 + var totalFadeHeight: CGFloat = fadeHeight + if size.height != tileHeight && size.width < size.height { + totalFadeHeight += bottomInset } - transition.updateFrame(node: self.bottomFadeNode, frame: CGRect(x: 0.0, y: size.height - fadeHeight, width: size.width, height: fadeHeight)) + transition.updateFrame(node: self.bottomFadeNode, frame: CGRect(x: 0.0, y: size.height - totalFadeHeight, width: size.width, height: fadeHeight)) + transition.updateFrame(node: self.bottomFillNode, frame: CGRect(x: 0.0, y: size.height - totalFadeHeight + fadeHeight, width: size.width, height: max(0.0, totalFadeHeight - fadeHeight))) transition.updateFrame(node: self.topFadeNode, frame: CGRect(x: 0.0, y: 0.0, width: size.width, height: 50.0)) let backSize = self.backButtonNode.measure(CGSize(width: 320.0, height: 100.0)) @@ -635,4 +680,11 @@ final class VoiceChatMainStageNode: ASDisplayNode { transition.updateFrame(node: self.headerNode, frame: CGRect(origin: CGPoint(), size: CGSize(width: size.width, height: 64.0))) } + + func flipVideoIfNeeded() { + guard self.currentPeer?.0 == self.callState?.myPeerId else { + return + } + self.currentVideoNode?.flip(withBackground: false) + } } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift index a9593d69b8..6871b9523f 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift @@ -245,6 +245,7 @@ class VoiceChatParticipantStatusNode: ASDisplayNode { class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { private let topStripeNode: ASDisplayNode private let bottomStripeNode: ASDisplayNode + private let highlightContainerNode: ASDisplayNode private let highlightedBackgroundNode: ASDisplayNode let contextSourceNode: ContextExtractedContentContainingNode @@ -275,7 +276,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { private var raiseHandNode: VoiceChatRaiseHandNode? private var actionButtonNode: HighlightableButtonNode - private var audioLevelView: VoiceBlobView? + var audioLevelView: VoiceBlobView? private let audioLevelDisposable = MetaDisposable() private var didSetupAudioLevel = false @@ -337,13 +338,17 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { self.actionContainerNode = ASDisplayNode() self.actionButtonNode = HighlightableButtonNode() + self.highlightContainerNode = ASDisplayNode() + self.highlightContainerNode.clipsToBounds = true + self.highlightedBackgroundNode = ASDisplayNode() - self.highlightedBackgroundNode.isLayerBacked = true super.init(layerBacked: false, dynamicBounce: false, rotated: false, seeThrough: false) self.isAccessibilityElement = true + self.highlightContainerNode.addSubnode(self.highlightedBackgroundNode) + self.containerNode.addSubnode(self.contextSourceNode) self.containerNode.targetNodeForActivationProgress = self.contextSourceNode.contentNode self.addSubnode(self.containerNode) @@ -516,6 +521,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { avatarListNode.controlsClippingNode.frame = CGRect(x: -targetRect.width / 2.0, y: -targetRect.height / 2.0, width: targetRect.width, height: targetRect.height) avatarListNode.controlsClippingOffsetNode.frame = CGRect(origin: CGPoint(x: targetRect.width / 2.0, y: targetRect.height / 2.0), size: CGSize()) avatarListNode.stripContainerNode.frame = CGRect(x: 0.0, y: 13.0, width: targetRect.width, height: 2.0) + avatarListNode.shadowNode.frame = CGRect(x: 0.0, y: 0.0, width: targetRect.width, height: 44.0) avatarListContainerNode.addSubnode(avatarListNode) avatarListContainerNode.addSubnode(avatarListNode.controlsClippingOffsetNode) @@ -650,6 +656,14 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { self.silenceTimer?.invalidate() } + override func didLoad() { + super.didLoad() + + if #available(iOS 13.0, *) { + self.highlightContainerNode.layer.cornerCurve = .continuous + } + } + override func selected() { super.selected() self.layoutParams?.0.action?(self.contextSourceNode) @@ -673,7 +687,8 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { } if animate { sourceNode.avatarNode.alpha = 0.0 - + sourceNode.audioLevelView?.alpha = 0.0 + let initialAvatarPosition = self.avatarNode.position let initialBackgroundPosition = sourceNode.backgroundImageNode.position let initialContentPosition = sourceNode.contentWrapperNode.position @@ -706,11 +721,19 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { sourceNode.contentWrapperNode.layer.animatePosition(from: startContainerContentPosition, to: targetContainerAvatarPosition, duration: duration, timingFunction: timingFunction, completion: { [weak sourceNode] _ in if let sourceNode = sourceNode { sourceNode.avatarNode.alpha = 1.0 + sourceNode.audioLevelView?.alpha = 1.0 sourceNode.contentWrapperNode.position = initialContentPosition sourceNode.offsetContainerNode.insertSubnode(sourceNode.contentWrapperNode, aboveSubnode: sourceNode.videoContainerNode) } }) + if let audioLevelView = self.audioLevelView { + audioLevelView.center = targetContainerAvatarPosition + containerNode.view.addSubview(audioLevelView) + + audioLevelView.layer.animateScale(from: 1.25, to: 1.0, duration: duration, timingFunction: timingFunction) + audioLevelView.layer.animatePosition(from: startContainerAvatarPosition, to: targetContainerAvatarPosition, duration: duration, timingFunction: timingFunction, removeOnCompletion: false) + } self.avatarNode.position = targetContainerAvatarPosition containerNode.addSubnode(self.avatarNode) @@ -719,6 +742,11 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { if let strongSelf = self { strongSelf.avatarNode.position = initialAvatarPosition strongSelf.offsetContainerNode.addSubnode(strongSelf.avatarNode) + if let audioLevelView = strongSelf.audioLevelView { + audioLevelView.layer.removeAllAnimations() + audioLevelView.center = initialAvatarPosition + strongSelf.offsetContainerNode.view.insertSubview(audioLevelView, at: 0) + } } }) @@ -1031,7 +1059,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { audioLevelView.updateLevel(CGFloat(value)) let avatarScale: CGFloat - if value > 0.0 { + if value > 0.02 { audioLevelView.startAnimating() avatarScale = 1.03 + level * 0.13 if let wavesColor = strongSelf.wavesColor { @@ -1046,7 +1074,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { avatarScale = 1.0 if strongSelf.silenceTimer == nil { let silenceTimer = SwiftSignalKit.Timer(timeout: 1.0, repeat: false, completion: { [weak self] in - self?.audioLevelView?.stopAnimating(duration: 0.5) + self?.audioLevelView?.stopAnimating(duration: 0.75) self?.silenceTimer = nil }, queue: Queue.mainQueue()) strongSelf.silenceTimer = silenceTimer @@ -1072,7 +1100,11 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { } strongSelf.avatarNode.setPeer(context: item.context, theme: item.presentationData.theme, peer: item.peer, overrideImage: overrideImage, emptyColor: item.presentationData.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoad, storeUnrounded: true) - strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -UIScreenPixel), size: CGSize(width: params.width, height: layout.contentSize.height + UIScreenPixel + UIScreenPixel)) + strongSelf.highlightContainerNode.frame = CGRect(origin: CGPoint(x: params.leftInset, y: -UIScreenPixel), size: CGSize(width: params.width - params.leftInset - params.rightInset, height: layout.contentSize.height + UIScreenPixel + UIScreenPixel + 11.0)) + + strongSelf.highlightContainerNode.cornerRadius = first ? 11.0 : 0.0 + + strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: params.width, height: layout.contentSize.height + UIScreenPixel + UIScreenPixel)) var hadMicrophoneNode = false var hadRaiseHandNode = false @@ -1185,8 +1217,8 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { var isHighlighted = false func updateIsHighlighted(transition: ContainedViewLayoutTransition) { if self.isHighlighted { - self.highlightedBackgroundNode.alpha = 1.0 - if self.highlightedBackgroundNode.supernode == nil { + self.highlightContainerNode.alpha = 1.0 + if self.highlightContainerNode.supernode == nil { var anchorNode: ASDisplayNode? if self.bottomStripeNode.supernode != nil { anchorNode = self.bottomStripeNode @@ -1194,24 +1226,24 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { anchorNode = self.topStripeNode } if let anchorNode = anchorNode { - self.insertSubnode(self.highlightedBackgroundNode, aboveSubnode: anchorNode) + self.insertSubnode(self.highlightContainerNode, aboveSubnode: anchorNode) } else { - self.addSubnode(self.highlightedBackgroundNode) + self.addSubnode(self.highlightContainerNode) } } } else { - if self.highlightedBackgroundNode.supernode != nil { + if self.highlightContainerNode.supernode != nil { if transition.isAnimated { - self.highlightedBackgroundNode.layer.animateAlpha(from: self.highlightedBackgroundNode.alpha, to: 0.0, duration: 0.4, completion: { [weak self] completed in + self.highlightContainerNode.layer.animateAlpha(from: self.highlightContainerNode.alpha, to: 0.0, duration: 0.4, completion: { [weak self] completed in if let strongSelf = self { if completed { - strongSelf.highlightedBackgroundNode.removeFromSupernode() + strongSelf.highlightContainerNode.removeFromSupernode() } } }) - self.highlightedBackgroundNode.alpha = 0.0 + self.highlightContainerNode.alpha = 0.0 } else { - self.highlightedBackgroundNode.removeFromSupernode() + self.highlightContainerNode.removeFromSupernode() } } } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatPeerProfileNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatPeerProfileNode.swift index 6a67e1265a..f244df10d2 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatPeerProfileNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatPeerProfileNode.swift @@ -230,7 +230,7 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.insertSubnode(sourceNode.videoContainerNode, belowSubnode: self.avatarListWrapperNode) if let snapshotView = sourceNode.infoNode.view.snapshotView(afterScreenUpdates: false) { - self.videoFadeNode.image = sourceNode.fadeNode.image + self.videoFadeNode.image = tileFadeImage self.videoFadeNode.frame = CGRect(x: 0.0, y: sourceRect.height - sourceNode.fadeNode.frame.height, width: sourceRect.width, height: sourceNode.fadeNode.frame.height) self.insertSubnode(self.videoFadeNode, aboveSubnode: sourceNode.videoContainerNode) @@ -260,6 +260,7 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.avatarListNode.controlsClippingNode.frame = CGRect(x: -targetRect.width / 2.0, y: -targetRect.width / 2.0, width: targetRect.width, height: targetRect.width) self.avatarListNode.controlsClippingOffsetNode.frame = CGRect(origin: CGPoint(x: targetRect.width / 2.0, y: targetRect.width / 2.0), size: CGSize()) self.avatarListNode.stripContainerNode.frame = CGRect(x: 0.0, y: 13.0, width: targetRect.width, height: 2.0) + self.avatarListNode.shadowNode.frame = CGRect(x: 0.0, y: 0.0, width: targetRect.width, height: 44.0) self.avatarListNode.update(size: targetSize, peer: self.peer, customNode: self.customNode, additionalEntry: self.additionalEntry, isExpanded: true, transition: .immediate) @@ -339,6 +340,7 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.avatarListNode.controlsClippingNode.frame = CGRect(x: -targetRect.width / 2.0, y: -targetRect.width / 2.0, width: targetRect.width, height: targetRect.width) self.avatarListNode.controlsClippingOffsetNode.frame = CGRect(origin: CGPoint(x: targetRect.width / 2.0, y: targetRect.width / 2.0), size: CGSize()) self.avatarListNode.stripContainerNode.frame = CGRect(x: 0.0, y: 13.0, width: targetRect.width, height: 2.0) + self.avatarListNode.shadowNode.frame = CGRect(x: 0.0, y: 0.0, width: targetRect.width, height: 44.0) self.avatarListNode.update(size: targetSize, peer: self.peer, customNode: nil, additionalEntry: self.additionalEntry, isExpanded: true, transition: .immediate) @@ -409,6 +411,9 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.avatarListNode.stripContainerNode.alpha = 0.0 self.avatarListNode.stripContainerNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) + self.avatarListNode.shadowNode.alpha = 0.0 + self.avatarListNode.shadowNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) + self.infoNode.alpha = 0.0 self.infoNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) } else if let targetNode = targetNode as? VoiceChatFullscreenParticipantItemNode { @@ -461,6 +466,9 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.avatarListNode.stripContainerNode.alpha = 0.0 self.avatarListNode.stripContainerNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) + + self.avatarListNode.shadowNode.alpha = 0.0 + self.avatarListNode.shadowNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) self.infoNode.alpha = 0.0 self.infoNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatTileGridNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatTileGridNode.swift index add9c2444d..cd128944c7 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatTileGridNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatTileGridNode.swift @@ -6,7 +6,7 @@ import SwiftSignalKit import AccountContext private let tileSpacing: CGFloat = 4.0 -private let tileHeight: CGFloat = 180.0 +let tileHeight: CGFloat = 180.0 final class VoiceChatTileGridNode: ASDisplayNode { private let context: AccountContext @@ -31,6 +31,11 @@ final class VoiceChatTileGridNode: ASDisplayNode { let halfWidth = floorToScreenPixels((size.width - tileSpacing) / 2.0) let lastItemIsWide = items.count % 2 != 0 + let isFirstTime = self.isFirstTime + if isFirstTime { + self.isFirstTime = false + } + for i in 0 ..< self.items.count { let item = self.items[i] let isLast = i == self.items.count - 1 @@ -60,10 +65,8 @@ final class VoiceChatTileGridNode: ASDisplayNode { if let itemNode = itemNode { if wasAdded { itemNode.frame = itemFrame - if self.isFirstTime { - self.isFirstTime = false - } else { - itemNode.layer.animateScale(from: 0.0, to: 1.0, duration: 0.2) + if !isFirstTime { + itemNode.layer.animateScale(from: 0.0, to: 1.0, duration: 0.3) itemNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) } } else { @@ -80,7 +83,10 @@ final class VoiceChatTileGridNode: ASDisplayNode { } for id in removeIds { if let itemNode = self.itemNodes.removeValue(forKey: id) { - itemNode.removeFromSupernode() + itemNode.layer.animateScale(from: 1.0, to: 0.0, duration: 0.3, removeOnCompletion: false) + itemNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false, completion: { [weak itemNode] _ in + itemNode?.removeFromSupernode() + }) } } @@ -202,7 +208,7 @@ final class VoiceChatTilesGridItemNode: ListViewItemNode { strongSelf.tileGridNode = tileGridNode } - let transition: ContainedViewLayoutTransition = currentItem == nil ? .immediate : .animated(duration: 0.4, curve: .spring) + let transition: ContainedViewLayoutTransition = currentItem == nil ? .immediate : .animated(duration: 0.3, curve: .easeInOut) let tileGridSize = tileGridNode.update(size: CGSize(width: params.width - params.leftInset - params.rightInset, height: CGFloat.greatestFiniteMagnitude), items: item.tiles, transition: transition) if currentItem == nil { tileGridNode.frame = CGRect(x: params.leftInset, y: 0.0, width: tileGridSize.width, height: 0.0) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatTileItemNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatTileItemNode.swift index de6d7c5535..d4b3453be7 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatTileItemNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatTileItemNode.swift @@ -24,8 +24,6 @@ private let borderImage = generateImage(CGSize(width: 24.0, height: 24.0), rotat context.strokePath() }) -private let fadeHeight: CGFloat = 50.0 - final class VoiceChatTileItem: Equatable { enum Icon: Equatable { case none @@ -80,13 +78,16 @@ final class VoiceChatTileItem: Equatable { } } -private var fadeImage: UIImage? = { - return generateImage(CGSize(width: 1.0, height: fadeHeight), rotatedContext: { size, context in +private let fadeColor = UIColor(rgb: 0x000000, alpha: 0.5) +private let fadeHeight: CGFloat = 50.0 + +var tileFadeImage: UIImage? = { + return generateImage(CGSize(width: fadeHeight, height: fadeHeight), rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) - let colorsArray = [UIColor(rgb: 0x000000, alpha: 0.0).cgColor, UIColor(rgb: 0x000000, alpha: 0.7).cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] + let colorsArray = [fadeColor.withAlphaComponent(0.0).cgColor, fadeColor.cgColor] as CFArray + var locations: [CGFloat] = [1.0, 0.0] let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) }) @@ -102,7 +103,7 @@ final class VoiceChatTileItemNode: ASDisplayNode { var videoContainerNode: ASDisplayNode var videoNode: GroupVideoNode? let infoNode: ASDisplayNode - let fadeNode: ASImageNode + let fadeNode: ASDisplayNode private let titleNode: ImmediateTextNode private let iconNode: ASImageNode private var animationNode: VoiceChatMicrophoneNode? @@ -139,11 +140,11 @@ final class VoiceChatTileItemNode: ASDisplayNode { self.infoNode = ASDisplayNode() - self.fadeNode = ASImageNode() + self.fadeNode = ASDisplayNode() self.fadeNode.displaysAsynchronously = false - self.fadeNode.displayWithoutProcessing = true - self.fadeNode.contentMode = .scaleToFill - self.fadeNode.image = fadeImage + if let image = tileFadeImage { + self.fadeNode.backgroundColor = UIColor(patternImage: image) + } self.titleNode = ImmediateTextNode() self.statusNode = VoiceChatParticipantStatusNode() @@ -338,11 +339,12 @@ final class VoiceChatTileItemNode: ASDisplayNode { } let bounds = CGRect(origin: CGPoint(), size: size) - self.contentNode.frame = bounds self.containerNode.frame = bounds self.contextSourceNode.frame = bounds self.contextSourceNode.contentNode.frame = bounds + transition.updateFrame(node: self.contentNode, frame: bounds) + let extractedWidth = availableWidth let makeStatusLayout = self.statusNode.asyncLayout() let (statusLayout, _) = makeStatusLayout(CGSize(width: availableWidth - 30.0, height: CGFloat.greatestFiniteMagnitude), item.text, true) diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 766aa6e0fe..deaa1a25e0 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -3546,2915 +3546,2917 @@ public final class PresentationStrings: Equatable { public var DialogList_UnknownPinLimitError: String { return self._s[3123]! } public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3124]! } public var TwoStepAuth_EnabledSuccess: String { return self._s[3125]! } - public var VoiceChat_AskedToSpeak: String { return self._s[3126]! } - public var Weekday_ShortSunday: String { return self._s[3127]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3128]! } - public var AuthSessions_TerminateSession: String { return self._s[3129]! } - public var Passport_Identity_FilesTitle: String { return self._s[3130]! } + public var VoiceChat_StopScreenSharing: String { return self._s[3126]! } + public var VoiceChat_AskedToSpeak: String { return self._s[3127]! } + public var Weekday_ShortSunday: String { return self._s[3128]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3129]! } + public var AuthSessions_TerminateSession: String { return self._s[3130]! } + public var Passport_Identity_FilesTitle: String { return self._s[3131]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3131]!, self._r[3131]!, [_0]) + return formatWithArgumentRanges(self._s[3132]!, self._r[3132]!, [_0]) } - public var PeopleNearby_MakeVisible: String { return self._s[3133]! } + public var PeopleNearby_MakeVisible: String { return self._s[3134]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_0]) + return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_0]) } - public var Widget_UpdatedAt: String { return self._s[3135]! } + public var Widget_UpdatedAt: String { return self._s[3136]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_1, _2]) } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_0]) + return formatWithArgumentRanges(self._s[3138]!, self._r[3138]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3138]! } - public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3139]! } - public var Conversation_ContextMenuForward: String { return self._s[3141]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[3142]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3139]! } + public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3140]! } + public var Conversation_ContextMenuForward: String { return self._s[3142]! } + public var Channel_AdminLog_CanManageCalls: String { return self._s[3143]! } public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[3146]! } - public var Privacy_Forwards_NeverLink: String { return self._s[3147]! } - public var AuthSessions_CurrentSession: String { return self._s[3148]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[3149]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3150]! } - public var ChatSearch_ResultsTooltip: String { return self._s[3152]! } - public var CheckoutInfo_Pay: String { return self._s[3153]! } + public var Notification_GroupInviterSelf: String { return self._s[3147]! } + public var Privacy_Forwards_NeverLink: String { return self._s[3148]! } + public var AuthSessions_CurrentSession: String { return self._s[3149]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[3150]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3151]! } + public var ChatSearch_ResultsTooltip: String { return self._s[3153]! } + public var CheckoutInfo_Pay: String { return self._s[3154]! } public func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3155]!, self._r[3155]!, [_0]) + return formatWithArgumentRanges(self._s[3156]!, self._r[3156]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[3156]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[3157]! } + public var GroupInfo_AddParticipant: String { return self._s[3157]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[3158]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3158]!, self._r[3158]!, [_0]) + return formatWithArgumentRanges(self._s[3159]!, self._r[3159]!, [_0]) } - public var Localization_LanguageCustom: String { return self._s[3159]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[3160]! } - public var Settings_UsernameEmpty: String { return self._s[3161]! } - public var Settings_FAQ_URL: String { return self._s[3162]! } - public var ChatList_UndoArchiveText1: String { return self._s[3163]! } - public var Common_Select: String { return self._s[3165]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3166]! } - public var Notification_PassportValueAddress: String { return self._s[3167]! } - public var Conversation_MessageDialogDelete: String { return self._s[3168]! } - public var Map_OpenInYandexNavigator: String { return self._s[3170]! } - public var DialogList_SearchSectionDialogs: String { return self._s[3171]! } - public var AccessDenied_Contacts: String { return self._s[3172]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3174]! } - public var Passport_ScanPassportHelp: String { return self._s[3175]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3176]! } - public var ChatListFolder_NameChannels: String { return self._s[3177]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3178]! } + public var Localization_LanguageCustom: String { return self._s[3160]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[3161]! } + public var Settings_UsernameEmpty: String { return self._s[3162]! } + public var Settings_FAQ_URL: String { return self._s[3163]! } + public var ChatList_UndoArchiveText1: String { return self._s[3164]! } + public var Common_Select: String { return self._s[3166]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3167]! } + public var Notification_PassportValueAddress: String { return self._s[3168]! } + public var Conversation_MessageDialogDelete: String { return self._s[3169]! } + public var Map_OpenInYandexNavigator: String { return self._s[3171]! } + public var DialogList_SearchSectionDialogs: String { return self._s[3172]! } + public var AccessDenied_Contacts: String { return self._s[3173]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3175]! } + public var Passport_ScanPassportHelp: String { return self._s[3176]! } + public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3177]! } + public var ChatListFolder_NameChannels: String { return self._s[3178]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3179]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3179]!, self._r[3179]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3180]!, self._r[3180]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3180]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3181]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3181]!, self._r[3181]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3182]!, self._r[3182]!, [_1, _2]) } - public var Conversation_GifTooltip: String { return self._s[3182]! } - public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3183]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3185]! } - public var VoiceChat_Connecting: String { return self._s[3186]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3187]! } + public var Conversation_GifTooltip: String { return self._s[3183]! } + public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3184]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3186]! } + public var VoiceChat_Connecting: String { return self._s[3187]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3188]! } public func Channel_AdminLog_CreatedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3188]!, self._r[3188]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3189]!, self._r[3189]!, [_1, _2]) } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3189]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3190]! } - public var CreatePoll_Quiz: String { return self._s[3191]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3193]! } - public var Watch_Message_Invoice: String { return self._s[3194]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3195]! } - public var Watch_Message_Unsupported: String { return self._s[3196]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3190]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3191]! } + public var CreatePoll_Quiz: String { return self._s[3192]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[3194]! } + public var Watch_Message_Invoice: String { return self._s[3195]! } + public var Settings_AddAnotherAccount_Help: String { return self._s[3196]! } + public var Watch_Message_Unsupported: String { return self._s[3197]! } public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3198]!, self._r[3198]!, [_0]) + return formatWithArgumentRanges(self._s[3199]!, self._r[3199]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3199]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3201]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3202]! } - public var Call_IncomingVoiceCall: String { return self._s[3203]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[3200]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[3202]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3203]! } + public var Call_IncomingVoiceCall: String { return self._s[3204]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3204]!, self._r[3204]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3205]!, self._r[3205]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3205]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3206]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3207]! } - public var Group_ErrorAccessDenied: String { return self._s[3208]! } - public var PasscodeSettings_HelpTop: String { return self._s[3209]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3210]! } - public var AddContact_SharedContactException: String { return self._s[3211]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3212]! } - public var Privacy_TopPeers: String { return self._s[3213]! } - public var Web_OpenExternal: String { return self._s[3214]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3215]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3216]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3206]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3207]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3208]! } + public var Group_ErrorAccessDenied: String { return self._s[3209]! } + public var PasscodeSettings_HelpTop: String { return self._s[3210]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3211]! } + public var AddContact_SharedContactException: String { return self._s[3212]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[3213]! } + public var Privacy_TopPeers: String { return self._s[3214]! } + public var Web_OpenExternal: String { return self._s[3215]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[3216]! } + public var Channel_Management_LabelAdministrator: String { return self._s[3217]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_0]) + return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_0]) } - public var Conversation_PhoneCopied: String { return self._s[3218]! } - public var Permissions_Skip: String { return self._s[3219]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3220]! } + public var Conversation_PhoneCopied: String { return self._s[3219]! } + public var Permissions_Skip: String { return self._s[3220]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3221]! } public func VoiceChat_ForwardTooltip_TwoChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3221]!, self._r[3221]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_0, _1]) } - public var PeopleNearby_Title: String { return self._s[3222]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3223]! } + public var PeopleNearby_Title: String { return self._s[3223]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3224]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3225]!, self._r[3225]!, [_1]) + return formatWithArgumentRanges(self._s[3226]!, self._r[3226]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3226]! } + public var Profile_MessageLifetime1w: String { return self._s[3227]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3228]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3230]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3231]! } - public var Privacy_Forwards_Preview: String { return self._s[3232]! } - public var Settings_EditAccount: String { return self._s[3233]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3229]! } + public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3231]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[3232]! } + public var Privacy_Forwards_Preview: String { return self._s[3233]! } + public var Settings_EditAccount: String { return self._s[3234]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3234]!, self._r[3234]!, [_0]) + return formatWithArgumentRanges(self._s[3235]!, self._r[3235]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3235]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3236]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3237]!, self._r[3237]!, [_1]) + return formatWithArgumentRanges(self._s[3238]!, self._r[3238]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3238]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3239]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3239]!, self._r[3239]!, [_0]) + return formatWithArgumentRanges(self._s[3240]!, self._r[3240]!, [_0]) } - public var Login_InfoHelp: String { return self._s[3240]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3241]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3242]! } - public var Profile_MessageLifetime1d: String { return self._s[3243]! } - public var Group_UpgradeConfirmation: String { return self._s[3244]! } + public var Login_InfoHelp: String { return self._s[3241]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3242]! } + public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3243]! } + public var Profile_MessageLifetime1d: String { return self._s[3244]! } + public var Group_UpgradeConfirmation: String { return self._s[3245]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3245]!, self._r[3245]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3246]!, self._r[3246]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3246]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3247]! } + public var Appearance_RemoveThemeColor: String { return self._s[3247]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3248]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3248]!, self._r[3248]!, [_0]) + return formatWithArgumentRanges(self._s[3249]!, self._r[3249]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3249]! } + public var UserInfo_BotSettings: String { return self._s[3250]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3251]!, self._r[3251]!, [_0]) + return formatWithArgumentRanges(self._s[3252]!, self._r[3252]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3252]! } - public var Conversation_PinMessagesForMe: String { return self._s[3253]! } - public var VoiceChat_PanelJoin: String { return self._s[3254]! } - public var Conversation_DiscussionStarted: String { return self._s[3256]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3257]! } - public var SharedMedia_SearchNoResults: String { return self._s[3259]! } + public var Permissions_ContactsText_v0: String { return self._s[3253]! } + public var Conversation_PinMessagesForMe: String { return self._s[3254]! } + public var VoiceChat_PanelJoin: String { return self._s[3255]! } + public var Conversation_DiscussionStarted: String { return self._s[3257]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3258]! } + public var SharedMedia_SearchNoResults: String { return self._s[3260]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3261]!, self._r[3261]!, [_0]) + return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3263]!, self._r[3263]!, [_0]) + return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3264]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3265]! } - public var Call_AudioRouteHeadphones: String { return self._s[3266]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3265]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3266]! } + public var Call_AudioRouteHeadphones: String { return self._s[3267]! } public func Notification_VoiceChatScheduledTomorrowChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3268]!, self._r[3268]!, [_0]) + return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_0]) } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_1]) + return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3270]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3271]! } - public var Widget_ApplicationStartRequired: String { return self._s[3272]! } - public var PhotoEditor_Original: String { return self._s[3273]! } - public var Call_YourMicrophoneOff: String { return self._s[3274]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3275]! } - public var Conversation_CardNumberCopied: String { return self._s[3276]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3277]! } - public var PrivacyPolicy_Decline: String { return self._s[3278]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3279]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3280]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3281]! } + public var Passport_Identity_FilesView: String { return self._s[3271]! } + public var TwoStepAuth_SetupEmail: String { return self._s[3272]! } + public var Widget_ApplicationStartRequired: String { return self._s[3273]! } + public var PhotoEditor_Original: String { return self._s[3274]! } + public var Call_YourMicrophoneOff: String { return self._s[3275]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3276]! } + public var Conversation_CardNumberCopied: String { return self._s[3277]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3278]! } + public var PrivacyPolicy_Decline: String { return self._s[3279]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3280]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3281]! } + public var ChatListFolder_IncludeSectionInfo: String { return self._s[3282]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3282]!, self._r[3282]!, [_0]) + return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3283]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3285]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3286]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3288]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3289]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3290]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3291]! } - public var IntentsSettings_ResetAll: String { return self._s[3292]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3294]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3295]! } - public var ChatList_DeleteForAllSubscribers: String { return self._s[3296]! } - public var Notification_Exceptions_Add: String { return self._s[3297]! } - public var Group_DeleteGroup: String { return self._s[3298]! } - public var Cache_Help: String { return self._s[3299]! } - public var Call_AudioRouteMute: String { return self._s[3300]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3301]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3302]! } + public var Passport_Identity_Name: String { return self._s[3284]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3286]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3287]! } + public var WallpaperSearch_ColorOrange: String { return self._s[3289]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3290]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3291]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3292]! } + public var IntentsSettings_ResetAll: String { return self._s[3293]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3295]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3296]! } + public var ChatList_DeleteForAllSubscribers: String { return self._s[3297]! } + public var Notification_Exceptions_Add: String { return self._s[3298]! } + public var Group_DeleteGroup: String { return self._s[3299]! } + public var Cache_Help: String { return self._s[3300]! } + public var Call_AudioRouteMute: String { return self._s[3301]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3302]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[3303]! } public func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_1, _2]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_1]) + return formatWithArgumentRanges(self._s[3305]!, self._r[3305]!, [_1]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3305]!, self._r[3305]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3306]!, self._r[3306]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3306]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3307]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3307]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3308]! } public func PUSH_CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3308]!, self._r[3308]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_1, _2, _3]) } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3309]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3310]! } - public var ClearCache_StorageFree: String { return self._s[3311]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3310]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3311]! } + public var ClearCache_StorageFree: String { return self._s[3312]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3312]!, self._r[3312]!, [_0]) + return formatWithArgumentRanges(self._s[3313]!, self._r[3313]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3313]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3314]! } public func Channel_AdminLog_EditedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3315]!, self._r[3315]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_1, _2]) } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3316]! } - public var DialogList_Typing: String { return self._s[3317]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3317]! } + public var DialogList_Typing: String { return self._s[3318]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3318]!, self._r[3318]!, [_0]) + return formatWithArgumentRanges(self._s[3319]!, self._r[3319]!, [_0]) } - public var Target_SelectGroup: String { return self._s[3319]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3320]! } + public var Target_SelectGroup: String { return self._s[3320]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3321]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3321]!, self._r[3321]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3322]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3323]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3323]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3324]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3324]!, self._r[3324]!, [_0]) + return formatWithArgumentRanges(self._s[3325]!, self._r[3325]!, [_0]) } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3325]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3326]! } - public var ChatSettings_TextSize: String { return self._s[3327]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3329]! } - public var Map_SendThisPlace: String { return self._s[3330]! } - public var Conversation_TextCopied: String { return self._s[3331]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3332]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3333]! } - public var Call_ShareStats: String { return self._s[3334]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3326]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3327]! } + public var ChatSettings_TextSize: String { return self._s[3328]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3330]! } + public var Map_SendThisPlace: String { return self._s[3331]! } + public var Conversation_TextCopied: String { return self._s[3332]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3333]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3334]! } + public var Call_ShareStats: String { return self._s[3335]! } public func PUSH_CHAT_VOICECHAT_END(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3336]!, self._r[3336]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3337]!, self._r[3337]!, [_1, _2]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3337]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3338]! } - public var Settings_Support: String { return self._s[3339]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3340]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3338]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3339]! } + public var Settings_Support: String { return self._s[3340]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3341]! } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_0]) + return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3343]! } - public var Tour_Text4: String { return self._s[3344]! } - public var VoiceChat_CancelReminder: String { return self._s[3345]! } - public var Calls_StartNewCall: String { return self._s[3346]! } - public var UserInfo_FakeUserWarning: String { return self._s[3348]! } - public var PasscodeSettings_AutoLock: String { return self._s[3349]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3350]! } - public var Bot_DescriptionTitle: String { return self._s[3352]! } - public var Map_LocationTitle: String { return self._s[3353]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3354]! } - public var Conversation_HashtagCopied: String { return self._s[3355]! } + public var Watch_Conversation_GroupInfo: String { return self._s[3344]! } + public var Tour_Text4: String { return self._s[3345]! } + public var VoiceChat_CancelReminder: String { return self._s[3346]! } + public var Calls_StartNewCall: String { return self._s[3347]! } + public var UserInfo_FakeUserWarning: String { return self._s[3349]! } + public var PasscodeSettings_AutoLock: String { return self._s[3350]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3351]! } + public var Bot_DescriptionTitle: String { return self._s[3353]! } + public var Map_LocationTitle: String { return self._s[3354]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3355]! } + public var Conversation_HashtagCopied: String { return self._s[3356]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_1]) + return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, [_1]) } - public var VoiceChat_ReminderNotify: String { return self._s[3357]! } - public var Login_EmailNotConfiguredError: String { return self._s[3358]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3359]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3360]! } - public var Permissions_CellularDataText_v0: String { return self._s[3361]! } - public var Conversation_EncryptionProcessing: String { return self._s[3362]! } - public var GroupPermission_Delete: String { return self._s[3364]! } - public var Contacts_SortByName: String { return self._s[3365]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3366]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3367]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3369]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3370]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3371]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3373]! } + public var VoiceChat_ReminderNotify: String { return self._s[3358]! } + public var Login_EmailNotConfiguredError: String { return self._s[3359]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[3360]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[3361]! } + public var Permissions_CellularDataText_v0: String { return self._s[3362]! } + public var Conversation_EncryptionProcessing: String { return self._s[3363]! } + public var GroupPermission_Delete: String { return self._s[3365]! } + public var Contacts_SortByName: String { return self._s[3366]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3367]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[3368]! } + public var Group_Management_AddModeratorHelp: String { return self._s[3370]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3371]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3372]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[3374]! } public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3374]!, self._r[3374]!, [_1]) + return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_0]) + return formatWithArgumentRanges(self._s[3376]!, self._r[3376]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3376]! } - public var VoiceChat_InviteMember: String { return self._s[3377]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3378]! } - public var Conversation_Processing: String { return self._s[3379]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3380]! } - public var ChatSettings_Stickers: String { return self._s[3381]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3382]! } - public var Passport_Language_cs: String { return self._s[3383]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3385]! } - public var Conversation_Contact: String { return self._s[3386]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3387]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3388]! } - public var Theme_Unsupported: String { return self._s[3389]! } - public var Privacy_TopPeersWarning: String { return self._s[3390]! } + public var ChatList_Context_Delete: String { return self._s[3377]! } + public var VoiceChat_InviteMember: String { return self._s[3378]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3379]! } + public var Conversation_Processing: String { return self._s[3380]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[3381]! } + public var ChatSettings_Stickers: String { return self._s[3382]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3383]! } + public var Passport_Language_cs: String { return self._s[3384]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3386]! } + public var Conversation_Contact: String { return self._s[3387]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[3388]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[3389]! } + public var Theme_Unsupported: String { return self._s[3390]! } + public var Privacy_TopPeersWarning: String { return self._s[3391]! } public func Conversation_ScheduledVoiceChatStartsTodayShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_0]) + return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_0]) } - public var InviteLink_Title: String { return self._s[3393]! } + public var InviteLink_Title: String { return self._s[3394]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3394]!, self._r[3394]!, [_0]) + return formatWithArgumentRanges(self._s[3395]!, self._r[3395]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3395]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3396]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3397]! } - public var PeopleNearby_Users: String { return self._s[3398]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3399]! } - public var Settings_SetProfilePhoto: String { return self._s[3400]! } - public var Conversation_ContextMenuBan: String { return self._s[3401]! } - public var KeyCommand_ScrollUp: String { return self._s[3402]! } - public var Settings_ChatSettings: String { return self._s[3404]! } - public var CallList_RecentCallsHeader: String { return self._s[3405]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3396]! } + public var TwoStepAuth_RemovePassword: String { return self._s[3397]! } + public var Settings_CheckPhoneNumberText: String { return self._s[3398]! } + public var PeopleNearby_Users: String { return self._s[3399]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3400]! } + public var Settings_SetProfilePhoto: String { return self._s[3401]! } + public var Conversation_ContextMenuBan: String { return self._s[3402]! } + public var KeyCommand_ScrollUp: String { return self._s[3403]! } + public var Settings_ChatSettings: String { return self._s[3405]! } + public var CallList_RecentCallsHeader: String { return self._s[3406]! } public func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3406]!, self._r[3406]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3407]!, self._r[3407]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3407]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3408]! } - public var VoiceChat_StartRecordingTitle: String { return self._s[3409]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[3408]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3409]! } + public var VoiceChat_StartRecordingTitle: String { return self._s[3410]! } public func Notification_VoiceChatScheduledToday(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3410]!, self._r[3410]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3411]!, self._r[3411]!, [_1, _2]) } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3412]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3413]! } - public var VoiceOver_ChatList_MessageRead: String { return self._s[3414]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3415]! } - public var Cache_Title: String { return self._s[3416]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3413]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3414]! } + public var VoiceOver_ChatList_MessageRead: String { return self._s[3415]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3416]! } + public var Cache_Title: String { return self._s[3417]! } public func Conversation_AutoremoveTimerSetToastText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3417]!, self._r[3417]!, [_0]) + return formatWithArgumentRanges(self._s[3418]!, self._r[3418]!, [_0]) } - public var Clipboard_SendPhoto: String { return self._s[3418]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3420]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3421]! } - public var WatchRemote_AlertTitle: String { return self._s[3424]! } - public var Appearance_ReduceMotion: String { return self._s[3425]! } + public var Clipboard_SendPhoto: String { return self._s[3419]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3421]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3422]! } + public var WatchRemote_AlertTitle: String { return self._s[3425]! } + public var Appearance_ReduceMotion: String { return self._s[3426]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3429]!, self._r[3429]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3429]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3430]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3431]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[3430]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3431]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[3432]! } public func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3433]!, self._r[3433]!, [_1, _2]) } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3434]!, self._r[3434]!, [_0]) + return formatWithArgumentRanges(self._s[3435]!, self._r[3435]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3435]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3436]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3437]!, self._r[3437]!, [_0]) + return formatWithArgumentRanges(self._s[3438]!, self._r[3438]!, [_0]) } - public var InstantPage_Search: String { return self._s[3438]! } - public var ChatState_WaitingForNetwork: String { return self._s[3439]! } - public var GroupInfo_Sound: String { return self._s[3440]! } - public var NotificationsSound_Telegraph: String { return self._s[3441]! } - public var NotificationsSound_Hello: String { return self._s[3442]! } - public var VoiceChat_LeaveConfirmation: String { return self._s[3443]! } - public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3444]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3445]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3446]! } - public var Conversation_HoldForVideo: String { return self._s[3447]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3448]! } - public var Appearance_ShareTheme: String { return self._s[3449]! } - public var TwoStepAuth_SetupHint: String { return self._s[3450]! } - public var Stats_GrowthTitle: String { return self._s[3453]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3454]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3455]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3456]! } - public var GroupPermission_NoSendMessages: String { return self._s[3459]! } - public var Conversation_SetReminder_Title: String { return self._s[3460]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3461]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3462]! } + public var InstantPage_Search: String { return self._s[3439]! } + public var ChatState_WaitingForNetwork: String { return self._s[3440]! } + public var GroupInfo_Sound: String { return self._s[3441]! } + public var NotificationsSound_Telegraph: String { return self._s[3442]! } + public var NotificationsSound_Hello: String { return self._s[3443]! } + public var VoiceChat_LeaveConfirmation: String { return self._s[3444]! } + public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3445]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[3446]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3447]! } + public var Conversation_HoldForVideo: String { return self._s[3448]! } + public var Conversation_PinOlderMessageAlertText: String { return self._s[3449]! } + public var Appearance_ShareTheme: String { return self._s[3450]! } + public var TwoStepAuth_SetupHint: String { return self._s[3451]! } + public var Stats_GrowthTitle: String { return self._s[3454]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3455]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[3456]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3457]! } + public var GroupPermission_NoSendMessages: String { return self._s[3460]! } + public var Conversation_SetReminder_Title: String { return self._s[3461]! } + public var Privacy_Calls_CustomHelp: String { return self._s[3462]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3463]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_0]) + return formatWithArgumentRanges(self._s[3464]!, self._r[3464]!, [_0]) } - public var InviteLinks_InviteLinkExpired: String { return self._s[3465]! } - public var Undo_SecretChatDeleted: String { return self._s[3466]! } - public var PhotoEditor_ContrastTool: String { return self._s[3467]! } - public var Privacy_Forwards: String { return self._s[3468]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3469]! } - public var KeyCommand_SendMessage: String { return self._s[3471]! } - public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3472]! } + public var InviteLinks_InviteLinkExpired: String { return self._s[3466]! } + public var Undo_SecretChatDeleted: String { return self._s[3467]! } + public var PhotoEditor_ContrastTool: String { return self._s[3468]! } + public var Privacy_Forwards: String { return self._s[3469]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[3470]! } + public var KeyCommand_SendMessage: String { return self._s[3472]! } + public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3473]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3474]!, self._r[3474]!, [_1, _2]) } - public var GroupPermission_NoSendGifs: String { return self._s[3474]! } + public var GroupPermission_NoSendGifs: String { return self._s[3475]! } public func Notification_VoiceChatEndedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3475]!, self._r[3475]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_1, _2]) } - public var Notification_MessageLifetime2s: String { return self._s[3476]! } - public var Message_Theme: String { return self._s[3477]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3480]! } + public var Notification_MessageLifetime2s: String { return self._s[3477]! } + public var Message_Theme: String { return self._s[3478]! } + public var Conversation_Dice_u1F3AF: String { return self._s[3481]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_0]) + return formatWithArgumentRanges(self._s[3482]!, self._r[3482]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3483]! } - public var PeerInfo_BioExpand: String { return self._s[3484]! } - public var Passport_DeletePersonalDetails: String { return self._s[3485]! } - public var Widget_NoUsers: String { return self._s[3486]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3487]! } - public var VoiceChat_VideoPreviewDescription: String { return self._s[3488]! } - public var Login_TermsOfServiceDecline: String { return self._s[3489]! } - public var CreatePoll_QuizTip: String { return self._s[3491]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3492]! } - public var MessagePoll_SubmitVote: String { return self._s[3494]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3495]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3496]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3497]! } - public var Conversation_UpdateTelegram: String { return self._s[3498]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3484]! } + public var PeerInfo_BioExpand: String { return self._s[3485]! } + public var Passport_DeletePersonalDetails: String { return self._s[3486]! } + public var Widget_NoUsers: String { return self._s[3487]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[3488]! } + public var VoiceChat_VideoPreviewDescription: String { return self._s[3489]! } + public var Login_TermsOfServiceDecline: String { return self._s[3490]! } + public var CreatePoll_QuizTip: String { return self._s[3492]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[3493]! } + public var MessagePoll_SubmitVote: String { return self._s[3495]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[3496]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[3497]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3498]! } + public var Conversation_UpdateTelegram: String { return self._s[3499]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3499]!, self._r[3499]!, [_0]) + return formatWithArgumentRanges(self._s[3500]!, self._r[3500]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3500]! } - public var CallSettings_Always: String { return self._s[3501]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3502]! } - public var VoiceChat_MutedByAdminHelp: String { return self._s[3503]! } - public var Login_TermsOfServiceHeader: String { return self._s[3504]! } - public var KeyCommand_ChatInfo: String { return self._s[3505]! } - public var MessagePoll_LabelPoll: String { return self._s[3506]! } - public var Paint_Clear: String { return self._s[3507]! } - public var PeerInfo_ButtonMute: String { return self._s[3508]! } - public var LastSeen_WithinAWeek: String { return self._s[3509]! } - public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3510]! } - public var Passport_Identity_FrontSide: String { return self._s[3511]! } - public var Stickers_GroupStickers: String { return self._s[3512]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3513]! } + public var UserInfo_About_Placeholder: String { return self._s[3501]! } + public var CallSettings_Always: String { return self._s[3502]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[3503]! } + public var VoiceChat_MutedByAdminHelp: String { return self._s[3504]! } + public var Login_TermsOfServiceHeader: String { return self._s[3505]! } + public var KeyCommand_ChatInfo: String { return self._s[3506]! } + public var MessagePoll_LabelPoll: String { return self._s[3507]! } + public var Paint_Clear: String { return self._s[3508]! } + public var PeerInfo_ButtonMute: String { return self._s[3509]! } + public var LastSeen_WithinAWeek: String { return self._s[3510]! } + public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3511]! } + public var Passport_Identity_FrontSide: String { return self._s[3512]! } + public var Stickers_GroupStickers: String { return self._s[3513]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3514]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3514]!, self._r[3514]!, [_0]) + return formatWithArgumentRanges(self._s[3515]!, self._r[3515]!, [_0]) } - public var VoiceOver_BotCommands: String { return self._s[3515]! } + public var VoiceOver_BotCommands: String { return self._s[3516]! } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3518]!, self._r[3518]!, [_1]) + return formatWithArgumentRanges(self._s[3519]!, self._r[3519]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3519]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3520]! } - public var InviteLink_ContextDelete: String { return self._s[3521]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3520]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[3521]! } + public var InviteLink_ContextDelete: String { return self._s[3522]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_0]) + return formatWithArgumentRanges(self._s[3523]!, self._r[3523]!, [_0]) } - public var WebSearch_SearchNoResults: String { return self._s[3524]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3525]! } - public var Passport_Language_es: String { return self._s[3526]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3527]! } - public var Map_LiveLocationShowAll: String { return self._s[3528]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3530]! } - public var Map_OpenInGoogleMaps: String { return self._s[3531]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3533]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3534]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3535]! } + public var WebSearch_SearchNoResults: String { return self._s[3525]! } + public var Channel_DiscussionGroup_Create: String { return self._s[3526]! } + public var Passport_Language_es: String { return self._s[3527]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3528]! } + public var Map_LiveLocationShowAll: String { return self._s[3529]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[3531]! } + public var Map_OpenInGoogleMaps: String { return self._s[3532]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3534]! } + public var EditTheme_Create_BottomInfo: String { return self._s[3535]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[3536]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_0]) + return formatWithArgumentRanges(self._s[3537]!, self._r[3537]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3537]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3538]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3539]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3540]! } + public var Passport_Phone_Delete: String { return self._s[3538]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3539]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[3540]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3541]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3542]!, self._r[3542]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3542]! } - public var Cache_ByPeerHeader: String { return self._s[3544]! } - public var Username_InvalidCharacters: String { return self._s[3545]! } - public var Checkout_ShippingAddress: String { return self._s[3547]! } + public var LogoutOptions_LogOutInfo: String { return self._s[3543]! } + public var Cache_ByPeerHeader: String { return self._s[3545]! } + public var Username_InvalidCharacters: String { return self._s[3546]! } + public var Checkout_ShippingAddress: String { return self._s[3548]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3548]!, self._r[3548]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3549]!, self._r[3549]!, [_1, _2, _3, _4]) } - public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3550]! } - public var Conversation_AddContact: String { return self._s[3551]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3552]! } - public var InviteLink_ContextGetQRCode: String { return self._s[3553]! } - public var Conversation_ChecksTooltip_Delivered: String { return self._s[3555]! } + public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3551]! } + public var Conversation_AddContact: String { return self._s[3552]! } + public var Passport_Address_EditUtilityBill: String { return self._s[3553]! } + public var InviteLink_ContextGetQRCode: String { return self._s[3554]! } + public var Conversation_ChecksTooltip_Delivered: String { return self._s[3556]! } public func Channel_AdminLog_MessageAddedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3556]!, self._r[3556]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3557]!, self._r[3557]!, [_1, _2]) } - public var Message_Video: String { return self._s[3557]! } + public var Message_Video: String { return self._s[3558]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3558]!, self._r[3558]!, [_0]) + return formatWithArgumentRanges(self._s[3559]!, self._r[3559]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3559]!, self._r[3559]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3560]!, self._r[3560]!, ["\(_0)"]) } - public var InviteLink_ReactivateLink: String { return self._s[3560]! } - public var Passport_Language_km: String { return self._s[3562]! } + public var InviteLink_ReactivateLink: String { return self._s[3561]! } + public var Passport_Language_km: String { return self._s[3563]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3563]!, self._r[3563]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3564]!, self._r[3564]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3564]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3566]! } - public var Notification_CallCanceledShort: String { return self._s[3567]! } - public var PhotoEditor_FadeTool: String { return self._s[3568]! } - public var Group_PublicLink_Info: String { return self._s[3569]! } - public var Contacts_DeselectAll: String { return self._s[3570]! } - public var Conversation_Moderate_Delete: String { return self._s[3572]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3573]! } - public var NotificationsSound_Note: String { return self._s[3576]! } + public var EmptyGroupInfo_Line4: String { return self._s[3565]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3567]! } + public var Notification_CallCanceledShort: String { return self._s[3568]! } + public var PhotoEditor_FadeTool: String { return self._s[3569]! } + public var Group_PublicLink_Info: String { return self._s[3570]! } + public var Contacts_DeselectAll: String { return self._s[3571]! } + public var Conversation_Moderate_Delete: String { return self._s[3573]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3574]! } + public var NotificationsSound_Note: String { return self._s[3577]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_0]) + return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3578]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3580]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3581]! } - public var AccessDenied_Settings: String { return self._s[3582]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3583]! } - public var AuthSessions_EmptyTitle: String { return self._s[3584]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3585]! } - public var GroupInfo_GroupType: String { return self._s[3586]! } - public var Calls_Missed: String { return self._s[3587]! } - public var Contacts_VoiceOver_AddContact: String { return self._s[3588]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3590]! } - public var Passport_Language_uz: String { return self._s[3591]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3592]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3593]! } - public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3594]! } - public var Map_ChooseLocationTitle: String { return self._s[3595]! } - public var Checkout_EnterPassword: String { return self._s[3596]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3597]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3598]! } - public var NetworkUsageSettings_Title: String { return self._s[3599]! } - public var Location_ProximityAlertCancelled: String { return self._s[3600]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3601]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3602]! } - public var Compose_NewChannel: String { return self._s[3603]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3605]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3579]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3581]! } + public var DialogList_SearchSectionGlobal: String { return self._s[3582]! } + public var AccessDenied_Settings: String { return self._s[3583]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3584]! } + public var AuthSessions_EmptyTitle: String { return self._s[3585]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3586]! } + public var GroupInfo_GroupType: String { return self._s[3587]! } + public var Calls_Missed: String { return self._s[3588]! } + public var Contacts_VoiceOver_AddContact: String { return self._s[3589]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3591]! } + public var Passport_Language_uz: String { return self._s[3592]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3593]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[3594]! } + public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3595]! } + public var Map_ChooseLocationTitle: String { return self._s[3596]! } + public var Checkout_EnterPassword: String { return self._s[3597]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[3598]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3599]! } + public var NetworkUsageSettings_Title: String { return self._s[3600]! } + public var Location_ProximityAlertCancelled: String { return self._s[3601]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3602]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3603]! } + public var Compose_NewChannel: String { return self._s[3604]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3606]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_1]) + return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3607]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3608]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3611]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3612]! } - public var Appearance_AppIconDefault: String { return self._s[3613]! } - public var StickerSettings_ContextInfo: String { return self._s[3616]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3617]! } - public var Passport_FieldPhone: String { return self._s[3619]! } - public var Contacts_PermissionsTitle: String { return self._s[3620]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3621]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3608]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3609]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[3612]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3613]! } + public var Appearance_AppIconDefault: String { return self._s[3614]! } + public var StickerSettings_ContextInfo: String { return self._s[3617]! } + public var Channel_AddBotErrorNoRights: String { return self._s[3618]! } + public var Passport_FieldPhone: String { return self._s[3620]! } + public var Contacts_PermissionsTitle: String { return self._s[3621]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3622]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3622]!, self._r[3622]!, [_0]) + return formatWithArgumentRanges(self._s[3623]!, self._r[3623]!, [_0]) } - public var Bot_Unblock: String { return self._s[3623]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3624]! } - public var InviteLink_InviteLinkCopiedText: String { return self._s[3625]! } - public var Passport_PasswordHelp: String { return self._s[3626]! } - public var Watch_Conversation_UserInfo: String { return self._s[3627]! } + public var Bot_Unblock: String { return self._s[3624]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[3625]! } + public var InviteLink_InviteLinkCopiedText: String { return self._s[3626]! } + public var Passport_PasswordHelp: String { return self._s[3627]! } + public var Watch_Conversation_UserInfo: String { return self._s[3628]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3631]!, self._r[3631]!, [_0]) + return formatWithArgumentRanges(self._s[3632]!, self._r[3632]!, [_0]) } - public var State_Connecting: String { return self._s[3633]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3634]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3635]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3636]! } + public var State_Connecting: String { return self._s[3634]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3635]! } + public var TextFormat_AddLinkPlaceholder: String { return self._s[3636]! } + public var Conversation_Dice_u1F3B2: String { return self._s[3637]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3637]!, self._r[3637]!, [_0]) + return formatWithArgumentRanges(self._s[3638]!, self._r[3638]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3638]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3639]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3640]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3642]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3643]! } - public var Conversation_AutoremoveOff: String { return self._s[3644]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3645]! } - public var Weekday_Saturday: String { return self._s[3646]! } - public var DialogList_Unread: String { return self._s[3647]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3648]! } - public var Stats_GroupPosters: String { return self._s[3649]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3639]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3640]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3641]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3643]! } + public var PhotoEditor_BlurToolOff: String { return self._s[3644]! } + public var Conversation_AutoremoveOff: String { return self._s[3645]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[3646]! } + public var Weekday_Saturday: String { return self._s[3647]! } + public var DialogList_Unread: String { return self._s[3648]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3649]! } + public var Stats_GroupPosters: String { return self._s[3650]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3650]!, self._r[3650]!, [_1]) + return formatWithArgumentRanges(self._s[3651]!, self._r[3651]!, [_1]) } - public var Conversation_AlsoClearCacheTitle: String { return self._s[3651]! } + public var Conversation_AlsoClearCacheTitle: String { return self._s[3652]! } public func Conversation_ForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3652]!, self._r[3652]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3653]!, self._r[3653]!, [_0, _1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3655]!, self._r[3655]!, [_0]) + return formatWithArgumentRanges(self._s[3656]!, self._r[3656]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3656]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3657]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3657]!, self._r[3657]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3658]!, self._r[3658]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3658]! } - public var Conversation_EmailCopied: String { return self._s[3660]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3661]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3662]! } - public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3663]! } - public var VoiceChat_LateBy: String { return self._s[3664]! } - public var Passport_Language_dv: String { return self._s[3665]! } - public var GroupPermission_AddSuccess: String { return self._s[3667]! } - public var Passport_Email_Help: String { return self._s[3668]! } - public var Call_ReportPlaceholder: String { return self._s[3669]! } - public var CreatePoll_AddOption: String { return self._s[3670]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3672]! } - public var PeerInfo_ButtonLeave: String { return self._s[3673]! } - public var PhotoEditor_TiltShift: String { return self._s[3676]! } - public var SecretGif_Title: String { return self._s[3678]! } - public var GroupInfo_InviteLinks: String { return self._s[3679]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3680]! } - public var SocksProxySetup_Connecting: String { return self._s[3682]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3683]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3684]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3685]! } - public var Compose_NewMessage: String { return self._s[3686]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3687]! } - public var NotificationsSound_Synth: String { return self._s[3688]! } - public var ChatImport_UserErrorNotMutual: String { return self._s[3689]! } - public var Conversation_FileOpenIn: String { return self._s[3690]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3691]! } - public var UserInfo_SendMessage: String { return self._s[3692]! } - public var Checkout_PayWithFaceId: String { return self._s[3693]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[3659]! } + public var Conversation_EmailCopied: String { return self._s[3661]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3662]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3663]! } + public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3664]! } + public var VoiceChat_LateBy: String { return self._s[3665]! } + public var Passport_Language_dv: String { return self._s[3666]! } + public var GroupPermission_AddSuccess: String { return self._s[3668]! } + public var Passport_Email_Help: String { return self._s[3669]! } + public var Call_ReportPlaceholder: String { return self._s[3670]! } + public var CreatePoll_AddOption: String { return self._s[3671]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3673]! } + public var PeerInfo_ButtonLeave: String { return self._s[3674]! } + public var PhotoEditor_TiltShift: String { return self._s[3677]! } + public var SecretGif_Title: String { return self._s[3679]! } + public var GroupInfo_InviteLinks: String { return self._s[3680]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[3681]! } + public var SocksProxySetup_Connecting: String { return self._s[3683]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3684]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[3685]! } + public var Stats_GroupTopHoursTitle: String { return self._s[3686]! } + public var Compose_NewMessage: String { return self._s[3687]! } + public var VoiceOver_Common_SwitchHint: String { return self._s[3688]! } + public var NotificationsSound_Synth: String { return self._s[3689]! } + public var ChatImport_UserErrorNotMutual: String { return self._s[3690]! } + public var Conversation_FileOpenIn: String { return self._s[3691]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[3692]! } + public var UserInfo_SendMessage: String { return self._s[3693]! } + public var Checkout_PayWithFaceId: String { return self._s[3694]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3694]!, self._r[3694]!, [_0]) + return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3695]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3696]! } - public var Conversation_ViewChannel: String { return self._s[3697]! } + public var TextFormat_Strikethrough: String { return self._s[3696]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3697]! } + public var Conversation_ViewChannel: String { return self._s[3698]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) + return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3699]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3700]! } - public var Message_ScamAccount: String { return self._s[3701]! } - public var Camera_FlashAuto: String { return self._s[3702]! } - public var Conversation_EncryptedDescription1: String { return self._s[3703]! } - public var LocalGroup_Text: String { return self._s[3704]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3705]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3706]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3707]! } - public var Conversation_EncryptedDescription2: String { return self._s[3708]! } - public var Conversation_CancelForwardText: String { return self._s[3709]! } - public var Notification_GroupActivated: String { return self._s[3710]! } - public var LastSeen_Lately: String { return self._s[3711]! } - public var Conversation_EncryptedDescription3: String { return self._s[3712]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3713]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3714]! } - public var Conversation_EncryptedDescription4: String { return self._s[3715]! } - public var SharedMedia_EmptyTitle: String { return self._s[3716]! } - public var Appearance_CreateTheme: String { return self._s[3718]! } - public var Stats_SharesPerPost: String { return self._s[3719]! } - public var Contacts_TabTitle: String { return self._s[3720]! } - public var Weekday_ShortThursday: String { return self._s[3721]! } - public var MessageTimer_Forever: String { return self._s[3722]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3723]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3724]! } - public var EditTheme_Create_TopInfo: String { return self._s[3726]! } + public var Channel_Stickers_Placeholder: String { return self._s[3700]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3701]! } + public var Message_ScamAccount: String { return self._s[3702]! } + public var Camera_FlashAuto: String { return self._s[3703]! } + public var Conversation_EncryptedDescription1: String { return self._s[3704]! } + public var LocalGroup_Text: String { return self._s[3705]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3706]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[3707]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[3708]! } + public var Conversation_EncryptedDescription2: String { return self._s[3709]! } + public var Conversation_CancelForwardText: String { return self._s[3710]! } + public var Notification_GroupActivated: String { return self._s[3711]! } + public var LastSeen_Lately: String { return self._s[3712]! } + public var Conversation_EncryptedDescription3: String { return self._s[3713]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3714]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3715]! } + public var Conversation_EncryptedDescription4: String { return self._s[3716]! } + public var SharedMedia_EmptyTitle: String { return self._s[3717]! } + public var Appearance_CreateTheme: String { return self._s[3719]! } + public var Stats_SharesPerPost: String { return self._s[3720]! } + public var Contacts_TabTitle: String { return self._s[3721]! } + public var Weekday_ShortThursday: String { return self._s[3722]! } + public var MessageTimer_Forever: String { return self._s[3723]! } + public var ChatListFolder_CategoryArchived: String { return self._s[3724]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3725]! } + public var EditTheme_Create_TopInfo: String { return self._s[3727]! } public func VoiceOver_ChatList_MessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3727]!, self._r[3727]!, [_0]) + return formatWithArgumentRanges(self._s[3728]!, self._r[3728]!, [_0]) } - public var Month_GenDecember: String { return self._s[3728]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3729]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3730]! } - public var PeopleNearby_CreateGroup: String { return self._s[3732]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3733]! } - public var Paint_ClearConfirm: String { return self._s[3734]! } - public var ChatList_ReadAll: String { return self._s[3735]! } - public var ChatSettings_IntentsSettings: String { return self._s[3736]! } - public var Passport_PassportInformation: String { return self._s[3738]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3740]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3743]! } - public var PhotoEditor_ExposureTool: String { return self._s[3744]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3745]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3746]! } - public var Stats_GroupTopPoster_History: String { return self._s[3747]! } - public var UserInfo_AddPhone: String { return self._s[3748]! } - public var Media_SendWithTimer: String { return self._s[3750]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3751]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3752]! } - public var GroupInfo_GroupHistoryShort: String { return self._s[3753]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3754]! } - public var ChatList_Context_Unarchive: String { return self._s[3756]! } + public var Month_GenDecember: String { return self._s[3729]! } + public var EnterPasscode_EnterPasscode: String { return self._s[3730]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3731]! } + public var PeopleNearby_CreateGroup: String { return self._s[3733]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3734]! } + public var Paint_ClearConfirm: String { return self._s[3735]! } + public var ChatList_ReadAll: String { return self._s[3736]! } + public var ChatSettings_IntentsSettings: String { return self._s[3737]! } + public var Passport_PassportInformation: String { return self._s[3739]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3741]! } + public var Location_ProximityNotification_DistanceMI: String { return self._s[3744]! } + public var PhotoEditor_ExposureTool: String { return self._s[3745]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3746]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[3747]! } + public var Stats_GroupTopPoster_History: String { return self._s[3748]! } + public var UserInfo_AddPhone: String { return self._s[3749]! } + public var Media_SendWithTimer: String { return self._s[3751]! } + public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3752]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3753]! } + public var GroupInfo_GroupHistoryShort: String { return self._s[3754]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3755]! } + public var ChatList_Context_Unarchive: String { return self._s[3757]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3757]!, self._r[3757]!, [_0]) + return formatWithArgumentRanges(self._s[3758]!, self._r[3758]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3759]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3760]! } - public var Media_ShareThisPhoto: String { return self._s[3761]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3762]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3763]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3767]! } - public var CallFeedback_ReasonNoise: String { return self._s[3769]! } - public var WebBrowser_Title: String { return self._s[3770]! } + public var BlockedUsers_Title: String { return self._s[3760]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[3761]! } + public var Media_ShareThisPhoto: String { return self._s[3762]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3763]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[3764]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3768]! } + public var CallFeedback_ReasonNoise: String { return self._s[3770]! } + public var WebBrowser_Title: String { return self._s[3771]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3771]!, self._r[3771]!, [_0]) + return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3773]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3774]! } - public var Profile_MessageLifetime1m: String { return self._s[3776]! } - public var Passport_ScanPassport: String { return self._s[3777]! } - public var Stats_LoadingTitle: String { return self._s[3778]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3780]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3781]! } - public var Login_InvalidFirstNameError: String { return self._s[3782]! } - public var Undo_ChatCleared: String { return self._s[3784]! } + public var Notification_MessageLifetime5s: String { return self._s[3774]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3775]! } + public var Profile_MessageLifetime1m: String { return self._s[3777]! } + public var Passport_ScanPassport: String { return self._s[3778]! } + public var Stats_LoadingTitle: String { return self._s[3779]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3781]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[3782]! } + public var Login_InvalidFirstNameError: String { return self._s[3783]! } + public var Undo_ChatCleared: String { return self._s[3785]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3786]!, self._r[3786]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3787]!, self._r[3787]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3787]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3788]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_1]) + return formatWithArgumentRanges(self._s[3790]!, self._r[3790]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3790]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3791]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3793]! } - public var VoiceChat_InviteLink_Speaker: String { return self._s[3794]! } - public var CallSettings_RecentCalls: String { return self._s[3795]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3796]! } - public var AuthSessions_OtherSessions: String { return self._s[3797]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3798]! } - public var Tour_Text5: String { return self._s[3799]! } - public var Login_PadPhoneHelp: String { return self._s[3800]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3803]! } - public var Conversation_ViewGroup: String { return self._s[3804]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3806]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3807]! } - public var Watch_AuthRequired: String { return self._s[3808]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3810]! } - public var Conversation_ForwardContacts: String { return self._s[3811]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3812]! } + public var Share_MultipleMessagesDisabled: String { return self._s[3791]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[3792]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3794]! } + public var VoiceChat_InviteLink_Speaker: String { return self._s[3795]! } + public var CallSettings_RecentCalls: String { return self._s[3796]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[3797]! } + public var AuthSessions_OtherSessions: String { return self._s[3798]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3799]! } + public var Tour_Text5: String { return self._s[3800]! } + public var Login_PadPhoneHelp: String { return self._s[3801]! } + public var Wallpaper_PhotoLibrary: String { return self._s[3804]! } + public var Conversation_ViewGroup: String { return self._s[3805]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3807]! } + public var VoiceOver_Chat_YourContact: String { return self._s[3808]! } + public var Watch_AuthRequired: String { return self._s[3809]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3811]! } + public var Conversation_ForwardContacts: String { return self._s[3812]! } + public var Conversation_InputTextPlaceholder: String { return self._s[3813]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3813]!, self._r[3813]!, [_1]) + return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_0]) + return formatWithArgumentRanges(self._s[3815]!, self._r[3815]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3815]! } + public var Channel_Setup_TypePrivate: String { return self._s[3816]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3816]!, self._r[3816]!, [_0]) + return formatWithArgumentRanges(self._s[3817]!, self._r[3817]!, [_0]) } - public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3817]! } - public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3818]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3819]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3820]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3821]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3822]! } + public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3818]! } + public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3819]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[3820]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3821]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[3822]! } + public var UserInfo_StartSecretChatStart: String { return self._s[3823]! } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0, _1, _2]) } public func Conversation_ForwardTooltip_TwoChats_Many(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3826]!, self._r[3826]!, [_0, _1]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3826]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3827]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3828]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3830]! } - public var NewContact_Title: String { return self._s[3833]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3834]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3835]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3836]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3827]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[3828]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3829]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[3831]! } + public var NewContact_Title: String { return self._s[3834]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3835]! } + public var VoiceChat_StatusSpeaking: String { return self._s[3836]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[3837]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_0]) + return formatWithArgumentRanges(self._s[3838]!, self._r[3838]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3838]!, self._r[3838]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3839]!, self._r[3839]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3839]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3840]! } public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3842]!, self._r[3842]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHome: String { return self._s[3842]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3843]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3844]! } - public var Conversation_MessageEditedLabel: String { return self._s[3847]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3848]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3849]! } - public var ChatList_Context_AddToContacts: String { return self._s[3850]! } - public var Passport_Language_is: String { return self._s[3851]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3852]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3853]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[3843]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3844]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3845]! } + public var Conversation_MessageEditedLabel: String { return self._s[3848]! } + public var CallList_ActiveVoiceChatsHeader: String { return self._s[3849]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3850]! } + public var ChatList_Context_AddToContacts: String { return self._s[3851]! } + public var Passport_Language_is: String { return self._s[3852]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3853]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3854]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_0]) + return formatWithArgumentRanges(self._s[3855]!, self._r[3855]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3855]! } - public var Login_SmsRequestState3: String { return self._s[3856]! } - public var Message_PinnedVideoMessage: String { return self._s[3857]! } - public var SharedMedia_TitleLink: String { return self._s[3858]! } - public var Passport_FieldIdentity: String { return self._s[3859]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3861]! } + public var SocksProxySetup_Username: String { return self._s[3856]! } + public var Login_SmsRequestState3: String { return self._s[3857]! } + public var Message_PinnedVideoMessage: String { return self._s[3858]! } + public var SharedMedia_TitleLink: String { return self._s[3859]! } + public var Passport_FieldIdentity: String { return self._s[3860]! } + public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3862]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3864]!, self._r[3864]!, [_0]) + return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3867]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3868]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3869]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3870]! } - public var Call_StatusIncoming: String { return self._s[3871]! } - public var ChatAdmins_AdminLabel: String { return self._s[3872]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3868]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3869]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3870]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3871]! } + public var Call_StatusIncoming: String { return self._s[3872]! } + public var ChatAdmins_AdminLabel: String { return self._s[3873]! } public func InstantPage_OpenInBrowser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3873]!, self._r[3873]!, [_0]) + return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_0]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_0]) + return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3876]! } - public var VoiceChat_TapToViewCameraVideo: String { return self._s[3877]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3878]! } - public var Preview_CopyAddress: String { return self._s[3879]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3881]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3882]! } - public var Map_OpenInYandexMaps: String { return self._s[3884]! } + public var Message_PinnedAnimationMessage: String { return self._s[3877]! } + public var VoiceChat_TapToViewCameraVideo: String { return self._s[3878]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3879]! } + public var Preview_CopyAddress: String { return self._s[3880]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3882]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3883]! } + public var Map_OpenInYandexMaps: String { return self._s[3885]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3887]!, self._r[3887]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3888]!, self._r[3888]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3888]! } - public var ChatListFolder_TitleCreate: String { return self._s[3889]! } + public var GroupRemoved_Remove: String { return self._s[3889]! } + public var ChatListFolder_TitleCreate: String { return self._s[3890]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3892]!, self._r[3892]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3892]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3893]! } public func UserInfo_LinkForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3894]!, self._r[3894]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3895]!, self._r[3895]!, [_0, _1]) } - public var Group_UpgradeNoticeText2: String { return self._s[3895]! } - public var Stats_GroupGrowthTitle: String { return self._s[3896]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3899]! } - public var Month_GenOctober: String { return self._s[3900]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3901]! } - public var Settings_Appearance: String { return self._s[3902]! } + public var Group_UpgradeNoticeText2: String { return self._s[3896]! } + public var Stats_GroupGrowthTitle: String { return self._s[3897]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3900]! } + public var Month_GenOctober: String { return self._s[3901]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3902]! } + public var Settings_Appearance: String { return self._s[3903]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3903]!, self._r[3903]!, [_0]) + return formatWithArgumentRanges(self._s[3904]!, self._r[3904]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3904]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3906]! } - public var Map_HomeAndWorkInfo: String { return self._s[3907]! } - public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3908]! } - public var Paint_Arrow: String { return self._s[3909]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3910]! } + public var UserInfo_AddToExisting: String { return self._s[3905]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3907]! } + public var Map_HomeAndWorkInfo: String { return self._s[3908]! } + public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3909]! } + public var Paint_Arrow: String { return self._s[3910]! } + public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3911]! } public func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3911]!, self._r[3911]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3912]! } - public var NotificationsSound_Circles: String { return self._s[3913]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3914]! } - public var ChatState_Connecting: String { return self._s[3916]! } - public var Profile_MessageLifetime5s: String { return self._s[3917]! } + public var CancelResetAccount_Title: String { return self._s[3913]! } + public var NotificationsSound_Circles: String { return self._s[3914]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3915]! } + public var ChatState_Connecting: String { return self._s[3917]! } + public var Profile_MessageLifetime5s: String { return self._s[3918]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3918]!, self._r[3918]!, [_0]) + return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3919]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3920]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3921]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3923]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3924]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3920]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3921]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3922]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3924]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3925]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_0]) + return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3926]! } - public var Privacy_ContactsSync: String { return self._s[3927]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3928]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3930]! } - public var Map_SendMyCurrentLocation: String { return self._s[3931]! } - public var Map_AddressOnMap: String { return self._s[3932]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3934]! } - public var DialogList_SearchLabel: String { return self._s[3935]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3936]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[3937]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[3939]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3941]! } - public var ChatList_Search_ShowMore: String { return self._s[3942]! } - public var DialogList_EncryptionRejected: String { return self._s[3943]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3944]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3945]! } - public var VoiceChat_StartRecordingText: String { return self._s[3946]! } - public var Privacy_TopPeersDelete: String { return self._s[3947]! } - public var AttachmentMenu_SendAsFile: String { return self._s[3949]! } - public var ChatList_GenericPsaAlert: String { return self._s[3951]! } - public var SecretTimer_ImageDescription: String { return self._s[3953]! } + public var Passport_Phone_Help: String { return self._s[3927]! } + public var Privacy_ContactsSync: String { return self._s[3928]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3929]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3931]! } + public var Map_SendMyCurrentLocation: String { return self._s[3932]! } + public var Map_AddressOnMap: String { return self._s[3933]! } + public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3935]! } + public var DialogList_SearchLabel: String { return self._s[3936]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3937]! } + public var GroupInfo_FakeGroupWarning: String { return self._s[3938]! } + public var Conversation_ChecksTooltip_Read: String { return self._s[3940]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3942]! } + public var ChatList_Search_ShowMore: String { return self._s[3943]! } + public var DialogList_EncryptionRejected: String { return self._s[3944]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[3945]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[3946]! } + public var VoiceChat_StartRecordingText: String { return self._s[3947]! } + public var Privacy_TopPeersDelete: String { return self._s[3948]! } + public var AttachmentMenu_SendAsFile: String { return self._s[3950]! } + public var ChatList_GenericPsaAlert: String { return self._s[3952]! } + public var SecretTimer_ImageDescription: String { return self._s[3954]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0, _1]) } - public var VoiceChat_EditNameSuccess: String { return self._s[3955]! } - public var ChatSettings_TextSizeUnits: String { return self._s[3956]! } - public var Notification_RenamedGroup: String { return self._s[3958]! } - public var Tour_Title2: String { return self._s[3959]! } - public var Settings_CopyUsername: String { return self._s[3960]! } - public var Compose_NewEncryptedChat: String { return self._s[3961]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[3962]! } - public var VoiceChat_SetReminder: String { return self._s[3963]! } - public var Month_ShortSeptember: String { return self._s[3964]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[3965]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[3966]! } - public var VoiceChat_StartNow: String { return self._s[3967]! } - public var Call_StatusConnecting: String { return self._s[3969]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[3970]! } - public var Map_ShareLiveLocationHelp: String { return self._s[3971]! } - public var Cache_Files: String { return self._s[3972]! } - public var Notifications_Reset: String { return self._s[3973]! } + public var VoiceChat_EditNameSuccess: String { return self._s[3956]! } + public var ChatSettings_TextSizeUnits: String { return self._s[3957]! } + public var Notification_RenamedGroup: String { return self._s[3959]! } + public var Tour_Title2: String { return self._s[3960]! } + public var Settings_CopyUsername: String { return self._s[3961]! } + public var Compose_NewEncryptedChat: String { return self._s[3962]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[3963]! } + public var VoiceChat_SetReminder: String { return self._s[3964]! } + public var Month_ShortSeptember: String { return self._s[3965]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[3966]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[3967]! } + public var VoiceChat_StartNow: String { return self._s[3968]! } + public var Call_StatusConnecting: String { return self._s[3970]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[3971]! } + public var Map_ShareLiveLocationHelp: String { return self._s[3972]! } + public var Cache_Files: String { return self._s[3973]! } + public var Notifications_Reset: String { return self._s[3974]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3974]!, self._r[3974]!, [_0]) + return formatWithArgumentRanges(self._s[3975]!, self._r[3975]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[3975]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[3976]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3976]!, self._r[3976]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3977]!, self._r[3977]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[3977]! } - public var UserInfo_BotPrivacy: String { return self._s[3980]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[3981]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3982]! } - public var Conversation_ContextMenuLookUp: String { return self._s[3984]! } - public var Calls_RatingTitle: String { return self._s[3985]! } - public var SecretImage_Title: String { return self._s[3986]! } - public var Weekday_Monday: String { return self._s[3987]! } + public var Notification_CallIncomingShort: String { return self._s[3978]! } + public var UserInfo_BotPrivacy: String { return self._s[3981]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[3982]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3983]! } + public var Conversation_ContextMenuLookUp: String { return self._s[3985]! } + public var Calls_RatingTitle: String { return self._s[3986]! } + public var SecretImage_Title: String { return self._s[3987]! } + public var Weekday_Monday: String { return self._s[3988]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3988]!, self._r[3988]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3989]!, self._r[3989]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3989]! } - public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[3990]! } - public var Invitation_JoinVoiceChatAsListener: String { return self._s[3991]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3990]! } + public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[3991]! } + public var Invitation_JoinVoiceChatAsListener: String { return self._s[3992]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3993]!, self._r[3993]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[3993]! } - public var Camera_Retake: String { return self._s[3994]! } - public var Conversation_SearchPlaceholder: String { return self._s[3996]! } + public var Stats_GroupMembers: String { return self._s[3994]! } + public var Camera_Retake: String { return self._s[3995]! } + public var Conversation_SearchPlaceholder: String { return self._s[3997]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3997]!, self._r[3997]!, [_0]) + return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[3998]! } - public var SocksProxySetup_Hostname: String { return self._s[3999]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4000]! } - public var Privacy_DeleteDrafts: String { return self._s[4002]! } - public var Login_CancelPhoneVerification: String { return self._s[4004]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[4005]! } - public var VoiceOver_Chat_Profile: String { return self._s[4006]! } + public var Channel_DiscussionGroup_Info: String { return self._s[3999]! } + public var SocksProxySetup_Hostname: String { return self._s[4000]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4001]! } + public var Privacy_DeleteDrafts: String { return self._s[4003]! } + public var Login_CancelPhoneVerification: String { return self._s[4005]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[4006]! } + public var VoiceOver_Chat_Profile: String { return self._s[4007]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4007]!, self._r[4007]!, [_0]) + return formatWithArgumentRanges(self._s[4008]!, self._r[4008]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[4008]! } - public var Cache_Indexing: String { return self._s[4009]! } - public var Notifications_ExceptionsNone: String { return self._s[4010]! } - public var MessagePoll_LabelQuiz: String { return self._s[4011]! } - public var Call_EncryptionKey_Title: String { return self._s[4012]! } - public var Common_Yes: String { return self._s[4013]! } - public var Channel_ErrorAddBlocked: String { return self._s[4014]! } - public var Month_GenJanuary: String { return self._s[4015]! } - public var Checkout_NewCard_Title: String { return self._s[4016]! } + public var TwoStepAuth_EmailSent: String { return self._s[4009]! } + public var Cache_Indexing: String { return self._s[4010]! } + public var Notifications_ExceptionsNone: String { return self._s[4011]! } + public var MessagePoll_LabelQuiz: String { return self._s[4012]! } + public var Call_EncryptionKey_Title: String { return self._s[4013]! } + public var Common_Yes: String { return self._s[4014]! } + public var Channel_ErrorAddBlocked: String { return self._s[4015]! } + public var Month_GenJanuary: String { return self._s[4016]! } + public var Checkout_NewCard_Title: String { return self._s[4017]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4017]!, self._r[4017]!, [_0]) + return formatWithArgumentRanges(self._s[4018]!, self._r[4018]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[4019]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4020]! } - public var Conversation_SendDice: String { return self._s[4021]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[4020]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4021]! } + public var Conversation_SendDice: String { return self._s[4022]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4022]!, self._r[4022]!, [_0]) - } - public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4023]!, self._r[4023]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[4024]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[4025]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[4026]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4027]! } - public var OldChannels_NoticeTitle: String { return self._s[4028]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[4029]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[4030]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4031]! } - public var Passport_Address_AddUtilityBill: String { return self._s[4032]! } + public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4024]!, self._r[4024]!, [_0]) + } + public var Weekday_Wednesday: String { return self._s[4025]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[4026]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[4027]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4028]! } + public var OldChannels_NoticeTitle: String { return self._s[4029]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[4030]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[4031]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4032]! } + public var Passport_Address_AddUtilityBill: String { return self._s[4033]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4034]!, self._r[4034]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4035]!, self._r[4035]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4036]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[4037]! } - public var Paint_Regular: String { return self._s[4039]! } - public var Message_Contact: String { return self._s[4040]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4041]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[4042]! } - public var Notification_Mute1hMin: String { return self._s[4043]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4037]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[4038]! } + public var Paint_Regular: String { return self._s[4040]! } + public var Message_Contact: String { return self._s[4041]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4042]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[4043]! } + public var Notification_Mute1hMin: String { return self._s[4044]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_0]) + return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[4045]! } - public var TwoStepAuth_GenericHelp: String { return self._s[4046]! } - public var TextFormat_Monospace: String { return self._s[4047]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4049]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[4050]! } - public var ChatList_DeleteChat: String { return self._s[4051]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4054]! } + public var Profile_MessageLifetime1h: String { return self._s[4046]! } + public var TwoStepAuth_GenericHelp: String { return self._s[4047]! } + public var TextFormat_Monospace: String { return self._s[4048]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4050]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[4051]! } + public var ChatList_DeleteChat: String { return self._s[4052]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4055]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4055]!, self._r[4055]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[4056]!, self._r[4056]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[4056]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4057]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4058]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[4057]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4058]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4059]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_0]) + return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[4060]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4061]! } - public var StickerPack_ViewPack: String { return self._s[4064]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4066]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4067]! } - public var Notifications_Title: String { return self._s[4068]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[4069]! } - public var GroupInfo_PublicLink: String { return self._s[4070]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[4061]! } + public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4062]! } + public var StickerPack_ViewPack: String { return self._s[4065]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4067]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4068]! } + public var Notifications_Title: String { return self._s[4069]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[4070]! } + public var GroupInfo_PublicLink: String { return self._s[4071]! } public func ScheduleVoiceChat_GroupText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_0]) + return formatWithArgumentRanges(self._s[4072]!, self._r[4072]!, [_0]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[4072]! } - public var Conversation_Moderate_Ban: String { return self._s[4076]! } - public var InviteLink_Manage: String { return self._s[4077]! } - public var InstantPage_FontNewYork: String { return self._s[4078]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[4073]! } + public var Conversation_Moderate_Ban: String { return self._s[4077]! } + public var InviteLink_Manage: String { return self._s[4078]! } + public var InstantPage_FontNewYork: String { return self._s[4079]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4079]!, self._r[4079]!, [_0]) + return formatWithArgumentRanges(self._s[4080]!, self._r[4080]!, [_0]) } - public var TextFormat_Underline: String { return self._s[4080]! } + public var TextFormat_Underline: String { return self._s[4081]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4081]!, self._r[4081]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_1]) + return formatWithArgumentRanges(self._s[4083]!, self._r[4083]!, [_1]) } - public var PollResults_Collapse: String { return self._s[4084]! } - public var Contacts_GlobalSearch: String { return self._s[4085]! } + public var PollResults_Collapse: String { return self._s[4085]! } + public var Contacts_GlobalSearch: String { return self._s[4086]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4087]!, self._r[4087]!, [_0]) + return formatWithArgumentRanges(self._s[4088]!, self._r[4088]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[4088]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4090]! } - public var Conversation_Theme: String { return self._s[4091]! } + public var Channel_Management_LabelEditor: String { return self._s[4089]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4091]! } + public var Conversation_Theme: String { return self._s[4092]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4092]!, self._r[4092]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4093]!, self._r[4093]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[4093]! } - public var EnterPasscode_TouchId: String { return self._s[4094]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4095]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[4096]! } - public var Stats_MessageOverview: String { return self._s[4097]! } - public var Privacy_Calls_P2PAlways: String { return self._s[4099]! } - public var Message_Sticker: String { return self._s[4100]! } - public var Conversation_Mute: String { return self._s[4103]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4104]! } - public var ContactInfo_Title: String { return self._s[4105]! } + public var Conversation_LinkDialogSave: String { return self._s[4094]! } + public var EnterPasscode_TouchId: String { return self._s[4095]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4096]! } + public var Group_ErrorAdminsTooMuch: String { return self._s[4097]! } + public var Stats_MessageOverview: String { return self._s[4098]! } + public var Privacy_Calls_P2PAlways: String { return self._s[4100]! } + public var Message_Sticker: String { return self._s[4101]! } + public var Conversation_Mute: String { return self._s[4104]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4105]! } + public var ContactInfo_Title: String { return self._s[4106]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1]) + return formatWithArgumentRanges(self._s[4107]!, self._r[4107]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[4107]! } - public var AuthSessions_LogOut: String { return self._s[4108]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4109]! } - public var VoiceChat_PinVideo: String { return self._s[4110]! } - public var Group_Info_Members: String { return self._s[4112]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[4113]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4114]! } - public var CreatePoll_Title: String { return self._s[4115]! } - public var EditTheme_EditTitle: String { return self._s[4116]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4117]! } - public var TwoStepAuth_SetPassword: String { return self._s[4118]! } + public var Channel_Setup_TypeHeader: String { return self._s[4108]! } + public var AuthSessions_LogOut: String { return self._s[4109]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[4110]! } + public var VoiceChat_PinVideo: String { return self._s[4111]! } + public var Group_Info_Members: String { return self._s[4113]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[4114]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4115]! } + public var CreatePoll_Title: String { return self._s[4116]! } + public var EditTheme_EditTitle: String { return self._s[4117]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4118]! } + public var TwoStepAuth_SetPassword: String { return self._s[4119]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4119]!, self._r[4119]!, [_0]) + return formatWithArgumentRanges(self._s[4120]!, self._r[4120]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[4120]! } - public var AuthSessions_Sessions: String { return self._s[4121]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4122]! } - public var Common_ActionNotAllowedError: String { return self._s[4123]! } - public var WebPreview_GettingLinkInfo: String { return self._s[4124]! } - public var Appearance_AppIconFilledX: String { return self._s[4125]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[4126]! } - public var FeaturedStickers_OtherSection: String { return self._s[4127]! } - public var VoiceChat_RecordingStarted: String { return self._s[4128]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4129]! } - public var Profile_Username: String { return self._s[4130]! } - public var Settings_TipsUsername: String { return self._s[4131]! } - public var Appearance_RemoveTheme: String { return self._s[4132]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4133]! } - public var Message_PinnedStickerMessage: String { return self._s[4134]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4135]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[4136]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[4137]! } - public var Conversation_VoiceChat: String { return self._s[4138]! } - public var VoiceChat_EditBioSuccess: String { return self._s[4139]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4140]! } - public var TwoStepAuth_Title: String { return self._s[4141]! } - public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4142]! } - public var Checkout_WebConfirmation_Title: String { return self._s[4143]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4144]! } - public var ChatListFolder_CategoryGroups: String { return self._s[4146]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[4147]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[4148]! } - public var Month_GenJuly: String { return self._s[4149]! } - public var Passport_Identity_Gender: String { return self._s[4150]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4151]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[4152]! } - public var VoiceChat_StopRecording: String { return self._s[4153]! } + public var BlockedUsers_Info: String { return self._s[4121]! } + public var AuthSessions_Sessions: String { return self._s[4122]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4123]! } + public var Common_ActionNotAllowedError: String { return self._s[4124]! } + public var WebPreview_GettingLinkInfo: String { return self._s[4125]! } + public var Appearance_AppIconFilledX: String { return self._s[4126]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[4127]! } + public var FeaturedStickers_OtherSection: String { return self._s[4128]! } + public var VoiceChat_RecordingStarted: String { return self._s[4129]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4130]! } + public var Profile_Username: String { return self._s[4131]! } + public var Settings_TipsUsername: String { return self._s[4132]! } + public var Appearance_RemoveTheme: String { return self._s[4133]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4134]! } + public var Message_PinnedStickerMessage: String { return self._s[4135]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4136]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[4137]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[4138]! } + public var Conversation_VoiceChat: String { return self._s[4139]! } + public var VoiceChat_EditBioSuccess: String { return self._s[4140]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4141]! } + public var TwoStepAuth_Title: String { return self._s[4142]! } + public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4143]! } + public var Checkout_WebConfirmation_Title: String { return self._s[4144]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4145]! } + public var ChatListFolder_CategoryGroups: String { return self._s[4147]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[4148]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[4149]! } + public var Month_GenJuly: String { return self._s[4150]! } + public var Passport_Identity_Gender: String { return self._s[4151]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4152]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[4153]! } + public var VoiceChat_StopRecording: String { return self._s[4154]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4154]!, self._r[4154]!, [_0]) + return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[4156]! } + public var Login_CodeSentSms: String { return self._s[4157]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4157]!, self._r[4157]!, [_0]) + return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[4158]! } - public var Channel_DiscussionGroup_Header: String { return self._s[4159]! } + public var Login_CallRequestState2: String { return self._s[4159]! } + public var Channel_DiscussionGroup_Header: String { return self._s[4160]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4160]!, self._r[4160]!, [_0]) + return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_0]) } - public var Passport_Language_ms: String { return self._s[4161]! } - public var PeopleNearby_MakeInvisible: String { return self._s[4163]! } - public var ChatList_Search_FilterVoice: String { return self._s[4165]! } - public var Camera_TapAndHoldForVideo: String { return self._s[4167]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4168]! } + public var Passport_Language_ms: String { return self._s[4162]! } + public var PeopleNearby_MakeInvisible: String { return self._s[4164]! } + public var ChatList_Search_FilterVoice: String { return self._s[4166]! } + public var Camera_TapAndHoldForVideo: String { return self._s[4168]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4169]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4169]!, self._r[4169]!, [_0]) + return formatWithArgumentRanges(self._s[4170]!, self._r[4170]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4170]!, self._r[4170]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4171]!, self._r[4171]!, [_1, _2]) } - public var Map_Locating: String { return self._s[4171]! } + public var Map_Locating: String { return self._s[4172]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4173]!, self._r[4173]!, [_0]) + return formatWithArgumentRanges(self._s[4174]!, self._r[4174]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[4175]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4176]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4177]! } - public var Stickers_Installed: String { return self._s[4178]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[4179]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[4180]! } - public var CallSettings_Never: String { return self._s[4182]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[4183]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[4176]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4177]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4178]! } + public var Stickers_Installed: String { return self._s[4179]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[4180]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[4181]! } + public var CallSettings_Never: String { return self._s[4183]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[4184]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4185]!, self._r[4185]!, [_0]) + return formatWithArgumentRanges(self._s[4186]!, self._r[4186]!, [_0]) } - public var Message_Game: String { return self._s[4186]! } - public var Call_Message: String { return self._s[4187]! } + public var Message_Game: String { return self._s[4187]! } + public var Call_Message: String { return self._s[4188]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4188]!, self._r[4188]!, [_1]) + return formatWithArgumentRanges(self._s[4189]!, self._r[4189]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[4189]! } - public var StickerPack_Send: String { return self._s[4190]! } - public var Share_AuthDescription: String { return self._s[4191]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4192]! } - public var CallFeedback_WhatWentWrong: String { return self._s[4193]! } - public var Common_Create: String { return self._s[4196]! } - public var Passport_Language_hy: String { return self._s[4197]! } - public var CreatePoll_Explanation: String { return self._s[4198]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[4199]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4200]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[4201]! } - public var Undo_ChatClearedForBothSides: String { return self._s[4202]! } - public var DialogList_NoMessagesTitle: String { return self._s[4203]! } - public var GroupInfo_Title: String { return self._s[4205]! } + public var ChannelIntro_Text: String { return self._s[4190]! } + public var StickerPack_Send: String { return self._s[4191]! } + public var Share_AuthDescription: String { return self._s[4192]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4193]! } + public var CallFeedback_WhatWentWrong: String { return self._s[4194]! } + public var Common_Create: String { return self._s[4197]! } + public var Passport_Language_hy: String { return self._s[4198]! } + public var CreatePoll_Explanation: String { return self._s[4199]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[4200]! } + public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4201]! } + public var PeerInfo_ButtonVoiceChat: String { return self._s[4202]! } + public var Undo_ChatClearedForBothSides: String { return self._s[4203]! } + public var DialogList_NoMessagesTitle: String { return self._s[4204]! } + public var GroupInfo_Title: String { return self._s[4206]! } public func ScheduleVoiceChat_ScheduleToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4206]!, self._r[4206]!, [_0]) + return formatWithArgumentRanges(self._s[4207]!, self._r[4207]!, [_0]) } - public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4207]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[4208]! } - public var PhoneNumberHelp_Help: String { return self._s[4209]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4210]! } - public var Settings_Logout: String { return self._s[4211]! } - public var Privacy_PaymentsTitle: String { return self._s[4212]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[4213]! } - public var Tour_Text6: String { return self._s[4214]! } - public var ChatImportActivity_Title: String { return self._s[4216]! } - public var Channel_Username_Help: String { return self._s[4217]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4218]! } - public var AttachmentMenu_Poll: String { return self._s[4219]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4220]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4221]! } - public var Passport_DeletePassport: String { return self._s[4222]! } - public var Login_Code: String { return self._s[4223]! } - public var Notification_SecretChatScreenshot: String { return self._s[4224]! } - public var VoiceChat_AddBio: String { return self._s[4225]! } - public var Login_CodeFloodError: String { return self._s[4226]! } + public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4208]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[4209]! } + public var PhoneNumberHelp_Help: String { return self._s[4210]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4211]! } + public var Settings_Logout: String { return self._s[4212]! } + public var Privacy_PaymentsTitle: String { return self._s[4213]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[4214]! } + public var Tour_Text6: String { return self._s[4215]! } + public var ChatImportActivity_Title: String { return self._s[4217]! } + public var Channel_Username_Help: String { return self._s[4218]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4219]! } + public var AttachmentMenu_Poll: String { return self._s[4220]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4221]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4222]! } + public var Passport_DeletePassport: String { return self._s[4223]! } + public var Login_Code: String { return self._s[4224]! } + public var Notification_SecretChatScreenshot: String { return self._s[4225]! } + public var VoiceChat_AddBio: String { return self._s[4226]! } + public var Login_CodeFloodError: String { return self._s[4227]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_0]) - } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4228]!, self._r[4228]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[4229]! } - public var Generic_ErrorMoreInfo: String { return self._s[4230]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4229]!, self._r[4229]!, [_0]) + } + public var Watch_Stickers_Recents: String { return self._s[4230]! } + public var Generic_ErrorMoreInfo: String { return self._s[4231]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4231]!, self._r[4231]!, [_0]) + return formatWithArgumentRanges(self._s[4232]!, self._r[4232]!, [_0]) } - public var AutoDownloadSettings_DataUsage: String { return self._s[4232]! } - public var Conversation_ViewTheme: String { return self._s[4233]! } - public var Contacts_InviteSearchLabel: String { return self._s[4234]! } - public var Settings_CancelUpload: String { return self._s[4236]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4237]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[4233]! } + public var Conversation_ViewTheme: String { return self._s[4234]! } + public var Contacts_InviteSearchLabel: String { return self._s[4235]! } + public var Settings_CancelUpload: String { return self._s[4237]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[4238]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4238]!, self._r[4238]!, [_0]) + return formatWithArgumentRanges(self._s[4239]!, self._r[4239]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4239]! } - public var Conversation_Location: String { return self._s[4241]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4242]! } - public var DialogList_AdLabel: String { return self._s[4243]! } + public var ChatList_AddFolder: String { return self._s[4240]! } + public var Conversation_Location: String { return self._s[4242]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4243]! } + public var DialogList_AdLabel: String { return self._s[4244]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4245]!, self._r[4245]!, [_0]) + return formatWithArgumentRanges(self._s[4246]!, self._r[4246]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4246]! } - public var Channel_TooMuchBots: String { return self._s[4247]! } + public var Message_InvoiceLabel: String { return self._s[4247]! } + public var Channel_TooMuchBots: String { return self._s[4248]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4249]!, self._r[4249]!, [_0]) + return formatWithArgumentRanges(self._s[4250]!, self._r[4250]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4250]! } - public var Conversation_LiveLocation: String { return self._s[4251]! } - public var VoiceChat_AskedToSpeakHelp: String { return self._s[4252]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4253]! } - public var Passport_Identity_EditPassport: String { return self._s[4254]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4256]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4257]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4258]! } + public var Call_IncomingVideoCall: String { return self._s[4251]! } + public var Conversation_LiveLocation: String { return self._s[4252]! } + public var VoiceChat_AskedToSpeakHelp: String { return self._s[4253]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4254]! } + public var Passport_Identity_EditPassport: String { return self._s[4255]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4257]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4258]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4259]! } public func VoiceChat_RemovePeerConfirmationChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4260]!, self._r[4260]!, [_0]) + return formatWithArgumentRanges(self._s[4261]!, self._r[4261]!, [_0]) } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4261]! } - public var Channel_MessageVideoUpdated: String { return self._s[4262]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4263]! } - public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4266]! } - public var AccessDenied_Camera: String { return self._s[4267]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4262]! } + public var Channel_MessageVideoUpdated: String { return self._s[4263]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4264]! } + public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4267]! } + public var AccessDenied_Camera: String { return self._s[4268]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4268]!, self._r[4268]!, [_0]) + return formatWithArgumentRanges(self._s[4269]!, self._r[4269]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4269]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4270]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4271]! } - public var Login_CodeExpiredError: String { return self._s[4272]! } - public var State_ConnectingToProxy: String { return self._s[4273]! } - public var TextFormat_Link: String { return self._s[4274]! } - public var Passport_Language_lv: String { return self._s[4276]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4277]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4278]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4279]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4280]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4282]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4283]! } - public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4284]! } + public var Theme_Context_ChangeColors: String { return self._s[4270]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4271]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4272]! } + public var Login_CodeExpiredError: String { return self._s[4273]! } + public var State_ConnectingToProxy: String { return self._s[4274]! } + public var TextFormat_Link: String { return self._s[4275]! } + public var Passport_Language_lv: String { return self._s[4277]! } + public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4278]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4279]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4280]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4281]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4283]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4284]! } + public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4285]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4285]!, self._r[4285]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4286]!, self._r[4286]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4286]! } - public var Checkout_PayNone: String { return self._s[4287]! } - public var NotificationsSound_Complete: String { return self._s[4289]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4290]! } - public var InviteLink_CreateInfo: String { return self._s[4291]! } - public var AuthSessions_DevicesTitle: String { return self._s[4292]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4287]! } + public var Checkout_PayNone: String { return self._s[4288]! } + public var NotificationsSound_Complete: String { return self._s[4290]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4291]! } + public var InviteLink_CreateInfo: String { return self._s[4292]! } + public var AuthSessions_DevicesTitle: String { return self._s[4293]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4293]!, self._r[4293]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4294]!, self._r[4294]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4294]! } - public var Watch_Suggestion_BRB: String { return self._s[4295]! } - public var Channel_BanUser_Title: String { return self._s[4296]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4297]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4298]! } - public var Conversation_ClearSelfHistory: String { return self._s[4299]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4300]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4301]! } - public var Weekday_Thursday: String { return self._s[4302]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4303]! } - public var Privacy_ProfilePhoto: String { return self._s[4305]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4306]! } + public var Message_LiveLocation: String { return self._s[4295]! } + public var Watch_Suggestion_BRB: String { return self._s[4296]! } + public var Channel_BanUser_Title: String { return self._s[4297]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4298]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4299]! } + public var Conversation_ClearSelfHistory: String { return self._s[4300]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4301]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4302]! } + public var Weekday_Thursday: String { return self._s[4303]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4304]! } + public var Privacy_ProfilePhoto: String { return self._s[4306]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4307]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4307]!, self._r[4307]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4308]!, self._r[4308]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4308]! } - public var Conversation_Info: String { return self._s[4309]! } - public var Cache_Videos: String { return self._s[4310]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4311]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4312]! } + public var Message_Audio: String { return self._s[4309]! } + public var Conversation_Info: String { return self._s[4310]! } + public var Cache_Videos: String { return self._s[4311]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4312]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4313]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4313]!, self._r[4313]!, [_0]) + return formatWithArgumentRanges(self._s[4314]!, self._r[4314]!, [_0]) } - public var VoiceChat_EditBio: String { return self._s[4314]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4316]! } - public var ScheduledMessages_Title: String { return self._s[4319]! } - public var ShareFileTip_Title: String { return self._s[4322]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4323]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4324]! } + public var VoiceChat_EditBio: String { return self._s[4315]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4317]! } + public var VoiceChat_ShareScreen: String { return self._s[4320]! } + public var ScheduledMessages_Title: String { return self._s[4321]! } + public var ShareFileTip_Title: String { return self._s[4324]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4325]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4326]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4325]!, self._r[4325]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4327]!, self._r[4327]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4327]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4328]! } - public var PasscodeSettings_Title: String { return self._s[4329]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4330]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4331]! } + public var Conversation_ContextViewStats: String { return self._s[4329]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4330]! } + public var PasscodeSettings_Title: String { return self._s[4331]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4332]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4333]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4332]!, self._r[4332]!, [_1]) + return formatWithArgumentRanges(self._s[4334]!, self._r[4334]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4333]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4334]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4335]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4336]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4337]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4338]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4335]! } + public var ChannelInfo_FakeChannelWarning: String { return self._s[4336]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4337]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4338]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4339]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4340]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4339]!, self._r[4339]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4341]!, self._r[4341]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4340]!, self._r[4340]!, [_0]) + return formatWithArgumentRanges(self._s[4342]!, self._r[4342]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4341]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4344]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4345]! } + public var Passport_Identity_GenderFemale: String { return self._s[4343]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4346]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4347]! } public func Message_ImportedDateFormat(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4346]!, self._r[4346]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4348]!, self._r[4348]!, [_1, _2, _3]) } - public var VoiceChat_Audio: String { return self._s[4347]! } - public var SharedMedia_TitleAll: String { return self._s[4348]! } - public var Settings_Context_Logout: String { return self._s[4349]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4352]! } - public var Settings_About_Title: String { return self._s[4353]! } - public var StickerSettings_ContextHide: String { return self._s[4354]! } + public var VoiceChat_Audio: String { return self._s[4349]! } + public var SharedMedia_TitleAll: String { return self._s[4350]! } + public var Settings_Context_Logout: String { return self._s[4351]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4354]! } + public var Settings_About_Title: String { return self._s[4355]! } + public var StickerSettings_ContextHide: String { return self._s[4356]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4355]!, self._r[4355]!, [_0]) + return formatWithArgumentRanges(self._s[4357]!, self._r[4357]!, [_0]) } public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4356]!, self._r[4356]!, [_0]) + return formatWithArgumentRanges(self._s[4358]!, self._r[4358]!, [_0]) } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4358]! } - public var Common_Cancel: String { return self._s[4359]! } - public var CallFeedback_Title: String { return self._s[4361]! } + public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4360]! } + public var Common_Cancel: String { return self._s[4361]! } + public var CallFeedback_Title: String { return self._s[4363]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4362]!, self._r[4362]!, [_0]) + return formatWithArgumentRanges(self._s[4364]!, self._r[4364]!, [_0]) } - public var Conversation_StickerAddedToFavorites: String { return self._s[4363]! } - public var Activity_UploadingVideoMessage: String { return self._s[4365]! } - public var MediaPicker_Send: String { return self._s[4366]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4367]! } - public var Conversation_LiveLocationYou: String { return self._s[4368]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4369]! } + public var Conversation_StickerAddedToFavorites: String { return self._s[4365]! } + public var Activity_UploadingVideoMessage: String { return self._s[4367]! } + public var MediaPicker_Send: String { return self._s[4368]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4369]! } + public var Conversation_LiveLocationYou: String { return self._s[4370]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4371]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4371]!, self._r[4371]!, [_0]) + return formatWithArgumentRanges(self._s[4373]!, self._r[4373]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4372]!, self._r[4372]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4374]!, self._r[4374]!, [_1, _2]) } - public var Checkout_PaymentLiabilityAlert: String { return self._s[4373]! } - public var Conversation_ViewBackground: String { return self._s[4374]! } - public var ChatSettings_PrivateChats: String { return self._s[4377]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4378]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4379]! } - public var Appearance_ThemeNight: String { return self._s[4380]! } - public var Common_Search: String { return self._s[4381]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4382]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4384]! } - public var InviteLink_QRCode_Share: String { return self._s[4385]! } - public var Stickers_SuggestAdded: String { return self._s[4387]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4390]! } - public var Widget_UpdatedTodayAt: String { return self._s[4391]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4392]! } - public var CheckoutInfo_Title: String { return self._s[4393]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4394]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4395]! } + public var Checkout_PaymentLiabilityAlert: String { return self._s[4375]! } + public var Conversation_ViewBackground: String { return self._s[4376]! } + public var ChatSettings_PrivateChats: String { return self._s[4379]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4380]! } + public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4381]! } + public var Appearance_ThemeNight: String { return self._s[4382]! } + public var Common_Search: String { return self._s[4383]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4384]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4386]! } + public var InviteLink_QRCode_Share: String { return self._s[4387]! } + public var Stickers_SuggestAdded: String { return self._s[4389]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4392]! } + public var Widget_UpdatedTodayAt: String { return self._s[4393]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4394]! } + public var CheckoutInfo_Title: String { return self._s[4395]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4396]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4397]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4396]!, self._r[4396]!, [_0]) + return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4398]! } - public var GroupRemoved_DeleteUser: String { return self._s[4400]! } - public var Contacts_ShareTelegram: String { return self._s[4401]! } - public var Group_UpgradeNoticeText1: String { return self._s[4402]! } + public var MaskStickerSettings_Info: String { return self._s[4400]! } + public var GroupRemoved_DeleteUser: String { return self._s[4402]! } + public var Contacts_ShareTelegram: String { return self._s[4403]! } + public var Group_UpgradeNoticeText1: String { return self._s[4404]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4403]!, self._r[4403]!, [_1]) + return formatWithArgumentRanges(self._s[4405]!, self._r[4405]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4404]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4408]! } - public var PhotoEditor_TintTool: String { return self._s[4409]! } - public var ChatImportActivity_OpenApp: String { return self._s[4411]! } - public var GroupPermission_NoSendPolls: String { return self._s[4412]! } - public var NotificationsSound_None: String { return self._s[4413]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4406]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4410]! } + public var PhotoEditor_TintTool: String { return self._s[4411]! } + public var ChatImportActivity_OpenApp: String { return self._s[4413]! } + public var GroupPermission_NoSendPolls: String { return self._s[4414]! } + public var NotificationsSound_None: String { return self._s[4415]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4414]!, self._r[4414]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4416]!, self._r[4416]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4417]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4419]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4419]!, self._r[4419]!, [_1]) + return formatWithArgumentRanges(self._s[4421]!, self._r[4421]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4420]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4421]! } - public var Contacts_SortedByPresence: String { return self._s[4422]! } - public var WallpaperSearch_ColorGray: String { return self._s[4423]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4424]! } - public var Conversation_ReportSpam: String { return self._s[4425]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4428]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4429]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4430]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4431]! } + public var ExplicitContent_AlertChannel: String { return self._s[4422]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4423]! } + public var Contacts_SortedByPresence: String { return self._s[4424]! } + public var WallpaperSearch_ColorGray: String { return self._s[4425]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4426]! } + public var Conversation_ReportSpam: String { return self._s[4427]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4430]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4431]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4432]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4433]! } public func VoiceChat_PeerJoinedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4432]!, self._r[4432]!, [_0]) + return formatWithArgumentRanges(self._s[4434]!, self._r[4434]!, [_0]) } - public var Conversation_DefaultRestrictedText: String { return self._s[4433]! } - public var Settings_Devices: String { return self._s[4434]! } - public var Call_AudioRouteSpeaker: String { return self._s[4435]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4436]! } - public var VoiceChat_StartsIn: String { return self._s[4437]! } - public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4438]! } - public var VoiceChat_EditDescriptionTitle: String { return self._s[4440]! } - public var Passport_Address_Country: String { return self._s[4441]! } - public var Cache_MaximumCacheSize: String { return self._s[4442]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4443]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4444]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4446]! } - public var Login_TermsOfServiceLabel: String { return self._s[4447]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4448]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4449]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4450]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4451]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4452]! } - public var ConvertToSupergroup_Note: String { return self._s[4454]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4455]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4456]! } - public var Common_More: String { return self._s[4457]! } - public var ShareMenu_SelectChats: String { return self._s[4459]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4435]! } + public var Settings_Devices: String { return self._s[4436]! } + public var Call_AudioRouteSpeaker: String { return self._s[4437]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4438]! } + public var VoiceChat_StartsIn: String { return self._s[4439]! } + public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4440]! } + public var VoiceChat_EditDescriptionTitle: String { return self._s[4442]! } + public var Passport_Address_Country: String { return self._s[4443]! } + public var Cache_MaximumCacheSize: String { return self._s[4444]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4445]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4446]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4448]! } + public var Login_TermsOfServiceLabel: String { return self._s[4449]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4450]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4451]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4452]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4453]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4454]! } + public var ConvertToSupergroup_Note: String { return self._s[4456]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4457]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4458]! } + public var Common_More: String { return self._s[4459]! } + public var ShareMenu_SelectChats: String { return self._s[4461]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4460]!, self._r[4460]!, [_0]) + return formatWithArgumentRanges(self._s[4462]!, self._r[4462]!, [_0]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4461]!, self._r[4461]!, [_0]) + return formatWithArgumentRanges(self._s[4463]!, self._r[4463]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4463]! } - public var VoiceChat_EditBioText: String { return self._s[4464]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4465]! } + public var VoiceChat_EditBioText: String { return self._s[4466]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4465]!, self._r[4465]!, [_0]) + return formatWithArgumentRanges(self._s[4467]!, self._r[4467]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4466]! } + public var WatchRemote_AlertOpen: String { return self._s[4468]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4467]!, self._r[4467]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4469]!, self._r[4469]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4468]! } - public var Shortcut_SwitchAccount: String { return self._s[4469]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4470]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4470]! } + public var Shortcut_SwitchAccount: String { return self._s[4471]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4472]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4471]!, self._r[4471]!, [_0]) + return formatWithArgumentRanges(self._s[4473]!, self._r[4473]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4472]! } - public var DialogList_You: String { return self._s[4473]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4474]! } - public var ReportPeer_ReasonViolence: String { return self._s[4475]! } + public var Compose_NewGroupTitle: String { return self._s[4474]! } + public var DialogList_You: String { return self._s[4475]! } + public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4476]! } + public var ReportPeer_ReasonViolence: String { return self._s[4477]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4476]!, self._r[4476]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4478]!, self._r[4478]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4478]! } - public var KeyCommand_ScrollDown: String { return self._s[4481]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4482]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4483]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4484]! } - public var ArchivedChats_IntroText3: String { return self._s[4485]! } - public var HashtagSearch_AllChats: String { return self._s[4487]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4488]! } - public var Conversation_MessageCopied: String { return self._s[4490]! } - public var Channel_Info_BlackList: String { return self._s[4491]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4492]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4493]! } - public var Paint_Neon: String { return self._s[4495]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4496]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4497]! } + public var VoiceChat_Reconnecting: String { return self._s[4480]! } + public var KeyCommand_ScrollDown: String { return self._s[4483]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4484]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4485]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4486]! } + public var ArchivedChats_IntroText3: String { return self._s[4487]! } + public var HashtagSearch_AllChats: String { return self._s[4489]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4490]! } + public var Conversation_MessageCopied: String { return self._s[4492]! } + public var Channel_Info_BlackList: String { return self._s[4493]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4494]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4495]! } + public var Paint_Neon: String { return self._s[4497]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4498]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4499]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4499]!, self._r[4499]!, [_0]) + return formatWithArgumentRanges(self._s[4501]!, self._r[4501]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4500]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4501]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4502]! } - public var InstantPage_Reference: String { return self._s[4504]! } - public var Group_Members_AddMembers: String { return self._s[4506]! } + public var Map_StopLiveLocation: String { return self._s[4502]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4503]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4504]! } + public var InstantPage_Reference: String { return self._s[4506]! } + public var Group_Members_AddMembers: String { return self._s[4508]! } public func Conversation_ScheduledVoiceChatStartsOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4507]!, self._r[4507]!, [_0]) + return formatWithArgumentRanges(self._s[4509]!, self._r[4509]!, [_0]) } - public var ChatList_HideAction: String { return self._s[4508]! } - public var Conversation_FileICloudDrive: String { return self._s[4510]! } + public var ChatList_HideAction: String { return self._s[4510]! } + public var Conversation_FileICloudDrive: String { return self._s[4512]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4511]!, self._r[4511]!, [_1]) + return formatWithArgumentRanges(self._s[4513]!, self._r[4513]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4513]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4515]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4516]! } - public var Calls_AddTab: String { return self._s[4517]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4519]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4520]! } - public var Privacy_GroupsAndChannels: String { return self._s[4523]! } - public var Conversation_UsernameCopied: String { return self._s[4524]! } - public var AutoNightTheme_Disabled: String { return self._s[4525]! } - public var CreatePoll_MultipleChoice: String { return self._s[4526]! } + public var Passport_PasswordReset: String { return self._s[4515]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4517]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4518]! } + public var Calls_AddTab: String { return self._s[4519]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4521]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4522]! } + public var Privacy_GroupsAndChannels: String { return self._s[4525]! } + public var Conversation_UsernameCopied: String { return self._s[4526]! } + public var AutoNightTheme_Disabled: String { return self._s[4527]! } + public var CreatePoll_MultipleChoice: String { return self._s[4528]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_1]) + return formatWithArgumentRanges(self._s[4529]!, self._r[4529]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4529]! } + public var Watch_Bot_Restart: String { return self._s[4531]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4530]!, self._r[4530]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4532]!, self._r[4532]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4532]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4533]! } - public var Appearance_PreviewIncomingText: String { return self._s[4534]! } - public var ChatSettings_WidgetSettings: String { return self._s[4535]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4536]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4538]! } - public var Stats_GroupOverview: String { return self._s[4540]! } - public var ScheduledMessages_EditTime: String { return self._s[4543]! } - public var Month_GenFebruary: String { return self._s[4544]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4545]! } - public var Stickers_ClearRecent: String { return self._s[4546]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4547]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4548]! } - public var Stats_Message_PublicShares: String { return self._s[4549]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4534]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4535]! } + public var Appearance_PreviewIncomingText: String { return self._s[4536]! } + public var ChatSettings_WidgetSettings: String { return self._s[4537]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4538]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4540]! } + public var Stats_GroupOverview: String { return self._s[4542]! } + public var ScheduledMessages_EditTime: String { return self._s[4545]! } + public var Month_GenFebruary: String { return self._s[4546]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4547]! } + public var Stickers_ClearRecent: String { return self._s[4548]! } + public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4549]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4550]! } + public var Stats_Message_PublicShares: String { return self._s[4551]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4550]!, self._r[4550]!, [_0]) + return formatWithArgumentRanges(self._s[4552]!, self._r[4552]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4551]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4552]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4553]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4554]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4556]! } - public var CreatePoll_Create: String { return self._s[4557]! } - public var ChatList_Search_FilterLinks: String { return self._s[4558]! } - public var Your_cards_number_is_invalid: String { return self._s[4559]! } - public var Month_ShortApril: String { return self._s[4560]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4561]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4562]! } - public var SocksProxySetup_Status: String { return self._s[4563]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4564]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4565]! } - public var ChatListFolder_CategoryBots: String { return self._s[4566]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4568]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4569]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4570]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4571]! } - public var Conversation_TitleUnmute: String { return self._s[4572]! } - public var Group_Setup_TypeHeader: String { return self._s[4573]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4553]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4554]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4555]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4556]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4558]! } + public var CreatePoll_Create: String { return self._s[4559]! } + public var ChatList_Search_FilterLinks: String { return self._s[4560]! } + public var Your_cards_number_is_invalid: String { return self._s[4561]! } + public var Month_ShortApril: String { return self._s[4562]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4563]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4564]! } + public var SocksProxySetup_Status: String { return self._s[4565]! } + public var VoiceChat_UnmuteForMe: String { return self._s[4566]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4567]! } + public var ChatListFolder_CategoryBots: String { return self._s[4568]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4570]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4571]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4572]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4573]! } + public var Conversation_TitleUnmute: String { return self._s[4574]! } + public var Group_Setup_TypeHeader: String { return self._s[4575]! } public func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4574]!, self._r[4574]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4576]!, self._r[4576]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4575]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4576]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4577]! } + public var Stats_ViewsPerPost: String { return self._s[4577]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4578]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4579]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4578]!, self._r[4578]!, [_1]) + return formatWithArgumentRanges(self._s[4580]!, self._r[4580]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4579]! } + public var GroupInfo_Administrators_Title: String { return self._s[4581]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4580]!, self._r[4580]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4582]!, self._r[4582]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4581]!, self._r[4581]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4583]!, self._r[4583]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4582]! } - public var Passport_Language_my: String { return self._s[4584]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4585]! } - public var Map_PlacesNearby: String { return self._s[4586]! } - public var Channel_About_Help: String { return self._s[4587]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4588]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4589]! } - public var Channel_Username_Title: String { return self._s[4590]! } - public var Activity_RecordingVideoMessage: String { return self._s[4591]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4584]! } + public var Passport_Language_my: String { return self._s[4586]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4587]! } + public var Map_PlacesNearby: String { return self._s[4588]! } + public var Channel_About_Help: String { return self._s[4589]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4590]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4591]! } + public var Channel_Username_Title: String { return self._s[4592]! } + public var Activity_RecordingVideoMessage: String { return self._s[4593]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4592]!, self._r[4592]!, [_0]) + return formatWithArgumentRanges(self._s[4594]!, self._r[4594]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4593]! } - public var Passport_DiscardMessageDescription: String { return self._s[4594]! } - public var Conversation_LinkDialogOpen: String { return self._s[4595]! } - public var ChatList_Context_HideArchive: String { return self._s[4596]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4595]! } + public var Passport_DiscardMessageDescription: String { return self._s[4596]! } + public var Conversation_LinkDialogOpen: String { return self._s[4597]! } + public var ChatList_Context_HideArchive: String { return self._s[4598]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4597]!, self._r[4597]!, [_0]) + return formatWithArgumentRanges(self._s[4599]!, self._r[4599]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4598]! } - public var Conversation_Admin: String { return self._s[4599]! } - public var DialogList_TabTitle: String { return self._s[4600]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4600]! } + public var Conversation_Admin: String { return self._s[4601]! } + public var DialogList_TabTitle: String { return self._s[4602]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4601]!, self._r[4601]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4603]!, self._r[4603]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4602]! } - public var Passport_Identity_GenderMale: String { return self._s[4604]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4604]! } + public var Passport_Identity_GenderMale: String { return self._s[4606]! } public func VoiceChat_EditTitleSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4606]!, self._r[4606]!, [_0]) + return formatWithArgumentRanges(self._s[4608]!, self._r[4608]!, [_0]) } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4607]! } - public var PhoneNumberHelp_Alert: String { return self._s[4608]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4609]! } - public var Notifications_InAppNotifications: String { return self._s[4610]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4609]! } + public var PhoneNumberHelp_Alert: String { return self._s[4610]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4611]! } + public var Notifications_InAppNotifications: String { return self._s[4612]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4611]!, self._r[4611]!, [_0]) + return formatWithArgumentRanges(self._s[4613]!, self._r[4613]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4612]! } - public var Login_InvalidCodeError: String { return self._s[4613]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4614]! } + public var Notification_VideoCallOutgoing: String { return self._s[4614]! } + public var Login_InvalidCodeError: String { return self._s[4615]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4616]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4616]!, self._r[4616]!, [_0]) + return formatWithArgumentRanges(self._s[4618]!, self._r[4618]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4617]! } - public var ReportPeer_Report: String { return self._s[4618]! } - public var Camera_FlashOff: String { return self._s[4621]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4624]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4619]! } + public var ReportPeer_Report: String { return self._s[4620]! } + public var Camera_FlashOff: String { return self._s[4623]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4626]! } public func Notification_VoiceChatScheduledTomorrow(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4625]!, self._r[4625]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4627]!, self._r[4627]!, [_1, _2]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4628]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4629]! } - public var Passport_FieldEmail: String { return self._s[4630]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4630]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4631]! } + public var Passport_FieldEmail: String { return self._s[4632]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4631]!, self._r[4631]!, [_1]) + return formatWithArgumentRanges(self._s[4633]!, self._r[4633]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4632]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4633]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4634]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4635]! } - public var Login_PhoneNumberHelp: String { return self._s[4637]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4638]! } - public var Conversation_PinnedQuiz: String { return self._s[4639]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4640]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4641]! } - public var Group_MessagePhotoUpdated: String { return self._s[4642]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4643]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4644]! } - public var Passport_Identity_Translations: String { return self._s[4646]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4647]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4649]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4650]! } - public var Channel_Members_AddMembers: String { return self._s[4651]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4652]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4654]! } - public var Conversation_HoldForAudio: String { return self._s[4655]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4657]! } - public var Watch_LastSeen_Lately: String { return self._s[4658]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4659]! } - public var Conversation_PinnedMessage: String { return self._s[4660]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4661]! } - public var VoiceChat_StopRecordingStop: String { return self._s[4663]! } - public var Passport_UpdateRequiredError: String { return self._s[4664]! } - public var PrivacySettings_Passcode: String { return self._s[4665]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4634]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4635]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4636]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4637]! } + public var Login_PhoneNumberHelp: String { return self._s[4639]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4640]! } + public var Conversation_PinnedQuiz: String { return self._s[4641]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4642]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4643]! } + public var Group_MessagePhotoUpdated: String { return self._s[4644]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4645]! } + public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4646]! } + public var Passport_Identity_Translations: String { return self._s[4648]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4649]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4651]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4652]! } + public var Channel_Members_AddMembers: String { return self._s[4653]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4654]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4656]! } + public var Conversation_HoldForAudio: String { return self._s[4657]! } + public var Media_LimitedAccessChangeSettings: String { return self._s[4659]! } + public var Watch_LastSeen_Lately: String { return self._s[4660]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4661]! } + public var Conversation_PinnedMessage: String { return self._s[4662]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4663]! } + public var VoiceChat_StopRecordingStop: String { return self._s[4665]! } + public var Passport_UpdateRequiredError: String { return self._s[4666]! } + public var PrivacySettings_Passcode: String { return self._s[4667]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4666]!, self._r[4666]!, [_0]) + return formatWithArgumentRanges(self._s[4668]!, self._r[4668]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4667]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4668]! } - public var VoiceOver_Common_On: String { return self._s[4669]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4670]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4671]! } - public var Channel_SignMessages_Help: String { return self._s[4672]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4673]! } - public var Conversation_TitleNoComments: String { return self._s[4674]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4675]! } - public var GroupInfo_Permissions: String { return self._s[4676]! } - public var GroupPermission_NoSendLinks: String { return self._s[4679]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4669]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4670]! } + public var VoiceOver_Common_On: String { return self._s[4671]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4672]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4673]! } + public var Channel_SignMessages_Help: String { return self._s[4674]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4675]! } + public var Conversation_TitleNoComments: String { return self._s[4676]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4677]! } + public var GroupInfo_Permissions: String { return self._s[4678]! } + public var GroupPermission_NoSendLinks: String { return self._s[4681]! } public func Conversation_ScheduledVoiceChatStartsTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4680]!, self._r[4680]!, [_0]) + return formatWithArgumentRanges(self._s[4682]!, self._r[4682]!, [_0]) } - public var Passport_Identity_ResidenceCountry: String { return self._s[4681]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4683]! } - public var ChatList_ArchiveAction: String { return self._s[4684]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4683]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4685]! } + public var ChatList_ArchiveAction: String { return self._s[4686]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4685]!, self._r[4685]!, [_0]) + return formatWithArgumentRanges(self._s[4687]!, self._r[4687]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4686]! } + public var GroupInfo_GroupHistory: String { return self._s[4688]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4688]!, self._r[4688]!, [_0]) + return formatWithArgumentRanges(self._s[4690]!, self._r[4690]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4690]! } - public var Channel_Info_Banned: String { return self._s[4691]! } - public var Paint_RecentStickers: String { return self._s[4692]! } - public var VoiceOver_MessageContextSend: String { return self._s[4693]! } - public var Group_ErrorNotMutualContact: String { return self._s[4694]! } - public var ReportPeer_ReasonOther: String { return self._s[4696]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4697]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4699]! } - public var KeyCommand_Find: String { return self._s[4700]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4692]! } + public var Channel_Info_Banned: String { return self._s[4693]! } + public var Paint_RecentStickers: String { return self._s[4694]! } + public var VoiceOver_MessageContextSend: String { return self._s[4695]! } + public var Group_ErrorNotMutualContact: String { return self._s[4696]! } + public var ReportPeer_ReasonOther: String { return self._s[4698]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4699]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4701]! } + public var KeyCommand_Find: String { return self._s[4702]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4701]!, self._r[4701]!, [_0]) + return formatWithArgumentRanges(self._s[4703]!, self._r[4703]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4702]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4703]! } - public var Stickers_GroupStickersHelp: String { return self._s[4704]! } - public var Checkout_Title: String { return self._s[4705]! } - public var Activity_RecordingAudio: String { return self._s[4706]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4707]! } - public var BlockedUsers_BlockTitle: String { return self._s[4708]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4710]! } - public var Calls_All: String { return self._s[4711]! } - public var Settings_FAQ_Button: String { return self._s[4713]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4715]! } + public var ChatList_Context_Unmute: String { return self._s[4704]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4705]! } + public var Stickers_GroupStickersHelp: String { return self._s[4706]! } + public var Checkout_Title: String { return self._s[4707]! } + public var Activity_RecordingAudio: String { return self._s[4708]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4709]! } + public var BlockedUsers_BlockTitle: String { return self._s[4710]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4712]! } + public var Calls_All: String { return self._s[4713]! } + public var Settings_FAQ_Button: String { return self._s[4715]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4717]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4716]!, self._r[4716]!, [_0]) + return formatWithArgumentRanges(self._s[4718]!, self._r[4718]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4717]! } - public var Passport_Scans_Upload: String { return self._s[4718]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4720]! } - public var ChatList_UnarchiveAction: String { return self._s[4721]! } - public var Stats_GroupTopInviter_History: String { return self._s[4722]! } - public var GroupInfo_Permissions_Title: String { return self._s[4723]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4724]! } - public var Passport_Language_el: String { return self._s[4725]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4726]! } + public var Conversation_ReportGroupLocation: String { return self._s[4719]! } + public var Passport_Scans_Upload: String { return self._s[4720]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4722]! } + public var ChatList_UnarchiveAction: String { return self._s[4723]! } + public var Stats_GroupTopInviter_History: String { return self._s[4724]! } + public var GroupInfo_Permissions_Title: String { return self._s[4725]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4726]! } + public var Passport_Language_el: String { return self._s[4727]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4728]! } public func UserInfo_ContactForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4727]!, self._r[4727]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4729]!, self._r[4729]!, [_0, _1]) } - public var GroupInfo_ActionPromote: String { return self._s[4728]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4729]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4730]! } + public var GroupInfo_ActionPromote: String { return self._s[4730]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4731]! } + public var Media_LimitedAccessSelectMore: String { return self._s[4732]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4731]!, self._r[4731]!, [_0]) + return formatWithArgumentRanges(self._s[4733]!, self._r[4733]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4732]! } - public var Month_GenMay: String { return self._s[4733]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4734]! } - public var Chat_PsaTooltip_covid: String { return self._s[4735]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4736]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4737]! } - public var AppUpgrade_Running: String { return self._s[4738]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4741]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4742]! } - public var SharedMedia_EmptyText: String { return self._s[4743]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4744]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4745]! } - public var Message_PinnedGame: String { return self._s[4746]! } - public var KeyCommand_SearchInChat: String { return self._s[4747]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4748]! } - public var ChatList_Search_FilterMedia: String { return self._s[4749]! } - public var Message_PinnedAudioMessage: String { return self._s[4750]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4752]! } + public var VoiceOver_Chat_Reply: String { return self._s[4734]! } + public var Month_GenMay: String { return self._s[4735]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4736]! } + public var Chat_PsaTooltip_covid: String { return self._s[4737]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4738]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4739]! } + public var AppUpgrade_Running: String { return self._s[4740]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4743]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4744]! } + public var SharedMedia_EmptyText: String { return self._s[4745]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4746]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4747]! } + public var Message_PinnedGame: String { return self._s[4748]! } + public var KeyCommand_SearchInChat: String { return self._s[4749]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4750]! } + public var ChatList_Search_FilterMedia: String { return self._s[4751]! } + public var Message_PinnedAudioMessage: String { return self._s[4752]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4754]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4753]!, self._r[4753]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4755]!, self._r[4755]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4754]! } - public var InviteLink_Create: String { return self._s[4755]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4756]! } + public var InviteLink_Create: String { return self._s[4757]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4756]!, self._r[4756]!, [_0]) + return formatWithArgumentRanges(self._s[4758]!, self._r[4758]!, [_0]) } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4757]!, self._r[4757]!, [_0]) + return formatWithArgumentRanges(self._s[4759]!, self._r[4759]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4758]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4759]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4760]! } - public var Channel_JoinChannel: String { return self._s[4761]! } - public var Watch_UserInfo_Unblock: String { return self._s[4762]! } - public var PhoneLabel_Title: String { return self._s[4763]! } - public var VoiceChat_EditPermissions: String { return self._s[4765]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4766]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4767]! } + public var Settings_AddAccount: String { return self._s[4760]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4761]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4762]! } + public var Channel_JoinChannel: String { return self._s[4763]! } + public var Watch_UserInfo_Unblock: String { return self._s[4764]! } + public var PhoneLabel_Title: String { return self._s[4765]! } + public var VoiceChat_EditPermissions: String { return self._s[4767]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4768]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4769]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4768]!, self._r[4768]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4770]!, self._r[4770]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4769]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4770]! } - public var DialogList_EncryptionProcessing: String { return self._s[4771]! } - public var ChatList_Search_FilterChats: String { return self._s[4772]! } - public var WatchRemote_NotificationText: String { return self._s[4773]! } - public var EditTheme_ChangeColors: String { return self._s[4775]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4776]! } - public var CallSettings_OnMobile: String { return self._s[4778]! } - public var Month_ShortFebruary: String { return self._s[4780]! } - public var VoiceOver_MessageContextReply: String { return self._s[4781]! } - public var AutoremoveSetup_TimerValueNever: String { return self._s[4782]! } - public var Group_Location_ChangeLocation: String { return self._s[4784]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4771]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4772]! } + public var DialogList_EncryptionProcessing: String { return self._s[4773]! } + public var ChatList_Search_FilterChats: String { return self._s[4774]! } + public var WatchRemote_NotificationText: String { return self._s[4775]! } + public var EditTheme_ChangeColors: String { return self._s[4777]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4778]! } + public var CallSettings_OnMobile: String { return self._s[4780]! } + public var Month_ShortFebruary: String { return self._s[4782]! } + public var VoiceOver_MessageContextReply: String { return self._s[4783]! } + public var AutoremoveSetup_TimerValueNever: String { return self._s[4784]! } + public var Group_Location_ChangeLocation: String { return self._s[4786]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4785]!, self._r[4785]!, [_1]) + return formatWithArgumentRanges(self._s[4787]!, self._r[4787]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4786]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4787]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4788]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4788]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4789]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4790]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4790]!, self._r[4790]!, [_0]) + return formatWithArgumentRanges(self._s[4792]!, self._r[4792]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4791]! } - public var Login_InfoAvatarPhoto: String { return self._s[4792]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4793]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4794]! } - public var Map_PlacesInThisArea: String { return self._s[4795]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4796]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4797]! } + public var PhotoEditor_WarmthTool: String { return self._s[4793]! } + public var Login_InfoAvatarPhoto: String { return self._s[4794]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4795]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4796]! } + public var Map_PlacesInThisArea: String { return self._s[4797]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4798]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4799]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4798]!, self._r[4798]!, [_1]) + return formatWithArgumentRanges(self._s[4800]!, self._r[4800]!, [_1]) } - public var PeerInfo_ReportProfileVideo: String { return self._s[4799]! } - public var ShareMenu_Send: String { return self._s[4800]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4801]! } + public var PeerInfo_ReportProfileVideo: String { return self._s[4801]! } + public var ShareMenu_Send: String { return self._s[4802]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4803]! } public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4802]!, self._r[4802]!, [_1]) + return formatWithArgumentRanges(self._s[4804]!, self._r[4804]!, [_1]) } - public var Appearance_AppIconClassicX: String { return self._s[4803]! } - public var Report_Report: String { return self._s[4804]! } + public var Appearance_AppIconClassicX: String { return self._s[4805]! } + public var Report_Report: String { return self._s[4806]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4805]!, self._r[4805]!, [_1]) + return formatWithArgumentRanges(self._s[4807]!, self._r[4807]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4806]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4808]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4809]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4810]! } - public var Conversation_Timer_Title: String { return self._s[4811]! } - public var Common_Next: String { return self._s[4812]! } - public var Notification_Exceptions_NewException: String { return self._s[4813]! } + public var Conversation_StopPoll: String { return self._s[4808]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4810]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4811]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4812]! } + public var Conversation_Timer_Title: String { return self._s[4813]! } + public var Common_Next: String { return self._s[4814]! } + public var Notification_Exceptions_NewException: String { return self._s[4815]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4814]!, self._r[4814]!, [_0]) + return formatWithArgumentRanges(self._s[4816]!, self._r[4816]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4815]! } - public var VoiceChat_UnmutePeer: String { return self._s[4816]! } - public var ChatImportActivity_Retry: String { return self._s[4817]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4818]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4819]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4820]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4821]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4822]! } + public var AccessDenied_CallMicrophone: String { return self._s[4817]! } + public var VoiceChat_UnmutePeer: String { return self._s[4818]! } + public var ChatImportActivity_Retry: String { return self._s[4819]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4820]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4821]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4822]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4823]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4824]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4823]!, self._r[4823]!, [_0]) + return formatWithArgumentRanges(self._s[4825]!, self._r[4825]!, [_0]) } - public var Group_About_Help: String { return self._s[4824]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4825]! } - public var Tour_Title3: String { return self._s[4826]! } - public var Watch_Conversation_Unblock: String { return self._s[4827]! } - public var Watch_UserInfo_Block: String { return self._s[4828]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4829]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4830]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4831]! } - public var TextFormat_AddLinkTitle: String { return self._s[4832]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4833]! } + public var Group_About_Help: String { return self._s[4826]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4827]! } + public var Tour_Title3: String { return self._s[4828]! } + public var Watch_Conversation_Unblock: String { return self._s[4829]! } + public var Watch_UserInfo_Block: String { return self._s[4830]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4831]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4832]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4833]! } + public var TextFormat_AddLinkTitle: String { return self._s[4834]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4835]! } public func Notification_VoiceChatScheduled(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4834]!, self._r[4834]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4836]!, self._r[4836]!, [_1, _2]) } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4835]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4837]! } - public var Compose_ChannelMembers: String { return self._s[4838]! } - public var Conversation_ForwardTitle: String { return self._s[4839]! } - public var Conversation_PinnedPoll: String { return self._s[4842]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4837]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4839]! } + public var Compose_ChannelMembers: String { return self._s[4840]! } + public var Conversation_ForwardTitle: String { return self._s[4841]! } + public var Conversation_PinnedPoll: String { return self._s[4844]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4843]!, self._r[4843]!, [_0]) + return formatWithArgumentRanges(self._s[4845]!, self._r[4845]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4844]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4846]! } - public var Stats_Overview: String { return self._s[4847]! } - public var Map_HomeAndWorkTitle: String { return self._s[4848]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4846]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4848]! } + public var Stats_Overview: String { return self._s[4849]! } + public var Map_HomeAndWorkTitle: String { return self._s[4850]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4849]!, self._r[4849]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4851]!, self._r[4851]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4850]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4851]! } - public var Privacy_PhoneNumber: String { return self._s[4852]! } - public var ChatList_Search_FilterFiles: String { return self._s[4853]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4854]! } - public var ChannelIntro_CreateChannel: String { return self._s[4855]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4856]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4852]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4853]! } + public var Privacy_PhoneNumber: String { return self._s[4854]! } + public var ChatList_Search_FilterFiles: String { return self._s[4855]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4856]! } + public var ChannelIntro_CreateChannel: String { return self._s[4857]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4858]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4857]!, self._r[4857]!, [_0]) + return formatWithArgumentRanges(self._s[4859]!, self._r[4859]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4858]! } - public var Passport_Language_ar: String { return self._s[4860]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4861]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4862]! } - public var Calls_RatingFeedback: String { return self._s[4863]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4864]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4867]! } + public var Weekday_ShortMonday: String { return self._s[4860]! } + public var Passport_Language_ar: String { return self._s[4862]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4863]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4864]! } + public var Calls_RatingFeedback: String { return self._s[4865]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4866]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4869]! } public func VoiceOver_SelfDestructTimerOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4868]!, self._r[4868]!, [_0]) + return formatWithArgumentRanges(self._s[4870]!, self._r[4870]!, [_0]) } - public var Watch_Compose_Send: String { return self._s[4869]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4870]! } - public var WebSearch_RecentSectionClear: String { return self._s[4871]! } + public var Watch_Compose_Send: String { return self._s[4871]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4872]! } + public var WebSearch_RecentSectionClear: String { return self._s[4873]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4872]!, self._r[4872]!, [_0]) + return formatWithArgumentRanges(self._s[4874]!, self._r[4874]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4873]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4874]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4875]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4877]! } - public var Settings_SavedMessages: String { return self._s[4878]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4879]! } - public var Month_ShortMarch: String { return self._s[4880]! } - public var Message_Location: String { return self._s[4881]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4875]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4876]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4877]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4879]! } + public var Settings_SavedMessages: String { return self._s[4880]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4881]! } + public var Month_ShortMarch: String { return self._s[4882]! } + public var Message_Location: String { return self._s[4883]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4882]!, self._r[4882]!, [_1]) + return formatWithArgumentRanges(self._s[4884]!, self._r[4884]!, [_1]) } public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4883]!, self._r[4883]!, [_1]) + return formatWithArgumentRanges(self._s[4885]!, self._r[4885]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4884]!, self._r[4884]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4886]!, self._r[4886]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4886]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4888]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4887]!, self._r[4887]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4889]!, self._r[4889]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4888]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4889]! } - public var SharedMedia_CategoryDocs: String { return self._s[4890]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4891]! } - public var Paint_Framed: String { return self._s[4892]! } - public var Channel_Setup_LinkTypePublic: String { return self._s[4893]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4894]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4895]! } + public var GroupPermission_NoSendMedia: String { return self._s[4890]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4891]! } + public var SharedMedia_CategoryDocs: String { return self._s[4892]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4893]! } + public var Paint_Framed: String { return self._s[4894]! } + public var Channel_Setup_LinkTypePublic: String { return self._s[4895]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4896]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4897]! } public func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4896]!, self._r[4896]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4898]!, self._r[4898]!, [_1, _2]) } - public var Channel_SignMessages: String { return self._s[4897]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4898]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4899]! } + public var Channel_SignMessages: String { return self._s[4899]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4900]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4901]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4900]!, self._r[4900]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4902]!, self._r[4902]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4901]! } - public var GroupInfo_UpgradeButton: String { return self._s[4902]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4903]! } + public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4903]! } + public var GroupInfo_UpgradeButton: String { return self._s[4904]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4905]! } public func Conversation_ScheduledVoiceChatStartsTomorrowShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4904]!, self._r[4904]!, [_0]) + return formatWithArgumentRanges(self._s[4906]!, self._r[4906]!, [_0]) } - public var AutoDownloadSettings_Files: String { return self._s[4905]! } + public var AutoDownloadSettings_Files: String { return self._s[4907]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4906]!, self._r[4906]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4908]!, self._r[4908]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4908]! } - public var Update_UpdateApp: String { return self._s[4909]! } - public var Channel_Setup_TypePublic: String { return self._s[4910]! } - public var Watch_Compose_CreateMessage: String { return self._s[4911]! } + public var Login_SendCodeViaSms: String { return self._s[4910]! } + public var Update_UpdateApp: String { return self._s[4911]! } + public var Channel_Setup_TypePublic: String { return self._s[4912]! } + public var Watch_Compose_CreateMessage: String { return self._s[4913]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4912]!, self._r[4912]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4914]!, self._r[4914]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4913]! } - public var VoiceOver_Chat_Video: String { return self._s[4914]! } - public var Forward_ChannelReadOnly: String { return self._s[4915]! } - public var StickerPack_HideStickers: String { return self._s[4916]! } - public var ChatListFolder_NameContacts: String { return self._s[4917]! } - public var Profile_BotInfo: String { return self._s[4918]! } - public var Document_TargetConfirmationFormat: String { return self._s[4919]! } - public var GroupInfo_InviteByLink: String { return self._s[4920]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4921]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4922]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4923]! } - public var Passport_NotLoggedInMessage: String { return self._s[4924]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4925]! } - public var Checkout_PaymentMethod: String { return self._s[4926]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4931]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4932]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4933]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4934]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4935]! } - public var Conversation_GigagroupDescription: String { return self._s[4936]! } - public var Camera_Title: String { return self._s[4937]! } - public var Map_Directions: String { return self._s[4938]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4940]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4941]! } - public var Profile_EncryptionKey: String { return self._s[4942]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4915]! } + public var VoiceOver_Chat_Video: String { return self._s[4916]! } + public var Forward_ChannelReadOnly: String { return self._s[4917]! } + public var StickerPack_HideStickers: String { return self._s[4918]! } + public var ChatListFolder_NameContacts: String { return self._s[4919]! } + public var Profile_BotInfo: String { return self._s[4920]! } + public var Document_TargetConfirmationFormat: String { return self._s[4921]! } + public var GroupInfo_InviteByLink: String { return self._s[4922]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4923]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4924]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4925]! } + public var Passport_NotLoggedInMessage: String { return self._s[4926]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4927]! } + public var Checkout_PaymentMethod: String { return self._s[4928]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4933]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4934]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4935]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4936]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4937]! } + public var Conversation_GigagroupDescription: String { return self._s[4938]! } + public var Camera_Title: String { return self._s[4939]! } + public var Map_Directions: String { return self._s[4940]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[4942]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4943]! } + public var Profile_EncryptionKey: String { return self._s[4944]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4943]!, self._r[4943]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_1, "\(_2)"]) } - public var VoiceChat_VideoPreviewShareCamera: String { return self._s[4944]! } + public var VoiceChat_VideoPreviewShareCamera: String { return self._s[4946]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4947]!, self._r[4947]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[4946]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[4948]! } - public var Common_No: String { return self._s[4949]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4950]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4951]! } - public var Settings_AboutEmpty: String { return self._s[4952]! } - public var TwoStepAuth_FloodError: String { return self._s[4954]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4955]! } + public var Passport_Identity_TypePassport: String { return self._s[4948]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[4950]! } + public var Common_No: String { return self._s[4951]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4952]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4953]! } + public var Settings_AboutEmpty: String { return self._s[4954]! } + public var TwoStepAuth_FloodError: String { return self._s[4956]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4957]! } public func Notification_VoiceChatScheduledChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4956]!, self._r[4956]!, [_0]) + return formatWithArgumentRanges(self._s[4958]!, self._r[4958]!, [_0]) } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4958]!, self._r[4958]!, [_1]) + return formatWithArgumentRanges(self._s[4960]!, self._r[4960]!, [_1]) } - public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[4961]! } - public var Conversation_Edit: String { return self._s[4962]! } - public var CheckoutInfo_SaveInfo: String { return self._s[4964]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4965]! } - public var Call_CameraTooltip: String { return self._s[4967]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[4968]! } - public var Contacts_InviteToTelegram: String { return self._s[4969]! } - public var Notifications_ResetAllNotifications: String { return self._s[4970]! } - public var Calls_NewCall: String { return self._s[4971]! } - public var VoiceOver_Chat_Music: String { return self._s[4974]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[4975]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4976]! } - public var Channel_Edit_AboutItem: String { return self._s[4977]! } - public var Message_VideoExpired: String { return self._s[4978]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4979]! } + public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[4963]! } + public var Conversation_Edit: String { return self._s[4964]! } + public var CheckoutInfo_SaveInfo: String { return self._s[4966]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4967]! } + public var Call_CameraTooltip: String { return self._s[4969]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[4970]! } + public var Contacts_InviteToTelegram: String { return self._s[4971]! } + public var Notifications_ResetAllNotifications: String { return self._s[4972]! } + public var Calls_NewCall: String { return self._s[4973]! } + public var VoiceOver_Chat_Music: String { return self._s[4976]! } + public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[4977]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4978]! } + public var Channel_Edit_AboutItem: String { return self._s[4979]! } + public var Message_VideoExpired: String { return self._s[4980]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4981]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4980]!, self._r[4980]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4982]!, self._r[4982]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[4982]! } - public var Notifications_ClassicTones: String { return self._s[4983]! } - public var Conversation_StatusTyping: String { return self._s[4984]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4985]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4986]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4987]! } - public var Conversation_MessageLeaveComment: String { return self._s[4988]! } - public var UserInfo_TapToCall: String { return self._s[4989]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4990]! } + public var NotificationsSound_Input: String { return self._s[4984]! } + public var Notifications_ClassicTones: String { return self._s[4985]! } + public var Conversation_StatusTyping: String { return self._s[4986]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4987]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4988]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4989]! } + public var Conversation_MessageLeaveComment: String { return self._s[4990]! } + public var UserInfo_TapToCall: String { return self._s[4991]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4992]! } public func ScheduleVoiceChat_ScheduleOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4991]!, self._r[4991]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4993]!, self._r[4993]!, [_0, _1]) } - public var Conversation_ClearAll: String { return self._s[4993]! } - public var UserInfo_NotificationsDefault: String { return self._s[4994]! } - public var Location_ProximityGroupTip: String { return self._s[4995]! } - public var Map_ChooseAPlace: String { return self._s[4996]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[4998]! } - public var ChatList_PeerTypeNonContact: String { return self._s[4999]! } - public var Conversation_SlideToCancel: String { return self._s[5000]! } - public var Month_ShortJuly: String { return self._s[5001]! } - public var SocksProxySetup_ProxyType: String { return self._s[5002]! } + public var Conversation_ClearAll: String { return self._s[4995]! } + public var UserInfo_NotificationsDefault: String { return self._s[4996]! } + public var Location_ProximityGroupTip: String { return self._s[4997]! } + public var Map_ChooseAPlace: String { return self._s[4998]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[5000]! } + public var ChatList_PeerTypeNonContact: String { return self._s[5001]! } + public var Conversation_SlideToCancel: String { return self._s[5002]! } + public var Month_ShortJuly: String { return self._s[5003]! } + public var SocksProxySetup_ProxyType: String { return self._s[5004]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5003]!, self._r[5003]!, [_0]) + return formatWithArgumentRanges(self._s[5005]!, self._r[5005]!, [_0]) } - public var StickerPacks_ActionArchive: String { return self._s[5004]! } - public var ChatList_EditFolders: String { return self._s[5005]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[5006]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[5008]! } + public var StickerPacks_ActionArchive: String { return self._s[5006]! } + public var ChatList_EditFolders: String { return self._s[5007]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[5008]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[5010]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5009]!, self._r[5009]!, [_0]) + return formatWithArgumentRanges(self._s[5011]!, self._r[5011]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5010]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[5011]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[5013]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5012]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[5013]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[5015]! } public func Conversation_ScheduledVoiceChatStartsOnShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5015]!, self._r[5015]!, [_0]) + return formatWithArgumentRanges(self._s[5017]!, self._r[5017]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[5016]! } - public var Passport_DeletePassportConfirmation: String { return self._s[5017]! } - public var Passport_Identity_ReverseSide: String { return self._s[5018]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5020]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[5021]! } - public var InviteLink_CreatedBy: String { return self._s[5022]! } - public var Passport_FieldAddress: String { return self._s[5023]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5024]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5027]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[5028]! } - public var Map_Home: String { return self._s[5029]! } - public var PollResults_Title: String { return self._s[5032]! } + public var Passport_DeleteAddress: String { return self._s[5018]! } + public var Passport_DeletePassportConfirmation: String { return self._s[5019]! } + public var Passport_Identity_ReverseSide: String { return self._s[5020]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5022]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[5023]! } + public var InviteLink_CreatedBy: String { return self._s[5024]! } + public var Passport_FieldAddress: String { return self._s[5025]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5026]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5029]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[5030]! } + public var Map_Home: String { return self._s[5031]! } + public var PollResults_Title: String { return self._s[5034]! } public func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5033]!, self._r[5033]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5035]!, self._r[5035]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[5035]! } - public var VoiceChat_VideoPreviewTitle: String { return self._s[5036]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5037]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5038]! } - public var VoiceChat_Muted: String { return self._s[5040]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[5041]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[5042]! } - public var Conversation_AutoremoveActionEnable: String { return self._s[5044]! } - public var Group_Info_AdminLog: String { return self._s[5045]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[5046]! } - public var Appearance_Animations: String { return self._s[5047]! } - public var Appearance_TextSizeSetting: String { return self._s[5048]! } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public var ArchivedChats_IntroText2: String { return self._s[5037]! } + public var VoiceChat_VideoPreviewTitle: String { return self._s[5038]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5039]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5040]! } + public var VoiceChat_Muted: String { return self._s[5042]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[5043]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[5044]! } + public var Conversation_AutoremoveActionEnable: String { return self._s[5046]! } + public var Group_Info_AdminLog: String { return self._s[5047]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[5048]! } + public var Appearance_Animations: String { return self._s[5049]! } + public var Appearance_TextSizeSetting: String { return self._s[5050]! } + public func LiveLocationUpdated_MinutesAgo(_ 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 StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { + public func PasscodeSettings_FailedAttempts(_ 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 Call_ShortMinutes(_ value: Int32) -> String { + public func AttachmentMenu_SendVideo(_ 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 Stats_MessageViews(_ value: Int32) -> String { + public func Notification_GameScoreSimple(_ 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 ForwardedPolls(_ 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[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageMusic(_ value: Int32) -> String { + public func ForwardedContacts(_ 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 LastSeen_HoursAgo(_ value: Int32) -> String { + public func PollResults_ShowMore(_ 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 InviteLink_PeopleJoined(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfSimple(_ 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 PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func GroupInfo_ParticipantCount(_ 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 Notification_GameScoreSelfSimple(_ 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 DialogList_LiveLocationChatsCount(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedVideos(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func LiveLocationUpdated_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 ForwardedContacts(_ 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 InviteLink_InviteLinks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAudios(_ 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 MessagePoll_QuizCount(_ 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 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 SharedMedia_File(_ 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_Exceptions(_ 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 InviteLink_PeopleJoinedShort(_ 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 VoiceChat_Panel_Members(_ 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 ChatListFilter_ShowMoreChats(_ 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 Map_ETAMinutes(_ 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 MuteFor_Hours(_ 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 ScheduledIn_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 SharedMedia_DeleteItemsConfirmation(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 StickerPack_RemoveMaskCount(_ 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 Conversation_SelectedMessages(_ 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 SharedMedia_Link(_ 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_AutoremoveRemainingDays(_ 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 VoiceOver_Chat_MessagesSelected(_ 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 OldChannels_InactiveMonth(_ 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 ForwardedMessages(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 Conversation_ContextViewReplies(_ 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 ChatList_MessageVideos(_ 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 VoiceChat_Status_Members(_ 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_GroupTopAdminKicks(_ 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 MuteFor_Days(_ 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 StickerPacks_ArchiveStickerPacksConfirmation(_ 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 PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[45 * 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[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopAdminBans(_ 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 MessageTimer_Hours(_ 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 ChatList_SelectedChats(_ 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 Chat_MessagesUnpinned(_ 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 PasscodeSettings_FailedAttempts(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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) - } - public func MessageTimer_ShortSeconds(_ 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 ChatList_MessagePhotos(_ 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) - } - public func Stats_GroupShowMoreTopPosters(_ 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) - } - public func MuteExpires_Hours(_ 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 ServiceMessage_GameScoreSimple(_ 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 Contacts_InviteContacts(_ 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) - } - public func ServiceMessage_GameScoreExtended(_ 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 ChatList_DeletedChats(_ 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 ScheduledIn_Weeks(_ 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 Conversation_LiveLocationMembersCount(_ 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 MuteExpires_Minutes(_ 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 SharedMedia_Video(_ 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 Conversation_MessageViewComments(_ 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 AttachmentMenu_SendVideo(_ 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 VoiceOver_Chat_UnreadMessages(_ 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 Theme_UsersCount(_ 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 Conversation_StatusMembers(_ 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 LiveLocation_MenuChatsCount(_ 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 ChatList_Search_Messages(_ 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 ScheduledIn_Hours(_ 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 PollResults_ShowMore(_ 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 MessageTimer_ShortMinutes(_ 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 Watch_UserInfo_Mute(_ 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 InviteLink_PeopleRemaining(_ 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 MessageTimer_Years(_ 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 ForwardedFiles(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 ForwardedVideoMessages(_ 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 InstantPage_Views(_ 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 LastSeen_MinutesAgo(_ 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 OldChannels_GroupFormat(_ 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 InviteText_ContactsCountText(_ 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 VoiceChat_InviteLink_InviteListeners(_ 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 Passport_Scans(_ 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) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } public func Media_ShareItem(_ 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) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddStickerCount(_ 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[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Days(_ 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 OldChannels_InactiveWeek(_ 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 CreatePoll_AddMoreOptions(_ 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 Stats_GroupTopPosterMessages(_ 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 MessageTimer_Months(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 MessageTimer_ShortHours(_ 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 Conversation_ContextMenuSelectAll(_ 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 ChatList_MessageFiles(_ 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 Stats_GroupTopPosterChars(_ 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 OldChannels_Leave(_ 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 QuickSend_Photos(_ 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 ScheduledIn_Seconds(_ 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 PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[103 * 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[104 * 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[105 * 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[106 * 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[107 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func SharedMedia_Generic(_ 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 Call_Seconds(_ 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 Watch_LastSeen_MinutesAgo(_ 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 ChatList_DeleteConfirmation(_ 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 StickerPack_StickerCount(_ 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 Chat_TitlePinnedMessages(_ 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 InviteLink_PeopleCanJoin(_ 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 ForwardedPhotos(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PeopleNearby_ShowMorePeople(_ 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 MessageTimer_Weeks(_ 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 ScheduledIn_Years(_ 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 Stats_MessageForwards(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Call_Days(_ 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 Call_ShortSeconds(_ 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 Watch_LastSeen_HoursAgo(_ 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 MessagePoll_VotedCount(_ 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 VoiceChat_InviteLink_InviteSpeakers(_ 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 ForwardedGifs(_ 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 Stats_GroupTopInviterInvites(_ 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 Conversation_StatusSubscribers(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Media_SharePhoto(_ 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 AttachmentMenu_SendItem(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Stats_GroupTopAdminDeletions(_ 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 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 Forward_ConfirmMultipleFiles(_ 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 VoiceOver_Chat_ContactEmailCount(_ 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_InactiveYear(_ 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 Call_Minutes(_ 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 ForwardedLocations(_ 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 Notification_GameScoreSelfExtended(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ScheduledIn_Months(_ 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 SharedMedia_Photo(_ 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 PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[147 * 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[148 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[150 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 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[151 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 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[152 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Wallpaper_DeleteConfirmation(_ 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[153 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func Call_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 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[155 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func InviteLink_PeopleRemaining(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[156 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Minutes(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Days(_ 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 Invitation_Members(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + 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[159 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[160 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[19 * 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[161 * 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[162 * 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[163 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[164 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Stats_GroupShowMoreTopAdmins(_ 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[165 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[166 * 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[167 * 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[168 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[169 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_Minutes(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[24 * 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[25 * 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[26 * 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[27 * 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[28 * 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[29 * 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[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageMusic(_ 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 Call_Days(_ 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 VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[170 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Minutes(_ value: Int32) -> String { + public func SharedMedia_File(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[171 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[172 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[35 * 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[36 * 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[37 * 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[38 * 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[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Weeks(_ 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 Map_ETAHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[173 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[41 * 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[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPacks_DeleteStickerPacksConfirmation(_ 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 Conversation_SelectedMessages(_ 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 Watch_LastSeen_HoursAgo(_ 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 Call_Seconds(_ 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_Months(_ 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 SharedMedia_Photo(_ 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 StickerPack_AddMaskCount(_ 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 OldChannels_InactiveWeek(_ 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 Chat_DeleteMessagesConfirmation(_ 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 ForwardedFiles(_ 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) + } + public func Call_ShortMinutes(_ 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 GroupInfo_ParticipantCount(_ 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) + } + public func Stats_GroupShowMoreTopInviters(_ 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) + } + public func MessageTimer_Weeks(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_Minutes(_ 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) + } + public func Notification_GameScoreSelfExtended(_ 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 ForwardedPolls(_ 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 VoiceChat_Panel_Members(_ 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 ChatList_Search_Messages(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 OldChannels_InactiveMonth(_ 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 VoiceChat_InviteLink_InviteListeners(_ 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 ChatList_MessagePhotos(_ 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_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ScheduledIn_Months(_ 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 ChatList_SelectedChats(_ 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 CreatePoll_AddMoreOptions(_ 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 InstantPage_Views(_ 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 UserCount(_ 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 ForwardedGifs(_ 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 Contacts_ImportersCount(_ 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 ScheduledIn_Hours(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 Conversation_ContextMenuSelectAll(_ 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 SharedMedia_Generic(_ 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 ForwardedAudios(_ 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 ScheduledIn_Seconds(_ 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 Stats_GroupTopInviterInvites(_ 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 ChatListFilter_ShowMoreChats(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 Stats_GroupTopAdminDeletions(_ 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_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Media_SharePhoto(_ 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 PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func LastSeen_HoursAgo(_ 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 StickerPack_AddStickerCount(_ 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 ChatList_MessageFiles(_ 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 QuickSend_Photos(_ 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 ScheduledIn_Minutes(_ 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 Passport_Scans(_ 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 MuteExpires_Minutes(_ 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 MessagePoll_QuizCount(_ 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 InviteLink_PeopleJoined(_ 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 ChatList_DeleteConfirmation(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedStickers(_ 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_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendPhoto(_ 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_SendItem(_ 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 Contacts_InviteContacts(_ 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) + } + public func OldChannels_Leave(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 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[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminBans(_ 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 Forward_ConfirmMultipleFiles(_ 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_GroupTopPosterChars(_ 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 MessageTimer_ShortWeeks(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func VoiceOver_Chat_MessagesSelected(_ 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 VoiceChat_Status_Members(_ 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 ForwardedPhotos(_ 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 VoiceOver_Chat_UnreadMessages(_ 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 Map_ETAMinutes(_ 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 Conversation_AutoremoveRemainingDays(_ 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 Chat_TitlePinnedMessages(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_RemoveStickerCount(_ 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 Chat_MessagesUnpinned(_ 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 Stats_MessageViews(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessagePoll_VotedCount(_ 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 InviteLink_InviteLinks(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func StickerPack_RemoveMaskCount(_ 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 Watch_LastSeen_MinutesAgo(_ 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 LiveLocation_MenuChatsCount(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + 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[130 * 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[131 * 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[132 * 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[133 * 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[134 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func Notification_GameScoreSelfSimple(_ 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_MESSAGE_FWDS(_ 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 ChatList_DeletedChats(_ 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 Conversation_StatusOnline(_ 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 ScheduledIn_Years(_ 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 Stats_GroupTopAdminKicks(_ 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 StickerPacks_ArchiveStickerPacksConfirmation(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 Wallpaper_DeleteConfirmation(_ 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 PeopleNearby_ShowMorePeople(_ 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 ForwardedVideoMessages(_ 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_Seconds(_ 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) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[147 * 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[148 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[150 * 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[151 * 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[152 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[154 * 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[155 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func InviteLink_PeopleCanJoin(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[156 * 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[174 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSimple(_ value: Int32) -> String { + public func MessageTimer_ShortDays(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[175 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[158 * 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[159 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_MessageForwards(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[160 * 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[161 * 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[162 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[163 * 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[164 * 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[165 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[167 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[168 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[169 * 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[170 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[171 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[172 * 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[173 * 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[174 * 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[175 * 6 + Int(form.rawValue)]!, _1, _2) } public init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index c608d17bf0..b103824b68 100644 Binary files a/submodules/TelegramUI/Resources/PresentationStrings.mapping and b/submodules/TelegramUI/Resources/PresentationStrings.mapping differ